Received: by 2002:ac0:950c:0:0:0:0:0 with SMTP id f12csp2283464imc; Tue, 12 Mar 2019 10:33:00 -0700 (PDT) X-Google-Smtp-Source: APXvYqwlS3UUsa3LPGybvsEgsw7xSK+/NAr7mAzJ9UVac2tWpwa2MLF69UV24qe95Wem68MS64Ak X-Received: by 2002:a65:6105:: with SMTP id z5mr1084094pgu.434.1552411980469; Tue, 12 Mar 2019 10:33:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1552411980; cv=none; d=google.com; s=arc-20160816; b=pvE8vIfcdTLYMrhDVR688wAf/82gwBGLYG19cprLS9SdWnCTCknmaKnwXxtTPvmj/u LFk4PYKnFMr7awOzYemkkra1hPWVTQ6XeLlUwiamcsFYBxPDSe5XgKq2SfNQqx8eLSR8 v8dx6/yrFYygeb3uxCun1rUjhiRCtvr7iPvuEjjFEih44TLJz+hXx0jWrd9pKVwO4fHb bh64XqQz/IpsrdBOBJAv17HvXU9rWvVvJ9lGafcIebKzSnTh/g2+zgTKXG3g0jxWYYGX WrJv9g10Hw+xvspw+/0NSBi4PHOZnccVa1kdIBK0v+xJWdkaCxfg6FBwfm5CjRcJWCG5 6khg== 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=uHr2Wt/ga6Fg/P/Z1PlhBGMWVAhnUCHt2XcoJG0dvi4=; b=0okLvQJmxslsqU6YmnRnZxGM/KK6ojWV9zeJQrMSDE+8L+h+Zz7rvMDekElCYmdIpW 3RHi5pyDni7sf1SUl85UYVaeP0YfKZ95kPslYyB6rjqmruJWikWuVyjPWH/PNzK5PdNr GgTHk2ecDevwDmDO/I8iVf+UJuY9vhR710fxz2YgM/oYFOc8BlmY/4WhAlU3ylXaOofr OraaGuUCXdBcQc8SaRsi1DMJNp1IDZY699pFABriQy9I9vYcIh0SMSeQd5wEa6/376gW O/5wqYhCSpjdoIn6aOywCIoHBuWYsIqENz/5DW7bGSwJ6/1Kz4RPWwI0jSchWJyoNKvL tXDA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=iKb0Ujbe; 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 b7si9472372plb.0.2019.03.12.10.32.44; Tue, 12 Mar 2019 10:33:00 -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=iKb0Ujbe; 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 S1728620AbfCLRRJ (ORCPT + 99 others); Tue, 12 Mar 2019 13:17:09 -0400 Received: from mail.kernel.org ([198.145.29.99]:57574 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728979AbfCLRQE (ORCPT ); Tue, 12 Mar 2019 13:16:04 -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 3D2372184C; Tue, 12 Mar 2019 17:16:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1552410963; bh=8bBL2U1KXs41Wq6S4Dojk0vSBy7GSmFggSTI8u3xKMM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=iKb0Ujbe6NvIb+UFUxqtiW3wuR1M1G6qvsKnzgmoeOp1/i7YHCOkf2tYzbXsVsutV oQ3586QchpH/7Vb0s/Lb0cohLmYS2xhsTsfHMg3X1Ij363Xfj7enzCeE1alQ326g2H mgg0jF9aXWRj43hhrNcMhIN20McinHFTET4M5GpU= 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.14 049/135] iommu/amd: Unmap all mapped pages in error path of map_sg Date: Tue, 12 Mar 2019 10:08:16 -0700 Message-Id: <20190312170345.676114236@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190312170341.127810985@linuxfoundation.org> References: <20190312170341.127810985@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.14-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 ded13a6afa66..0c0acf6fda87 100644 --- a/drivers/iommu/amd_iommu.c +++ b/drivers/iommu/amd_iommu.c @@ -2560,7 +2560,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