linux/drivers/gpu/drm
Ard Biesheuvel ddbfac1528 drm/amd/display: Fix unsafe uses of kernel mode FPU
The point of isolating code that uses kernel mode FPU in separate
compilation units is to ensure that even implicit uses of, e.g., SIMD
registers for spilling occur only in a context where this is permitted,
i.e., from inside a kernel_fpu_begin/end block.

This is important on arm64, which uses -mgeneral-regs-only to build all
kernel code, with the exception of such compilation units where FP or
SIMD registers are expected to be used. Given that the compiler may
invent uses of FP/SIMD anywhere in such a unit, none of its code may be
accessible from outside a kernel_fpu_begin/end block.

This means that all callers into such compilation units must use the
DC_FP start/end macros, which must not occur there themselves. For
robustness, all functions with external linkage that reside there should
call dc_assert_fp_enabled() to assert that the FPU context was set up
correctly.

Fix this for the DCN35, DCN351 and DCN36 implementations.

Cc: Austin Zheng <austin.zheng@amd.com>
Cc: Jun Lei <jun.lei@amd.com>
Cc: Harry Wentland <harry.wentland@amd.com>
Cc: Leo Li <sunpeng.li@amd.com>
Cc: Rodrigo Siqueira <siqueira@igalia.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: "Christian König" <christian.koenig@amd.com>
Cc: amd-gfx@lists.freedesktop.org
Cc: dri-devel@lists.freedesktop.org
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2025-10-07 14:09:19 -04:00
..
adp
amd drm/amd/display: Fix unsafe uses of kernel mode FPU 2025-10-07 14:09:19 -04:00
arm drm for 6.17-rc1 2025-07-30 19:26:49 -07:00
armada drm/armada: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct() 2025-07-16 20:07:32 +03:00
aspeed
ast drm/ast: ast_2100: Remove unneeded semicolon 2025-09-05 14:53:06 +02:00
atmel-hlcdc
bridge Short summary of fixes pull: 2025-09-26 13:06:39 +10:00
ci drm/ci: Uprev igt 2025-07-04 11:06:38 -07:00
clients drm/fbdev-client: Skip DRM clients if modesetting is absent 2025-07-06 14:05:07 +03:00
display drm/display: bridge-connector: remove unused variable assignment 2025-09-05 15:42:21 +02:00
etnaviv drm for 6.17-rc1 2025-07-30 19:26:49 -07:00
exynos drm/exynos: dsi: add support for exynos7870 2025-09-15 20:19:23 +09:00
fsl-dcu
gma500 drm/gma500: Do not clear framebuffer GEM objects during cleanup 2025-09-09 10:25:32 +02:00
gud drm/gud: Replace simple display pipe with DRM atomic helpers 2025-09-01 08:42:51 +02:00
hisilicon drm/hisilicon/hibmc: fix dp and vga cannot show together 2025-08-17 18:32:31 +03:00
hyperv drm/hyperv: Add support for drm_panic 2025-06-05 14:59:56 +02:00
i915 Cross-subsystem Changes: 2025-09-19 13:02:46 +10:00
imagination drm/imagination: Enable PowerVR driver for RISC-V 2025-09-01 12:11:00 +01:00
imx
ingenic drm: Pass the format info to .fb_create() 2025-07-16 20:03:14 +03:00
kmb
lib drm: Include <linux/export.h> 2025-06-16 09:01:23 +02:00
lima drm for 6.17-rc1 2025-07-30 19:26:49 -07:00
logicvc
loongson
mcde
mediatek drm/mediatek: clean up driver data initialisation 2025-09-10 12:52:59 +00:00
meson drm-misc-next for 6.17: 2025-06-18 08:09:35 +10:00
mgag200 drm for 6.17-rc1 2025-07-30 19:26:49 -07:00
msm Merge tag 'drm-msm-next-2025-09-12' of https://gitlab.freedesktop.org/drm/msm into drm-next 2025-09-16 10:21:38 +10:00
mxsfb drm/mxsfb: put the bridge returned by drm_bridge_chain_get_first_bridge() 2025-07-22 13:01:28 +02:00
nouveau Linux 6.17-rc6 2025-09-15 17:51:07 +10:00
nova DRM Rust changes for v6.18 2025-09-17 16:13:49 +10:00
omapdrm drm/omapdrm: use drm_bridge_chain_get_last_bridge() 2025-09-02 11:38:29 +02:00
panel drm/panel-edp: Add 4 more panels needed by mt8189 Chromebooks 2025-09-08 08:55:42 -07:00
panfrost Merge drm/drm-next into drm-misc-next 2025-08-20 09:33:06 +02:00
panthor Linux 6.17-rc6 2025-09-15 17:51:07 +10:00
pl111
qxl drm/gem: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct() 2025-07-16 20:05:58 +03:00
radeon drm/radeon: use dev_warn_once() in CS parsers 2025-09-05 17:38:42 -04:00
renesas drm/rcar-du: dsi: Implement DSI command support 2025-09-08 09:45:01 +03:00
rockchip Linux 6.17-rc6 2025-09-15 17:51:07 +10:00
scheduler drm/sched: Fix racy access to drm_sched_entity.dependency 2025-09-02 12:58:56 +02:00
sitronix drm/st7571-i2c: add support for 2bit grayscale for XRGB8888 2025-09-01 15:35:29 +02:00
solomon drm/ssd130x: Remove the use of dev_err_probe() 2025-09-01 16:09:19 +02:00
sprd
sti drm/sti: Remove redundant ternary operators 2025-09-05 13:17:21 +02:00
stm drm/stm: ltdc: handle lvds pixel clock 2025-08-28 17:43:57 +02:00
sun4i
sysfb drm/sysfb: Remove double assignment to pointer crtc_state 2025-09-04 09:26:39 +02:00
tegra Revert "drm/tegra: Use dma_buf from GEM object instance" 2025-08-26 10:41:27 +02:00
tests Linux 6.17-rc6 2025-09-15 17:51:07 +10:00
tidss drm/tidss: dispc: Explicitly include bitfield.h 2025-09-03 12:16:04 +03:00
tilcdc
tiny drm/tiny: pixpaper: Fix missing dependency on DRM_GEM_SHMEM_HELPER 2025-09-23 14:07:04 +02:00
ttm ttm/bo: add an API to populate a bo before exporting. 2025-09-11 10:01:38 +10:00
tve200
tyr rust: drm: Introduce the Tyr driver for Arm Mali GPUs 2025-09-11 12:20:03 +00:00
udl drm/gem-shmem: Do not map s/g table by default 2025-07-07 15:23:41 +02:00
v3d drm/v3d: Protect per-fd reset counter against fd release 2025-08-29 10:28:11 -03:00
vboxvideo
vc4 drm: Pass the format info to .fb_create() 2025-07-16 20:03:14 +03:00
vgem drm/vgem/vgem_drv convert to use faux_device 2025-07-07 15:24:14 +02:00
virtio drm/virtio: clean up minor codestyle issues 2025-08-20 13:36:45 +03:00
vkms drm/vkms: Add P01* formats 2025-09-05 19:57:26 +02:00
vmwgfx Merge drm/drm-next into drm-misc-n 2025-08-11 14:37:45 +02:00
xe UAPI Changes: 2025-09-22 08:21:42 +10:00
xen drm/gem: Pass along the format info from .fb_create() to drm_helper_mode_fill_fb_struct() 2025-07-16 20:05:58 +03:00
xlnx drm for 6.17-rc1 2025-07-30 19:26:49 -07:00
drm_atomic_helper.c drm/atomic-helper: put the bridge returned by drm_bridge_chain_get_first_bridge() 2025-07-22 13:01:28 +02:00
drm_atomic_state_helper.c drm: Include <linux/export.h> 2025-06-16 09:01:23 +02:00
drm_atomic_uapi.c drm: re-allow no-op changes on non-primary planes in async flips 2025-08-22 14:31:21 -03:00
drm_atomic.c drm: Include <linux/export.h> 2025-06-16 09:01:23 +02:00
drm_auth.c drm: Include <linux/export.h> 2025-06-16 09:01:23 +02:00
drm_blend.c
drm_bridge_helper.c drm/bridge: Include <linux/export.h> 2025-06-16 09:02:25 +02:00
drm_bridge.c drm/debugfs: bridges_show: show refcount 2025-09-02 11:18:55 +02:00
drm_buddy.c drm for 6.17-rc1 2025-07-30 19:26:49 -07:00
drm_cache.c drm/gpu: Remove dead checks on wbinvd_on_all_cpus()'s return value 2025-07-10 13:07:26 +02:00
drm_client_event.c drm/client: Include <linux/export.h> 2025-06-16 09:02:29 +02:00
drm_client_modeset.c drm/client: Include <linux/export.h> 2025-06-16 09:02:29 +02:00
drm_client.c drm/client: Include <linux/export.h> 2025-06-16 09:02:29 +02:00
drm_color_mgmt.c drm/color-mgmt: Prepare for RGB332 palettes 2025-08-26 09:54:18 +02:00
drm_connector.c drm/connector: move HDR sink metadata to display info 2025-06-23 21:44:55 +03:00
drm_crtc_helper_internal.h
drm_crtc_helper.c
drm_crtc_internal.h
drm_crtc.c
drm_damage_helper.c drm: Include <linux/export.h> 2025-06-16 09:01:23 +02:00
drm_debugfs_crc.c drm: Include <linux/export.h> 2025-06-16 09:01:23 +02:00
drm_debugfs.c drm: add debugfs support on per client-id basis 2025-07-04 15:59:06 +02:00
drm_displayid_internal.h
drm_displayid.c
drm_draw_internal.h
drm_draw.c
drm_drv.c Merge drm/drm-next into drm-intel-next 2025-09-10 08:01:42 -04:00
drm_dumb_buffers.c
drm_edid_load.c
drm_edid.c drm-misc-next for 6.17: 2025-06-27 09:58:05 +10:00
drm_eld.c
drm_encoder.c
drm_exec.c drm: Include <linux/export.h> 2025-06-16 09:01:23 +02:00
drm_fb_dma_helper.c drm: Include <linux/export.h> 2025-06-16 09:01:23 +02:00
drm_fb_helper.c drm/client: Include <linux/export.h> 2025-06-16 09:02:29 +02:00
drm_fbdev_dma.c drm/client: Include <linux/export.h> 2025-06-16 09:02:29 +02:00
drm_fbdev_shmem.c drm/client: Include <linux/export.h> 2025-06-16 09:02:29 +02:00
drm_fbdev_ttm.c drm/client: Include <linux/export.h> 2025-06-16 09:02:29 +02:00
drm_file.c drm: add debugfs support on per client-id basis 2025-07-04 15:59:06 +02:00
drm_flip_work.c drm: Include <linux/export.h> 2025-06-16 09:01:23 +02:00
drm_format_helper.c drm/format-helper: introduce drm_fb_xrgb8888_to_gray2() 2025-09-01 15:35:07 +02:00
drm_format_internal.h drm/format-helper: Split off byte swapping from drm_fb_xrgb8888_to_rgb565() 2025-06-27 15:59:23 +02:00
drm_fourcc.c drm: Pass pixel_format+modifier directly to drm_get_format_info() 2025-07-16 20:01:13 +03:00
drm_framebuffer.c drm for 6.17-rc1 2025-07-30 19:26:49 -07:00
drm_gem_atomic_helper.c drm/gem: Include <linux/export.h> 2025-06-16 09:02:35 +02:00
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 drm for 6.17-rc1 2025-07-30 19:26:49 -07:00
drm_gem_shmem_helper.c drm for 6.17-rc1 2025-07-30 19:26:49 -07:00
drm_gem_ttm_helper.c drm/gem: Include <linux/export.h> 2025-06-16 09:02:35 +02:00
drm_gem_vram_helper.c drm/gem: Include <linux/export.h> 2025-06-16 09:02:35 +02:00
drm_gem.c drm_gem: add mutex to drm_gem_object.gpuva 2025-08-28 12:40:43 +02:00
drm_gpusvm.c drm/gpusvm: export drm_gpusvm_pages API 2025-09-05 11:45:47 +01:00
drm_gpuvm.c Linux 6.17-rc6 2025-09-15 17:51:07 +10:00
drm_internal.h Merge drm/drm-next into drm-misc-n 2025-08-11 14:37:45 +02:00
drm_ioc32.c
drm_ioctl.c drm: Add DRM prime interface to reassign GEM handle 2025-07-18 08:59:24 +02:00
drm_kms_helper_common.c
drm_lease.c
drm_managed.c drm: Include <linux/export.h> 2025-06-16 09:01:23 +02:00
drm_mipi_dbi.c drm/format-helper: Split off byte swapping from drm_fb_xrgb8888_to_rgb565() 2025-06-27 15:59:23 +02:00
drm_mipi_dsi.c drm: Add MIPI read_multi func and two write macros 2025-08-14 15:42:26 -07:00
drm_mm.c
drm_mode_config.c drm: Include <linux/export.h> 2025-06-16 09:01:23 +02:00
drm_mode_object.c
drm_modes.c
drm_modeset_helper.c drm: Make passing of format info to drm_helper_mode_fill_fb_struct() mandatory 2025-07-16 20:12:35 +03:00
drm_modeset_lock.c drm: Include <linux/export.h> 2025-06-16 09:01:23 +02:00
drm_of.c drm: of: fix documentation reference 2025-08-21 16:21:08 +02:00
drm_pagemap.c drm/pagemap: Allocate folios when possible 2025-08-06 13:34:58 +02:00
drm_panel_backlight_quirks.c drm: panel-backlight-quirks: Add Steam Deck brightness quirk 2025-09-03 10:23:03 -05:00
drm_panel_orientation_quirks.c drm/panel: Include <linux/export.h> 2025-06-16 09:02:39 +02:00
drm_panel.c drm/panel: Allow powering on panel follower after panel is enabled 2025-08-25 09:17:49 -07:00
drm_panic_qr.rs drm/panic: Add a u64 divide by 10 for arm32 2025-08-12 09:33:05 +02:00
drm_panic.c drm: Include <linux/export.h> 2025-06-16 09:01:23 +02:00
drm_pci.c drm: Do not include <linux/export.h> 2025-06-16 09:00:09 +02:00
drm_plane_helper.c drm: Include <linux/export.h> 2025-06-16 09:01:23 +02:00
drm_plane.c drm: Include <linux/export.h> 2025-06-16 09:01:23 +02:00
drm_prime.c Merge drm/drm-next into drm-misc-n 2025-08-11 14:37:45 +02:00
drm_print.c drm: Include <linux/export.h> 2025-06-16 09:01:23 +02:00
drm_privacy_screen_x86.c
drm_privacy_screen.c drm: Include <linux/export.h> 2025-06-16 09:01:23 +02:00
drm_probe_helper.c drm/probe-helper: put the bridge returned by drm_bridge_chain_get_first_bridge() 2025-07-22 13:01:28 +02:00
drm_property.c
drm_rect.c
drm_self_refresh_helper.c drm: Include <linux/export.h> 2025-06-16 09:01:23 +02:00
drm_simple_kms_helper.c drm: Include <linux/export.h> 2025-06-16 09:01:23 +02:00
drm_suballoc.c drm: Include <linux/export.h> 2025-06-16 09:01:23 +02:00
drm_syncobj.c drm: Include <linux/export.h> 2025-06-16 09:01:23 +02:00
drm_sysfs.c DRM: Add a new 'boot_display' attribute 2025-09-10 09:35:33 -05:00
drm_trace_points.c
drm_trace.h
drm_vblank_work.c drm: Include <linux/export.h> 2025-06-16 09:01:23 +02:00
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: Include <linux/export.h> 2025-06-16 09:01:23 +02:00
drm_writeback.c drm for 6.17-rc1 2025-07-30 19:26:49 -07:00
Kconfig rust: drm: Introduce the Tyr driver for Arm Mali GPUs 2025-09-11 12:20:03 +00:00
Kconfig.debug drm/format-helper: Move drm_fb_build_fourcc_list() to sysfb helpers 2025-06-18 10:46:03 +02:00
Makefile rust: drm: Introduce the Tyr driver for Arm Mali GPUs 2025-09-11 12:20:03 +00:00