* [git pull] drm fixes for 7.3-rc2
@ 2026-09-04 19:52 Dave Airlie
2026-09-04 21:00 ` pr-tracker-bot
2026-09-07 7:36 ` Geert Uytterhoeven
0 siblings, 2 replies; 5+ messages in thread
From: Dave Airlie @ 2026-09-04 19:52 UTC (permalink / raw)
To: Linus Torvalds, Sima Vetter; +Cc: dri-devel, LKML
Hi Linus,
rc2 fixes, lots of scattered fixes. nouveau has a bunch of display
fixes for blackwell GPUs that should mean we light up monitors
properly and fix some desktop rendering problems, amdgpu and intel
display changes as usual.
There also changes to the core pagemap, then the usual amouny of AI
inspired validation fixes.
Regards,
Dave.
drm-fixes-2026-09-05:
drm fixes for 7.3-rc2
core:
- Fix drm_crtc_commit leak when PAGE_FLIP_EVENT is used,
dma-buf:
- Publish the dma-buf only after copy_to_user succeeds
- fix some kernel-doc warnings
atomic-state-helpers:
- set pixel_blend_mode to prop default on reset
sysfb:
- Fix integer overflow
- fix constant comparison bug
pagemap:
- Prevent double migration of device pages
- Reset migration page count on eviction retry
- dma-unmap pages before handling migration errors
- use after free fixes
prime:
- fix prime exports tracing
amdgpu:
- Fix for drm_amdgpu_info_device with mixed 64 bit kernel and 32 bit userspace
- plane blend mode fixes
- SR-IOV fix
- GFX8 fix
- MES queue reset fix
- GPUVM fixes
- DCN 6 warning fix
- DCN 3.5/3.6 fix
- DML fix
- Backlight fix
- Colorop fix
- DC get_estimated_bw() fix
- devcoredump fix
- Userq fixes
- APU PSP fix
- Cursor fix
amdkfd:
- MES queue eviction fix
- MQD debugfs fix
xe:
- oa uapi error handling fix
- drm info message to report FLAT_CSS base misalignment.
i915:
- Drop an accidentally duplicated panel fitter call in DP MST
- Fix DDI clock programming for Cx0 and LT PHY
- Fix PTL CDCLK handling at probe, causing a glitch
- Fix dg2_power_well_count() return type
- Fix a NULL pointer deref at forced probe
- Fix selective fetch disable
amdxdna:
- out-of-bounds access fix
- reject commands chains with no commands
- handle chained mapping BO failures
- refuse to flush an imported BO
ethosu:
- handle mmio mapping failures
- handle storage modes only on hardware that supports it
- fix job completion fence cleanup
fastrpc:
- Publish the dma-buf only after copy_to_user succeeds
gud:
- Improve TV modes and rotation handling
nouveau:
- use-after-free fixes
- add missing scanline position support
- HDMI and DP fixes
- null pointer dereference fix
- dmem accounting fixes for large folios
- use write-combined maps for coherent
qaic:
- out-of-bounds access fix
tegra:
- Add blend mode properties
virtio:
- exit path and error handling fixes
The following changes since commit cee9395acd8043be0644b25c34bfa86623f2b935:
Linux 7.3-rc1 (2026-08-30 13:34:40 -0700)
are available in the Git repository at:
https://gitlab.freedesktop.org/drm/kernel.git tags/drm-fixes-2026-09-05
for you to fetch changes up to c96294afbcb5737da18229e788ca45a5d534abc5:
Merge tag 'drm-xe-fixes-2026-09-03' of
https://gitlab.freedesktop.org/drm/xe/kernel into drm-fixes
(2026-09-04 20:36:14 +1000)
----------------------------------------------------------------
drm fixes for 7.3-rc2
core:
- Fix drm_crtc_commit leak when PAGE_FLIP_EVENT is used,
dma-buf:
- Publish the dma-buf only after copy_to_user succeeds
- fix some kernel-doc warnings
atomic-state-helpers:
- set pixel_blend_mode to prop default on reset
sysfb:
- Fix integer overflow
- fix constant comparison bug
pagemap:
- Prevent double migration of device pages
- Reset migration page count on eviction retry
- dma-unmap pages before handling migration errors
- use after free fixes
prime:
- fix prime exports tracing
amdgpu:
- Fix for drm_amdgpu_info_device with mixed 64 bit kernel and 32 bit userspace
- plane blend mode fixes
- SR-IOV fix
- GFX8 fix
- MES queue reset fix
- GPUVM fixes
- DCN 6 warning fix
- DCN 3.5/3.6 fix
- DML fix
- Backlight fix
- Colorop fix
- DC get_estimated_bw() fix
- devcoredump fix
- Userq fixes
- APU PSP fix
- Cursor fix
amdkfd:
- MES queue eviction fix
- MQD debugfs fix
xe:
- oa uapi error handling fix
- drm info message to report FLAT_CSS base misalignment.
i915:
- Drop an accidentally duplicated panel fitter call in DP MST
- Fix DDI clock programming for Cx0 and LT PHY
- Fix PTL CDCLK handling at probe, causing a glitch
- Fix dg2_power_well_count() return type
- Fix a NULL pointer deref at forced probe
- Fix selective fetch disable
amdxdna:
- out-of-bounds access fix
- reject commands chains with no commands
- handle chained mapping BO failures
- refuse to flush an imported BO
ethosu:
- handle mmio mapping failures
- handle storage modes only on hardware that supports it
- fix job completion fence cleanup
fastrpc:
- Publish the dma-buf only after copy_to_user succeeds
gud:
- Improve TV modes and rotation handling
nouveau:
- use-after-free fixes
- add missing scanline position support
- HDMI and DP fixes
- null pointer dereference fix
- dmem accounting fixes for large folios
- use write-combined maps for coherent
qaic:
- out-of-bounds access fix
tegra:
- Add blend mode properties
virtio:
- exit path and error handling fixes
----------------------------------------------------------------
Aditya Garg (1):
MAINTAINERS, mailmap: use Aditya Garg's linux.dev account
Alex Deucher (1):
drm/amdgpu/gfx8: only apply compute quantums to KCQs
Amber Lin (1):
drm/amdgpu: Update queue reset support version
Anuj Bolewar (1):
drm/virtio: reclaim pending vbufs before tearing down vqs
Arvind Yadav (2):
drm/pagemap: Prevent double migration of device pages
drm/pagemap: Reset migration page count on eviction retry
Austin Zheng (1):
drm/amd/display: Remove const Qualifier From Non-Pointer Fields
Baineng Shou (4):
dma-buf: dma-heap: don't publish fd before copy_to_user() succeeds
misc: fastrpc: don't publish fd before copy_to_user() succeeds
drm/prime: use dma_buf_fd_install() to preserve export tracing
selftests: dmabuf-heaps: add fd-leak-on-EFAULT regression test
Benjamin Leggett (1):
drm/virtio: use the DMA API for resource backing on Xen
Chaitanya Kumar Borah (1):
drm/i915/dp_mst: Remove duplicate intel_pfit_compute_config() call
Dan Carpenter (1):
drm/virtio: Fix a NULL vs ERR_PTR() bug in
virtio_gpu_user_framebuffer_create()
Dave Airlie (5):
nouveau/instmem: handle iomapping already existing
Merge tag 'drm-misc-fixes-2026-09-03' of
https://gitlab.freedesktop.org/drm/misc/kernel into drm-fixes
Merge tag 'drm-intel-fixes-2026-09-03' of
https://gitlab.freedesktop.org/drm/i915/kernel into drm-fixes
Merge tag 'amd-drm-fixes-7.3-2026-09-03' of
https://gitlab.freedesktop.org/drm/amdgpu/kernel into drm-fixes
Merge tag 'drm-xe-fixes-2026-09-03' of
https://gitlab.freedesktop.org/drm/xe/kernel into drm-fixes
Deepanshu Kartikey (2):
drm/gud: NUL-terminate TV mode names read from the device
drm/i915: Guard against NULL driver_data in i915_pci_probe()
Faith Ekstrand (1):
drm/nouveau: Use write-combined maps for coherent
GuoHan Zhao (2):
accel/ethosu: check MMIO mapping errors in probe
accel/ethosu: fix job completion fence cleanup
Hari Mishal (1):
drm/amd/display: fix division by zero in get_estimated_bw()
Ivan Lipski (1):
drm/amd/display: Fix DCN5/6 DML2 compilation warnings
Kanala Ramalingeswara Reddy (1):
drm/amdgpu: Skip accessing psp rum time db for APUs
Lizhi Hou (1):
accel/amdxdna: Remove __counted_by from struct amdxdna_cmd_chain
Lu Yao (1):
drm/xe/oa: Remove sysfs entry on idr_alloc failure in
xe_oa_add_config_ioctl()
Lyude Paul (1):
drm/nouveau/disp/r535: Add scanline position support + head state support
Marek Czernohous (1):
drm/nouveau: unsubscribe the channel-kill event before the fence context
Mario Limonciello (2):
drm/amdgpu: restrict BAR0 fallback read to SR-IOV VFs only
drm/amdkfd: fix scope of mqd_mgr dereference in pqm_debugfs_mqds
Matthew Auld (1):
drm/xe/vram: report FLAT_CCS base misalignment
Matthew Brost (2):
drm/pagemap: dma-unmap pages before handling migration errors
drm/pagemap: Fix folio allocation fallback and use-after-put
Maxime Ripard (1):
Merge drm/drm-fixes into drm-misc-fixes
Melissa Wen (5):
drm/atomic-state-helper: set pixel_blend_mode to prop default on reset
drm/amd/display: fix missing blend-mode-prop warning for DCN
drm/amd/display: advertise PIXEL_NONE and PREMULTI blend mode for DCE
drm/amd/display: use halving distribution for all encode-to-linear curves
drm/amd/display: use plane color_mgmt_changed to track colorop changes
Mohamed Ahmed (8):
drm/nouveau/disp: move GSP head-timing ISR and vblank helpers to tu102.c
drm/nouveau/disp: move the GSP HDMI GCP AVMute write to engine/disp
drm/nouveau/disp: route GSP-RM display MMIO through nvkm_disp_func hooks
drm/nouveau/disp: fix HDMI vendor infoframes on GB20x
drm/nouveau/disp: fix HDMI GCP AVMute register offsets on GB20x
drm/nouveau/gsp: use per-version DP_CONFIG_STREAM params on r570 firmware
drm/nouveau/disp: fix head state readback on GB20x
drm/nouveau/gsp: fix vblank interrupts on GB20x
Nemesa Garg (1):
drm/i915/display: Clear SEL_FETCH_PLANE_CTL on plane disable
Priya Hosur (1):
drm/amdkfd: Add TLB flush after MES queue eviction/suspension
Randy Dunlap (1):
dma-buf: fix some kernel-doc warnings
Roman Li (2):
drm/amd/display: Set gpuvm min page size to 4K on dcn35/36
drm/amd/display: Fix backlight control for luminance-capable OLED
Sajal Gupta (1):
drm/gud: validate GUD_ROTATION_0 is present in supported rotations
Shixiong Ou (2):
drm/sysfb: ofdrm: Fix integer overflow in fb_size calculation
drm/sysfb: ofdrm: Fix is_avivo() constant comparison bug
Slawomir Stepien (1):
drm/cirrus-qemu: Validate BAR0 size during probe
Sunil Khatri (6):
drm/amdgpu: use AMDGPU_GPU_PAGE_SHIFT instead of PAGE_SHIFT
drm/amdgpu: fix Idle BOs list in VM debugfs status info
drm/amdgpu: fix byte/dword unit mismatch in coredump IB dump
drm/amdgpu: update the fw version for gfx11 userqueues
drm/amdgpu: update the fw version for gfx12 userqueues
drm/amdgpu/userq: dont overwrite the error of subsequent map call
Suraj Kandpal (3):
drm/i915/ddi: add helper to compute DDI clock frequency
drm/i915/cx0: program DDI_CLK_VALFREQ with DDI clock frequency
drm/i915/lt_phy: program DDI_CLK_VALFREQ with DDI clock frequency
Taimuraz Kaitmazov (4):
accel/amdxdna: return early from a zero-length flush
accel/amdxdna: reject a command chain that carries no commands
accel/amdxdna: put the chained BO when its mapping fails
accel/amdxdna: refuse to flush an imported BO
Tao Yu (1):
drm/gud: validate TV mode names before creating enum property
Thadeu Lima de Souza Cascardo (2):
drm/atomic: remove bogus check for file_priv
drm: Fix drm_crtc_commit leak if signaled when PAGE_FLIP_EVENT is used
Thierry Reding (1):
drm/tegra: Add blend mode properties
Thomas Zimmermann (1):
Merge drm/drm-fixes into drm-misc-fixes
Tomeu Vizoso (1):
accel: ethosu: Don't read the U65 rounding mode as a storage mode
Ville Syrjälä (2):
drm/i915/cdclk: Avoid spurious cdclk sanitization on PTL+
drm/i915/cdclk: Fix dg2_power_well_count() return type
Yogesh Mohan Marimuthu (1):
drm/amdgpu/userq: fix struct drm_amdgpu_info_device padding for
32bit compile
Youssef Samir (1):
accel/qaic: Address potential out-of-bounds read in resp_worker()
Yuling Li (1):
drm/amd/display: Fix cursor disable with horizontally split planes
Zhenhao Wan (5):
drm/nouveau/uvmm: fix NULL deref unwinding an OP_MAP_SPARSE op
drm/nouveau/uvmm: fix premature region free on failed OP_UNMAP_SPARSE
drm/nouveau/uvmm: clear the dirty flag when unwinding an OP_UNMAP_SPARSE
drm/nouveau/dmem: fix mismatched DMA unmap size for large folios
drm/nouveau/dmem: fix callocated underflow on large folio split
shechenglong (1):
drm/virtio: check return value of vgdev_output_init()
.mailmap | 3 +-
MAINTAINERS | 2 +-
drivers/accel/amdxdna/aie2_message.c | 2 +-
drivers/accel/amdxdna/amdxdna_ctx.c | 4 +-
drivers/accel/amdxdna/amdxdna_ctx.h | 2 +-
drivers/accel/amdxdna/amdxdna_gem.c | 10 +-
drivers/accel/ethosu/ethosu_drv.c | 2 +
drivers/accel/ethosu/ethosu_gem.c | 2 +-
drivers/accel/ethosu/ethosu_job.c | 10 +-
drivers/accel/qaic/qaic_control.c | 46 ++--
drivers/dma-buf/dma-buf.c | 20 ++
drivers/dma-buf/dma-heap.c | 80 +++---
drivers/gpu/drm/amd/amdgpu/amdgpu_dev_coredump.c | 6 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 3 +
drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 6 +
drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c | 5 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 4 +-
drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c | 8 +-
drivers/gpu/drm/amd/amdgpu/gfx_v12_0.c | 8 +-
drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 8 +-
.../gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 13 +-
.../gpu/drm/amd/amdkfd/kfd_process_queue_manager.c | 12 +-
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 6 +-
.../amd/display/amdgpu_dm/amdgpu_dm_backlight.c | 8 +-
.../drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c | 31 ++-
drivers/gpu/drm/amd/display/dc/core/dc_resource.c | 7 +-
.../gpu/drm/amd/display/dc/dcn30/dcn30_cm_common.c | 34 +--
.../dml2_core_dcn5_funcs_mode_programming.c | 4 +-
.../dml21/src/dml2_core/dml2_core_shared_types.h | 4 +-
.../src/dml2_pmo/dml2_pmo_dcn6_stage_optimizers.c | 2 +-
.../display/dc/dml2_0/dml2_translation_helper.c | 1 +
.../display/dc/link/protocols/link_dp_dpia_bw.c | 5 +
drivers/gpu/drm/drm_atomic_state_helper.c | 7 +
drivers/gpu/drm/drm_atomic_uapi.c | 5 +-
drivers/gpu/drm/drm_pagemap.c | 270 ++++++++++++++++++---
drivers/gpu/drm/drm_prime.c | 2 +-
drivers/gpu/drm/gud/gud_connector.c | 12 +-
drivers/gpu/drm/gud/gud_drv.c | 2 +
drivers/gpu/drm/i915/display/intel_cdclk.c | 10 +-
drivers/gpu/drm/i915/display/intel_cursor.c | 15 +-
drivers/gpu/drm/i915/display/intel_cx0_phy.c | 5 +-
drivers/gpu/drm/i915/display/intel_ddi.c | 11 +
drivers/gpu/drm/i915/display/intel_ddi.h | 1 +
drivers/gpu/drm/i915/display/intel_dp_mst.c | 4 -
drivers/gpu/drm/i915/display/intel_lt_phy.c | 6 +-
drivers/gpu/drm/i915/display/skl_universal_plane.c | 15 +-
drivers/gpu/drm/i915/i915_pci.c | 3 +
drivers/gpu/drm/nouveau/include/nvkm/engine/disp.h | 1 +
drivers/gpu/drm/nouveau/nouveau_chan.c | 9 +-
drivers/gpu/drm/nouveau/nouveau_dmem.c | 18 +-
drivers/gpu/drm/nouveau/nouveau_sgdma.c | 4 +-
drivers/gpu/drm/nouveau/nouveau_uvmm.c | 6 +-
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 10 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/Kbuild | 1 +
drivers/gpu/drm/nouveau/nvkm/engine/disp/ga102.c | 13 +-
drivers/gpu/drm/nouveau/nvkm/engine/disp/gb202.c | 191 +++++++++++++++
drivers/gpu/drm/nouveau/nvkm/engine/disp/head.h | 2 +
drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h | 1 +
drivers/gpu/drm/nouveau/nvkm/engine/disp/priv.h | 17 ++
drivers/gpu/drm/nouveau/nvkm/engine/disp/tu102.c | 86 ++++++-
.../gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c | 125 ++++------
.../gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/disp.c | 64 +++++
.../gpu/drm/nouveau/nvkm/subdev/gsp/rm/r570/gsp.c | 9 +
.../nouveau/nvkm/subdev/gsp/rm/r570/nvrm/disp.h | 2 +
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/rm.h | 5 +
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c | 3 +
drivers/gpu/drm/sysfb/ofdrm.c | 8 +-
drivers/gpu/drm/tegra/dc.c | 6 +
drivers/gpu/drm/tegra/hub.c | 2 +
drivers/gpu/drm/tiny/cirrus-qemu.c | 3 +
drivers/gpu/drm/virtio/virtgpu_display.c | 9 +-
drivers/gpu/drm/virtio/virtgpu_drv.h | 21 ++
drivers/gpu/drm/virtio/virtgpu_kms.c | 1 +
drivers/gpu/drm/virtio/virtgpu_object.c | 2 +-
drivers/gpu/drm/virtio/virtgpu_vq.c | 21 +-
drivers/gpu/drm/xe/xe_oa.c | 6 +-
drivers/gpu/drm/xe/xe_vram.c | 3 +
drivers/misc/fastrpc.c | 16 +-
include/drm/drm_pagemap.h | 8 +-
include/linux/dma-buf.h | 1 +
include/linux/dma-fence-array.h | 1 -
include/linux/dma-fence-chain.h | 9 +-
include/uapi/drm/amdgpu_drm.h | 2 +-
tools/testing/selftests/dmabuf-heaps/dmabuf-heap.c | 113 ++++++++-
85 files changed, 1210 insertions(+), 317 deletions(-)
create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/gb202.c
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [git pull] drm fixes for 7.3-rc2 2026-09-04 19:52 [git pull] drm fixes for 7.3-rc2 Dave Airlie @ 2026-09-04 21:00 ` pr-tracker-bot 2026-09-07 7:36 ` Geert Uytterhoeven 1 sibling, 0 replies; 5+ messages in thread From: pr-tracker-bot @ 2026-09-04 21:00 UTC (permalink / raw) To: Dave Airlie; +Cc: Linus Torvalds, Sima Vetter, dri-devel, LKML The pull request you sent on Sat, 5 Sep 2026 05:52:03 +1000: > https://gitlab.freedesktop.org/drm/kernel.git tags/drm-fixes-2026-09-05 has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/654ae5d73c05bd2943d65636ce6cd0aa46e62f18 Thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/prtracker.html ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [git pull] drm fixes for 7.3-rc2 2026-09-04 19:52 [git pull] drm fixes for 7.3-rc2 Dave Airlie 2026-09-04 21:00 ` pr-tracker-bot @ 2026-09-07 7:36 ` Geert Uytterhoeven 2026-09-07 7:38 ` Geert Uytterhoeven 1 sibling, 1 reply; 5+ messages in thread From: Geert Uytterhoeven @ 2026-09-07 7:36 UTC (permalink / raw) To: Dave Airlie, Yogesh Mohan Marimuthu Cc: Linus Torvalds, Sima Vetter, dri-devel, LKML Hi all, On Fri, 4 Sept 2026 at 21:52, Dave Airlie <airlied@gmail.com> wrote: > amdgpu: > - Fix for drm_amdgpu_info_device with mixed 64 bit kernel and 32 bit userspace This commit contains a "cherry picked from"-reference to a non-existing commit in upstream (it does exist in linux-next), and mentions a discussion between three people. It would have been better to include a link to that discusion: https://lore.kernel.org/20260820045438.3974-1-yogesh.mohanmarimuthu@amd.com Thanks! Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [git pull] drm fixes for 7.3-rc2 2026-09-07 7:36 ` Geert Uytterhoeven @ 2026-09-07 7:38 ` Geert Uytterhoeven 2026-09-07 8:27 ` Arnd Bergmann 0 siblings, 1 reply; 5+ messages in thread From: Geert Uytterhoeven @ 2026-09-07 7:38 UTC (permalink / raw) To: Dave Airlie, Yogesh Mohan Marimuthu, Arnd Bergmann Cc: Linus Torvalds, Sima Vetter, dri-devel, LKML Sorry, forgot to CC Arnd for the uapi breakage On Mon, 7 Sept 2026 at 09:36, Geert Uytterhoeven <geert@linux-m68k.org> wrote: > On Fri, 4 Sept 2026 at 21:52, Dave Airlie <airlied@gmail.com> wrote: > > amdgpu: > > - Fix for drm_amdgpu_info_device with mixed 64 bit kernel and 32 bit userspace > > This commit contains a "cherry picked from"-reference to a > non-existing commit in upstream (it does exist in linux-next), > and mentions a discussion between three people. > It would have been better to include a link to that discusion: > https://lore.kernel.org/20260820045438.3974-1-yogesh.mohanmarimuthu@amd.com > > Thanks! Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [git pull] drm fixes for 7.3-rc2 2026-09-07 7:38 ` Geert Uytterhoeven @ 2026-09-07 8:27 ` Arnd Bergmann 0 siblings, 0 replies; 5+ messages in thread From: Arnd Bergmann @ 2026-09-07 8:27 UTC (permalink / raw) To: Geert Uytterhoeven, Dave Airlie, Yogesh Mohan Marimuthu Cc: Linus Torvalds, Sima Vetter, dri-devel, LKML On Mon, Sep 7, 2026, at 09:38, Geert Uytterhoeven wrote: > Sorry, forgot to CC Arnd for the uapi breakage Thanks! > On Mon, 7 Sept 2026 at 09:36, Geert Uytterhoeven <geert@linux-m68k.org> wrote: >> On Fri, 4 Sept 2026 at 21:52, Dave Airlie <airlied@gmail.com> wrote: >> > amdgpu: >> > - Fix for drm_amdgpu_info_device with mixed 64 bit kernel and 32 bit userspace >> >> This commit contains a "cherry picked from"-reference to a >> non-existing commit in upstream (it does exist in linux-next), >> and mentions a discussion between three people. >> It would have been better to include a link to that discusion: >> https://lore.kernel.org/20260820045438.3974-1-yogesh.mohanmarimuthu@amd.com Agreed, and at least mention that this breaks native x86-32 binaries until a user space recompile. If we're breaking this now, I would also suggest adding corresponding padding at the end of drm_amdgpu_gem_metadata and drm_amdgpu_info_hw_ip to align the x86-32 ABI with the other architectures. As far as I can tell, drm_ioctl_desc is robust against padding at the end of a structure, but having different numeric values for DRM_IOCTL_AMDGPU_GEM_METADATA based on -m32/-m64 compiler flags is an unnecessary source of confusion. For references, see below for all structures in include/drm contain implicit padding, from my patch series to add -Wpadded and shut up known warnings. Most of these are already handled correctly in drm compat handlers, but a few may need to be addressed better: - drm_i915_query_perf_config looks like it gets the wrong data pointer, and may need a fix in the compat handler - drm_radeon appears to completely lack proper compat structure conversion and just passes everything to the native handler, which is broken on all compat architectures in addition to the x86-32 padding issue - panfrost/v3d/vc4 can just make the implicit padding explicit to avoid the -Wpadded warnings, since these are never used on x86-32 - hexagon is a special beast and may need a better global fix to align with normal enum types. Arnd diff --git a/include/uapi/drm/amdgpu_drm.h b/include/uapi/drm/amdgpu_drm.h index 9f3090db2f16..0114289f8369 100644 --- a/include/uapi/drm/amdgpu_drm.h +++ b/include/uapi/drm/amdgpu_drm.h @@ -713,7 +713,8 @@ struct drm_amdgpu_gem_metadata { __u64 tiling_info; __u32 data_size_bytes; __u32 data[64]; - } data; + __uapi_arch_pad32; + } __uapi_arch_align data; }; struct drm_amdgpu_gem_mmap_in { @@ -1510,6 +1511,7 @@ struct drm_amdgpu_info_device { __u64 high_va_max; /* gfx10 pa_sc_tile_steering_override */ __u32 pa_sc_tile_steering_override; + __uapi_arch_pad32; /* disabled TCCs */ __u64 tcc_disabled_mask; __u64 min_engine_clock; @@ -1535,7 +1537,8 @@ struct drm_amdgpu_info_device { /* Userq IP mask (1 << AMDGPU_HW_IP_*) */ __u32 userq_ip_mask; __u32 pad; -}; + __uapi_arch_pad32; +} __uapi_arch_align; struct drm_amdgpu_info_hw_ip { /** Version of h/w IP */ @@ -1553,7 +1556,8 @@ struct drm_amdgpu_info_hw_ip { __u32 ip_discovery_version; /* Userq available slots */ __u32 userq_num_slots; -}; + __uapi_arch_pad32; +} __uapi_arch_align; struct drm_amdgpu_info_num_handles { /** Max handles as supported by firmware for UVD */ diff --git a/include/uapi/drm/armada_drm.h b/include/uapi/drm/armada_drm.h index af1c14c837c5..4cbec706d4f2 100644 --- a/include/uapi/drm/armada_drm.h +++ b/include/uapi/drm/armada_drm.h @@ -45,7 +45,8 @@ struct drm_armada_gem_pwrite { __u32 handle; __u32 offset; __u32 size; -}; + __uapi_arch_pad32; +} __uapi_arch_align; #define DRM_IOCTL_ARMADA_GEM_PWRITE \ ARMADA_IOCTL(IOW, GEM_PWRITE, gem_pwrite) diff --git a/include/uapi/drm/drm.h b/include/uapi/drm/drm.h index bc7ef7684099..2d18ccff8b62 100644 --- a/include/uapi/drm/drm.h +++ b/include/uapi/drm/drm.h @@ -87,8 +87,9 @@ struct drm_clip_rect { */ struct drm_drawable_info { unsigned int num_rects; + __uapi_arch_pad_long; struct drm_clip_rect *rects; -}; +} __uapi_arch_align; /* * Texture region, @@ -122,13 +123,14 @@ struct drm_version { int version_major; /**< Major version */ int version_minor; /**< Minor version */ int version_patchlevel; /**< Patch level */ + __uapi_arch_pad_long; __kernel_size_t name_len; /**< Length of name buffer */ char __user *name; /**< Name of driver */ __kernel_size_t date_len; /**< Length of date buffer */ char __user *date; /**< User-space buffer to hold date */ __kernel_size_t desc_len; /**< Length of desc buffer */ char __user *desc; /**< User-space buffer to hold desc */ -}; +} __uapi_arch_align; /* * DRM_IOCTL_GET_UNIQUE ioctl argument type. @@ -142,6 +144,7 @@ struct drm_unique { struct drm_list { int count; /**< Length of user-space structures */ + __uapi_arch_pad_long; struct drm_version __user *version; }; @@ -192,8 +195,9 @@ enum drm_map_flags { struct drm_ctx_priv_map { unsigned int ctx_id; /**< Context requesting private mapping */ + __uapi_arch_pad_long; void *handle; /**< Handle of map */ -}; +} __uapi_arch_align; /* * DRM_IOCTL_GET_MAP, DRM_IOCTL_ADD_MAP and DRM_IOCTL_RM_MAP ioctls @@ -209,8 +213,9 @@ struct drm_map { void *handle; /**< User-space: "Handle" to pass to mmap() */ /**< Kernel-space: kernel-virtual address */ int mtrr; /**< MTRR slot used */ + __uapi_arch_pad_long; /* Private data */ -}; +} __uapi_arch_align; /* * DRM_IOCTL_GET_CLIENT ioctl argument type. @@ -252,7 +257,12 @@ struct drm_stats { struct { unsigned long value; enum drm_stat_type type; - } data[15]; + __uapi_arch_pad_long; +#ifdef __hexagon__ + /* hexagon uses short enums */ + __u8 :8, :8, :8; +#endif + } __uapi_arch_align data[15]; }; /* @@ -326,6 +336,7 @@ struct drm_buf_desc { _DRM_FB_BUFFER = 0x08, /**< Buffer is in frame buffer */ _DRM_PCI_BUFFER_RO = 0x10 /**< Map PCI DMA buffer read-only */ } flags; + __uapi_arch_pad_long; unsigned long agp_start; /**< * Start address of where the AGP buffers are * in the AGP aperture @@ -337,16 +348,18 @@ struct drm_buf_desc { */ struct drm_buf_info { int count; /**< Entries in list */ + __uapi_arch_pad_long; struct drm_buf_desc __user *list; -}; +} __uapi_arch_align; /* * DRM_IOCTL_FREE_BUFS ioctl argument type. */ struct drm_buf_free { int count; + __uapi_arch_pad_long; int __user *list; -}; +} __uapi_arch_align; /* * Buffer information @@ -357,21 +370,23 @@ struct drm_buf_pub { int idx; /**< Index into the master buffer list */ int total; /**< Buffer size */ int used; /**< Amount of buffer in use (for DMA) */ + __uapi_arch_pad_long; void __user *address; /**< Address of buffer */ -}; +} __uapi_arch_align; /* * DRM_IOCTL_MAP_BUFS ioctl argument type. */ struct drm_buf_map { int count; /**< Length of the buffer list */ + __uapi_arch_pad_long; #ifdef __cplusplus void __user *virt; #else void __user *virtual; /**< Mmap'd area in user-virtual */ #endif struct drm_buf_pub __user *list; /**< Buffer information */ -}; +} __uapi_arch_align; /* * DRM_IOCTL_DMA ioctl argument type. @@ -388,10 +403,12 @@ struct drm_dma { enum drm_dma_flags flags; /**< Flags */ int request_count; /**< Number of buffers requested */ int request_size; /**< Desired size for buffers */ + __uapi_arch_pad_long; int __user *request_indices; /**< Buffer information */ int __user *request_sizes; int granted_count; /**< Number of buffers granted */ -}; + __uapi_arch_pad_long; +} __uapi_arch_align; enum drm_ctx_flags { _DRM_CONTEXT_PRESERVED = 0x01, @@ -413,8 +430,9 @@ struct drm_ctx { */ struct drm_ctx_res { int count; + __uapi_arch_pad_long; struct drm_ctx __user *contexts; -}; +} __uapi_arch_align; /* * DRM_IOCTL_ADD_DRAW and DRM_IOCTL_RM_DRAW ioctl argument type. @@ -434,8 +452,9 @@ struct drm_update_draw { drm_drawable_t handle; unsigned int type; unsigned int num; + __uapi_arch_pad32; unsigned long long data; -}; +} __uapi_arch_align; /* * DRM_IOCTL_GET_MAGIC and DRM_IOCTL_AUTH_MAGIC ioctl argument type. @@ -559,7 +578,8 @@ struct drm_agp_info { /* PCI information */ unsigned short id_vendor; unsigned short id_device; -}; + __uapi_arch_pad_long; +} __uapi_arch_align; /* * DRM_IOCTL_SG_ALLOC ioctl argument type. diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h index 381a3e857d4e..7da67277fb5f 100644 --- a/include/uapi/drm/drm_mode.h +++ b/include/uapi/drm/drm_mode.h @@ -350,7 +350,8 @@ struct drm_mode_get_plane { struct drm_mode_get_plane_res { __u64 plane_id_ptr; __u32 count_planes; -}; + __uapi_arch_pad32; +} __uapi_arch_align; #define DRM_MODE_ENCODER_NONE 0 #define DRM_MODE_ENCODER_DAC 1 @@ -628,14 +629,16 @@ struct drm_mode_obj_get_properties { __u32 count_props; __u32 obj_id; __u32 obj_type; -}; + __uapi_arch_pad32; +} __uapi_arch_align; struct drm_mode_obj_set_property { __u64 value; __u32 prop_id; __u32 obj_id; __u32 obj_type; -}; + __uapi_arch_pad32; +} __uapi_arch_align; struct drm_mode_get_blob { __u32 blob_id; @@ -723,8 +726,9 @@ struct drm_mode_fb_cmd2 { * constants in ``drm_fourcc.h``. All planes must use the same * modifier. Ignored unless &DRM_MODE_FB_MODIFIERS is set in @flags. */ + __uapi_arch_pad32; __u64 modifier[4]; -}; +} __uapi_arch_align; #define DRM_MODE_FB_DIRTY_ANNOTATE_COPY 0x01 #define DRM_MODE_FB_DIRTY_ANNOTATE_FILL 0x02 @@ -1078,7 +1082,8 @@ struct hdr_output_metadata { union { struct hdr_metadata_infoframe hdmi_metadata_type1; }; -}; + __uapi_arch_pad16; +} __uapi_arch_align; /** * DRM_MODE_PAGE_FLIP_EVENT diff --git a/include/uapi/drm/etnaviv_drm.h b/include/uapi/drm/etnaviv_drm.h index af024d90453d..abd0cafa231f 100644 --- a/include/uapi/drm/etnaviv_drm.h +++ b/include/uapi/drm/etnaviv_drm.h @@ -140,6 +140,7 @@ struct drm_etnaviv_gem_submit_reloc { __u32 reloc_idx; /* in, index of reloc_bo buffer */ __u64 reloc_offset; /* in, offset from start of reloc_bo */ __u32 flags; /* in, placeholder for now, no defined values */ + __uapi_arch_pad32; }; /* Each buffer referenced elsewhere in the cmdstream submit (ie. the @@ -263,7 +264,8 @@ struct drm_etnaviv_pm_signal { __u16 iter; /* in/out, select pm source at index iter */ __u16 id; /* out, id of signal */ char name[64]; /* out, name of domain */ -}; + __uapi_arch_pad16; +} __uapi_arch_align; #define DRM_ETNAVIV_GET_PARAM 0x00 /* placeholder: diff --git a/include/uapi/drm/i915_drm.h b/include/uapi/drm/i915_drm.h index 535cb68fdb5c..13ff9be3db27 100644 --- a/include/uapi/drm/i915_drm.h +++ b/include/uapi/drm/i915_drm.h @@ -28,6 +28,7 @@ #define _UAPI_I915_DRM_H_ #include "drm.h" +#include <linux/stddef.h> #if defined(__cplusplus) extern "C" { @@ -559,6 +560,7 @@ typedef struct drm_i915_batchbuffer { int DR1; /* hw flags for GFX_OP_DRAWRECT_INFO */ int DR4; /* window origin for GFX_OP_DRAWRECT_INFO */ int num_cliprects; /* mulitpass with multiple cliprects? */ + __uapi_arch_pad_long; struct drm_clip_rect __user *cliprects; /* pointer to userspace cliprects */ } drm_i915_batchbuffer_t; @@ -820,6 +822,7 @@ typedef struct drm_i915_irq_wait { struct drm_i915_getparam { /** @param: Driver parameter to query. */ __s32 param; + __uapi_arch_pad_long; /** * @value: Address of memory where queried value should be put. @@ -828,7 +831,7 @@ struct drm_i915_getparam { * compat32 code. Don't repeat this mistake. */ int __user *value; -}; +} __uapi_arch_align; /** * typedef drm_i915_getparam_t - Driver parameter query structure. @@ -857,8 +860,9 @@ typedef struct drm_i915_mem_alloc { int region; int alignment; int size; + __uapi_arch_pad_long; int __user *region_offset; /* offset from start of fb or agp */ -} drm_i915_mem_alloc_t; +} __uapi_arch_align drm_i915_mem_alloc_t; typedef struct drm_i915_mem_free { int region; @@ -3422,7 +3426,19 @@ struct drm_i915_query_perf_config { * String formatted like "%08x-%04x-%04x-%04x-%012x" */ char uuid[36]; - }; + + /* + * uuid is the longest field in the union but is not a multiple + * of alignof(__u64) in size, which leads to a -Wpadded warning. + * add an explicit union member here with the correct size on + * the architectures that need padding or zero length on those + * that do not. + */ + struct { + char __pad[36]; + __uapi_arch_pad32; + }; + } __uapi_arch_align; /** * @flags: @@ -3447,8 +3463,11 @@ struct drm_i915_query_perf_config { * - &drm_i915_perf_oa_config.n_boolean_regs * - &drm_i915_perf_oa_config.n_flex_regs */ - __u8 data[]; -}; + union { + __uapi_arch_pad32; /* pad to alignof(__u64) */ + __DECLARE_FLEX_ARRAY(__u8, data); + }; +} __uapi_arch_align; /** * enum drm_i915_gem_memory_class - Supported memory classes @@ -3867,7 +3886,8 @@ struct drm_i915_gem_create_ext_protected_content { struct i915_user_extension base; /** @flags: reserved for future usage, currently MBZ */ __u32 flags; -}; + __uapi_arch_pad32; +} __uapi_arch_align; /** * struct drm_i915_gem_create_ext_set_pat - The diff --git a/include/uapi/drm/ivpu_accel.h b/include/uapi/drm/ivpu_accel.h index 264505d54f93..f80a580a21bc 100644 --- a/include/uapi/drm/ivpu_accel.h +++ b/include/uapi/drm/ivpu_accel.h @@ -389,7 +389,8 @@ struct drm_ivpu_submit { * %DRM_IVPU_JOB_PRIORITY_REALTIME */ __u32 priority; -}; + __uapi_arch_pad32; +} __uapi_arch_align; /** * struct drm_ivpu_cmdq_submit - Submit commands to the VPU using explicit command queue @@ -488,7 +489,8 @@ struct drm_ivpu_metric_streamer_start { __u32 sample_size; /** @max_data_size: Returned max @data_size from %DRM_IOCTL_IVPU_METRIC_STREAMER_GET_DATA */ __u32 max_data_size; -}; + __uapi_arch_pad32; +} __uapi_arch_align; /** * struct drm_ivpu_metric_streamer_get_data - Copy collected metric data diff --git a/include/uapi/drm/msm_drm.h b/include/uapi/drm/msm_drm.h index 7f2e594be4eb..d5c6c9d40bc4 100644 --- a/include/uapi/drm/msm_drm.h +++ b/include/uapi/drm/msm_drm.h @@ -430,7 +430,8 @@ struct drm_msm_wait_fence { __u32 flags; /* in, bitmask of MSM_WAIT_FENCE_x */ struct drm_msm_timespec timeout; /* in */ __u32 queueid; /* in, submitqueue id */ -}; + __uapi_arch_pad32; +} __uapi_arch_align; /* madvise provides a way to tell the kernel in case a buffers contents * can be discarded under memory pressure, which is useful for userspace diff --git a/include/uapi/drm/panfrost_drm.h b/include/uapi/drm/panfrost_drm.h index 50d5337f35ef..f5b1e3b56897 100644 --- a/include/uapi/drm/panfrost_drm.h +++ b/include/uapi/drm/panfrost_drm.h @@ -402,14 +402,16 @@ struct panfrost_dump_object_header { __u32 gpu_id; __u32 major; __u32 minor; + __uapi_arch_pad32; __u64 nbos; - } reghdr; + } __uapi_arch_align reghdr; struct { __u32 valid; + __uapi_arch_pad32; __u64 iova; __u32 data[2]; - } bomap; + } __uapi_arch_align bomap; /* * Force same size in case we want to expand the header diff --git a/include/uapi/drm/radeon_drm.h b/include/uapi/drm/radeon_drm.h index 490a59cc4532..95db5d8eea49 100644 --- a/include/uapi/drm/radeon_drm.h +++ b/include/uapi/drm/radeon_drm.h @@ -569,6 +569,7 @@ typedef struct drm_radeon_init { RADEON_INIT_R300_CP = 0x04, RADEON_INIT_R600_CP = 0x05 } func; + __uapi_arch_pad_long; unsigned long sarea_priv_offset; int is_pci; int cp_mode; @@ -581,6 +582,7 @@ typedef struct drm_radeon_init { unsigned int back_offset, back_pitch; unsigned int depth_bpp; unsigned int depth_offset, depth_pitch; + __uapi_arch_pad_long; unsigned long fb_offset; unsigned long mmio_offset; @@ -588,7 +590,7 @@ typedef struct drm_radeon_init { unsigned long ring_rptr_offset; unsigned long buffers_offset; unsigned long gart_textures_offset; -} drm_radeon_init_t; +} __uapi_arch_align drm_radeon_init_t; typedef struct drm_radeon_cp_stop { int flush; @@ -619,8 +621,9 @@ typedef struct drm_radeon_clear { unsigned int clear_depth; unsigned int color_mask; unsigned int depth_mask; /* misnamed field: should be stencil */ + __uapi_arch_pad_long; drm_radeon_clear_rect_t __user *depth_boxes; -} drm_radeon_clear_t; +} __uapi_arch_align drm_radeon_clear_t; typedef struct drm_radeon_vertex { int prim; @@ -645,10 +648,12 @@ typedef struct drm_radeon_vertex2 { int idx; /* Index of vertex buffer */ int discard; /* Client finished with buffer? */ int nr_states; + __uapi_arch_pad_long; drm_radeon_state_t __user *state; int nr_prims; + __uapi_arch_pad_long; drm_radeon_prim_t __user *prim; -} drm_radeon_vertex2_t; +} __uapi_arch_align drm_radeon_vertex2_t; /* v1.3 - obsoletes drm_radeon_vertex2 * - allows arbitrarily large cliprect list @@ -662,10 +667,12 @@ typedef struct drm_radeon_vertex2 { */ typedef struct drm_radeon_cmd_buffer { int bufsz; + __uapi_arch_pad_long; char __user *buf; int nbox; + __uapi_arch_pad_long; struct drm_clip_rect __user *boxes; -} drm_radeon_cmd_buffer_t; +} __uapi_arch_align drm_radeon_cmd_buffer_t; typedef struct drm_radeon_tex_image { unsigned int x, y; /* Blit coordinates */ @@ -679,6 +686,7 @@ typedef struct drm_radeon_texture { int format; int width; /* Texture image coordinates */ int height; + __uapi_arch_pad_long; drm_radeon_tex_image_t __user *image; } drm_radeon_texture_t; @@ -723,8 +731,9 @@ typedef struct drm_radeon_indirect { typedef struct drm_radeon_getparam { int param; + __uapi_arch_pad_long; void __user *value; -} drm_radeon_getparam_t; +} __uapi_arch_align drm_radeon_getparam_t; /* 1.6: Set up a memory manager for regions of shared memory: */ @@ -735,8 +744,9 @@ typedef struct drm_radeon_mem_alloc { int region; int alignment; int size; + __uapi_arch_pad_long; int __user *region_offset; /* offset from start of fb or GART */ -} drm_radeon_mem_alloc_t; +} __uapi_arch_align drm_radeon_mem_alloc_t; typedef struct drm_radeon_mem_free { int region; @@ -765,8 +775,9 @@ typedef struct drm_radeon_irq_wait { typedef struct drm_radeon_setparam { unsigned int param; + __uapi_arch_pad32; __s64 value; -} drm_radeon_setparam_t; +} __uapi_arch_align drm_radeon_setparam_t; #define RADEON_SETPARAM_FB_LOCATION 1 /* determined framebuffer location */ #define RADEON_SETPARAM_SWITCH_TILING 2 /* enable/disable color tiling */ @@ -816,7 +827,8 @@ struct drm_radeon_gem_create { __u32 handle; __u32 initial_domain; __u32 flags; -}; + __uapi_arch_pad32; +} __uapi_arch_align; /* * This is not a reliable API and you should expect it to fail for any diff --git a/include/uapi/drm/v3d_drm.h b/include/uapi/drm/v3d_drm.h index d9b01f4c3a04..626e0619770d 100644 --- a/include/uapi/drm/v3d_drm.h +++ b/include/uapi/drm/v3d_drm.h @@ -354,6 +354,8 @@ struct drm_v3d_submit_csd { __u32 cfg[7]; __u32 coef[4]; + __uapi_arch_pad32; + /* Pointer to a u32 array of the BOs that are referenced by the job. */ __u64 bo_handles; @@ -379,7 +381,7 @@ struct drm_v3d_submit_csd { __u32 flags; __u32 pad; -}; +} __uapi_arch_align; /** * struct drm_v3d_indirect_csd - ioctl extension for the CPU job to create an diff --git a/include/uapi/drm/vc4_drm.h b/include/uapi/drm/vc4_drm.h index 2cac6277a1d7..bdfaabe35474 100644 --- a/include/uapi/drm/vc4_drm.h +++ b/include/uapi/drm/vc4_drm.h @@ -432,8 +432,9 @@ struct drm_vc4_perfmon_destroy { */ struct drm_vc4_perfmon_get_values { __u32 id; + __uapi_arch_pad32; __u64 values_ptr; -}; +} __uapi_arch_align; #if defined(__cplusplus) } diff --git a/include/uapi/drm/vmwgfx_drm.h b/include/uapi/drm/vmwgfx_drm.h index 7d786a0cc835..11553d87e1b7 100644 --- a/include/uapi/drm/vmwgfx_drm.h +++ b/include/uapi/drm/vmwgfx_drm.h @@ -227,6 +227,9 @@ struct drm_vmw_surface_create_req { struct drm_vmw_surface_arg { __s32 sid; enum drm_vmw_handle_type handle_type; +#ifdef __hexagon__ + __u8 :8, :8, :8; +#endif }; /** @@ -865,6 +868,9 @@ enum drm_vmw_shader_type { */ struct drm_vmw_shader_create_arg { enum drm_vmw_shader_type shader_type; +#ifdef __hexagon__ + __u8 :8, :8, :8; +#endif __u32 size; __u32 buffer_handle; __u32 shader_handle; @@ -941,6 +947,9 @@ struct drm_vmw_gb_surface_create_req { __u32 format; __u32 mip_levels; enum drm_vmw_surface_flags drm_surface_flags; +#ifdef __hexagon__ + __u8 :8, :8, :8; +#endif __u32 multisample_count; __u32 autogen_filter; __u32 buffer_handle; @@ -1170,6 +1179,10 @@ enum drm_vmw_surface_version { struct drm_vmw_gb_surface_create_ext_req { struct drm_vmw_gb_surface_create_req base; enum drm_vmw_surface_version version; +#ifdef __hexagon__ + /* hexagon uses short enums */ + __u8 :8, :8, :8; +#endif __u32 svga3d_flags_upper_32_bits; __u32 multisample_pattern; __u32 quality_level; ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-09-07 8:27 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2026-09-04 19:52 [git pull] drm fixes for 7.3-rc2 Dave Airlie 2026-09-04 21:00 ` pr-tracker-bot 2026-09-07 7:36 ` Geert Uytterhoeven 2026-09-07 7:38 ` Geert Uytterhoeven 2026-09-07 8:27 ` Arnd Bergmann
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®