linux/drivers
Daniel Vetter f49a51bfdc drm/shme-helpers: Fix dma_buf_mmap forwarding bug
When we forward an mmap to the dma_buf exporter, they get to own
everything. Unfortunately drm_gem_mmap_obj() overwrote
vma->vm_private_data after the driver callback, wreaking the
exporter complete. This was noticed because vb2_common_vm_close blew
up on mali gpu with panfrost after commit 26d3ac3cb0
("drm/shmem-helpers: Redirect mmap for imported dma-buf").

Unfortunately drm_gem_mmap_obj also acquires a surplus reference that
we need to drop in shmem helpers, which is a bit of a mislayer
situation. Maybe the entire dma_buf_mmap forwarding should be pulled
into core gem code.

Note that the only two other drivers which forward mmap in their own
code (etnaviv and exynos) get this somewhat right by overwriting the
gem mmap code. But they seem to still have the leak. This might be a
good excuse to move these drivers over to shmem helpers completely.

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Acked-by: Christian König <christian.koenig@amd.com>
Cc: Christian König <christian.koenig@amd.com>
Cc: Sumit Semwal <sumit.semwal@linaro.org>
Cc: Lucas Stach <l.stach@pengutronix.de>
Cc: Russell King <linux+etnaviv@armlinux.org.uk>
Cc: Christian Gmeiner <christian.gmeiner@gmail.com>
Cc: Inki Dae <inki.dae@samsung.com>
Cc: Joonyoung Shim <jy0922.shim@samsung.com>
Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Fixes: 26d3ac3cb0 ("drm/shmem-helpers: Redirect mmap for imported dma-buf")
Cc: Boris Brezillon <boris.brezillon@collabora.com>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Rob Herring <robh@kernel.org>
Cc: dri-devel@lists.freedesktop.org
Cc: linux-media@vger.kernel.org
Cc: linaro-mm-sig@lists.linaro.org
Cc: <stable@vger.kernel.org> # v5.9+
Reported-and-tested-by: piotr.oniszczuk@gmail.com
Cc: piotr.oniszczuk@gmail.com
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20201027214922.3566743-1-daniel.vetter@ffwll.ch
History 2020-10-28 12:27:41 +01:00
..
accessibility Linux 5.9-rc3 2020-08-31 07:19:25 +02:00
acpi More ACPI updates for 5.10-rc1 2020-10-23 16:38:36 -07:00
amba ARM: tegra: Replace zero-length array with flexible-array 2020-06-15 23:08:28 -05:00
android task_work: cleanup notification modes 2020-10-17 15:05:30 -06:00
ata Merge branch 'parisc-5.10-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux 2020-10-25 10:59:34 -07:00
atm atm: atmtcp: Constify atmtcp_v_dev_ops 2020-09-28 16:03:30 -07:00
auxdisplay A trivial patch for auxdisplay: 2020-09-05 14:22:46 -07:00
base More power management updates for 5.10-rc1 2020-10-23 16:27:03 -07:00
bcma bcma: use semicolons rather than commas to separate statements 2020-10-01 16:23:50 +03:00
block xen: branch for v5.10-rc1c 2020-10-25 10:55:35 -07:00
bluetooth networking changes for the 5.10 merge window 2020-10-15 18:42:13 -07:00
bus ARM: SoC-related driver updates 2020-10-24 10:39:22 -07:00
cdrom gdrom: use bdev_check_media_change 2020-09-10 09:32:31 -06:00
char random32: make prandom_u32() output unpredictable 2020-10-24 20:21:57 +02:00
clk treewide: Convert macro and uses of __section(foo) to __section("foo") 2020-10-25 14:51:49 -07:00
clocksource treewide: Convert macro and uses of __section(foo) to __section("foo") 2020-10-25 14:51:49 -07:00
connector connector: simplify the return expression of cn_add_callback() 2020-09-21 13:48:29 -07:00
counter counter: use semicolons rather than commas to separate statements 2020-09-29 17:27:08 +01:00
cpufreq ARM: SoC-related driver updates 2020-10-24 10:39:22 -07:00
cpuidle powerpc updates for 5.10 2020-10-16 12:21:15 -07:00
crypto s390 updates for the 5.10 merge window 2020-10-16 12:36:38 -07:00
dax fuse update for 5.10 2020-10-19 14:28:30 -07:00
dca dca: Use PTR_ERR_OR_ZERO() to simplify code 2020-05-15 16:25:20 +02:00
devfreq PM / devfreq: tegra30: Improve initial hardware resetting 2020-09-29 17:50:10 +09:00
dio maccess: rename probe_kernel_{read,write} to copy_{from,to}_kernel_nofault 2020-06-17 10:57:41 -07:00
dma ARM: SoC-related driver updates 2020-10-24 10:39:22 -07:00
dma-buf dma-mapping updates for 5.10 2020-10-15 14:43:29 -07:00
edac EFI changes for v5.10: 2020-10-12 13:26:49 -07:00
eisa treewide: replace '---help---' in Kconfig files with 'help' 2020-06-14 01:57:21 +09:00
extcon extcon: axp288: Use module_platform_driver to simplify the code 2020-09-30 00:40:06 +09:00
firewire firewire-ohci: use dma_alloc_pages 2020-09-25 06:20:48 +02:00
firmware ARM: SoC-related driver updates 2020-10-24 10:39:22 -07:00
fpga fpga: dfl: create a dfl bus type to support DFL devices 2020-09-09 20:28:16 -07:00
fsi fsi: aspeed: Support CFAM reset GPIO 2020-09-10 12:26:43 +09:30
gnss treewide: replace '---help---' in Kconfig files with 'help' 2020-06-14 01:57:21 +09:00
gpio - New Drivers 2020-10-14 15:56:58 -07:00
gpu drm/shme-helpers: Fix dma_buf_mmap forwarding bug 2020-10-28 12:27:41 +01:00
greybus drivers/greybus: Use kobj_to_dev() 2020-09-04 18:06:01 +02:00
hid Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2020-10-23 16:16:31 -07:00
hsi treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
hv Merge branch 'akpm' (patches from Andrew) 2020-10-16 11:31:55 -07:00
hwmon ARM: SoC platform updates 2020-10-24 10:33:08 -07:00
hwspinlock hwspinlock: qcom: Allow mmio usage in addition to syscon 2020-07-13 22:29:28 -07:00
hwtracing intel_th: pci: Add Alder Lake CPU support 2020-10-05 12:43:54 +02:00
i2c i2c: core: Restore acpi_walk_dep_device_list() getting called after registering the ACPI i2c devs 2020-10-25 13:33:54 +01:00
i3c * Fix DAA for the pre-reserved address case 2020-10-17 11:01:01 -07:00
ide block-5.10-2020-10-12 2020-10-13 12:12:44 -07:00
idle intel_idle: Ignore _CST if control cannot be taken from the platform 2020-10-16 17:28:32 +02:00
iio chrome platform changes for 5.10 2020-10-23 10:54:13 -07:00
infiniband RDMA 5.10 pull request 2020-10-17 11:18:18 -07:00
input Merge branch 'parisc-5.10-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux 2020-10-25 10:59:34 -07:00
interconnect interconnect: imx: simplify the return expression of imx_icc_unregister 2020-09-21 11:15:02 +03:00
iommu IOMMU Fix for Linux v5.10: 2020-10-20 09:35:06 -07:00
ipack treewide: replace '---help---' in Kconfig files with 'help' 2020-06-14 01:57:21 +09:00
irqchip treewide: Convert macro and uses of __section(foo) to __section("foo") 2020-10-25 14:51:49 -07:00
isdn treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
leds leds: pwm: Remove platform_data support 2020-10-07 12:02:58 +02:00
lightnvm lightnvm: fix out-of-bounds write to array devices->info[] 2020-10-16 09:28:45 -06:00
macintosh powerpc updates for 5.10 2020-10-16 12:21:15 -07:00
mailbox ARM: SoC-related driver updates 2020-10-24 10:39:22 -07:00
mcb drivers: mcb: use symbol namespaces 2019-11-03 19:54:53 +01:00
md - Improve DM core's bio splitting to use blk_max_size_offset(). Also 2020-10-14 15:05:38 -07:00
media dma-mapping updates for 5.10 2020-10-15 14:43:29 -07:00
memory ARM: SoC-related driver updates 2020-10-24 10:39:22 -07:00
memstick Merge branch 'fixes' into next 2020-09-28 12:17:36 +02:00
message SCSI misc on 20201013 2020-10-14 15:15:35 -07:00
mfd - New Drivers 2020-10-14 15:56:58 -07:00
misc pci-v5.10-changes 2020-10-22 12:41:00 -07:00
mmc ARM: SoC platform updates 2020-10-24 10:33:08 -07:00
most drivers: most: add character device interface driver 2020-09-07 15:16:26 +02:00
mtd This pull request contains fixes for UBI and UBIFS 2020-10-18 09:56:50 -07:00
mux treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
net Fixes for 5.10-rc1 from the networking tree: 2020-10-23 12:05:49 -07:00
nfc nfc: remove unneeded break 2020-10-20 10:36:41 -07:00
ntb Bug fixes for v5.10 2020-10-25 11:12:31 -07:00
nubus nubus: Remove cast to void pointer 2019-10-21 09:08:15 +02:00
nvdimm mm/memremap_pages: support multiple ranges per invocation 2020-10-13 18:38:28 -07:00
nvme nvme-fc: shorten reconnect delay if possible for FC 2020-10-23 12:54:45 +02:00
nvmem nvmem: core: fix possibly memleak when use nvmem_cell_info_to_nvmem_cell() 2020-09-27 14:25:48 +02:00
of treewide: Convert macro and uses of __section(foo) to __section("foo") 2020-10-25 14:51:49 -07:00
opp Merge branch 'cpufreq/arm/linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm 2020-10-06 12:26:45 +02:00
oprofile module: Fix up module_notifier return values 2020-09-01 09:58:03 +02:00
parisc dma-mapping: split <linux/dma-mapping.h> 2020-10-06 07:07:03 +02:00
parport treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
pci VFIO updates for v5.10-rc1 2020-10-22 13:00:44 -07:00
pcmcia dma-mapping: remove DMA_MASK_NONE 2020-09-25 06:12:15 +02:00
perf perf: arm-cmn: Fix conversion specifiers for node type 2020-10-01 22:30:07 +01:00
phy pci-v5.10-changes 2020-10-22 12:41:00 -07:00
pinctrl Pin control bulk changes for the v5.10 kernel cycle 2020-10-14 15:25:04 -07:00
platform Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2020-10-23 16:16:31 -07:00
pnp PNP: remove the now unused pnp_find_card() function 2020-10-08 18:00:08 +02:00
power ARM: SoC platform updates 2020-10-24 10:33:08 -07:00
powercap powercap: Fix typo in Kconfig "Plance" -> "Plane" 2020-10-19 17:40:53 +02:00
pps treewide: replace '---help---' in Kconfig files with 'help' 2020-06-14 01:57:21 +09:00
ps3 treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
ptp ptp_qoriq: support FIPER3 2020-09-18 17:49:20 -07:00
pwm ARM: SoC platform updates 2020-10-24 10:33:08 -07:00
rapidio rapidio: fix the missed put_device() for rio_mport_add_riodev 2020-10-16 11:11:22 -07:00
ras RAS/CEC: Convert to DEFINE_SHOW_ATTRIBUTE() 2020-09-25 19:05:31 +02:00
regulator Merge remote-tracking branch 'regulator/for-5.10' into regulator-next 2020-10-05 16:54:56 +01:00
remoteproc remoteproc updates for v5.10 2020-10-22 12:56:33 -07:00
reset ARM: SoC-related driver updates 2020-10-24 10:39:22 -07:00
rpmsg rpmsg updates for 5.10 2020-10-22 12:58:21 -07:00
rtc RTC for 5.10 2020-10-21 11:22:08 -07:00
s390 s390 updates for the 5.10 merge window 2020-10-16 12:36:38 -07:00
sbus treewide: replace '---help---' in Kconfig files with 'help' 2020-06-14 01:57:21 +09:00
scsi block-5.10-2020-10-24 2020-10-24 12:46:42 -07:00
sfi treewide: replace '---help---' in Kconfig files with 'help' 2020-06-14 01:57:21 +09:00
sh iomap: constify ioreadX() iomem argument (as in generic implementation) 2020-08-14 19:56:57 -07:00
siox siox: Use the correct style for SPDX License Identifier 2020-01-14 21:46:53 +01:00
slimbus slimbus: qcom-ngd-ctrl: disable ngd in qmi server down callback 2020-09-25 14:41:51 +02:00
soc ARM: Devicetree updates 2020-10-24 10:44:18 -07:00
soundwire soundwire updates for 5.10-rc1 2020-10-01 22:59:55 +02:00
spi ARM: SoC platform updates 2020-10-24 10:33:08 -07:00
spmi spmi: pmic-arb: Set lockdep class for hierarchical irq domains 2020-02-10 13:16:04 +01:00
ssb ssb: Remove meaningless jump label to simplify the code 2020-09-21 16:01:35 +03:00
staging mm: remove kzfree() compatibility definition 2020-10-25 11:39:02 -07:00
target SCSI misc on 20201023 2020-10-23 16:19:02 -07:00
tc The main MIPS changes for 5.6: 2020-01-31 11:28:31 -08:00
tee Simplify tee_device_register() and friends 2020-09-26 12:39:08 -07:00
thermal treewide: Convert macro and uses of __section(foo) to __section("foo") 2020-10-25 14:51:49 -07:00
thunderbolt thunderbolt: Changes for v5.10 merge window 2020-09-30 09:42:36 +02:00
tty ARM: SoC platform updates 2020-10-24 10:33:08 -07:00
uio uio: free uio id after uio file node is freed 2020-09-17 18:52:03 +02:00
usb ARM: SoC platform updates 2020-10-24 10:33:08 -07:00
vdpa vhost,vdpa,virtio: cleanups, fixes 2020-10-23 11:00:57 -07:00
vfio VFIO updates for v5.10-rc1 2020-10-22 13:00:44 -07:00
vhost vhost_vdpa: remove unnecessary spin_lock in vhost_vring_call 2020-10-21 10:48:10 -04:00
video ARM: SoC platform updates 2020-10-24 10:33:08 -07:00
virt virt: vbox: simplify the return expression of vbg_input_open() 2020-10-02 11:36:13 +02:00
virtio vhost,vdpa,virtio: cleanups, fixes 2020-10-23 11:00:57 -07:00
visorbus treewide: replace '---help---' in Kconfig files with 'help' 2020-06-14 01:57:21 +09:00
vlynq treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 102 2019-05-24 17:39:00 +02:00
vme treewide: replace '---help---' in Kconfig files with 'help' 2020-06-14 01:57:21 +09:00
w1 w1: w1_therm: make w1_poll_completion static 2020-10-05 14:49:24 +02:00
watchdog ARM: SoC platform updates 2020-10-24 10:33:08 -07:00
xen xen: branch for v5.10-rc1c 2020-10-25 10:55:35 -07:00
zorro zorro: Fix address space collision message with RAM expansion boards 2020-08-26 13:26:52 +02:00
Kconfig virtio: fixes, vdpa 2020-04-08 10:51:53 -07:00
Makefile virtio: fixes, vdpa 2020-04-08 10:51:53 -07:00