Received: by 2002:ac0:950c:0:0:0:0:0 with SMTP id f12csp2302370imc; Tue, 12 Mar 2019 10:58:04 -0700 (PDT) X-Google-Smtp-Source: APXvYqw4Kp7WwJDyHxo/p+mrbHNs8iCFmVKe2o+Q1ysoW7JDWvWfrFRW+2tfjzZewdpWgVfx+eAp X-Received: by 2002:aa7:8b93:: with SMTP id r19mr1758995pfd.163.1552413483939; Tue, 12 Mar 2019 10:58:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1552413483; cv=none; d=google.com; s=arc-20160816; b=qeW7x+p9mW8WKvc925BQ6XyombWRvDK+bvTS/YyonObXNTqPCilU4JdKB6y2yx2rQ4 +tt8yUgs2TKR/olY5RIpJ9FXpHgtW5qVDZazapc0PvUl5cAPZQxvKMYycUq9glMDWmYC 8JaTRICwng8HMzkNMJtPwluOXpsNKa97fbKfxjhIzcFC1XSLsBbmxZHzKr8/0FWursMu 2inEbzOznsXvMSF39uxPwKYu58iWt/TQPzyq8PUmup4ATWS5IO6Cpx+RGs3zwK3RKu03 tG7QymA7PMlYdUFsTomLq6z2/BclVSBzeyuz52styGoUpsTAQYPTCsUpX6JZFvLsrK83 VpNQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=+RH4ybsCtXzbykpSHIoKpMQGVwMjZEADZFJTGFYGhiY=; b=ueRtFMwim+5ujJvPbNCDI8DN1q43C7Seu2LHkxCkq18wmPvA/scAEhpGQtilBlV3w4 mX/b/1V+nGdutj1sqcMYXfyUKwVcy4NnSE8fnQ2wfBEJJ3LXvr+2ZtEqrSdQp2HZ+gV8 XKeannIZ9598Np7Yb3yZFri43+0/kDMl/9mLTOz88IHzsmRERFuuZUYQ2ii89Bj9OGoz 5ZSAuSAFYOaWFfouediQ68V+VFdiRvDo0I3NwxcfpJjASubaeY5mYZTpwch3cr6va5w8 4mjUhrQ9DH2o6N3ojKZ15HhkijXGEOw6SwY33s7XlxRIaelJIrp5/alzI00Bv5thRlq6 ZriA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=EQstjcne; 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 g1si8401880plt.318.2019.03.12.10.57.48; Tue, 12 Mar 2019 10:58:03 -0700 (PDT) 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; dkim=pass header.i=@kernel.org header.s=default header.b=EQstjcne; 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 S1728859AbfCLR5E (ORCPT + 99 others); Tue, 12 Mar 2019 13:57:04 -0400 Received: from mail.kernel.org ([198.145.29.99]:51536 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728119AbfCLRNv (ORCPT ); Tue, 12 Mar 2019 13:13:51 -0400 Received: from localhost (unknown [104.133.8.98]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id BE8EE2183F; Tue, 12 Mar 2019 17:13:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1552410830; bh=KPjBbwYTc392Zb864tvG7fsa+jZUDjsdluEae1lGdB4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EQstjcnet2YtGAM/pluvDFewLRAj8MgtU1VuBOH8qN6A4x5FN1kJydgs2/SXd59a+ jr6k5GN/nyMFqJ1Op/BW+78VV4FvI5vbjzrsjutPodrnrm0z/FaTQvGT5O6kbk8JEt frcPPWLtD5ceNk2sVsb6iHK8dJZCoSRJxhnyCRIg= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Joerg Roedel , Jerry Snitselaar , Joerg Roedel , Sasha Levin Subject: [PATCH 4.19 009/149] iommu/amd: Unmap all mapped pages in error path of map_sg Date: Tue, 12 Mar 2019 10:07:07 -0700 Message-Id: <20190312170350.285790499@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190312170349.421581206@linuxfoundation.org> References: <20190312170349.421581206@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.19-stable review patch. If anyone has any objections, please let me know. ------------------ [ Upstream commit f1724c0883bb0ce93b8dcb94b53dcca3b75ac9a7 ] In the error path of map_sg there is an incorrect if condition for breaking out of the loop that searches the scatterlist for mapped pages to unmap. Instead of breaking out of the loop once all the pages that were mapped have been unmapped, it will break out of the loop after it has unmapped 1 page. Fix the condition, so it breaks out of the loop only after all the mapped pages have been unmapped. Fixes: 80187fd39dcb ("iommu/amd: Optimize map_sg and unmap_sg") Cc: Joerg Roedel Signed-off-by: Jerry Snitselaar Signed-off-by: Joerg Roedel Signed-off-by: Sasha Levin --- drivers/iommu/amd_iommu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c index 2a5c05ca7fca..2ab87e3f07e6 100644 --- a/drivers/iommu/amd_iommu.c +++ b/drivers/iommu/amd_iommu.c @@ -2555,7 +2555,7 @@ static int map_sg(struct device *dev, struct scatterlist *sglist, bus_addr = address + s->dma_address + (j << PAGE_SHIFT); iommu_unmap_page(domain, bus_addr, PAGE_SIZE); - if (--mapped_pages) + if (--mapped_pages == 0) goto out_free_iova; } } -- 2.19.1