From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D5967C28CC5 for ; Sun, 2 Jun 2019 23:32:42 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id B834927A0E for ; Sun, 2 Jun 2019 23:32:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726798AbfFBXcl (ORCPT ); Sun, 2 Jun 2019 19:32:41 -0400 Received: from kvm5.telegraphics.com.au ([98.124.60.144]:48238 "EHLO kvm5.telegraphics.com.au" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726305AbfFBXcl (ORCPT ); Sun, 2 Jun 2019 19:32:41 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by kvm5.telegraphics.com.au (Postfix) with ESMTP id C7BA3283AD; Sun, 2 Jun 2019 19:32:35 -0400 (EDT) Date: Mon, 3 Jun 2019 09:32:36 +1000 (AEST) From: Finn Thain To: Geert Uytterhoeven cc: "James E.J. Bottomley" , "Martin K. Petersen" , Michael Schmitz , scsi , Linux Kernel Mailing List , stable , linux-m68k Subject: Re: [PATCH 5/7] scsi: mac_scsi: Fix pseudo DMA implementation, take 2 In-Reply-To: Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sun, 2 Jun 2019, Geert Uytterhoeven wrote: > Hi Finn, > > On Sun, Jun 2, 2019 at 3:29 AM Finn Thain > wrote: > > A system bus error during a PDMA transfer can mess up the calculation > > of the transfer residual (the PDMA handshaking hardware lacks a byte > > counter). This results in data corruption. > > > > The algorithm in this patch anticipates a bus error by starting each > > transfer with a MOVE.B instruction. If a bus error is caught the > > transfer will be retried. If a bus error is caught later in the > > transfer (for a MOVE.W instruction) the transfer gets failed and > > subsequent requests for that target will use PIO instead of PDMA. > > > > This avoids the "!REQ and !ACK" error so the severity level of that > > message is reduced to KERN_DEBUG. > > > > Cc: Michael Schmitz > > Cc: Geert Uytterhoeven > > Cc: stable@vger.kernel.org # v4.14+ > > Fixes: 3a0f64bfa907 ("mac_scsi: Fix pseudo DMA implementation") > > Reported-by: Chris Jones > > Tested-by: Stan Johnson > > Signed-off-by: Finn Thain > > Thanks for your patch! > > > --- > > arch/m68k/include/asm/mac_pdma.h | 179 +++++++++++++++++++++++++++ > > drivers/scsi/mac_scsi.c | 201 ++++++++----------------------- > > Why have you moved the PDMA implementation to a header file under > arch/m68k/? Do you intend to reuse it by other drivers? > There are a couple of reasons: the mac_esp driver also uses PDMA and the NuBus PowerMac port also uses mac_scsi.c. OTOH, the NuBus PowerMac port is still out-of-tree, and it is unclear whether the mac_esp driver will ever benefit from this code. > If not, please keep it in the driver, so (a) you don't need an ack from > me ;-), and (b) your change may be easier to review. > I take your wink to mean that you don't want to ask the SCSI maintainers to review m68k asm. Putting aside the code review process for a moment, do you have an opinion on the most logical way to organise this sort of code, from the point-of-view of maintainability, re-usability, readability etc.? Thanks. -- > Thanks! > > Gr{oetje,eeting}s, > > Geert > >