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.
[
{
"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
},
"target": {
"file": "drivers/soc/fsl/qbman/qman.c"
},
"signature_type": "Line",
"id": "CVE-2024-35819-0a8c53a8",
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f39d36b7540cf0088ed7ce2de2794f2aa237f6df"
},
{
"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
},
"target": {
"file": "drivers/soc/fsl/qbman/qman.c"
},
"signature_type": "Line",
"id": "CVE-2024-35819-1b4da7aa",
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@fbec4e7fed89b579f2483041fabf9650fb0dd6bc"
},
{
"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
},
"target": {
"file": "drivers/soc/fsl/qbman/qman.c"
},
"signature_type": "Line",
"id": "CVE-2024-35819-2aa5e637",
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@cd53a8ae5aacb4ecd25088486dea1cd02e74b506"
},
{
"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
},
"target": {
"file": "drivers/soc/fsl/qbman/qman.c"
},
"signature_type": "Line",
"id": "CVE-2024-35819-57ee15dc",
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9a3ca8292ce9fdcce122706c28c3f07bc857fe5e"
},
{
"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
},
"target": {
"file": "drivers/soc/fsl/qbman/qman.c"
},
"signature_type": "Line",
"id": "CVE-2024-35819-7634173d",
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ff50716b7d5b7985979a5b21163cd79fb3d21d59"
},
{
"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
},
"target": {
"file": "drivers/soc/fsl/qbman/qman.c"
},
"signature_type": "Line",
"id": "CVE-2024-35819-973e73f9",
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2b3fede8225133671ce837c0d284804aa3bc7a02"
},
{
"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
},
"target": {
"file": "drivers/soc/fsl/qbman/qman.c"
},
"signature_type": "Line",
"id": "CVE-2024-35819-dec9d1c5",
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@54d26adf64c04f186098b39dba86b86037084baa"
},
{
"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
},
"target": {
"file": "drivers/soc/fsl/qbman/qman.c"
},
"signature_type": "Line",
"id": "CVE-2024-35819-faf9e4e4",
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d6b5aac451c9cc12e43ab7308e0e2ddc52c62c14"
}
]