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