From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Vivek Kasireddy <vivek.kasireddy@intel.com>,
syzbot+10e27961f4da37c443b2@syzkaller.appspotmail.com,
Gerd Hoffmann <kraxel@redhat.com>,
Sasha Levin <sashal@kernel.org>,
sumit.semwal@linaro.org, christian.koenig@amd.com,
dri-devel@lists.freedesktop.org, linux-media@vger.kernel.org,
linaro-mm-sig@lists.linaro.org
Subject: [PATCH AUTOSEL 5.18 20/93] udmabuf: Set the DMA mask for the udmabuf device (v2)
Date: Thu, 11 Aug 2022 11:41:14 -0400 [thread overview]
Message-ID: <20220811154237.1531313-20-sashal@kernel.org> (raw)
In-Reply-To: <20220811154237.1531313-1-sashal@kernel.org>
From: Vivek Kasireddy <vivek.kasireddy@intel.com>
[ Upstream commit 9e9fa6a9198b767b00f48160800128e83a038f9f ]
If the DMA mask is not set explicitly, the following warning occurs
when the userspace tries to access the dma-buf via the CPU as
reported by syzbot here:
WARNING: CPU: 1 PID: 3595 at kernel/dma/mapping.c:188
__dma_map_sg_attrs+0x181/0x1f0 kernel/dma/mapping.c:188
Modules linked in:
CPU: 0 PID: 3595 Comm: syz-executor249 Not tainted
5.17.0-rc2-syzkaller-00316-g0457e5153e0e #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
RIP: 0010:__dma_map_sg_attrs+0x181/0x1f0 kernel/dma/mapping.c:188
Code: 00 00 00 00 00 fc ff df 48 c1 e8 03 80 3c 10 00 75 71 4c 8b 3d c0
83 b5 0d e9 db fe ff ff e8 b6 0f 13 00 0f 0b e8 af 0f 13 00 <0f> 0b 45
31 e4 e9 54 ff ff ff e8 a0 0f 13 00 49 8d 7f 50 48 b8 00
RSP: 0018:ffffc90002a07d68 EFLAGS: 00010293
RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
RDX: ffff88807e25e2c0 RSI: ffffffff81649e91 RDI: ffff88801b848408
RBP: ffff88801b848000 R08: 0000000000000002 R09: ffff88801d86c74f
R10: ffffffff81649d72 R11: 0000000000000001 R12: 0000000000000002
R13: ffff88801d86c680 R14: 0000000000000001 R15: 0000000000000000
FS: 0000555556e30300(0000) GS:ffff8880b9d00000(0000)
knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00000000200000cc CR3: 000000001d74a000 CR4: 00000000003506e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
<TASK>
dma_map_sgtable+0x70/0xf0 kernel/dma/mapping.c:264
get_sg_table.isra.0+0xe0/0x160 drivers/dma-buf/udmabuf.c:72
begin_cpu_udmabuf+0x130/0x1d0 drivers/dma-buf/udmabuf.c:126
dma_buf_begin_cpu_access+0xfd/0x1d0 drivers/dma-buf/dma-buf.c:1164
dma_buf_ioctl+0x259/0x2b0 drivers/dma-buf/dma-buf.c:363
vfs_ioctl fs/ioctl.c:51 [inline]
__do_sys_ioctl fs/ioctl.c:874 [inline]
__se_sys_ioctl fs/ioctl.c:860 [inline]
__x64_sys_ioctl+0x193/0x200 fs/ioctl.c:860
do_syscall_x64 arch/x86/entry/common.c:50 [inline]
do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
entry_SYSCALL_64_after_hwframe+0x44/0xae
RIP: 0033:0x7f62fcf530f9
Code: 28 c3 e8 2a 14 00 00 66 2e 0f 1f 84 00 00 00 00 00 48 89 f8 48 89
f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01
f0 ff ff 73 01 c3 48 c7 c1 c0 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007ffe3edab9b8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f62fcf530f9
RDX: 0000000020000200 RSI: 0000000040086200 RDI: 0000000000000006
RBP: 00007f62fcf170e0 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 00007f62fcf17170
R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
</TASK>
v2: Dont't forget to deregister if DMA mask setup fails.
Reported-by: syzbot+10e27961f4da37c443b2@syzkaller.appspotmail.com
Cc: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Vivek Kasireddy <vivek.kasireddy@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20220520205235.3687336-1-vivek.kasireddy@intel.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/dma-buf/udmabuf.c | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/drivers/dma-buf/udmabuf.c b/drivers/dma-buf/udmabuf.c
index 9631f2fd2faf..38e8767ec371 100644
--- a/drivers/dma-buf/udmabuf.c
+++ b/drivers/dma-buf/udmabuf.c
@@ -368,7 +368,23 @@ static struct miscdevice udmabuf_misc = {
static int __init udmabuf_dev_init(void)
{
- return misc_register(&udmabuf_misc);
+ int ret;
+
+ ret = misc_register(&udmabuf_misc);
+ if (ret < 0) {
+ pr_err("Could not initialize udmabuf device\n");
+ return ret;
+ }
+
+ ret = dma_coerce_mask_and_coherent(udmabuf_misc.this_device,
+ DMA_BIT_MASK(64));
+ if (ret < 0) {
+ pr_err("Could not setup DMA mask for udmabuf device\n");
+ misc_deregister(&udmabuf_misc);
+ return ret;
+ }
+
+ return 0;
}
static void __exit udmabuf_dev_exit(void)
--
2.35.1
next prev parent reply other threads:[~2022-08-11 15:54 UTC|newest]
Thread overview: 86+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-11 15:40 [PATCH AUTOSEL 5.18 01/93] fbdev: Restart conflicting fb removal loop when unregistering devices Sasha Levin
2022-08-11 15:40 ` [PATCH AUTOSEL 5.18 02/93] drm/r128: Fix undefined behavior due to shift overflowing the constant Sasha Levin
2022-08-11 15:40 ` [PATCH AUTOSEL 5.18 03/93] ath10k: htt_tx: do not interpret Eth frames as WiFi Sasha Levin
2022-08-11 15:40 ` [PATCH AUTOSEL 5.18 04/93] ath10k: fix misreported tx bandwidth for 160Mhz Sasha Levin
2022-08-11 15:40 ` [PATCH AUTOSEL 5.18 05/93] drm/nouveau: clear output poll workers before nouveau_fbcon_destroy() Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 06/93] drm/panfrost: Handle HW_ISSUE_TTRX_2968_TTRX_3162 Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 07/93] drm/panfrost: Don't set L2_MMU_CONFIG quirks Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 08/93] drm/panfrost: Add arm,mali-valhall-jm compatible Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 09/93] ath10k: fix regdomain info of iw reg set/get Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 10/93] bpf, sockmap: Fix sk->sk_forward_alloc warn_on in sk_stream_kill_queues Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 11/93] drm/amd/display: fix system hang when PSR exits Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 12/93] drm/amd/display: Detect dpcd_rev when hotplug mst monitor Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 13/93] drm/probe-helper: Default to 640x480 if no EDID on DP Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 14/93] libbpf: Fix an error in 64bit relocation value computation Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 15/93] iavf: Add waiting for response from PF in set mac Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 16/93] drm/amd/display: Fix dpp dto for disabled pipes Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 17/93] drm/amd/display: Reduce frame size in the bouding box for DCN20 Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 18/93] drm/radeon: integer overflow in radeon_mode_dumb_create() Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 19/93] drm/radeon: Initialize fences array entries in radeon_sa_bo_next_hole Sasha Levin
2022-08-11 15:41 ` Sasha Levin [this message]
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 21/93] crypto: octeontx2 - fix potential null pointer access Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 22/93] net/mlx5: Add HW definitions of vport debug counters Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 23/93] selftests/bpf: Avoid skipping certain subtests Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 24/93] drm/amd/display: Fix monitor flash issue Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 25/93] net: phy: marvell-88x2222: set proper phydev->port Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 26/93] selftests: mlxsw: resource_scale: Allow skipping a test Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 27/93] net: make xpcs_do_config to accept advertising for pcs-xpcs and sja1105 Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 28/93] net: stmmac: make mdio register skips PHY scanning for fixed-link Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 29/93] net: dsa: ar9331: fix potential dead lock on mdio access Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 30/93] media: davinci: vpif: add missing of_node_put() in vpif_probe() Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 31/93] media: mediatek: vcodec: prevent kernel crash when scp ipi timeout Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 32/93] media: airspy: respect the DMA coherency rules Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 33/93] media: pvrusb2: fix memory leak in pvr_probe Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 34/93] rcu: Apply noinstr to rcu_idle_enter() and rcu_idle_exit() Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 35/93] drm/bridge/tc358775: Fix DSI clock division for vsync delay calculation Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 36/93] uprobe: gate bpf call behind BPF_EVENTS Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 37/93] rcutorture: Fix memory leak in rcu_test_debug_objects() Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 38/93] rcuscale: Fix smp_processor_id()-in-preemptible warnings Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 39/93] refscale: Convert test_lock spinlock to raw_spinlock Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 40/93] mlxsw: cmd: Increase 'config_profile.flood_mode' length Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 41/93] amdgpu/pm: Fix possible array out-of-bounds if SCLK levels != 2 Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 42/93] media: mediatek: vcodec: return EINVAL if plane is too small Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 43/93] media: atmel: atmel-isc-base: allow wb ctrls to be changed when isc is not configured Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 44/93] media: mediatek: vcodec: Report supported bitrate modes Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 45/93] kselftests: Enable the echo command to print newlines in Makefile Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 46/93] ipv6/addrconf: fix timing bug in tempaddr regen Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 47/93] drm/amdgpu/display/dc: Fix null pointer exception Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 48/93] libbpf: fix up few libbpf.map problems Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 49/93] scripts: get_feat.pl: use /usr/bin/env to find perl Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 50/93] octeontx2-af: fix operand size in bitwise operation Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 51/93] drm/amdgpu: skip whole ras bad page framework on sriov Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 52/93] drm/amd/display: Guard against ddc_pin being NULL for AUX Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 53/93] drm/amd/display: Fix dmub soft hang for PSR 1 Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 54/93] drm/amd/display: disable otg toggle w/a on boot Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 55/93] iov_iter_get_pages{,_alloc}(): cap the maxsize with MAX_RW_COUNT Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 56/93] drm/msm/gem: Drop obj lock in msm_gem_free_object() Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 57/93] scripts: sphinx-pre-install: fix venv version check logic Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 58/93] crypto: vmx - Fix warning on p8_ghash_alg Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 59/93] octeontx2-af: Don't reset previous pfc config Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 60/93] libbpf: Disable SEC pragma macro on GCC Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 61/93] bpf: Make non-preallocated allocation low priority Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 62/93] drm/nouveau/nvkm: use list_add_tail() when building object tree Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 63/93] drm/amdgpu: fix file permissions on some files Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 64/93] crypto: ccree - Add missing clk_disable_unprepare() in cc_pm_resume() Sasha Levin
2022-08-11 15:41 ` [PATCH AUTOSEL 5.18 65/93] bpf: Fix check against plain integer v 'NULL' Sasha Levin
2022-08-11 15:42 ` [PATCH AUTOSEL 5.18 66/93] media: rkisp1: Disable runtime PM in probe error path Sasha Levin
2022-08-11 15:42 ` [PATCH AUTOSEL 5.18 67/93] drm/amdgpu: Call trace info was found in dmesg when loading amdgpu Sasha Levin
2022-08-11 15:42 ` [PATCH AUTOSEL 5.18 68/93] net: devlink: avoid false DEADLOCK warning reported by lockdep Sasha Levin
2022-08-11 15:42 ` [PATCH AUTOSEL 5.18 69/93] bpf: Don't redirect packets with invalid pkt_len Sasha Levin
2022-08-11 15:42 ` [PATCH AUTOSEL 5.18 70/93] rcu: Avoid tracing a few functions executed in stop machine Sasha Levin
2022-08-11 15:42 ` [PATCH AUTOSEL 5.18 71/93] can: sja1000: Add Quirk for RZ/N1 SJA1000 CAN controller Sasha Levin
2022-08-11 15:42 ` [PATCH AUTOSEL 5.18 72/93] net/cdc_ncm: Increase NTB max RX/TX values to 64kb Sasha Levin
2022-08-11 15:42 ` [PATCH AUTOSEL 5.18 73/93] Bluetooth: hci_bcm: Add BCM4349B1 variant Sasha Levin
2022-08-11 15:42 ` [PATCH AUTOSEL 5.18 74/93] Bluetooth: use memset avoid memory leaks Sasha Levin
2022-08-11 15:42 ` [PATCH AUTOSEL 5.18 75/93] Bluetooth: Collect kcov coverage from hci_rx_work Sasha Levin
2022-08-11 15:42 ` [PATCH AUTOSEL 5.18 76/93] Bluetooth: btusb: Set HCI_QUIRK_BROKEN_ENHANCED_SETUP_SYNC_CONN for MTK Sasha Levin
2022-08-11 15:42 ` [PATCH AUTOSEL 5.18 77/93] Bluetooth: hci_sync: Check LMP feature bit instead of quirk Sasha Levin
2022-08-11 15:42 ` [PATCH AUTOSEL 5.18 78/93] Bluetooth: btusb: Remove HCI_QUIRK_BROKEN_ERR_DATA_REPORTING for QCA Sasha Levin
2022-08-11 15:42 ` [PATCH AUTOSEL 5.18 79/93] Bluetooth: btusb: Remove HCI_QUIRK_BROKEN_ERR_DATA_REPORTING for fake CSR Sasha Levin
2022-08-11 15:42 ` [PATCH AUTOSEL 5.18 80/93] Bluetooth: mgmt: Fix using hci_conn_abort Sasha Levin
2022-08-11 15:42 ` [PATCH AUTOSEL 5.18 81/93] bpf/selftests: Fix couldn't retrieve pinned program in xdp veth test Sasha Levin
2022-08-11 15:42 ` [PATCH AUTOSEL 5.18 82/93] drm/amdkfd: Correct mmu_notifier_get failure handling Sasha Levin
2022-08-11 15:42 ` [PATCH AUTOSEL 5.18 83/93] drm/amdkfd: Process notifier release callback don't take mutex Sasha Levin
2022-08-11 15:42 ` [PATCH AUTOSEL 5.18 84/93] btrfs: output mirror number for bad metadata Sasha Levin
2022-08-11 15:42 ` [PATCH AUTOSEL 5.18 85/93] net: ethernet: stmicro: stmmac: first disable all queues and disconnect in release Sasha Levin
2022-08-11 15:42 ` [PATCH AUTOSEL 5.18 86/93] wifi: rtl8xxxu: Fix the error handling of the probe function Sasha Levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220811154237.1531313-20-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=christian.koenig@amd.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=kraxel@redhat.com \
--cc=linaro-mm-sig@lists.linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=stable@vger.kernel.org \
--cc=sumit.semwal@linaro.org \
--cc=syzbot+10e27961f4da37c443b2@syzkaller.appspotmail.com \
--cc=vivek.kasireddy@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox