linux/drivers/gpu/drm
Chris Wilson 01d3434a56 drm: Don't overwrite user ioctl arg unless requested
Currently, we completely ignore the user when it comes to the in/out
direction of the ioctl argument, as we simply cannot trust userspace.
(For example, they might request a copy of the modified ioctl argument
when the driver is not expecting such and so leak kernel stack.)
However, blindly copying over the target address may also lead to a
spurious EFAULT, and a failure after the ioctl was completed
successfully. This is important in order to avoid an ABI break when
extending an ioctl from IOR to IORW. Similar to how we only copy the
intersection of the kernel arg size and the user arg size, we only want
to copy back the kernel arg data iff both the kernel and userspace
request the copy.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/1468335590-21023-1-git-send-email-chris@chris-wilson.co.uk
2016-07-14 10:12:50 +02:00
..
amd drm/amdgpu: Turn off CRTCs on driver unload 2016-06-24 08:49:35 +02:00
arc drm/arc: Remove redundant calls to drm_connector_register_all() 2016-06-21 10:53:12 +02:00
arm drm/arm: Add support for Mali Display Processors 2016-06-15 17:29:22 +01:00
armada drm/armada: use drm_crtc_handle_vblank() 2016-07-12 15:41:14 +02:00
ast Merge tag 'topic/drm-misc-2016-06-07' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-06-09 11:19:28 +10:00
atmel-hlcdc drm/atmel: use drm_crtc_handle_vblank() 2016-07-12 15:41:32 +02:00
bochs drm/bochs: Use lockless gem BO free callback 2016-06-01 09:40:16 +02:00
bridge drm/bridge: Add sii902x driver 2016-06-20 15:55:49 +02:00
cirrus Merge tag 'topic/drm-misc-2016-06-07' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-06-09 11:19:28 +10:00
etnaviv drm: Lobotomize set_busid nonsense for !pci drivers 2016-06-21 21:56:23 +02:00
exynos drm/exynos: make fbdev support really optional 2016-07-12 12:56:35 +02:00
fsl-dcu drm/fsl-dcu: use drm_mode_config_cleanup on initialization errors 2016-06-21 15:37:26 +02:00
gma500 drm/gma500: use drm_crtc_vblank_{on,off}() 2016-06-13 18:38:19 +02:00
hisilicon drm/hisilicon: Fix ADE vblank on/off handling 2016-07-12 14:17:03 +02:00
i2c drm/i2c/ch7006: Use helper to turn off CRTC 2016-06-24 08:49:37 +02:00
i810
i915 Merge tag 'drm-intel-next-2016-06-20' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-06-24 13:13:41 +10:00
imx drm: Lobotomize set_busid nonsense for !pci drivers 2016-06-21 21:56:23 +02:00
mediatek drm/mediatek/mtk_mipi_tx: checking the wrong variable 2016-07-12 14:47:04 +02:00
mga
mgag200 Merge tag 'topic/drm-misc-2016-06-07' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-06-09 11:19:28 +10:00
msm drm: Lobotomize set_busid nonsense for !pci drivers 2016-06-21 21:56:23 +02:00
nouveau drm/nouveau: use drm_crtc_handle_vblank() 2016-07-12 15:41:42 +02:00
omapdrm drm: Lobotomize set_busid nonsense for !pci drivers 2016-06-21 21:56:23 +02:00
panel drm/panel: simple: Add support for TPK U.S.A. LLC Fusion 7" and 10.1" panels 2016-05-12 11:32:14 +02:00
qxl qxl: silence uninitialized variable warning 2016-07-12 16:20:22 +02:00
r128
radeon drm/radeon: Turn off CRTCs on driver unload 2016-06-24 08:49:34 +02:00
rcar-du drm/rcar-du: use drm_crtc_handle_vblank() 2016-07-12 15:41:48 +02:00
rockchip gpu: drm: rockchip_drm_drv: add missing of_node_put after calling of_parse_phandle 2016-07-12 15:45:49 +02:00
savage
shmobile drm: Lobotomize set_busid nonsense for !pci drivers 2016-06-21 21:56:23 +02:00
sis drm: Move master pointer from drm_minor to drm_device 2016-06-21 21:43:24 +02:00
sti gpu: drm: sti_vtg: add missing of_node_put after calling of_parse_phandle 2016-07-12 15:44:24 +02:00
sun4i drm/sun4i: Remove open-coded drm_connector_register_all() 2016-06-22 09:57:45 +02:00
tdfx
tegra drm: tegra: Rely on the default ->best_encoder() behavior 2016-06-10 17:24:48 +02:00
tilcdc drm/tilcdc: use drm_crtc_handle_vblank() 2016-07-12 15:41:53 +02:00
ttm Linux 4.6-rc7 2016-05-09 13:49:56 +10:00
udl drm/udl: Unplugging a device now unregisters it 2016-07-12 13:01:55 +02:00
vc4 drm/vc4: Remove unused connector 2016-06-22 12:41:47 +02:00
vgem drm/vgem: Use PAGE_KERNEL in place of x86-specific PAGE_KERNEL_IO 2016-07-12 16:53:49 +02:00
via drm: Move master pointer from drm_minor to drm_device 2016-06-21 21:43:24 +02:00
virtio drm: Lobotomize set_busid nonsense for !pci drivers 2016-06-21 21:56:23 +02:00
vmwgfx drm/vmwgfx: Stop checking minor type directly 2016-07-12 13:07:20 +02:00
ati_pcigart.c
drm_agpsupport.c
drm_atomic_helper.c drm/atomic-helpers: Clear up cleanup_done a bit 2016-06-15 17:25:36 +02:00
drm_atomic.c drm: Resurrect atomic rmfb code 2016-07-13 12:56:20 +02:00
drm_auth.c drm: document drm_auth.c 2016-06-21 22:10:55 +02:00
drm_bridge.c drm/doc: Switch to sphinx/rst fixed-width quoting 2016-06-03 20:58:24 +02:00
drm_bufs.c drm: Move master pointer from drm_minor to drm_device 2016-06-21 21:43:24 +02:00
drm_cache.c drm: Restore double clflush on the last partial cacheline 2016-07-12 15:57:13 +02:00
drm_context.c
drm_crtc_helper.c drm/crtc-helper: disable_unused_functions really isn't for atomic 2016-06-21 11:46:08 +02:00
drm_crtc_internal.h drm: Resurrect atomic rmfb code 2016-07-13 12:56:20 +02:00
drm_crtc.c drm: Resurrect atomic rmfb code 2016-07-13 12:56:20 +02:00
drm_debugfs.c drm: Nuke legacy maps debugfs files 2016-06-16 10:16:11 +02:00
drm_dma.c
drm_dp_aux_dev.c drm_aux-dev: fix error handling in drm_dp_aux_dev_init() 2016-07-12 14:10:57 +02:00
drm_dp_dual_mode_helper.c drm: Add helper for DP++ adaptors 2016-05-23 11:10:46 +03:00
drm_dp_helper.c drm: Minimally initialise drm_dp_aux 2016-06-17 14:41:47 +02:00
drm_dp_mst_topology.c Linux 4.6-rc7 2016-05-09 13:49:56 +10:00
drm_drv.c drm: Do a full device unregister when unplugging 2016-07-12 13:01:49 +02:00
drm_edid_load.c Fix annoyingly awkward typo in drm_edid_load.c 2016-05-30 09:59:28 +02:00
drm_edid.c drm/edid: add displayid detailed 1 timings to the modelist. (v1.1) 2016-05-23 11:35:31 +10:00
drm_encoder_slave.c
drm_fb_cma_helper.c drm: fb: cma: fix memory leak 2016-06-13 09:53:09 +02:00
drm_fb_helper.c drm/fb-helper: Reduce READ_ONCE(master) to lockless_dereference 2016-06-22 10:07:28 +02:00
drm_flip_work.c
drm_fops.c drm: Clean up drm_crtc.h 2016-06-21 21:43:28 +02:00
drm_fourcc.c drm: Move format-related helpers to drm_fourcc.c 2016-06-09 11:58:50 +02:00
drm_gem_cma_helper.c drm: Wrap direct calls to driver->gem_free_object from CMA 2016-06-01 15:00:28 +10:00
drm_gem.c drm/doc: Appease sphinx 2016-06-02 16:25:20 +02:00
drm_global.c
drm_hashtab.c
drm_info.c drm: Extract drm_is_current_master 2016-06-21 21:58:12 +02:00
drm_internal.h drm: Nuke SET_UNIQUE ioctl 2016-06-21 21:43:46 +02:00
drm_ioc32.c
drm_ioctl.c drm: Don't overwrite user ioctl arg unless requested 2016-07-14 10:12:50 +02:00
drm_irq.c drm: make drm_vblank_count_and_time() static 2016-07-12 15:40:45 +02:00
drm_kms_helper_common.c
drm_legacy.h drm: Hide hw.lock cleanup in filp->release better 2016-06-16 10:16:37 +02:00
drm_lock.c drm: Extract drm_is_current_master 2016-06-21 21:58:12 +02:00
drm_memory.c drm: Fix broken use of _PAGE_NO_CACHE on powerpc 2016-07-12 13:20:39 +02:00
drm_mipi_dsi.c drm/dsi: Make set_tear_scanline command consistent 2016-07-12 13:19:26 +02:00
drm_mm.c drm/mm: avoid possible null pointer dereference 2016-05-23 14:56:11 +02:00
drm_modes.c Merge tag 'topic/drm-misc-2016-06-07' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-06-09 11:19:28 +10:00
drm_modeset_lock.c drm/doc: Switch to sphinx/rst fixed-width quoting 2016-06-03 20:58:24 +02:00
drm_of.c
drm_panel.c drm/panel: Flesh out kerneldoc 2016-05-06 16:04:48 +02:00
drm_pci.c drm: Nuke SET_UNIQUE ioctl 2016-06-21 21:43:46 +02:00
drm_plane_helper.c drm: Deal with rotation in drm_plane_helper_check_update() 2016-06-17 16:41:25 +02:00
drm_platform.c drm: Lobotomize set_busid nonsense for !pci drivers 2016-06-21 21:56:23 +02:00
drm_prime.c drm/prime: fix error path deadlock fail 2016-06-13 17:32:18 +02:00
drm_probe_helper.c drm: Only create a cmdline mode if no probed modes match 2016-06-02 15:10:22 +02:00
drm_rect.c
drm_scatter.c drm: Fix broken use of _PAGE_NO_CACHE on powerpc 2016-07-12 13:20:39 +02:00
drm_simple_kms_helper.c drm: Deal with rotation in drm_plane_helper_check_update() 2016-06-17 16:41:25 +02:00
drm_sysfs.c drm: Remove dev_pm_ops from drm_class 2016-06-09 08:43:25 +02:00
drm_trace_points.c
drm_trace.h
drm_vm.c drm: Fix broken use of _PAGE_NO_CACHE on powerpc 2016-07-12 13:20:39 +02:00
drm_vma_manager.c drm/doc: Switch to sphinx/rst fixed-width quoting 2016-06-03 20:58:24 +02:00
Kconfig drm/mediatek: Add DRM Driver for Mediatek SoC MT8173. 2016-05-06 17:47:35 +02:00
Makefile drm: Add helper for simple display pipeline 2016-06-10 17:33:17 +02:00