linux/drivers
CHANDAN VURDIGERE NATARAJ 50e6cb3fd2 drm/amd/display: Fix by adding FPU protection for dcn30_internal_validate_bw
[Why]
Below general protection fault observed when WebGL Aquarium is run for
longer duration. If drm debug logs are enabled and set to 0x1f then the
issue is observed within 10 minutes of run.

[  100.717056] general protection fault, probably for non-canonical address 0x2d33302d32323032: 0000 [#1] PREEMPT SMP NOPTI
[  100.727921] CPU: 3 PID: 1906 Comm: DrmThread Tainted: G        W         5.15.30 #12 d726c6a2d6ebe5cf9223931cbca6892f916fe18b
[  100.754419] RIP: 0010:CalculateSwathWidth+0x1f7/0x44f
[  100.767109] Code: 00 00 00 f2 42 0f 11 04 f0 48 8b 85 88 00 00 00 f2 42 0f 10 04 f0 48 8b 85 98 00 00 00 f2 42 0f 11 04 f0 48 8b 45 10 0f 57 c0 <f3> 42 0f 2a 04 b0 0f 57 c9 f3 43 0f 2a 0c b4 e8 8c e2 f3 ff 48 8b
[  100.781269] RSP: 0018:ffffa9230079eeb0 EFLAGS: 00010246
[  100.812528] RAX: 2d33302d32323032 RBX: 0000000000000500 RCX: 0000000000000000
[  100.819656] RDX: 0000000000000001 RSI: ffff99deb712c49c RDI: 0000000000000000
[  100.826781] RBP: ffffa9230079ef50 R08: ffff99deb712460c R09: ffff99deb712462c
[  100.833907] R10: ffff99deb7124940 R11: ffff99deb7124d70 R12: ffff99deb712ae44
[  100.841033] R13: 0000000000000001 R14: 0000000000000000 R15: ffffa9230079f0a0
[  100.848159] FS:  00007af121212640(0000) GS:ffff99deba780000(0000) knlGS:0000000000000000
[  100.856240] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  100.861980] CR2: 0000209000fe1000 CR3: 000000011b18c000 CR4: 0000000000350ee0
[  100.869106] Call Trace:
[  100.871555]  <TASK>
[  100.873655]  ? asm_sysvec_reschedule_ipi+0x12/0x20
[  100.878449]  CalculateSwathAndDETConfiguration+0x1a3/0x6dd
[  100.883937]  dml31_ModeSupportAndSystemConfigurationFull+0x2ce4/0x76da
[  100.890467]  ? kallsyms_lookup_buildid+0xc8/0x163
[  100.895173]  ? kallsyms_lookup_buildid+0xc8/0x163
[  100.899874]  ? __sprint_symbol+0x80/0x135
[  100.903883]  ? dm_update_plane_state+0x3f9/0x4d2
[  100.908500]  ? symbol_string+0xb7/0xde
[  100.912250]  ? number+0x145/0x29b
[  100.915566]  ? vsnprintf+0x341/0x5ff
[  100.919141]  ? desc_read_finalized_seq+0x39/0x87
[  100.923755]  ? update_load_avg+0x1b9/0x607
[  100.927849]  ? compute_mst_dsc_configs_for_state+0x7d/0xd5b
[  100.933416]  ? fetch_pipe_params+0xa4d/0xd0c
[  100.937686]  ? dc_fpu_end+0x3d/0xa8
[  100.941175]  dml_get_voltage_level+0x16b/0x180
[  100.945619]  dcn30_internal_validate_bw+0x10e/0x89b
[  100.950495]  ? dcn31_validate_bandwidth+0x68/0x1fc
[  100.955285]  ? resource_build_scaling_params+0x98b/0xb8c
[  100.960595]  ? dcn31_validate_bandwidth+0x68/0x1fc
[  100.965384]  dcn31_validate_bandwidth+0x9a/0x1fc
[  100.970001]  dc_validate_global_state+0x238/0x295
[  100.974703]  amdgpu_dm_atomic_check+0x9c1/0xbce
[  100.979235]  ? _printk+0x59/0x73
[  100.982467]  drm_atomic_check_only+0x403/0x78b
[  100.986912]  drm_mode_atomic_ioctl+0x49b/0x546
[  100.991358]  ? drm_ioctl+0x1c1/0x3b3
[  100.994936]  ? drm_atomic_set_property+0x92a/0x92a
[  100.999725]  drm_ioctl_kernel+0xdc/0x149
[  101.003648]  drm_ioctl+0x27f/0x3b3
[  101.007051]  ? drm_atomic_set_property+0x92a/0x92a
[  101.011842]  amdgpu_drm_ioctl+0x49/0x7d
[  101.015679]  __se_sys_ioctl+0x7c/0xb8
[  101.015685]  do_syscall_64+0x5f/0xb8
[  101.015690]  ? __irq_exit_rcu+0x34/0x96

[How]
It calles populate_dml_pipes which uses doubles to initialize.
Adding FPU protection avoids context switch and probable loss of vba context
as there is potential contention while drm debug logs are enabled.

Signed-off-by: CHANDAN VURDIGERE NATARAJ <chandan.vurdigerenataraj@amd.com>
Reviewed-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2022-04-05 10:26:05 -04:00
..
accessibility speakup-dectlk: Restore pitch setting 2022-02-08 12:15:04 +01:00
acpi Merge branch 'acpi-processor' 2022-02-18 19:36:36 +01:00
amba
android
ata ata: pata_hpt37x: disable primary channel on HPT371 2022-02-23 09:39:37 +09:00
atm
auxdisplay
base regmap: Fix for v5.17 2022-02-25 12:30:01 -08:00
bcma
block block: fix surprise removal for drivers calling blk_set_queue_dying 2022-02-17 07:54:03 -07:00
bluetooth
bus bus: mhi: pci_generic: Add mru_default for Cinterion MV31-W 2022-02-06 13:19:46 +01:00
cdrom
char Linux 5.17-rc4 2022-02-14 10:52:27 +10:00
clk clk: jz4725b: fix mmc0 clock gating 2022-02-17 17:05:07 -08:00
clocksource Fixes for omaps 2022-02-07 17:42:44 +01:00
comedi
connector connector/cn_proc: Use task_is_in_init_pid_ns() 2022-01-26 18:57:09 -08:00
counter counter: fix an IS_ERR() vs NULL bug 2022-01-26 19:40:33 +01:00
cpufreq cpufreq: qcom-hw: Delay enabling throttle_irq 2022-02-09 13:18:49 +05:30
cpuidle
crypto crypto: octeontx2 - Avoid stack variable overflow 2022-01-31 11:22:53 +11:00
cxl
dax
dca
devfreq
dio
dma dmaengine: shdma: Fix runtime PM imbalance on error 2022-02-15 11:04:16 +05:30
dma-buf drm-misc-next for v5.18: 2022-02-25 05:50:18 +10:00
edac EDAC: Fix calculation of returned address and next offset in edac_align_ptr() 2022-02-15 15:54:46 +01:00
eisa
extcon
firewire
firmware drm-misc-next for v5.18: 2022-02-01 19:02:41 +10:00
fpga
fsi
gnss
gpio Pin control fixes for the v5.17 series: 2022-02-27 12:30:54 -08:00
gpu drm/amd/display: Fix by adding FPU protection for dcn30_internal_validate_bw 2022-04-05 10:26:05 -04:00
greybus
hid HID: amd_sfh: Add interrupt handler to process interrupts 2022-02-14 16:28:51 +01:00
hsi
hv Drivers: hv: utils: Make use of the helper macro LIST_HEAD() 2022-02-09 14:33:21 +00:00
hwmon hwmon: (pmbus) Clear pmbus fault/warning bits after read 2022-02-22 08:15:39 -08:00
hwspinlock
hwtracing
i2c i2c: brcmstb: fix support for DSL and CM variants 2022-02-18 10:37:33 +01:00
i3c
idle
iio 1st set of IIO fixes for the 5.17 cycle. 2022-02-21 17:58:09 +01:00
infiniband RDMA/cma: Do not change route.addr.src_addr outside state checks 2022-02-25 16:46:51 -04:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2022-02-20 11:15:46 -08:00
interconnect
iommu iommu/amd: Fix loop timeout issue in iommu_ga_log_enable() 2022-02-04 12:57:26 +01:00
ipack
irqchip irqchip/sifive-plic: Add missing thead,c900-plic match string 2022-02-02 10:49:29 +00:00
isdn
leds
macintosh
mailbox
mcb
md block: fix surprise removal for drivers calling blk_set_queue_dying 2022-02-17 07:54:03 -07:00
media dma-buf-map: Rename to iosys-map 2022-02-07 16:35:35 -08:00
memory
memstick
message
mfd
misc Linux 5.17-rc4 2022-02-14 10:52:27 +10:00
mmc mmc: block: fix read single on recovery logic 2022-02-08 16:04:49 +01:00
most
mtd Char/Misc driver fixes for 5.17-rc6 2022-02-25 12:12:06 -08:00
mux
net net: mv643xx_eth: process retval from of_get_mac_address 2022-02-24 10:05:08 -08:00
nfc
ntb
nubus
nvdimm
nvme nvme-tcp: send H2CData PDUs based on MAXH2CDATA 2022-02-23 14:43:11 +01:00
nvmem nvmem: core: Fix a conflict between MTD and NVMEM on wp-gpios property 2022-02-21 17:59:25 +01:00
of of/fdt: move elfcorehdr reservation early for crash dump kernel 2022-02-17 17:13:52 -06:00
opp
parisc parisc: Fix sglist access in ccio-dma.c 2022-01-28 10:15:34 +01:00
parport
pci A single fix for a regression caused by the recent PCI/MSI rework which 2022-02-27 13:07:40 -08:00
pcmcia
perf
phy phy: dphy: Correct clk_pre parameter 2022-02-02 10:33:04 +05:30
pinctrl intel-pinctrl for v5.17-5 2022-02-19 02:03:58 +01:00
platform Linux 5.17-rc6 2022-02-28 14:57:14 +10:00
pnp
power power: supply: bq256xx: Handle OOM correctly 2022-02-11 21:19:51 +01:00
powercap
pps
ps3
ptp
pwm
rapidio
ras
regulator regulator: da9121: Remove surplus DA9141 parameters 2022-02-22 11:56:29 +00:00
remoteproc
reset
rpmsg rpmsg fixes for v5.17-rc1 2022-01-27 11:23:26 +02:00
rtc
s390 s390/cio: verify the driver availability for path_event call 2022-02-09 22:55:01 +01:00
sbus
scsi scsi: ufs: core: Fix divide by zero in ufshcd_map_queues() 2022-02-14 22:10:29 -05:00
sh
siox
slimbus
soc sound fixes for 5.17-rc5 2022-02-18 09:20:52 -08:00
soundwire
spi spi: Fixes for v5.17 2022-02-25 12:37:41 -08:00
spmi
ssb
staging Linux 5.17-rc6 2022-02-28 14:57:14 +10:00
target
tc
tee OP-TE fixes for v5.17 2022-02-08 09:48:44 +01:00
thermal thermal: int340x: fix memory leak in int3400_notify() 2022-02-24 20:14:19 +01:00
thunderbolt
tty TTY/Serial driver fixes for 5.17-rc6 2022-02-25 11:45:29 -08:00
uio
usb USB-serial fixes for 5.17-rc6 2022-02-24 14:51:45 +01:00
vdpa
vfio
vhost vhost/vsock: don't check owner in vhost_vsock_stop() while releasing 2022-02-23 12:32:33 +00:00
video drm-misc-next for v5.18: 2022-03-04 13:41:57 +10:00
virt
virtio
visorbus
vlynq
vme
w1
watchdog
xen xen/pci: Make use of the helper macro LIST_HEAD() 2022-02-10 11:10:23 +01:00
zorro
Kconfig
Makefile