From patchwork Mon May 29 22:39:30 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Osipenko X-Patchwork-Id: 100446 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp1806274vqr; Mon, 29 May 2023 15:49:02 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4NhGOAFoEdUxx78dMEK8xU6tb8yTbnRStqaSmWHQegKic0SpkURLbqV3LmhwhO3Iqcz25F X-Received: by 2002:a17:902:aa09:b0:1ad:edbd:8541 with SMTP id be9-20020a170902aa0900b001adedbd8541mr522436plb.13.1685400542334; Mon, 29 May 2023 15:49:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1685400542; cv=none; d=google.com; s=arc-20160816; b=mw5kZ1lJ+FodWljFV/j0h+PRgjRQqh5VrNGLjChs0FsjpaJKlC+aff8kRMEvKB0u1i KR/kTkNMdwlSKBv8WoPAK/2Cy1a051/q+KFagv6lnEhH3NxGJQXYNbtnmXXhumz2SNlX N586vKA/sc9O2J9bwnIFlKm3smRtTvXkm1QJ5nqIQq1ioObk7KdzbqoLCuShmjqsdTBo AIhPEoIZkhqWzFhkf4yT5DCBdFvcxpQNS4wGnH1Yj+A/X7dxiWEpv2MBygptqaw5MlVf nihW2+lduukBajSt2uWsK4AtahTWS1RXThfn2vxVF4Jn02zPIysHCqBxtIBZhOiNH0yw AMfw== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=OcOt5zRSmwcvkfX9LRYiuYZvhyNVA1hfqxtLxGTQhXw=; b=ndRxKeoh2b3QWGqTUh4ePuG6Uq+YyOGVesIfPFk+LtBvJgBfPn+G8cLHDqvMaAl88Z aK3nnRrgPMrXPgm5OqWE9swR9UGZBuEc/ghvT/hFHR2RBD4GcsT1vQm3wehNP1r15OGT j+MLIx0Eg0OOVjYWmQHAAET6xucPbIep5vIC6Z8YkqDXAAdQSmxbw8kC8pWoaBwVIVLD yP9Y2+JPxG/DqvB7WS06Yico7dMlB4+sNmrlMhvlU8et2bXeUcqZm9Bx4P81x4inrG2J gKHB4CHIb9R18IvQfGm/QZdvXmR+Lcuhf3lA0rVH61zkJA5YopWmyp7CHfWjz71Q0tC5 B41w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b=fREDhA5L; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=collabora.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f9-20020a170902ab8900b001ab1279d418si9517735plr.474.2023.05.29.15.48.49; Mon, 29 May 2023 15:49:02 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b=fREDhA5L; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=collabora.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230030AbjE2WqW (ORCPT + 99 others); Mon, 29 May 2023 18:46:22 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56878 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229830AbjE2WqS (ORCPT ); Mon, 29 May 2023 18:46:18 -0400 Received: from madras.collabora.co.uk (madras.collabora.co.uk [IPv6:2a00:1098:0:82:1000:25:2eeb:e5ab]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 48186D2; Mon, 29 May 2023 15:46:11 -0700 (PDT) Received: from workpc.. (109-252-150-34.dynamic.spd-mgts.ru [109.252.150.34]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: dmitry.osipenko) by madras.collabora.co.uk (Postfix) with ESMTPSA id 414816605992; Mon, 29 May 2023 23:46:08 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1685400369; bh=ZiNxP0qBEhRDYC26fKFev4bnhE2oiLkLtrQkBgUqZF8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fREDhA5LXqvtyL8w/hGgPvDdUlc+p/OAOYzNUvnBLtjyQukFROvCGPCjwxt2jHOM/ mhMqg/QmeSruSQy2p0SsRIMxofG27rQMR+hf7/cuXnuhKtghaHqUroMC7a5LKp2v5O KjEN/jCNChB9iAYB8/qpjeyq6T3Tsmrv9Cj+EWb0AqViXPymh16TV+mYFW0zIWFift 4JgJXNy7fe0gebBUqpcl+NkoroUsvC7Iv1IMOM3COb9VcFMlScnVIn4nFrNkZ7l12M gb4zv1ATRxitIeN1UVZAIQy2retzcnpQ5Js8Su6UlQD3CaBzbDbWt6Nw7QP48AMpua 6RYbeGg+ELQkg== From: Dmitry Osipenko To: Sumit Semwal , =?utf-8?q?Christian_K=C3=B6nig?= , Benjamin Gaignard , Brian Starkey , John Stultz , Gerd Hoffmann , Daniel Vetter , Jani Nikula , Arnd Bergmann , Thomas Zimmermann , Tomi Valkeinen , Thierry Reding , Tomasz Figa , Marek Szyprowski , Mauro Carvalho Chehab , Emil Velikov Cc: linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, intel-gfx@lists.freedesktop.org, linux-tegra@vger.kernel.org, kernel@collabora.com Subject: [PATCH v4 1/6] media: videobuf2: Don't assert held reservation lock for dma-buf mmapping Date: Tue, 30 May 2023 01:39:30 +0300 Message-Id: <20230529223935.2672495-2-dmitry.osipenko@collabora.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230529223935.2672495-1-dmitry.osipenko@collabora.com> References: <20230529223935.2672495-1-dmitry.osipenko@collabora.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1767270559300124546?= X-GMAIL-MSGID: =?utf-8?q?1767270559300124546?= Don't assert held dma-buf reservation lock on memory mapping of exported buffer. We're going to change dma-buf mmap() locking policy such that exporters will have to handle the lock. The previous locking policy caused deadlock problem for DRM drivers in a case of self-imported dma-bufs once these drivers are moved to use reservation lock universally. The problem is solved by moving the lock down to exporters. This patch prepares videobuf2 for the locking policy update. Reviewed-by: Emil Velikov Reviewed-by: Hans Verkuil Signed-off-by: Dmitry Osipenko --- drivers/media/common/videobuf2/videobuf2-dma-contig.c | 3 --- drivers/media/common/videobuf2/videobuf2-dma-sg.c | 3 --- drivers/media/common/videobuf2/videobuf2-vmalloc.c | 3 --- 3 files changed, 9 deletions(-) diff --git a/drivers/media/common/videobuf2/videobuf2-dma-contig.c b/drivers/media/common/videobuf2/videobuf2-dma-contig.c index 205d3cac425c..2fa455d4a048 100644 --- a/drivers/media/common/videobuf2/videobuf2-dma-contig.c +++ b/drivers/media/common/videobuf2/videobuf2-dma-contig.c @@ -11,7 +11,6 @@ */ #include -#include #include #include #include @@ -456,8 +455,6 @@ static int vb2_dc_dmabuf_ops_vmap(struct dma_buf *dbuf, struct iosys_map *map) static int vb2_dc_dmabuf_ops_mmap(struct dma_buf *dbuf, struct vm_area_struct *vma) { - dma_resv_assert_held(dbuf->resv); - return vb2_dc_mmap(dbuf->priv, vma); } diff --git a/drivers/media/common/videobuf2/videobuf2-dma-sg.c b/drivers/media/common/videobuf2/videobuf2-dma-sg.c index 183037fb1273..28f3fdfe23a2 100644 --- a/drivers/media/common/videobuf2/videobuf2-dma-sg.c +++ b/drivers/media/common/videobuf2/videobuf2-dma-sg.c @@ -10,7 +10,6 @@ * the Free Software Foundation. */ -#include #include #include #include @@ -498,8 +497,6 @@ static int vb2_dma_sg_dmabuf_ops_vmap(struct dma_buf *dbuf, static int vb2_dma_sg_dmabuf_ops_mmap(struct dma_buf *dbuf, struct vm_area_struct *vma) { - dma_resv_assert_held(dbuf->resv); - return vb2_dma_sg_mmap(dbuf->priv, vma); } diff --git a/drivers/media/common/videobuf2/videobuf2-vmalloc.c b/drivers/media/common/videobuf2/videobuf2-vmalloc.c index a6c6d2fcaaa4..7c635e292106 100644 --- a/drivers/media/common/videobuf2/videobuf2-vmalloc.c +++ b/drivers/media/common/videobuf2/videobuf2-vmalloc.c @@ -10,7 +10,6 @@ * the Free Software Foundation. */ -#include #include #include #include @@ -319,8 +318,6 @@ static int vb2_vmalloc_dmabuf_ops_vmap(struct dma_buf *dbuf, static int vb2_vmalloc_dmabuf_ops_mmap(struct dma_buf *dbuf, struct vm_area_struct *vma) { - dma_resv_assert_held(dbuf->resv); - return vb2_vmalloc_mmap(dbuf->priv, vma); }