CVE-2026-63955: mm/vmalloc: do not trigger BUG() on BH disabled context
In the Linux kernel, the following vulnerability has been resolved:
mm/vmalloc: do not trigger BUG() on BH disabled context
getvmareanode() currently triggers a BUG() if ininterrupt() returns true. However, ininterrupt() also reports true when BH are disabled.
The bridge code can call rhashtablelookupinsertfast() with bottom halves disabled:
vlanadd() -> brfdbaddlocal() spinlockbh(&br->hashlock); <-- Disable BH -> fdbaddlocal() -> fdbcreate() -> rhashtablelookupinsertfast() -> kvmalloc() -> vmalloc() -> getvmareanode() -> BUGON(ininterrupt()) spinunlockbh(&br->hashlock)
this triggers the BUG() despite the caller not being in NMI or hard IRQ context.
Replace the ininterrupt() check with innmi() || inhardirq().