In the Linux kernel, the following vulnerability has been resolved:
soc: fsl: qbman: Use raw spinlock for cgr_lock
smpcallfunction always runs its callback in hard IRQ context, even on PREEMPTRT, where spinlocks can sleep. So we need to use a raw spinlock for cgrlock to ensure we aren't waiting on a sleeping task.
Although this bug has existed for a while, it was not apparent until commit ef2a8d5478b9 ("net: dpaa: Adjust queue depth on rate change") which invokes smpcallfunctionsingle via qmanupdatecgrsafe every time a link goes up or down.
[
{
"signature_type": "Line",
"deprecated": false,
"digest": {
"line_hashes": [
"42565635572672217568846739193974927881",
"242552307195230027508750000712613305290",
"239548466014042983698269722943306041360",
"70264724929512386322761271261512127475",
"283427635060252591016311456478051722027",
"285289168815871564933332540940013422355",
"317782396233497863873737868271105970463",
"223837301271498022069316380083306046637",
"108919794533077870545528264842342370132",
"321060150256556645059469322501532590274",
"312495819578332811454716117573109987012",
"53058586243261237938147795193795298744",
"144846582584253264003125137311872314124",
"130522181666619345040257461785808506909",
"294665035332518065519468637585560183715",
"62118003965307832518135683542794656480",
"187113062531317330375197122253037938160",
"270769811818327137852983521275075052225",
"162273380198305352569054552439187702499",
"324613805427266151978127050034476449148",
"200195066970517682584883809023563333208",
"45509812563094718673602769482496329287",
"295590251479269273824342345053695366930",
"265586096519483824172244235161892112201",
"158657530006436700533420657207434400053",
"145076349383488004214952971195770333168",
"250607712326302472413411479419173844763",
"309669361694300692014461456248271543742",
"230286850136403370647242274209541706023",
"332504307797800171446447952220008128788",
"134900623807352737523621500938610183794",
"30490404600082919911224449059329476574",
"313577344780650288813887174278005023190",
"319341700569982850566439916462634491187",
"81897571256577220667994767760533807914",
"133147701858495292485879814407228349683",
"43268096648929635064302693938304888677",
"217103902359518874479645056438855278411",
"196656761511022425000917804095553566825",
"54477343051821806963441386444629256842",
"45843844525033754802882045173901267485",
"133147701858495292485879814407228349683"
],
"threshold": 0.9
},
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9a3ca8292ce9fdcce122706c28c3f07bc857fe5e",
"target": {
"file": "drivers/soc/fsl/qbman/qman.c"
},
"id": "CVE-2024-35819-57ee15dc"
},
{
"signature_type": "Line",
"deprecated": false,
"digest": {
"line_hashes": [
"42565635572672217568846739193974927881",
"242552307195230027508750000712613305290",
"239548466014042983698269722943306041360",
"70264724929512386322761271261512127475",
"283427635060252591016311456478051722027",
"285289168815871564933332540940013422355",
"317782396233497863873737868271105970463",
"223837301271498022069316380083306046637",
"108919794533077870545528264842342370132",
"321060150256556645059469322501532590274",
"312495819578332811454716117573109987012",
"53058586243261237938147795193795298744",
"144846582584253264003125137311872314124",
"130522181666619345040257461785808506909",
"294665035332518065519468637585560183715",
"62118003965307832518135683542794656480",
"187113062531317330375197122253037938160",
"270769811818327137852983521275075052225",
"162273380198305352569054552439187702499",
"324613805427266151978127050034476449148",
"200195066970517682584883809023563333208",
"45509812563094718673602769482496329287",
"295590251479269273824342345053695366930",
"265586096519483824172244235161892112201",
"158657530006436700533420657207434400053",
"145076349383488004214952971195770333168",
"250607712326302472413411479419173844763",
"309669361694300692014461456248271543742",
"230286850136403370647242274209541706023",
"332504307797800171446447952220008128788",
"134900623807352737523621500938610183794",
"30490404600082919911224449059329476574",
"313577344780650288813887174278005023190",
"319341700569982850566439916462634491187",
"81897571256577220667994767760533807914",
"133147701858495292485879814407228349683",
"43268096648929635064302693938304888677",
"217103902359518874479645056438855278411",
"196656761511022425000917804095553566825",
"54477343051821806963441386444629256842",
"45843844525033754802882045173901267485",
"133147701858495292485879814407228349683"
],
"threshold": 0.9
},
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@54d26adf64c04f186098b39dba86b86037084baa",
"target": {
"file": "drivers/soc/fsl/qbman/qman.c"
},
"id": "CVE-2024-35819-dec9d1c5"
}
]