linux/drivers/gpu/drm
Arnd Bergmann 270b329f7e Revert "drm/nouveau: check ioctl command codes better"
My previous patch ended up causing a regression for the
DRM_IOCTL_NOUVEAU_NVIF ioctl. The intention of my patch was to only
pass ioctl commands that have the correct dir/type/nr bits into the
nouveau_abi16_ioctl() function.

This turned out to be too strict, as userspace does use at least
write-only and write-read direction settings. Checking for both of these
still did not fix the issue, so the best we can do for the 6.16 release
is to revert back to what we've had since linux-3.16.

This version is still fragile, but at least it is known to work with
existing userspace. Fixing this properly requires a better understanding
of what commands are being passed from userspace in practice, and how
that relies on the undocumented (miss)behavior in nouveau_drm_ioctl().

Fixes: e5478166df ("drm/nouveau: check ioctl command codes better")
Reported-by: Satadru Pramanik <satadru@gmail.com>
Closes: https://lore.kernel.org/lkml/CAFrh3J85tsZRpOHQtKgNHUVnn=EG=QKBnZTRtWS8eWSc1K1xkA@mail.gmail.com/
Reported-by: Chris Bainbridge <chris.bainbridge@gmail.com>
Closes: https://lore.kernel.org/lkml/aH9n_QGMFx2ZbKlw@debian.local/
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Link: https://lore.kernel.org/r/20250722115830.2587297-1-arnd@kernel.org
[ Add Closes: tags, fix minor typo in commit message. - Danilo ]
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
2025-07-22 14:03:27 +02:00
..
adp Linux 6.15-rc5 2025-05-06 16:39:25 +10:00
amd drm/amdgpu: Reset the clear flag in buddy during resume 2025-07-16 12:50:32 +02:00
arm drm/arm/malidp: Silence informational message 2025-06-12 13:11:25 +01:00
armada
aspeed drm/aspeed: move to devm_platform_ioremap_resource() usage 2025-02-26 15:27:06 +01:00
ast drm/ast: Do not include <linux/export.h> 2025-06-13 08:54:18 +02:00
atmel-hlcdc
bridge drm/bridge: aux-hpd-bridge: fix assignment of the of_node 2025-06-30 17:43:17 +02:00
ci drm/ci: uprev mesa 2025-05-04 09:20:28 -07:00
clients printk: Rename console_start to console_resume 2025-03-11 12:51:21 +01:00
display drm/bridge-connector: Fix bridge in drm_connector_hdmi_audio_init() 2025-06-24 01:17:21 +03:00
etnaviv Revert "drm/etnaviv: Use dma_buf from GEM object instance" 2025-07-17 12:26:19 +02:00
exynos treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
fsl-dcu drm/fsl-dcu: move to devm_platform_ioremap_resource() usage 2025-03-06 12:37:33 -05:00
gma500 pci-v6.16-changes 2025-06-04 11:26:17 -07:00
gud treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
hisilicon pci-v6.16-changes 2025-06-04 11:26:17 -07:00
hyperv drm/hyperv: Fix address space leak when Hyper-V DRM device is removed 2025-03-09 23:46:56 +00:00
i915 treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
imagination drm/imagination: Fix kernel crash when hard resetting the GPU 2025-07-04 16:32:10 +01:00
imx drm/bridge: Add encoder parameter to drm_bridge_funcs.attach 2025-03-20 14:45:38 +01:00
ingenic drm/bridge: Add encoder parameter to drm_bridge_funcs.attach 2025-03-20 14:45:38 +01:00
kmb
lib
lima Merge drm/drm-next into drm-misc-next 2025-04-07 14:35:48 +02:00
logicvc
loongson PCI: Add CONFIG_MMU dependency 2025-04-23 15:40:30 -05:00
mcde drm/mcde: convert to devm_drm_bridge_alloc() API 2025-04-29 11:21:23 +02:00
mediatek treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
meson drm/meson: fix more rounding issues with 59.94Hz modes 2025-06-10 14:15:42 +02:00
mgag200 drm/mgag200: Do not include <linux/export.h> 2025-06-13 08:54:31 +02:00
msm treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
mxsfb drm/mxsfb: Remove generic DRM drivers in probe function 2025-03-12 09:14:29 +01:00
nouveau Revert "drm/nouveau: check ioctl command codes better" 2025-07-22 14:03:27 +02:00
nova gpu: drm: nova: select AUXILIARY_BUS instead of depending on it 2025-05-15 20:59:32 +02:00
omapdrm Merge drm/drm-next into drm-misc-next 2025-04-07 14:35:48 +02:00
panel drm/panel: panel-simple: get rid of panel_dpi hack 2025-06-27 11:22:48 +02:00
panfrost drm/panfrost: Fix scheduler workqueue bug 2025-07-14 16:49:10 +01:00
panthor drm/panthor: Fix build warning when DEBUG_FS is disabled 2025-04-29 18:12:23 +02:00
pl111 drm: pl111: fix inconsistent indenting warning 2025-03-07 10:25:10 +01:00
qxl PCI: Add CONFIG_MMU dependency 2025-04-23 15:40:30 -05:00
radeon drm fixes for 6.16-rc1 2025-06-06 08:09:56 -07:00
renesas drm: Remove unused function rcar_cmm_write 2025-05-02 11:52:46 +03:00
rockchip drm/rockchip: inno-hdmi: Fix video timing HSYNC/VSYNC polarity setting for rk3036 2025-05-04 12:40:53 +02:00
scheduler drm/sched: Remove optimization that causes hang when killing dependent jobs 2025-07-17 12:06:07 +02:00
sitronix drm/sitronix: st7571-i2c: Select VIDEOMODE_HELPERS 2025-06-11 10:44:56 +02:00
solomon drm/ssd130x: fix ssd132x_clear_screen() columns 2025-06-12 14:04:56 +02:00
sprd drm/sprd: move to devm_platform_ioremap_resource() usage 2025-03-10 16:25:01 -04:00
sti Merge tag 'drm-misc-next-2025-04-09' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next 2025-04-14 15:29:49 +10:00
stm drm/bridge: Add encoder parameter to drm_bridge_funcs.attach 2025-03-20 14:45:38 +01:00
sun4i
sysfb drm/vesadrm: Avoid NULL-ptr deref in vesadrm_pmi_cmap_write() 2025-06-27 16:00:49 +02:00
tegra drm/tegra: nvdec: Fix dma_alloc_coherent error check 2025-07-04 11:15:07 +02:00
tests Linux 6.15-rc5 2025-05-06 16:39:25 +10:00
tidss drm/bridge: Add encoder parameter to drm_bridge_funcs.attach 2025-03-20 14:45:38 +01:00
tilcdc
tiny pci-v6.16-changes 2025-06-04 11:26:17 -07:00
ttm drm/ttm: fix error handling in ttm_buffer_object_transfer 2025-06-30 13:26:28 +02:00
tve200
udl drm/udl: Set error code in udl_init() 2025-04-17 10:21:40 +02:00
v3d drm/v3d: Disable interrupts before resetting the GPU 2025-07-02 19:08:11 -03:00
vboxvideo drm/vboxvideo: Remove unused hgsmi_cursor_position 2025-02-28 09:05:10 +01:00
vc4 drm/vc4: fix infinite EPROBE_DEFER loop 2025-06-10 10:47:04 +02:00
vgem treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
virtio Revert "drm/virtio: Use dma_buf from GEM object instance" 2025-07-17 12:26:19 +02:00
vkms drm/vkms: Adjust vkms_state->active_planes allocation type 2025-05-06 10:17:00 +02:00
vmwgfx Revert "drm/vmwgfx: Use dma_buf from GEM object instance" 2025-07-17 12:26:19 +02:00
xe drm fixes for 6.16-rc1 2025-06-06 08:09:56 -07:00
xen
xlnx gpu: drm: xlnx: zynqmp_dp: Use dev_err_probe() 2025-04-16 15:03:22 +03:00
drm_atomic_helper.c drm/bridge: Add helper to reset bridge pipeline 2025-03-20 14:45:48 +01:00
drm_atomic_state_helper.c
drm_atomic_uapi.c drm for 6.15-rc1 2025-03-28 17:44:52 -07:00
drm_atomic.c drm/atomic: Introduce helper to lookup connector by encoder 2025-03-20 14:45:46 +01:00
drm_auth.c
drm_blend.c drm/doc: document front-buffer rendering 2025-04-30 23:35:00 +02:00
drm_bridge_helper.c drm/bridge: Add helper to reset bridge pipeline 2025-03-20 14:45:48 +01:00
drm_bridge.c drm/bridge: make devm_drm_bridge_alloc() mandatory for bridge allocation 2025-04-07 11:38:05 +02:00
drm_buddy.c drm/amdgpu: Reset the clear flag in buddy during resume 2025-07-16 12:50:32 +02:00
drm_cache.c
drm_client_event.c drm/client: Send pending hotplug events after resume 2025-03-05 21:48:49 +01:00
drm_client_modeset.c drm/client: s/unsigned int i/int i/ 2025-03-13 18:33:57 +02:00
drm_client.c drm/gem: Change locked/unlocked postfix of drm_gem_v/unmap() function names 2025-03-26 22:59:56 +03:00
drm_color_mgmt.c
drm_connector.c drm/atomic: Filter out redundant DPMS calls 2025-03-10 18:18:37 +02:00
drm_crtc_helper_internal.h
drm_crtc_helper.c drm: Remove redundant statement in drm_crtc_helper_set_mode() 2025-03-27 14:02:57 +02:00
drm_crtc_internal.h
drm_crtc.c
drm_damage_helper.c drm/damage-helper: add const qualifier in drm_atomic_helper_damage_merged() 2025-03-03 14:45:40 +02:00
drm_debugfs_crc.c
drm_debugfs.c drm/bridge: move bridges_show logic from drm_debugfs.c 2025-03-12 10:50:32 +01:00
drm_displayid_internal.h drm/edid: Refactor DisplayID timing block structs 2025-04-16 20:40:51 +03:00
drm_displayid.c
drm_draw_internal.h
drm_draw.c Merge drm/drm-next into drm-misc-next 2025-04-07 14:35:48 +02:00
drm_drv.c drm for 6.16-rc1 2025-05-28 09:46:39 -07:00
drm_dumb_buffers.c
drm_edid_load.c
drm_edid.c drm for 6.16-rc1 2025-05-28 09:46:39 -07:00
drm_eld.c
drm_encoder.c
drm_exec.c
drm_fb_dma_helper.c drm/fb-dma-helper: Test for imported buffers with drm_gem_is_imported() 2025-03-06 08:59:17 +01:00
drm_fb_helper.c drm/fb-helper: Remove struct drm_fb_helper.fb_probe 2025-03-05 21:48:50 +01:00
drm_fbdev_dma.c drm/fbdev-dma: Add shadow buffering for deferred I/O 2025-02-27 09:37:55 +01:00
drm_fbdev_shmem.c
drm_fbdev_ttm.c
drm_file.c amd-drm-next-6.16-2025-05-09: 2025-05-12 07:14:34 +10:00
drm_flip_work.c
drm_format_helper.c drm/format-helper: fix build 2025-04-07 08:45:31 +02:00
drm_format_internal.h drm/format-helper: Add generic conversion to 8-bit formats 2025-04-01 15:35:22 +02:00
drm_fourcc.c
drm_framebuffer.c drm/framebuffer: Acquire internal references on GEM handles 2025-07-09 14:03:28 +02:00
drm_gem_atomic_helper.c
drm_gem_dma_helper.c Revert "drm/gem-dma: Use dma_buf from GEM object instance" 2025-07-17 12:26:19 +02:00
drm_gem_framebuffer_helper.c Revert "drm/gem-framebuffer: Use dma_buf from GEM object instance" 2025-07-17 12:26:19 +02:00
drm_gem_shmem_helper.c Revert "drm/gem-shmem: Use dma_buf from GEM object instance" 2025-07-17 12:26:19 +02:00
drm_gem_ttm_helper.c
drm_gem_vram_helper.c
drm_gem.c drm/gem: Fix race in drm_gem_handle_create_tail() 2025-07-09 15:53:34 +02:00
drm_gpusvm.c drm for 6.16-rc1 2025-05-28 09:46:39 -07:00
drm_gpuvm.c
drm_internal.h drm/framebuffer: Acquire internal references on GEM handles 2025-07-09 14:03:28 +02:00
drm_ioc32.c
drm_ioctl.c
drm_kms_helper_common.c
drm_lease.c
drm_managed.c
drm_mipi_dbi.c drm/mipi-dbi: Fix blanking for non-16 bit formats 2025-04-29 17:29:49 +02:00
drm_mipi_dsi.c drm/mipi-dsi: Add dev_is_mipi_dsi function 2025-06-27 11:22:39 +02:00
drm_mm.c
drm_mode_config.c drm/plane: Add new plane property IN_FORMATS_ASYNC 2025-05-09 15:29:40 +05:30
drm_mode_object.c
drm_modes.c
drm_modeset_helper.c
drm_modeset_lock.c
drm_of.c drm: of: drm_of_find_panel_or_bridge: move misplaced comment 2025-02-17 14:17:55 +01:00
drm_panel_backlight_quirks.c
drm_panel_orientation_quirks.c drm: panel-orientation-quirks: Add ZOTAC Gaming Zone 2025-03-15 20:49:38 +02:00
drm_panel.c drm/panel: make prepare/enable and disable/unprepare calls return void 2025-04-22 16:49:11 +03:00
drm_panic_qr.rs rust: drm: remove unnecessary imports 2025-07-05 13:01:59 +02:00
drm_panic.c drm/panic: Add support to scanout buffer as array of pages 2025-04-10 10:50:58 +02:00
drm_pci.c
drm_plane_helper.c
drm_plane.c drm/plane: modify create_in_formats to acommodate async 2025-05-09 15:30:28 +05:30
drm_prime.c Revert "drm/prime: Use dma_buf from GEM object instance" 2025-07-17 12:26:19 +02:00
drm_print.c
drm_privacy_screen_x86.c
drm_privacy_screen.c
drm_probe_helper.c drm/probe-helper: Do not fail from drmm_kms_helper_poll_init() 2025-03-24 09:31:03 +01:00
drm_property.c
drm_rect.c
drm_self_refresh_helper.c
drm_simple_kms_helper.c
drm_suballoc.c
drm_syncobj.c drm/syncobj: Extend EXPORT_SYNC_FILE for timeline syncobjs 2025-04-01 18:30:25 +02:00
drm_sysfs.c drm/sysfs: Constify 'struct bin_attribute' 2025-02-21 09:20:31 +01:00
drm_trace_points.c
drm_trace.h
drm_vblank_work.c
drm_vblank.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
drm_vma_manager.c
drm_writeback.c drm: writeback: Fix drm_writeback_connector_cleanup signature 2025-06-23 10:12:44 +02:00
Kconfig pci-v6.16-changes 2025-06-04 11:26:17 -07:00
Kconfig.debug drm: Mark CONFIG_DRM_HEADER_TEST as BROKEN 2025-04-10 14:06:06 +02:00
Makefile drm for 6.16-rc1 2025-05-28 09:46:39 -07:00