CVE-2021-47454 in Linux
Zusammenfassung
von VulDB • 06.06.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
powerpc/smp: Den Preemption-Zähler des Idle-Tasks bei der Offline-Schaltung einer CPU nicht dekrementieren
Bei aktiviertem PREEMPT_COUNT=y tritt beim erneuten Online-Schalten einer zuvor offline geschalteten CPU Folgendes auf:
BUG: scheduling while atomic: swapper/1/0/0x00000000 no locks held by swapper/1/0. CPU: 1 PID: 0 Comm: swapper/1 Not tainted 5.15.0-rc2+ #100 Call Trace: dump_stack_lvl+0xac/0x108 __schedule_bug+0xac/0xe0 __schedule+0xcf8/0x10d0 schedule_idle+0x3c/0x70 do_idle+0x2d8/0x4a0 cpu_startup_entry+0x38/0x40 start_secondary+0x2ec/0x3a0 start_secondary_prolog+0x10/0x14
Dies liegt daran, dass arch_cpu_idle_dead() von powerpc den Preemption-Zähler des Idle-Tasks dekrementiert. Die Gründe hierfür werden im Commit a7c2bb8279d2 („powerpc: Re-enable preemption before cpu_die()“) erläutert, insbesondere „start_secondary() erwartet einen preempt_count() von 0.“
Seit dem Commit 2c669ef6979c („powerpc/preempt: Don't touch the idle task's preempt_count during hotplug“) und dem Commit f1a0a376ca0c („sched/core: Initialize the idle task with preemption disabled“) trifft diese Begründung jedoch nicht mehr zu.
Der Idle-Task sollte die Preemption nicht wieder aktivieren, daher wird der veraltete Aufruf von preempt_enable() aus dem Pfad zur Offline-Schaltung einer CPU entfernt.
Getestet mit pseries und powernv in QEMU sowie pseries auf PowerVM.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.