Received: by 2002:a25:7ec1:0:0:0:0:0 with SMTP id z184csp2170216ybc; Sun, 17 Nov 2019 15:28:30 -0800 (PST) X-Google-Smtp-Source: APXvYqwdDPryt7QY0mLU/Q7MHz03zOJWoDbMreNXbRaqsAXTg6NqT14LZu/Ihc+QnDBPi465o3vu X-Received: by 2002:a17:906:2552:: with SMTP id j18mr22532767ejb.244.1574033310460; Sun, 17 Nov 2019 15:28:30 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1574033310; cv=none; d=google.com; s=arc-20160816; b=gQUrb97WZtkr23+SdRsaowq+RrwCGc0pwCEdZh1Wn53Cx2nUIEqXxCtiXMVxwm+vpC mFZOSZPcN2U9XfIBM6Cz86WEzLjbVZl1Em6rgNgE2UZ3OziDmY7PACAlPDc28hgSfJiH Xo1HZeAdsIYUWLw7UjZlNUKmqSwxYo0BbDe2m5f0Kf4vXht+GtubB1RzZITyyRuS4XPN 8sisqZ7fNwSPzRlWg9EYVvIYN6k7m7zbYsOzphNzaHUk47LaOR7PxtfDSPaIbhXg6Rl0 myeTbUgJtxlyr9yM0hpQrSRWtFG3Q17Hx9zY1rXgeiI3qcnOaszJvEj/w7F275WVLFeE jrqg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:references:message-id :in-reply-to:subject:cc:to:from:date; bh=iGYXD5098sz21/FHyFDlAhHz58PAmOD1hod70MSd3XA=; b=uKOdHeK8ccu7RXb1pY5fgfzIDy9VM5AwRaMcc7QYZ90rs1dfj8rJzgrt9GJNFlI8kJ 3STPhbVbmhsGb0bUjonPg47TZOXIGWEUuaGhWQgbkyJgsgU0K3+oD3yD/XELWk8bInxY FKSBET4BadowBMB98eeooLJuxRvHT5KbLUHg48mv7jTWfvEFdMOIVCmOxgQjdnoUqFuK 5NhlmlaxNrwXM0R90bePFa0yMq1uiluR5Dc0X89MZi5EcmuLG5m/Db2EW1xY2belKFbJ W3yCQka2WOurTx2fyxhn2YdEB5TmGpY6WfCP1cPbudF2IWigMn6u4wxlfO45D+YeFTfg ZLcA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q12si10710964ejn.435.2019.11.17.15.28.04; Sun, 17 Nov 2019 15:28:30 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726423AbfKQX0x (ORCPT + 99 others); Sun, 17 Nov 2019 18:26:53 -0500 Received: from kvm5.telegraphics.com.au ([98.124.60.144]:49276 "EHLO kvm5.telegraphics.com.au" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726268AbfKQX0x (ORCPT ); Sun, 17 Nov 2019 18:26:53 -0500 Received: from localhost (localhost.localdomain [127.0.0.1]) by kvm5.telegraphics.com.au (Postfix) with ESMTP id 675E62A771; Sun, 17 Nov 2019 18:26:48 -0500 (EST) Date: Mon, 18 Nov 2019 10:26:47 +1100 (AEDT) From: Finn Thain To: Kars de Jong cc: "James E.J. Bottomley" , "Martin K. Petersen" , Michael Schmitz , linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] esp_scsi: Clear Transfer Count registers before PIO transfers In-Reply-To: Message-ID: References: <2bbb6359d542f5882be67c415ecc25ad2d9eeb5e.1573875417.git.fthain@telegraphics.com.au> 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 Mon, 18 Nov 2019, Finn Thain wrote: > On Sun, 17 Nov 2019, Kars de Jong wrote: > > > The only [time when] the driver reads these registers is after a data > > transfer. These are done using DMA on all Zorro boards, so I don't > > think there's a risk of stale values from a PIO transfer there. > > > > I'm not entirely sure that the chip is unaffected by stale counter > values. > > (Stale transfer counter values are distinct from stale transfer count > register values. Both are addressed by the patch.) > Sorry -- I should have said, "both were _intended_ to be addressed by the patch". But, as Michael pointed out, the DMA NOP command was missing from the v1 patch. Please see revised patch below. diff --git a/drivers/scsi/esp_scsi.c b/drivers/scsi/esp_scsi.c index bb88995a12c7..82d49f0f09df 100644 --- a/drivers/scsi/esp_scsi.c +++ b/drivers/scsi/esp_scsi.c @@ -2835,6 +2835,10 @@ void esp_send_pio_cmd(struct esp *esp, u32 addr, u32 esp_count, cmd &= ~ESP_CMD_DMA; esp->send_cmd_error = 0; + esp_write8(0, ESP_TCLOW); + esp_write8(0, ESP_TCMED); + scsi_esp_cmd(esp, ESP_CMD_NULL | ESP_CMD_DMA); + if (write) { u8 *dst = (u8 *)addr; u8 mask = ~(phase == ESP_MIP ? ESP_INTR_FDONE : ESP_INTR_BSERV); diff --git a/drivers/scsi/mac_esp.c b/drivers/scsi/mac_esp.c index 1c78bc10c790..797579247e47 100644 --- a/drivers/scsi/mac_esp.c +++ b/drivers/scsi/mac_esp.c @@ -361,8 +361,6 @@ static int esp_mac_probe(struct platform_device *dev) esp->flags = ESP_FLAG_NO_DMA_MAP; if (mep->pdma_io == NULL) { printk(KERN_INFO PFX "using PIO for controller %d\n", dev->id); - esp_write8(0, ESP_TCLOW); - esp_write8(0, ESP_TCMED); esp->flags |= ESP_FLAG_DISABLE_SYNC; mac_esp_ops.send_dma_cmd = esp_send_pio_cmd; } else {