In the Linux kernel, the following vulnerability has been resolved:
usb: cdns3: Put the cdns set active part outside the spin lock
The device may be scheduled during the resume process, so this cannot appear in atomic operations. Since pmruntimeset_active will resume suppliers, put set active outside the spin lock, which is only used to protect the struct cdns data structure, otherwise the kernel will report the following warning:
BUG: sleeping function called from invalid context at drivers/base/power/runtime.c:1163 inatomic(): 1, irqsdisabled(): 0, nonblock: 0, pid: 651, name: sh preemptcount: 1, expected: 0 RCU nest depth: 0, expected: 0 CPU: 0 PID: 651 Comm: sh Tainted: G WC 6.1.20 #1 Hardware name: Freescale i.MX8QM MEK (DT) Call trace: dumpbacktrace.part.0+0xe0/0xf0 showstack+0x18/0x30 dumpstacklvl+0x64/0x80 dumpstack+0x1c/0x38 _mightresched+0x1fc/0x240 _mightsleep+0x68/0xc0 _pmruntimeresume+0x9c/0xe0 rpmgetsuppliers+0x68/0x1b0 _pmruntimesetstatus+0x298/0x560 cdnsresume+0xb0/0x1c0 cdns3controllerresume.isra.0+0x1e0/0x250 cdns3plat_resume+0x28/0x40
{ "vanir_signatures": [ { "deprecated": false, "signature_type": "Line", "target": { "file": "drivers/usb/cdns3/cdns3-plat.c" }, "signature_version": "v1", "digest": { "line_hashes": [ "106316350309104942074613648003009433154", "61955425998672770339054394403172187856", "183439513426161945462018343418706064940", "46449837092374934879743950617423574798", "325231106362972885202401554188411096898", "240392056568320083173160333869685665479" ], "threshold": 0.9 }, "id": "CVE-2023-53287-04d642db", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d3f372ec95b89776f72d5c9a475424e27734c223" }, { "deprecated": false, "signature_type": "Line", "target": { "file": "drivers/usb/cdns3/core.h" }, "signature_version": "v1", "digest": { "line_hashes": [ "211114657826700954761359614639129413609", "171657732877500671869893664346842554392", "200904220727953603031574837903855848590", "290198547290701521304302532835584715877", "15927746746639860674047332356724897824", "64534974687262558137755865380537194098", "255503956861219611071954978001832838126" ], "threshold": 0.9 }, "id": "CVE-2023-53287-0bd6662a", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c861a61be6d30538ebcf7fcab1d43f244e298840" }, { "deprecated": false, "signature_type": "Line", "target": { "file": "drivers/usb/cdns3/core.c" }, "signature_version": "v1", "digest": { "line_hashes": [ "246297851103985189463483440189721234296", "135862787292630256400793292244534724296", "74272649583959836421183804307741687368", "220833636533572580970295896335738133405", "302387941943544020321535073271439252261", "115068607868307842155190327651872587505", "102591699655517175813468311135038426717", "42551537498626429253374705263648832430", "264944536060709218255392947495554608884", "10705133072552705695177571946833017305", "69466411724937641320693588705122631482", "242203737535046636969781717435005560138", "206364734206862417954423959951392979729", "335277987783575843163880535786939222596", "174177648054830609913926462841374337655", "290017733575911947580307418364639504251", "12586103359540613391608860334161662417" ], "threshold": 0.9 }, "id": "CVE-2023-53287-0c4a0299", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2319b9c87fe243327285f2fefd7374ffd75a65fc" }, { "deprecated": false, "signature_type": "Function", "target": { "file": "drivers/usb/cdns3/cdnsp-pci.c", "function": "cdnsp_pci_resume" }, "signature_version": "v1", "digest": { "length": 223.0, "function_hash": "8178001212728394880273107695727288591" }, "id": "CVE-2023-53287-18e7224b", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bbc9c3652708108738009e096d608ece3cd9fa8a" }, { "deprecated": false, "signature_type": "Function", "target": { "file": "drivers/usb/cdns3/cdns3-plat.c", "function": "cdns3_controller_resume" }, "signature_version": "v1", "digest": { "length": 764.0, "function_hash": "318030651935424883922144929730134680882" }, "id": "CVE-2023-53287-1fd85286", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bbc9c3652708108738009e096d608ece3cd9fa8a" }, { "deprecated": false, "signature_type": "Function", "target": { "file": "drivers/usb/cdns3/core.c", "function": "cdns_resume" }, "signature_version": "v1", "digest": { "length": 754.0, "function_hash": "271174239635982722618356670420698118645" }, "id": "CVE-2023-53287-2a88c9f6", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c861a61be6d30538ebcf7fcab1d43f244e298840" }, { "deprecated": false, "signature_type": "Line", "target": { "file": "drivers/usb/cdns3/cdns3-plat.c" }, "signature_version": "v1", "digest": { "line_hashes": [ "106316350309104942074613648003009433154", "61955425998672770339054394403172187856", "183439513426161945462018343418706064940", "46449837092374934879743950617423574798", "325231106362972885202401554188411096898", "240392056568320083173160333869685665479" ], "threshold": 0.9 }, "id": "CVE-2023-53287-31d5cf22", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c861a61be6d30538ebcf7fcab1d43f244e298840" }, { "deprecated": false, "signature_type": "Line", "target": { "file": "drivers/usb/cdns3/core.c" }, "signature_version": "v1", "digest": { "line_hashes": [ "246297851103985189463483440189721234296", "135862787292630256400793292244534724296", "74272649583959836421183804307741687368", "220833636533572580970295896335738133405", "302387941943544020321535073271439252261", "115068607868307842155190327651872587505", "102591699655517175813468311135038426717", "42551537498626429253374705263648832430", "264944536060709218255392947495554608884", "10705133072552705695177571946833017305", "69466411724937641320693588705122631482", "242203737535046636969781717435005560138", "206364734206862417954423959951392979729", "335277987783575843163880535786939222596", "174177648054830609913926462841374337655", "290017733575911947580307418364639504251", "12586103359540613391608860334161662417" ], "threshold": 0.9 }, "id": "CVE-2023-53287-3924696b", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bbc9c3652708108738009e096d608ece3cd9fa8a" }, { "deprecated": false, "signature_type": "Line", "target": { "file": "drivers/usb/cdns3/core.h" }, "signature_version": "v1", "digest": { "line_hashes": [ "211114657826700954761359614639129413609", "171657732877500671869893664346842554392", "200904220727953603031574837903855848590", "290198547290701521304302532835584715877", "15927746746639860674047332356724897824", "64534974687262558137755865380537194098", "255503956861219611071954978001832838126" ], "threshold": 0.9 }, "id": "CVE-2023-53287-3b4cbc61", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d3f372ec95b89776f72d5c9a475424e27734c223" }, { "deprecated": false, "signature_type": "Function", "target": { "file": "drivers/usb/cdns3/cdnsp-pci.c", "function": "cdnsp_pci_resume" }, "signature_version": "v1", "digest": { "length": 223.0, "function_hash": "8178001212728394880273107695727288591" }, "id": "CVE-2023-53287-3ce114ac", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c861a61be6d30538ebcf7fcab1d43f244e298840" }, { "deprecated": false, "signature_type": "Line", "target": { "file": "drivers/usb/cdns3/core.c" }, "signature_version": "v1", "digest": { "line_hashes": [ "246297851103985189463483440189721234296", "135862787292630256400793292244534724296", "74272649583959836421183804307741687368", "220833636533572580970295896335738133405", "302387941943544020321535073271439252261", "115068607868307842155190327651872587505", "102591699655517175813468311135038426717", "42551537498626429253374705263648832430", "264944536060709218255392947495554608884", "10705133072552705695177571946833017305", "69466411724937641320693588705122631482", "242203737535046636969781717435005560138", "206364734206862417954423959951392979729", "335277987783575843163880535786939222596", "174177648054830609913926462841374337655", "290017733575911947580307418364639504251", "12586103359540613391608860334161662417" ], "threshold": 0.9 }, "id": "CVE-2023-53287-3e39393c", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c861a61be6d30538ebcf7fcab1d43f244e298840" }, { "deprecated": false, "signature_type": "Function", "target": { "file": "drivers/usb/cdns3/cdnsp-pci.c", "function": "cdnsp_pci_resume" }, "signature_version": "v1", "digest": { "length": 223.0, "function_hash": "8178001212728394880273107695727288591" }, "id": "CVE-2023-53287-48b85767", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d3f372ec95b89776f72d5c9a475424e27734c223" }, { "deprecated": false, "signature_type": "Line", "target": { "file": "drivers/usb/cdns3/cdnsp-pci.c" }, "signature_version": "v1", "digest": { "line_hashes": [ "16041594099276548586967382576157321704", "199773721176871265691047390380779491222", "226693954020343576669584504497670649112", "255492099563350115037151028793943938", "92121491510845897424068852253681542907" ], "threshold": 0.9 }, "id": "CVE-2023-53287-4bbe363a", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d3f372ec95b89776f72d5c9a475424e27734c223" }, { "deprecated": false, "signature_type": "Function", "target": { "file": "drivers/usb/cdns3/core.c", "function": "cdns_resume" }, "signature_version": "v1", "digest": { "length": 754.0, "function_hash": "271174239635982722618356670420698118645" }, "id": "CVE-2023-53287-506ad391", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d3f372ec95b89776f72d5c9a475424e27734c223" }, { "deprecated": false, "signature_type": "Line", "target": { "file": "drivers/usb/cdns3/cdnsp-pci.c" }, "signature_version": "v1", "digest": { "line_hashes": [ "16041594099276548586967382576157321704", "199773721176871265691047390380779491222", "226693954020343576669584504497670649112", "255492099563350115037151028793943938", "92121491510845897424068852253681542907" ], "threshold": 0.9 }, "id": "CVE-2023-53287-539793bd", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c861a61be6d30538ebcf7fcab1d43f244e298840" }, { "deprecated": false, "signature_type": "Function", "target": { "file": "drivers/usb/cdns3/cdns3-plat.c", "function": "cdns3_controller_resume" }, "signature_version": "v1", "digest": { "length": 764.0, "function_hash": "318030651935424883922144929730134680882" }, "id": "CVE-2023-53287-702e3842", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d3f372ec95b89776f72d5c9a475424e27734c223" }, { "deprecated": false, "signature_type": "Function", "target": { "file": "drivers/usb/cdns3/core.c", "function": "cdns_resume" }, "signature_version": "v1", "digest": { "length": 754.0, "function_hash": "271174239635982722618356670420698118645" }, "id": "CVE-2023-53287-81e4d547", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bbc9c3652708108738009e096d608ece3cd9fa8a" }, { "deprecated": false, "signature_type": "Line", "target": { "file": "drivers/usb/cdns3/core.c" }, "signature_version": "v1", "digest": { "line_hashes": [ "246297851103985189463483440189721234296", "135862787292630256400793292244534724296", "74272649583959836421183804307741687368", "220833636533572580970295896335738133405", "302387941943544020321535073271439252261", "115068607868307842155190327651872587505", "102591699655517175813468311135038426717", "42551537498626429253374705263648832430", "264944536060709218255392947495554608884", "10705133072552705695177571946833017305", "69466411724937641320693588705122631482", "242203737535046636969781717435005560138", "206364734206862417954423959951392979729", "335277987783575843163880535786939222596", "174177648054830609913926462841374337655", "290017733575911947580307418364639504251", "12586103359540613391608860334161662417" ], "threshold": 0.9 }, "id": "CVE-2023-53287-8f3cdac1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d3f372ec95b89776f72d5c9a475424e27734c223" }, { "deprecated": false, "signature_type": "Line", "target": { "file": "drivers/usb/cdns3/cdns3-plat.c" }, "signature_version": "v1", "digest": { "line_hashes": [ "106316350309104942074613648003009433154", "61955425998672770339054394403172187856", "183439513426161945462018343418706064940", "46449837092374934879743950617423574798", "325231106362972885202401554188411096898", "240392056568320083173160333869685665479" ], "threshold": 0.9 }, "id": "CVE-2023-53287-94a05870", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2319b9c87fe243327285f2fefd7374ffd75a65fc" }, { "deprecated": false, "signature_type": "Line", "target": { "file": "drivers/usb/cdns3/cdnsp-pci.c" }, "signature_version": "v1", "digest": { "line_hashes": [ "16041594099276548586967382576157321704", "199773721176871265691047390380779491222", "226693954020343576669584504497670649112", "255492099563350115037151028793943938", "92121491510845897424068852253681542907" ], "threshold": 0.9 }, "id": "CVE-2023-53287-99b824cd", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2319b9c87fe243327285f2fefd7374ffd75a65fc" }, { "deprecated": false, "signature_type": "Line", "target": { "file": "drivers/usb/cdns3/cdnsp-pci.c" }, "signature_version": "v1", "digest": { "line_hashes": [ "16041594099276548586967382576157321704", "199773721176871265691047390380779491222", "226693954020343576669584504497670649112", "255492099563350115037151028793943938", "92121491510845897424068852253681542907" ], "threshold": 0.9 }, "id": "CVE-2023-53287-b31782c9", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bbc9c3652708108738009e096d608ece3cd9fa8a" }, { "deprecated": false, "signature_type": "Line", "target": { "file": "drivers/usb/cdns3/core.h" }, "signature_version": "v1", "digest": { "line_hashes": [ "211114657826700954761359614639129413609", "171657732877500671869893664346842554392", "200904220727953603031574837903855848590", "290198547290701521304302532835584715877", "15927746746639860674047332356724897824", "64534974687262558137755865380537194098", "255503956861219611071954978001832838126" ], "threshold": 0.9 }, "id": "CVE-2023-53287-c7c72d35", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bbc9c3652708108738009e096d608ece3cd9fa8a" }, { "deprecated": false, "signature_type": "Line", "target": { "file": "drivers/usb/cdns3/cdns3-plat.c" }, "signature_version": "v1", "digest": { "line_hashes": [ "106316350309104942074613648003009433154", "61955425998672770339054394403172187856", "183439513426161945462018343418706064940", "46449837092374934879743950617423574798", "325231106362972885202401554188411096898", "240392056568320083173160333869685665479" ], "threshold": 0.9 }, "id": "CVE-2023-53287-de55acb0", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@bbc9c3652708108738009e096d608ece3cd9fa8a" }, { "deprecated": false, "signature_type": "Function", "target": { "file": "drivers/usb/cdns3/cdnsp-pci.c", "function": "cdnsp_pci_resume" }, "signature_version": "v1", "digest": { "length": 223.0, "function_hash": "8178001212728394880273107695727288591" }, "id": "CVE-2023-53287-eed424c6", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2319b9c87fe243327285f2fefd7374ffd75a65fc" }, { "deprecated": false, "signature_type": "Line", "target": { "file": "drivers/usb/cdns3/core.h" }, "signature_version": "v1", "digest": { "line_hashes": [ "211114657826700954761359614639129413609", "171657732877500671869893664346842554392", "200904220727953603031574837903855848590", "290198547290701521304302532835584715877", "15927746746639860674047332356724897824", "64534974687262558137755865380537194098", "255503956861219611071954978001832838126" ], "threshold": 0.9 }, "id": "CVE-2023-53287-f1413ccf", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2319b9c87fe243327285f2fefd7374ffd75a65fc" }, { "deprecated": false, "signature_type": "Function", "target": { "file": "drivers/usb/cdns3/cdns3-plat.c", "function": "cdns3_controller_resume" }, "signature_version": "v1", "digest": { "length": 764.0, "function_hash": "318030651935424883922144929730134680882" }, "id": "CVE-2023-53287-f36b1833", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2319b9c87fe243327285f2fefd7374ffd75a65fc" }, { "deprecated": false, "signature_type": "Function", "target": { "file": "drivers/usb/cdns3/core.c", "function": "cdns_resume" }, "signature_version": "v1", "digest": { "length": 754.0, "function_hash": "271174239635982722618356670420698118645" }, "id": "CVE-2023-53287-f3c21564", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2319b9c87fe243327285f2fefd7374ffd75a65fc" }, { "deprecated": false, "signature_type": "Function", "target": { "file": "drivers/usb/cdns3/cdns3-plat.c", "function": "cdns3_controller_resume" }, "signature_version": "v1", "digest": { "length": 764.0, "function_hash": "318030651935424883922144929730134680882" }, "id": "CVE-2023-53287-f53ad5dc", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c861a61be6d30538ebcf7fcab1d43f244e298840" } ] }