Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp4672770pxj; Wed, 12 May 2021 10:33:39 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzrCMSXnbUFYdaC6pmyfp0ocRyZXuFDF3tT6/pD++iczpCvBtsTZ/8zEeiO9f3kMRcTtPV+ X-Received: by 2002:a05:6512:2386:: with SMTP id c6mr26870790lfv.65.1620840819547; Wed, 12 May 2021 10:33:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620840819; cv=none; d=google.com; s=arc-20160816; b=HX8UucJOOIujipCCL4ZDOU+J2kglU6aPQJsb7QVeiq6juHTZhqR/Y4AMNSWSQXgY7F AORueHuufXGQtPK71Z1jwgGjkCz6mxrFnrSlrO/NXz7BT6BAAJ068bjYpnYslqLUyLYR nSE70LWH6qv9F2412kQd044GzGrXkBQN+rJIHT807Zax6nYhrNqMJjQdskk6bEtytZS0 UmKkZhpQ8Wqsbvedv9jxh+kQdwbkKSqxiXPkHceolBGgO4JqDQFSAtmCFd344ZBkF1L/ RV5uNw1/LrnHECy6slunDjyDhfYtyw95gMqMB/pATIUM5H+O9gm7Khznvpkmn099jjj8 DV+w== 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=eozUX7UZP/mDExYnCopULYUxUopT7uErxLw1mUpHXn+FAj4yCZWDbw59RRTh1sH1sJ V0gWlyuq6TgHQH40mxX8KAKpzsN8qb5XSvoIBFhRYzQkjqJg/VZiBBoEEfCApaRtxndw EBZj9/JBUI8/pZ02ow40ElwVlq9Ir8ewN7DPLEZ2yc1lKG4uFr9AZFw8IQYkwnJWbs8H 0OJhQ4HTGPgXq6g2a5Okaui4JoIZezdI084DV9y8BpKjxoOsSEn/tJJZvAAyB50CNMz/ 8iDGWTL4fVZtdgZToMdIkJtSQnQUGdLQWzm+vxAKBlVWdjg8LNiAMOjIBvfDR5epHfwk e2uQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=JWDg6SZk; 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 9si436604lfy.485.2021.05.12.10.33.09; Wed, 12 May 2021 10:33:39 -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=JWDg6SZk; 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 S1347554AbhELR2t (ORCPT + 99 others); Wed, 12 May 2021 13:28:49 -0400 Received: from mail.kernel.org ([198.145.29.99]:36282 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239387AbhELQH6 (ORCPT ); Wed, 12 May 2021 12:07:58 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id E018E61C57; Wed, 12 May 2021 15:37:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1620833863; bh=Ynh9hEgu0wzB5jLik9Ouq9QmfFGQBHYSgJQoXQfbRCI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JWDg6SZkj3+3BOw1cpTvyDNYrlJ27PtanRcHp6MGMp+g3bnuW+RhWk4wUbdrPGhnl Yw8TMdFtw7Y+mX2MzabQwiVIQ3meBTxUTNa+B3dwF4Grx1uh/qdvx6fn8J+xH8DG47 GKxJR+p4MzaGjjjs/DiYwcgEVO2RfX0EkGQf4QHg= 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.11 318/601] media: saa7146: use sg_dma_len when building pgtable Date: Wed, 12 May 2021 16:46:35 +0200 Message-Id: <20210512144838.287529086@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210512144827.811958675@linuxfoundation.org> References: <20210512144827.811958675@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