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 ]
[
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@99ca0b57e49fb73624eede1c4396d9e3d10ccf14",
"signature_version": "v1",
"signature_type": "Function",
"id": "CVE-2024-50093-009aed0e",
"target": {
"function": "proc_thermal_pci_probe",
"file": "drivers/thermal/intel/int340x_thermal/processor_thermal_device_pci.c"
},
"digest": {
"length": 1942.0,
"function_hash": "41632191842010627998958055831120267525"
},
"deprecated": false
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@434525a864136c928b54fd2512b4c0167c207463",
"signature_version": "v1",
"signature_type": "Line",
"id": "CVE-2024-50093-12e5ba0d",
"target": {
"file": "drivers/thermal/intel/int340x_thermal/processor_thermal_device_pci.c"
},
"digest": {
"line_hashes": [
"219892503491746394720150180009201999697",
"248166752764397524306970384661752803066",
"91055358232137573155115709628792359592",
"155906269834508497710582446683325961997",
"45680468528159024481396470012966981141",
"170517413033385515781612524438869299281",
"33251111405922777560733211132224128742",
"13982960588000006414101413768406699952"
],
"threshold": 0.9
},
"deprecated": false
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8403021b6f32d68a7e3a6b8428ecaf5c153a9974",
"signature_version": "v1",
"signature_type": "Function",
"id": "CVE-2024-50093-22d2484d",
"target": {
"function": "proc_thermal_pci_remove",
"file": "drivers/thermal/intel/int340x_thermal/processor_thermal_device_pci.c"
},
"digest": {
"length": 447.0,
"function_hash": "154263747682946613798976374093180689997"
},
"deprecated": false
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8403021b6f32d68a7e3a6b8428ecaf5c153a9974",
"signature_version": "v1",
"signature_type": "Function",
"id": "CVE-2024-50093-268e4320",
"target": {
"function": "proc_thermal_pci_probe",
"file": "drivers/thermal/intel/int340x_thermal/processor_thermal_device_pci.c"
},
"digest": {
"length": 1746.0,
"function_hash": "286027108034900069562018512051859259517"
},
"deprecated": false
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@99ca0b57e49fb73624eede1c4396d9e3d10ccf14",
"signature_version": "v1",
"signature_type": "Function",
"id": "CVE-2024-50093-564d597d",
"target": {
"function": "proc_thermal_pci_remove",
"file": "drivers/thermal/intel/int340x_thermal/processor_thermal_device_pci.c"
},
"digest": {
"length": 417.0,
"function_hash": "25458733116666060891018735100891737722"
},
"deprecated": false
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@dd64ea03375618684477f946be4f5e253f8676c2",
"signature_version": "v1",
"signature_type": "Function",
"id": "CVE-2024-50093-586d0e66",
"target": {
"function": "proc_thermal_pci_remove",
"file": "drivers/thermal/intel/int340x_thermal/processor_thermal_device_pci.c"
},
"digest": {
"length": 447.0,
"function_hash": "154263747682946613798976374093180689997"
},
"deprecated": false
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@434525a864136c928b54fd2512b4c0167c207463",
"signature_version": "v1",
"signature_type": "Function",
"id": "CVE-2024-50093-5f93f054",
"target": {
"function": "proc_thermal_pci_remove",
"file": "drivers/thermal/intel/int340x_thermal/processor_thermal_device_pci.c"
},
"digest": {
"length": 417.0,
"function_hash": "25458733116666060891018735100891737722"
},
"deprecated": false
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@dd64ea03375618684477f946be4f5e253f8676c2",
"signature_version": "v1",
"signature_type": "Function",
"id": "CVE-2024-50093-6e8caa40",
"target": {
"function": "proc_thermal_pci_probe",
"file": "drivers/thermal/intel/int340x_thermal/processor_thermal_device_pci.c"
},
"digest": {
"length": 1872.0,
"function_hash": "157501648028463094288516092422230270567"
},
"deprecated": false
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8403021b6f32d68a7e3a6b8428ecaf5c153a9974",
"signature_version": "v1",
"signature_type": "Line",
"id": "CVE-2024-50093-86e0490c",
"target": {
"file": "drivers/thermal/intel/int340x_thermal/processor_thermal_device_pci.c"
},
"digest": {
"line_hashes": [
"219892503491746394720150180009201999697",
"248166752764397524306970384661752803066",
"91055358232137573155115709628792359592",
"155906269834508497710582446683325961997",
"45680468528159024481396470012966981141",
"170517413033385515781612524438869299281",
"33251111405922777560733211132224128742",
"13982960588000006414101413768406699952"
],
"threshold": 0.9
},
"deprecated": false
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b4ab78f4adeaf6c98be5d375518dd4fb666eac5e",
"signature_version": "v1",
"signature_type": "Function",
"id": "CVE-2024-50093-89f8c72b",
"target": {
"function": "proc_thermal_pci_remove",
"file": "drivers/thermal/intel/int340x_thermal/processor_thermal_device_pci.c"
},
"digest": {
"length": 447.0,
"function_hash": "154263747682946613798976374093180689997"
},
"deprecated": false
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@99ca0b57e49fb73624eede1c4396d9e3d10ccf14",
"signature_version": "v1",
"signature_type": "Line",
"id": "CVE-2024-50093-b5a78e79",
"target": {
"file": "drivers/thermal/intel/int340x_thermal/processor_thermal_device_pci.c"
},
"digest": {
"line_hashes": [
"219892503491746394720150180009201999697",
"248166752764397524306970384661752803066",
"91055358232137573155115709628792359592",
"155906269834508497710582446683325961997",
"45680468528159024481396470012966981141",
"170517413033385515781612524438869299281",
"33251111405922777560733211132224128742",
"13982960588000006414101413768406699952"
],
"threshold": 0.9
},
"deprecated": false
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@dd64ea03375618684477f946be4f5e253f8676c2",
"signature_version": "v1",
"signature_type": "Line",
"id": "CVE-2024-50093-bb726251",
"target": {
"file": "drivers/thermal/intel/int340x_thermal/processor_thermal_device_pci.c"
},
"digest": {
"line_hashes": [
"219892503491746394720150180009201999697",
"248166752764397524306970384661752803066",
"91055358232137573155115709628792359592",
"155906269834508497710582446683325961997",
"45680468528159024481396470012966981141",
"170517413033385515781612524438869299281",
"33251111405922777560733211132224128742",
"13982960588000006414101413768406699952"
],
"threshold": 0.9
},
"deprecated": false
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b4ab78f4adeaf6c98be5d375518dd4fb666eac5e",
"signature_version": "v1",
"signature_type": "Line",
"id": "CVE-2024-50093-c2811cb2",
"target": {
"file": "drivers/thermal/intel/int340x_thermal/processor_thermal_device_pci.c"
},
"digest": {
"line_hashes": [
"219892503491746394720150180009201999697",
"248166752764397524306970384661752803066",
"91055358232137573155115709628792359592",
"155906269834508497710582446683325961997",
"45680468528159024481396470012966981141",
"170517413033385515781612524438869299281",
"33251111405922777560733211132224128742",
"13982960588000006414101413768406699952"
],
"threshold": 0.9
},
"deprecated": false
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b4ab78f4adeaf6c98be5d375518dd4fb666eac5e",
"signature_version": "v1",
"signature_type": "Function",
"id": "CVE-2024-50093-c3244b3c",
"target": {
"function": "proc_thermal_pci_probe",
"file": "drivers/thermal/intel/int340x_thermal/processor_thermal_device_pci.c"
},
"digest": {
"length": 1746.0,
"function_hash": "286027108034900069562018512051859259517"
},
"deprecated": false
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@434525a864136c928b54fd2512b4c0167c207463",
"signature_version": "v1",
"signature_type": "Function",
"id": "CVE-2024-50093-c3bdbac7",
"target": {
"function": "proc_thermal_pci_probe",
"file": "drivers/thermal/intel/int340x_thermal/processor_thermal_device_pci.c"
},
"digest": {
"length": 1942.0,
"function_hash": "41632191842010627998958055831120267525"
},
"deprecated": false
}
]