{"api_version":"1","generated_at":"2026-11-11T07:41:45+00:00","cve":"CVE-2022-50045","urls":{"html":"https://cve.report/CVE-2022-50045","api":"https://cve.report/api/cve/CVE-2022-50045.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2022-50045","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2022-50045"},"summary":{"title":"powerpc/pci: Fix get_phb_number() locking","description":"In the Linux kernel, the following vulnerability has been resolved:\n\npowerpc/pci: Fix get_phb_number() locking\n\nThe recent change to get_phb_number() causes a DEBUG_ATOMIC_SLEEP\nwarning on some systems:\n\n  BUG: sleeping function called from invalid context at kernel/locking/mutex.c:580\n  in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 1, name: swapper\n  preempt_count: 1, expected: 0\n  RCU nest depth: 0, expected: 0\n  1 lock held by swapper/1:\n   #0: c157efb0 (hose_spinlock){+.+.}-{2:2}, at: pcibios_alloc_controller+0x64/0x220\n  Preemption disabled at:\n  [<00000000>] 0x0\n  CPU: 0 PID: 1 Comm: swapper Not tainted 5.19.0-yocto-standard+ #1\n  Call Trace:\n  [d101dc90] [c073b264] dump_stack_lvl+0x50/0x8c (unreliable)\n  [d101dcb0] [c0093b70] __might_resched+0x258/0x2a8\n  [d101dcd0] [c0d3e634] __mutex_lock+0x6c/0x6ec\n  [d101dd50] [c0a84174] of_alias_get_id+0x50/0xf4\n  [d101dd80] [c002ec78] pcibios_alloc_controller+0x1b8/0x220\n  [d101ddd0] [c140c9dc] pmac_pci_init+0x198/0x784\n  [d101de50] [c140852c] discover_phbs+0x30/0x4c\n  [d101de60] [c0007fd4] do_one_initcall+0x94/0x344\n  [d101ded0] [c1403b40] kernel_init_freeable+0x1a8/0x22c\n  [d101df10] [c00086e0] kernel_init+0x34/0x160\n  [d101df30] [c001b334] ret_from_kernel_thread+0x5c/0x64\n\nThis is because pcibios_alloc_controller() holds hose_spinlock but\nof_alias_get_id() takes of_mutex which can sleep.\n\nThe hose_spinlock protects the phb_bitmap, and also the hose_list, but\nit doesn't need to be held while get_phb_number() calls the OF routines,\nbecause those are only looking up information in the device tree.\n\nSo fix it by having get_phb_number() take the hose_spinlock itself, only\nwhere required, and then dropping the lock before returning.\npcibios_alloc_controller() then needs to take the lock again before the\nlist_add() but that's safe, the order of the list is not important.","state":"PUBLISHED","assigner":"Linux","published_at":"2025-06-18 11:15:33","updated_at":"2026-11-05 20:17:21"},"problem_types":["CWE-667"],"metrics":[{"version":"3.1","source":"nvd@nist.gov","type":"Primary","score":"5.5","severity":"MEDIUM","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","data":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","baseScore":5.5,"baseSeverity":"MEDIUM","attackVector":"LOCAL","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"NONE","integrityImpact":"NONE","availabilityImpact":"HIGH"}}],"references":[{"url":"https://git.kernel.org/stable/c/1d9e75c3d8cdf7c96a94cb77450d4ee070279e6a","name":"https://git.kernel.org/stable/c/1d9e75c3d8cdf7c96a94cb77450d4ee070279e6a","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":["Patch"],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/90f195c01a2e8d8da6281791617e21109719c981","name":"https://git.kernel.org/stable/c/90f195c01a2e8d8da6281791617e21109719c981","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":["Patch"],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/5db5ce0f1963c6c8275719a80cb65e9c98d32726","name":"https://git.kernel.org/stable/c/5db5ce0f1963c6c8275719a80cb65e9c98d32726","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":["Patch"],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/8d48562a2729742f767b0fdd994d6b2a56a49c63","name":"https://git.kernel.org/stable/c/8d48562a2729742f767b0fdd994d6b2a56a49c63","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":["Patch"],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/ccb0a42d3f40c436295e0fef57ab613ae5b925a4","name":"https://git.kernel.org/stable/c/ccb0a42d3f40c436295e0fef57ab613ae5b925a4","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":["Patch"],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/a868f771ee41c97a25a04b8c632a7f06689b307b","name":"https://git.kernel.org/stable/c/a868f771ee41c97a25a04b8c632a7f06689b307b","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":["Patch"],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/6f75057c21eab12c6ccb7f06f859641a6edfab99","name":"https://git.kernel.org/stable/c/6f75057c21eab12c6ccb7f06f859641a6edfab99","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":["Patch"],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2022-50045","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2022-50045","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected a79e4395619c926ea7e828b2023c0fbe2776385b 6f75057c21eab12c6ccb7f06f859641a6edfab99 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 205826dcac3271ab04fb97d66f1b4f8219723259 5db5ce0f1963c6c8275719a80cb65e9c98d32726 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 3ec50b8a0128359ff4ad4061a75c3322d0ab6ac9 ccb0a42d3f40c436295e0fef57ab613ae5b925a4 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 47a8fe1b154aa6d836582365b1c70684af8597e4 a868f771ee41c97a25a04b8c632a7f06689b307b git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected ef0f4eeaba2463a77ac5a4e42c30717deb3c7b62 1d9e75c3d8cdf7c96a94cb77450d4ee070279e6a git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected f35c7f506fb96a23a1961c7314c5931ec8bc473e 90f195c01a2e8d8da6281791617e21109719c981 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 0fe1e96fef0a5c53b4c0d1500d356f3906000f81 8d48562a2729742f767b0fdd994d6b2a56a49c63 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected e0274da3ac318296fed503422ccda98ce67e99cb git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 5.18.18 5.19 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 5.10.137 5.10.138 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 5.15.61 5.15.63 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 5.19.2 5.19.4 semver","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[{"cve_year":"2022","cve_id":"50045","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"o","cpe4":"linux","cpe5":"linux_kernel","cpe6":"*","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"}],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"adp":[{"metrics":[{"other":{"content":{"id":"CVE-2022-50045","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","timestamp":"2026-11-05T19:53:24.838996Z","version":"2.0.3"},"type":"ssvc"}}],"providerMetadata":{"dateUpdated":"2026-11-05T20:00:14.866Z","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP"},"title":"CISA ADP Vulnrichment"}],"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["arch/powerpc/kernel/pci-common.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"6f75057c21eab12c6ccb7f06f859641a6edfab99","status":"affected","version":"a79e4395619c926ea7e828b2023c0fbe2776385b","versionType":"git"},{"lessThan":"5db5ce0f1963c6c8275719a80cb65e9c98d32726","status":"affected","version":"205826dcac3271ab04fb97d66f1b4f8219723259","versionType":"git"},{"lessThan":"ccb0a42d3f40c436295e0fef57ab613ae5b925a4","status":"affected","version":"3ec50b8a0128359ff4ad4061a75c3322d0ab6ac9","versionType":"git"},{"lessThan":"a868f771ee41c97a25a04b8c632a7f06689b307b","status":"affected","version":"47a8fe1b154aa6d836582365b1c70684af8597e4","versionType":"git"},{"lessThan":"1d9e75c3d8cdf7c96a94cb77450d4ee070279e6a","status":"affected","version":"ef0f4eeaba2463a77ac5a4e42c30717deb3c7b62","versionType":"git"},{"lessThan":"90f195c01a2e8d8da6281791617e21109719c981","status":"affected","version":"f35c7f506fb96a23a1961c7314c5931ec8bc473e","versionType":"git"},{"lessThan":"8d48562a2729742f767b0fdd994d6b2a56a49c63","status":"affected","version":"0fe1e96fef0a5c53b4c0d1500d356f3906000f81","versionType":"git"},{"status":"affected","version":"e0274da3ac318296fed503422ccda98ce67e99cb","versionType":"git"},{"lessThan":"5.19","status":"affected","version":"5.18.18","versionType":"semver"}]},{"defaultStatus":"unaffected","product":"Linux","programFiles":["arch/powerpc/kernel/pci-common.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"5.10.138","status":"affected","version":"5.10.137","versionType":"semver"},{"lessThan":"5.15.63","status":"affected","version":"5.15.61","versionType":"semver"},{"lessThan":"5.19.4","status":"affected","version":"5.19.2","versionType":"semver"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"5.10.138","versionStartIncluding":"5.10.137","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"5.15.63","versionStartIncluding":"5.15.61","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"5.19.4","versionStartIncluding":"5.19.2","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.18.18","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\npowerpc/pci: Fix get_phb_number() locking\n\nThe recent change to get_phb_number() causes a DEBUG_ATOMIC_SLEEP\nwarning on some systems:\n\n  BUG: sleeping function called from invalid context at kernel/locking/mutex.c:580\n  in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 1, name: swapper\n  preempt_count: 1, expected: 0\n  RCU nest depth: 0, expected: 0\n  1 lock held by swapper/1:\n   #0: c157efb0 (hose_spinlock){+.+.}-{2:2}, at: pcibios_alloc_controller+0x64/0x220\n  Preemption disabled at:\n  [<00000000>] 0x0\n  CPU: 0 PID: 1 Comm: swapper Not tainted 5.19.0-yocto-standard+ #1\n  Call Trace:\n  [d101dc90] [c073b264] dump_stack_lvl+0x50/0x8c (unreliable)\n  [d101dcb0] [c0093b70] __might_resched+0x258/0x2a8\n  [d101dcd0] [c0d3e634] __mutex_lock+0x6c/0x6ec\n  [d101dd50] [c0a84174] of_alias_get_id+0x50/0xf4\n  [d101dd80] [c002ec78] pcibios_alloc_controller+0x1b8/0x220\n  [d101ddd0] [c140c9dc] pmac_pci_init+0x198/0x784\n  [d101de50] [c140852c] discover_phbs+0x30/0x4c\n  [d101de60] [c0007fd4] do_one_initcall+0x94/0x344\n  [d101ded0] [c1403b40] kernel_init_freeable+0x1a8/0x22c\n  [d101df10] [c00086e0] kernel_init+0x34/0x160\n  [d101df30] [c001b334] ret_from_kernel_thread+0x5c/0x64\n\nThis is because pcibios_alloc_controller() holds hose_spinlock but\nof_alias_get_id() takes of_mutex which can sleep.\n\nThe hose_spinlock protects the phb_bitmap, and also the hose_list, but\nit doesn't need to be held while get_phb_number() calls the OF routines,\nbecause those are only looking up information in the device tree.\n\nSo fix it by having get_phb_number() take the hose_spinlock itself, only\nwhere required, and then dropping the lock before returning.\npcibios_alloc_controller() then needs to take the lock again before the\nlist_add() but that's safe, the order of the list is not important."}],"providerMetadata":{"dateUpdated":"2026-05-23T15:23:36.551Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/6f75057c21eab12c6ccb7f06f859641a6edfab99"},{"url":"https://git.kernel.org/stable/c/5db5ce0f1963c6c8275719a80cb65e9c98d32726"},{"url":"https://git.kernel.org/stable/c/ccb0a42d3f40c436295e0fef57ab613ae5b925a4"},{"url":"https://git.kernel.org/stable/c/a868f771ee41c97a25a04b8c632a7f06689b307b"},{"url":"https://git.kernel.org/stable/c/1d9e75c3d8cdf7c96a94cb77450d4ee070279e6a"},{"url":"https://git.kernel.org/stable/c/90f195c01a2e8d8da6281791617e21109719c981"},{"url":"https://git.kernel.org/stable/c/8d48562a2729742f767b0fdd994d6b2a56a49c63"}],"title":"powerpc/pci: Fix get_phb_number() locking","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2022-50045","datePublished":"2025-06-18T11:01:46.233Z","dateReserved":"2025-06-18T10:57:27.401Z","dateUpdated":"2026-11-05T20:00:14.866Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2025-06-18 11:15:33","lastModifiedDate":"2026-11-05 20:17:21","problem_types":["CWE-667"],"metrics":{"cvssMetricV31":[{"source":"nvd@nist.gov","type":"Primary","cvssData":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","baseScore":5.5,"baseSeverity":"MEDIUM","attackVector":"LOCAL","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"NONE","integrityImpact":"NONE","availabilityImpact":"HIGH"},"exploitabilityScore":1.8,"impactScore":3.6}],"ssvcV203":[{"source":"134c704f-9b21-4f2e-91b3-4a467353bcc0","ssvcData":{"timestamp":"2026-11-05T19:53:24.838996Z","id":"CVE-2022-50045","options":[{"exploitation":"none"},{"automatable":"no"},{"technicalImpact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}]},"configurations":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15.61","versionEndExcluding":"5.15.63","matchCriteriaId":"12B98C03-5C34-47D8-88B5-45F39A9AE8BF"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.18.18","versionEndExcluding":"5.19","matchCriteriaId":"B60CAFE2-08C3-461B-B5F8-25BEB0C9853E"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.19.2","versionEndExcluding":"5.19.4","matchCriteriaId":"F88C3564-F4F9-402C-A834-D1A36688CC23"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:5.10.137:*:*:*:*:*:*:*","matchCriteriaId":"C84AA1EC-7FC3-48C4-B7C7-9E35F595F6B5"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:6.0:rc1:*:*:*:*:*:*","matchCriteriaId":"E8BD11A3-8643-49B6-BADE-5029A0117325"}]}]}]},"legacy_mitre":{"record":{"CveYear":"2022","CveId":"50045","Ordinal":"1","Title":"powerpc/pci: Fix get_phb_number() locking","CVE":"CVE-2022-50045","Year":"2022"},"notes":[{"CveYear":"2022","CveId":"50045","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\npowerpc/pci: Fix get_phb_number() locking\n\nThe recent change to get_phb_number() causes a DEBUG_ATOMIC_SLEEP\nwarning on some systems:\n\n  BUG: sleeping function called from invalid context at kernel/locking/mutex.c:580\n  in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 1, name: swapper\n  preempt_count: 1, expected: 0\n  RCU nest depth: 0, expected: 0\n  1 lock held by swapper/1:\n   #0: c157efb0 (hose_spinlock){+.+.}-{2:2}, at: pcibios_alloc_controller+0x64/0x220\n  Preemption disabled at:\n  [<00000000>] 0x0\n  CPU: 0 PID: 1 Comm: swapper Not tainted 5.19.0-yocto-standard+ #1\n  Call Trace:\n  [d101dc90] [c073b264] dump_stack_lvl+0x50/0x8c (unreliable)\n  [d101dcb0] [c0093b70] __might_resched+0x258/0x2a8\n  [d101dcd0] [c0d3e634] __mutex_lock+0x6c/0x6ec\n  [d101dd50] [c0a84174] of_alias_get_id+0x50/0xf4\n  [d101dd80] [c002ec78] pcibios_alloc_controller+0x1b8/0x220\n  [d101ddd0] [c140c9dc] pmac_pci_init+0x198/0x784\n  [d101de50] [c140852c] discover_phbs+0x30/0x4c\n  [d101de60] [c0007fd4] do_one_initcall+0x94/0x344\n  [d101ded0] [c1403b40] kernel_init_freeable+0x1a8/0x22c\n  [d101df10] [c00086e0] kernel_init+0x34/0x160\n  [d101df30] [c001b334] ret_from_kernel_thread+0x5c/0x64\n\nThis is because pcibios_alloc_controller() holds hose_spinlock but\nof_alias_get_id() takes of_mutex which can sleep.\n\nThe hose_spinlock protects the phb_bitmap, and also the hose_list, but\nit doesn't need to be held while get_phb_number() calls the OF routines,\nbecause those are only looking up information in the device tree.\n\nSo fix it by having get_phb_number() take the hose_spinlock itself, only\nwhere required, and then dropping the lock before returning.\npcibios_alloc_controller() then needs to take the lock again before the\nlist_add() but that's safe, the order of the list is not important.","Type":"Description","Title":"powerpc/pci: Fix get_phb_number() locking"}]}}}