CVE: CVE-2025-37833
Published: 2025-05-08
Description: In the Linux kernel, the following vulnerability has been resolved:

net/niu: Niu requires MSIX ENTRY_DATA fields touch before entry reads

Fix niu_try_msix() to not cause a fatal trap on sparc systems.

Set PCI_DEV_FLAGS_MSIX_TOUCH_ENTRY_DATA_FIRST on the struct pci_dev to
work around a bug in the hardware or firmware.

For each vector entry in the msix table, niu chips will cause a fatal
trap if any registers in that entry are read before that entries'
ENTRY_DATA register is written to. Testing indicates writes to other
registers are not sufficient to prevent the fatal trap, however the value
does not appear to matter. This only needs to happen once after power up,
so simply rebooting into a kernel lacking this fix will NOT cause the
trap.

NON-RESUMABLE ERROR: Reporting on cpu 64
NON-RESUMABLE ERROR: TPC [0x[PII_REDACTED]5f6900] <msix_prepare_msi_desc+0x90/0xa0>
NON-RESUMABLE ERROR: RAW [[PII_REDACTED]:00000e37f93e32ff:[PII_REDACTED]:ffffffffffffffff
NON-RESUMABLE ERROR:      [PII_REDACTED]:[PII_REDACTED]:[PII_REDACTED]:[PII_REDACTED]]
NON-RESUMABLE ERROR: handle [0x[PII_REDACTED]000016] stick [0x00000e37f93e32ff]
NON-RESUMABLE ERROR: type [precise nonresumable]
NON-RESUMABLE ERROR: attrs [0x02000080] < ASI sp-faulted priv >
NON-RESUMABLE ERROR: raddr [0xffffffffffffffff]
NON-RESUMABLE ERROR: insn effective address [0x000000c50020000c]
NON-RESUMABLE ERROR: size [0x8]
NON-RESUMABLE ERROR: asi [0x00]
CPU: 64 UID: 0 PID: 745 Comm: kworker/64:1 Not tainted 6.11.5 #63
Workqueue: events work_for_cpu_fn
TSTATE: [PII_REDACTED] TPC:[PII_REDACTED]5f6900 TNPC:[PII_REDACTED]5f6904 Y: 00000000    Not tainted
TPC: <msix_prepare_msi_desc+0x90/0xa0>
g0:[PII_REDACTED]0002e9 g1:[PII_REDACTED]00000c g2: 000000c50020000c g3: [PII_REDACTED]
g4: ffff[PII_REDACTED]c0 g5: ffff800fec5be000 g6: ffff800047a08000 g7: [PII_REDACTED]
o0: ffff800014feb000 o1: ffff800047a0b620 o2: [PII_REDACTED] o3: ffff800047a0b620
o4: [PII_REDACTED] o5: [PII_REDACTED] sp: ffff800047a0ad51 ret_pc:[PII_REDACTED]5f7128
RPC: <__pci_enable_msix_range+0x3cc/0x460>
l0:[PII_REDACTED]00000d l1:[PII_REDACTED]00c01f l2: ffff800014feb0a8 l3: [PII_REDACTED]
l4:[PII_REDACTED]00c000 l5: [PII_REDACTED] l6: [PII_REDACTED] l7: ffff800047a0b734
i0: ffff800014feb000 i1: ffff800047a0b730 i2: [PII_REDACTED] i3:[PII_REDACTED]00000d
i4: [PII_REDACTED] i5: [PII_REDACTED] i6: ffff800047a0ae81 i7:[PII_REDACTED]1888b0
I7: <niu_try_msix.constprop.0+0xc0/0x130 [niu]>
Call Trace:
[<[PII_REDACTED]1888b0>] niu_try_msix.constprop.0+0xc0/0x130 [niu]
[<[PII_REDACTED]18f840>] niu_get_invariants+0x183c/0x207c [niu]
[<[PII_REDACTED]1902fc>] niu_pci_init_one+0x27c/0x2fc [niu]
[<[PII_REDACTED]5ef3e4>] local_pci_probe+0x28/0x74
[<[PII_REDACTED]>] work_for_cpu_fn+0x8/0x1c
[<[PII_REDACTED]46b008>] process_scheduled_works+0x144/0x210
[<[PII_REDACTED]46b518>] worker_thread+0x13c/0x1c0
[<[PII_REDACTED]4710e0>] kthread+0xb8/0xc8
[<[PII_REDACTED]4060c8>] ret_from_fork+0x1c/0x2c
[<[PII_REDACTED]>] 0x0
Kernel panic - not syncing: Non-resumable error.
CVSS Score: 5.5 (MEDIUM)
References: https://git.kernel.org/stable/c/64903e4849a71cf7f7c7e5d45225ccefc1280929; https://git.kernel.org/stable/c/c187aaa9e79b4b6d86ac7ba941e579ad33df5538; https://git.kernel.org/stable/c/fbb429ddff5c8e479edcc7dde5a542c9295944e6