In the Linux kernel, the following vulnerability has been resolved: drm/xe: Fix tlb invalidation when wedging If GuC fails to load, the driver wedges, but in the process it tries to do stuff that may not be initialized yet. This moves the xegttlbinvalidationinit() to be done earlier: as its own doc says, it's a software-only initialization and should had been named with the early() suffix. Move it to be called by xegtinitearly(), so the locks and seqno are initialized, avoiding a NULL ptr deref when wedging: xe 0000:03:00.0: [drm] ERROR GT0: load failed: status: Reset = 0, BootROM = 0x50, UKernel = 0x00, MIA = 0x00, Auth = 0x01 xe 0000:03:00.0: [drm] ERROR GT0: firmware signature verification failed xe 0000:03:00.0: [drm] ERROR CRITICAL: Xe has declared device 0000:03:00.0 as wedged. ... BUG: kernel NULL pointer dereference, address: 0000000000000000 #PF: supervisor read access in kernel mode #PF: errorcode(0x0000) - not-present page PGD 0 P4D 0 Oops: Oops: 0000 [#1] PREEMPT SMP NOPTI CPU: 9 UID: 0 PID: 3908 Comm: modprobe Tainted: G U W 6.13.0-rc4-xe+ #3 Tainted: [U]=USER, [W]=WARN Hardware name: Intel Corporation Alder Lake Client Platform/AlderLake-S ADP-S DDR5 UDIMM CRB, BIOS ADLSFWI1.R00.3275.A00.2207010640 07/01/2022 RIP: 0010:xegttlbinvalidation_reset+0x75/0x110 [xe] This can be easily triggered by poking the GuC binary to force a signature failure. There will still be an extra message, xe 0000:03:00.0: [drm] ERROR GT0: GuC mmio request 0x4100: no reply 0x4100 but that's better than a NULL ptr deref. (cherry picked from commit 5001ef3af8f2c972d6fd9c5221a8457556f8bea6)
{ "availability": "No subscription required", "binaries": [ { "binary_name": "linux-buildinfo-6.11.0-21-generic", "binary_version": "6.11.0-21.21~24.04.1" }, { "binary_name": "linux-buildinfo-6.11.0-21-generic-64k", "binary_version": "6.11.0-21.21~24.04.1" }, { "binary_name": "linux-cloud-tools-6.11.0-21-generic", "binary_version": "6.11.0-21.21~24.04.1" }, { "binary_name": "linux-headers-6.11.0-21-generic", "binary_version": "6.11.0-21.21~24.04.1" }, { "binary_name": "linux-headers-6.11.0-21-generic-64k", "binary_version": "6.11.0-21.21~24.04.1" }, { "binary_name": "linux-hwe-6.11-cloud-tools-6.11.0-21", "binary_version": "6.11.0-21.21~24.04.1" }, { "binary_name": "linux-hwe-6.11-headers-6.11.0-21", "binary_version": "6.11.0-21.21~24.04.1" }, { "binary_name": "linux-hwe-6.11-lib-rust-6.11.0-21-generic", "binary_version": "6.11.0-21.21~24.04.1" }, { "binary_name": "linux-hwe-6.11-tools-6.11.0-21", "binary_version": "6.11.0-21.21~24.04.1" }, { "binary_name": "linux-image-6.11.0-21-generic", "binary_version": "6.11.0-21.21~24.04.1" }, { "binary_name": "linux-image-6.11.0-21-generic-dbgsym", "binary_version": "6.11.0-21.21~24.04.1" }, { "binary_name": "linux-image-unsigned-6.11.0-21-generic", "binary_version": "6.11.0-21.21~24.04.1" }, { "binary_name": "linux-image-unsigned-6.11.0-21-generic-64k", "binary_version": "6.11.0-21.21~24.04.1" }, { "binary_name": "linux-image-unsigned-6.11.0-21-generic-64k-dbgsym", "binary_version": "6.11.0-21.21~24.04.1" }, { "binary_name": "linux-image-unsigned-6.11.0-21-generic-dbgsym", "binary_version": "6.11.0-21.21~24.04.1" }, { "binary_name": "linux-modules-6.11.0-21-generic", "binary_version": "6.11.0-21.21~24.04.1" }, { "binary_name": "linux-modules-6.11.0-21-generic-64k", "binary_version": "6.11.0-21.21~24.04.1" }, { "binary_name": "linux-modules-extra-6.11.0-21-generic", "binary_version": "6.11.0-21.21~24.04.1" }, { "binary_name": "linux-modules-ipu6-6.11.0-21-generic", "binary_version": "6.11.0-21.21~24.04.1" }, { "binary_name": "linux-modules-ipu7-6.11.0-21-generic", "binary_version": "6.11.0-21.21~24.04.1" }, { "binary_name": "linux-modules-iwlwifi-6.11.0-21-generic", "binary_version": "6.11.0-21.21~24.04.1" }, { "binary_name": "linux-modules-usbio-6.11.0-21-generic", "binary_version": "6.11.0-21.21~24.04.1" }, { "binary_name": "linux-modules-vision-6.11.0-21-generic", "binary_version": "6.11.0-21.21~24.04.1" }, { "binary_name": "linux-tools-6.11.0-21-generic", "binary_version": "6.11.0-21.21~24.04.1" }, { "binary_name": "linux-tools-6.11.0-21-generic-64k", "binary_version": "6.11.0-21.21~24.04.1" } ] }
{ "availability": "No subscription required", "binaries": [ { "binary_name": "linux-buildinfo-6.11.0-1017-oem", "binary_version": "6.11.0-1017.17" }, { "binary_name": "linux-headers-6.11.0-1017-oem", "binary_version": "6.11.0-1017.17" }, { "binary_name": "linux-image-unsigned-6.11.0-1017-oem", "binary_version": "6.11.0-1017.17" }, { "binary_name": "linux-image-unsigned-6.11.0-1017-oem-dbgsym", "binary_version": "6.11.0-1017.17" }, { "binary_name": "linux-modules-6.11.0-1017-oem", "binary_version": "6.11.0-1017.17" }, { "binary_name": "linux-modules-ipu6-6.11.0-1017-oem", "binary_version": "6.11.0-1017.17" }, { "binary_name": "linux-modules-ipu7-6.11.0-1017-oem", "binary_version": "6.11.0-1017.17" }, { "binary_name": "linux-modules-iwlwifi-6.11.0-1017-oem", "binary_version": "6.11.0-1017.17" }, { "binary_name": "linux-modules-usbio-6.11.0-1017-oem", "binary_version": "6.11.0-1017.17" }, { "binary_name": "linux-modules-vision-6.11.0-1017-oem", "binary_version": "6.11.0-1017.17" }, { "binary_name": "linux-oem-6.11-headers-6.11.0-1017", "binary_version": "6.11.0-1017.17" }, { "binary_name": "linux-oem-6.11-tools-6.11.0-1017", "binary_version": "6.11.0-1017.17" }, { "binary_name": "linux-tools-6.11.0-1017-oem", "binary_version": "6.11.0-1017.17" } ] }