Received: by 2002:ac0:950c:0:0:0:0:0 with SMTP id f12csp2315785imc; Tue, 12 Mar 2019 11:12:58 -0700 (PDT) X-Google-Smtp-Source: APXvYqyxWPGQRR1K6BOG0LvEejOv54psGn82RG0Hke3Z6v36ZDwUkieYjYLSyoej/QyfmXsoxxgS X-Received: by 2002:a63:fc49:: with SMTP id r9mr36000009pgk.447.1552414378783; Tue, 12 Mar 2019 11:12:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1552414378; cv=none; d=google.com; s=arc-20160816; b=rihm0ykmAg/lj84GOpaXd0pX+gj9EBUL9TuitBrqmdUmYy0qX2g8FBRMZiC1HFr4+6 TMQfGZMmRDg5M0R7IxViGCoJW9Yuq4fmei8jJKVX8Z/zRDpB4Gp+9DmdwT6mCM5j3ALO BWUDS9azNpPyiTvZZZ1g2O7LwM47sWLDN1yO0Qv/SFZoiY5Z6jo9ZP/9/fzSMYoI3ig0 0No9quh3xmRaC2OpKPjbcOXjapNbcCsrei7KkLwm/YA6naF7sVBqNmy26rZy39Enft0c 2JLza3kvezETouedLZF/ftco+dyq1M9Typnppx+Zx61MX85vzLl4dHW6Ta89zdTr99uS fVag== 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=A3ou3a7/b4qdlcmB5lfz3RmLa7N6wC38R/a9mzxffuk=; b=vfR++tfDbq86Hsf4EgQI0UWaeEa/0yrHzy2daa4+JB21pQ1xvytxeSXr4XrEU9HxRe 43wHWOo7izFc6GH7hs1ORulZDyORm0b3hHW7FSw4GJiQfz0AQmegLjAbq8XfVoF2ChcO gV7+kbviEqVjaKTVHYnhHf+tIZ0x6RcuxijaHb3mflzPQwaxKTq305qy9M3jpVf36BCS rhyJTS6+LiNRFBxnToHkqgKyGoOpnuSHFuY2gL8RG4uvHVlE4A007Ko6ExJ0m203p585 YrAbu3i0MkUIhYQ5YAu7Fx4cYeJlHWqkNM9MbWDvQG8mGTe66YRmv+es2Pas7VXjTqwb syFQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=NQJm0bPR; 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 j11si7801095pgp.169.2019.03.12.11.12.42; Tue, 12 Mar 2019 11:12:58 -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=NQJm0bPR; 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 S1729799AbfCLSLL (ORCPT + 99 others); Tue, 12 Mar 2019 14:11:11 -0400 Received: from mail.kernel.org ([198.145.29.99]:45580 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727081AbfCLRLo (ORCPT ); Tue, 12 Mar 2019 13:11:44 -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 8BACB217D4; Tue, 12 Mar 2019 17:11:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1552410703; bh=zWHFb2Z3aRB393ZEVC/EQ298Qzh7juzDTLmyp1lUD04=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NQJm0bPR/iHkImbR/Vvmo9yriHwMtVAIRKXfPwmp0b9/77FGr9brgBZCLQrRw7ZS4 sl9hSf2QdkG+VGJFI/ARklPvjQf0plgvhgO7RLIcs/lnVmgTf4PBkWysvbZK181OyW 8Iztkans29s5zEG4iHPYaUsdMDHAzGjajd/wJR/s= 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.20 014/171] iommu/amd: Unmap all mapped pages in error path of map_sg Date: Tue, 12 Mar 2019 10:06:34 -0700 Message-Id: <20190312170349.125089328@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190312170347.868927101@linuxfoundation.org> References: <20190312170347.868927101@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.20-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 5f33f843d30a..ca3a250d8fa7 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