From patchwork Wed Jun 7 22:59:37 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Willy Tarreau X-Patchwork-Id: 103328 Delivered-To: patch@linaro.org Received: by 10.182.29.35 with SMTP id g3csp1997463obh; Wed, 7 Jun 2017 16:57:34 -0700 (PDT) X-Received: by 10.98.129.131 with SMTP id t125mr19798881pfd.173.1496879854105; Wed, 07 Jun 2017 16:57:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1496879854; cv=none; d=google.com; s=arc-20160816; b=qkHQT7KX1NDR/pn6DOVelZTZu4SFUOcTTRJXZ6SODDqRwFDR5B6i5HlhWxAs4kMbQY IUN8BHVef778513jxYwSJwLuEv5aoVXZcavlcXC3+t6mIESK86IthvfJ5/T60RUP9j2F tsA9knbxjG3NUm1+HtuAPK69M5YgIT6pdY3vwThAAiTcAErhoavYxFgx9X3ukgnIhlau 1ZwArXyvmr+nWvmISa+zII63L2Bnxs1w4YMs7WSxUeduvr4zDFG3iADfU5TRhMLNnLAZ PU1bsToBYWy/xykmOtgf2tJIbxDkaSLhiD+IGx3UwRwQm5T5oumbdJwt7TseMftJKF9W mQgg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=GgsS2Rvxd6KpUukNPqNrOi9RaG0U05bJB4vYMiKDT4o=; b=jr4SVNtGpz5hg1MUDiieKEzx1Iblk55GyFO5QEs7/50iA0dEjyQ1FYQb7Qv442m6iu gJ6O36ePJlOmosVfKdIvpxsqWwTTZZ/7bxfAPrOkHdt+HFdSfcV91fYSg8ZtXTZcqIU8 Uw72jWrGLUtjBiC4LFH28XHO3bbKKM9TrcUBn4mxXqERwNexuLU37mMjzqkqxRoc2GUX cUPohLOMhkiymaBCdMMD1UrKegtLoib/ymMdK/iV70CcoaNDgrAqrUZDN3QTJXeR3leh Fm9kNI3BVFm+aZMnJxrrOZvT3QqwPuCFGr3mbWXspLHHtxscVDIQ14l+GGuKfeqWRcVO oQNg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-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 u22si2984481plk.91.2017.06.07.16.57.33; Wed, 07 Jun 2017 16:57:34 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of stable-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 stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751520AbdFGX5X (ORCPT + 6 others); Wed, 7 Jun 2017 19:57:23 -0400 Received: from wtarreau.pck.nerim.net ([62.212.114.60]:50376 "EHLO 1wt.eu" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752614AbdFGXD0 (ORCPT ); Wed, 7 Jun 2017 19:03:26 -0400 Received: (from willy@localhost) by pcw.home.local (8.15.2/8.15.2/Submit) id v57N1Y4c000425; Thu, 8 Jun 2017 01:01:34 +0200 From: Willy Tarreau To: linux-kernel@vger.kernel.org, stable@vger.kernel.org, linux@roeck-us.net Cc: John Garry , "Martin K . Petersen" , Willy Tarreau Subject: [PATCH 3.10 191/250] scsi: libsas: fix ata xfer length Date: Thu, 8 Jun 2017 00:59:37 +0200 Message-Id: <1496876436-32402-192-git-send-email-w@1wt.eu> X-Mailer: git-send-email 2.8.0.rc2.1.gbe9624a In-Reply-To: <1496876436-32402-1-git-send-email-w@1wt.eu> References: <1496876436-32402-1-git-send-email-w@1wt.eu> Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: John Garry commit 9702c67c6066f583b629cf037d2056245bb7a8e6 upstream. The total ata xfer length may not be calculated properly, in that we do not use the proper method to get an sg element dma length. According to the code comment, sg_dma_len() should be used after dma_map_sg() is called. This issue was found by turning on the SMMUv3 in front of the hisi_sas controller in hip07. Multiple sg elements were being combined into a single element, but the original first element length was being use as the total xfer length. Fixes: ff2aeb1eb64c8a4770a6 ("libata: convert to chained sg") Signed-off-by: John Garry Signed-off-by: Martin K. Petersen Signed-off-by: Willy Tarreau --- drivers/scsi/libsas/sas_ata.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- 2.8.0.rc2.1.gbe9624a diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c index d289583..83e3ca7 100644 --- a/drivers/scsi/libsas/sas_ata.c +++ b/drivers/scsi/libsas/sas_ata.c @@ -219,7 +219,7 @@ static unsigned int sas_ata_qc_issue(struct ata_queued_cmd *qc) task->num_scatter = qc->n_elem; } else { for_each_sg(qc->sg, sg, qc->n_elem, si) - xfer += sg->length; + xfer += sg_dma_len(sg); task->total_xfer_len = xfer; task->num_scatter = si;