Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp4726130pxj; Wed, 12 May 2021 11:48:40 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwh5crb2fEhVBj8rCqpv0mu75seeaqG+KLGCKGzJQ/tiNRT4MG2HBtEp3IT6Rq0jIhhrJOa X-Received: by 2002:aa7:c914:: with SMTP id b20mr46695924edt.199.1620845221877; Wed, 12 May 2021 11:47:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620845221; cv=none; d=google.com; s=arc-20160816; b=A9DEuu3bNHbQ7llBtKoXzDKAla+rbWldB3yWSDL41b/F9Ucr/Xyu0LO84E8vNiIi3h wBxp6GVOubw+RpDflDZB4cbi39ykw4DFQSkMBuGH9HI7iDDIZc3VILJVirX8vQnZB5TN i2OXW1rITpOzqB9+sEcwnVrWxHvZpaCd43laEXKF7g9C5bi0e4+2KpgC0wTU8cjKjpiv c6flekb8dRwhY9AyLHp3n1HlPiOQNcaClw8CUGLA3nmdVcXM0kAkUj5hxZItA+8BJ62h ejYH1Se3y7SaPsg5j5d9dF7QoKYd0KhtxCj1GK+uGr88X3kkgLI/K+kDJTSqQv+kDZcN aTaA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=ba72hSwSjqNZXffRlz5zjoMBVf01SJ4sAvE8XoWiFFk=; b=HXy+4kr2/bJsZD6fIlE5tQKrpa/audvBuNnkRemsy9s88TldW4kmQQjBU9uMp/yKiL 1K/i9FZwHY13jM18OBQcnvuUdgkDjIKO/IfWO7+WCQmS5S4Sq6rwDAqWKECJ9GT/0B0A WJGiR09mFCLZrr0yeN2eRf8hMxq3unvKdjgwUed4UOB99PWUNlZlWjcUCBniSyfdkyWX U5ARdQiu774m3fB22eFwhjHxmTLBVh30f/yqrs+5UFhFNfYq+kA8iQ7smmUnH6j352Q4 V4prw92D2NDgtBHs3Tr54guYwdJR9n+iK8+uIDTWHQnbOh17ggD7ONQEEuO3QkCGWZMI WTKw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=vAnhvL69; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id ws15si699121ejb.304.2021.05.12.11.46.38; Wed, 12 May 2021 11:47:01 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=vAnhvL69; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1358023AbhELSmZ (ORCPT + 99 others); Wed, 12 May 2021 14:42:25 -0400 Received: from mail.kernel.org ([198.145.29.99]:35800 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S243440AbhELQlM (ORCPT ); Wed, 12 May 2021 12:41:12 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 7F2F461E47; Wed, 12 May 2021 16:04:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1620835457; bh=Ynh9hEgu0wzB5jLik9Ouq9QmfFGQBHYSgJQoXQfbRCI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=vAnhvL69mvxbgDV3luCtL8oJDMVhIqg3X/CMryqxH8pyqqPyL21HqR7BcvGM+ucxO FT/iDjOUMXfs8C8BIBjfmfM0Na5+NL4x1P7fjbcWkcHQZCOrv0rio4q88qv7MmEtjk pUBfiYIS5p6g8P6WmAGQ5LIMd7KhSY1csCCWzdmI= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Tasos Sahanidis , Hans Verkuil , Mauro Carvalho Chehab , Sasha Levin Subject: [PATCH 5.12 353/677] media: saa7146: use sg_dma_len when building pgtable Date: Wed, 12 May 2021 16:46:39 +0200 Message-Id: <20210512144849.041746089@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210512144837.204217980@linuxfoundation.org> References: <20210512144837.204217980@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Tasos Sahanidis [ Upstream commit e56429b09d5e0802b86f84ec7c24025886c9f88b ] The new AMD IOMMU DMA implementation concatenates sglist entries under certain conditions, and because saa7146 accessed the length member directly, it did not support this scenario. This fixes IO_PAGE_FAULTs by using the sg_dma_len macro. Fixes: be62dbf554c5 ("iommu/amd: Convert AMD iommu driver to the dma-iommu api") Signed-off-by: Tasos Sahanidis Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Sasha Levin --- drivers/media/common/saa7146/saa7146_core.c | 2 +- drivers/media/common/saa7146/saa7146_video.c | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/media/common/saa7146/saa7146_core.c b/drivers/media/common/saa7146/saa7146_core.c index f2d13b71416c..e50fa0ff7c5d 100644 --- a/drivers/media/common/saa7146/saa7146_core.c +++ b/drivers/media/common/saa7146/saa7146_core.c @@ -253,7 +253,7 @@ int saa7146_pgtable_build_single(struct pci_dev *pci, struct saa7146_pgtable *pt i, sg_dma_address(list), sg_dma_len(list), list->offset); */ - for (p = 0; p * 4096 < list->length; p++, ptr++) { + for (p = 0; p * 4096 < sg_dma_len(list); p++, ptr++) { *ptr = cpu_to_le32(sg_dma_address(list) + p * 4096); nr_pages++; } diff --git a/drivers/media/common/saa7146/saa7146_video.c b/drivers/media/common/saa7146/saa7146_video.c index 7b8795eca589..66215d9106a4 100644 --- a/drivers/media/common/saa7146/saa7146_video.c +++ b/drivers/media/common/saa7146/saa7146_video.c @@ -247,9 +247,8 @@ static int saa7146_pgtable_build(struct saa7146_dev *dev, struct saa7146_buf *bu /* walk all pages, copy all page addresses to ptr1 */ for (i = 0; i < length; i++, list++) { - for (p = 0; p * 4096 < list->length; p++, ptr1++) { + for (p = 0; p * 4096 < sg_dma_len(list); p++, ptr1++) *ptr1 = cpu_to_le32(sg_dma_address(list) - list->offset); - } } /* ptr1 = pt1->cpu; -- 2.30.2