In the Linux kernel, the following vulnerability has been resolved:
thermal: intel: int340x: processor: Fix warning during module unload
The processorthermal driver uses pcimdeviceenable() to enable a PCI device, which means the device will be automatically disabled on driver detach. Thus there is no need to call pcidisable_device() again on it.
With recent PCI device resource management improvements, e.g. commit f748a07a0b64 ("PCI: Remove legacy pcim_release()"), this problem is exposed and triggers the warining below.
[ 224.010735] procthermalpci 0000:00:04.0: disabling already-disabled device [ 224.010747] WARNING: CPU: 8 PID: 4442 at drivers/pci/pci.c:2250 pcidisabledevice+0xe5/0x100 ... [ 224.010844] Call Trace: [ 224.010845] <TASK> [ 224.010847] ? showregs+0x6d/0x80 [ 224.010851] ? _warn+0x8c/0x140 [ 224.010854] ? pcidisabledevice+0xe5/0x100 [ 224.010856] ? reportbug+0x1c9/0x1e0 [ 224.010859] ? handlebug+0x46/0x80 [ 224.010862] ? excinvalidop+0x1d/0x80 [ 224.010863] ? asmexcinvalidop+0x1f/0x30 [ 224.010867] ? pcidisabledevice+0xe5/0x100 [ 224.010869] ? pcidisabledevice+0xe5/0x100 [ 224.010871] ? kfree+0x21a/0x2b0 [ 224.010873] pcimdisabledevice+0x20/0x30 [ 224.010875] devmactionrelease+0x16/0x20 [ 224.010878] releasenodes+0x47/0xc0 [ 224.010880] devresreleaseall+0x9f/0xe0 [ 224.010883] deviceunbindcleanup+0x12/0x80 [ 224.010885] devicereleasedriverinternal+0x1ca/0x210 [ 224.010887] driverdetach+0x4e/0xa0 [ 224.010889] busremovedriver+0x6f/0xf0 [ 224.010890] driverunregister+0x35/0x60 [ 224.010892] pciunregisterdriver+0x44/0x90 [ 224.010894] procthermalpcidriverexit+0x14/0x5f0 [processorthermaldevicepci] ... [ 224.010921] ---[ end trace 0000000000000000 ]---
Remove the excess pcidisabledevice() calls.
[ rjw: Subject and changelog edits ]