Message ID | 20220325143833.402631-9-deller@gmx.de (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [01/12] parisc: Switch from GENERIC_CPU_DEVICES to GENERIC_ARCH_TOPOLOGY | expand |
Am Freitag, 25. März 2022, 15:38:30 CET schrieb Helge Deller: > Make sure, that set_firmware_width() is only called once at > runtime. This prevents that if secondary CPUs are started later > get stuck in spinlocks. The second sentence seems to be missing a word.
diff --git a/arch/parisc/kernel/firmware.c b/arch/parisc/kernel/firmware.c index 3370e347dde3..c6b11bdb8602 100644 --- a/arch/parisc/kernel/firmware.c +++ b/arch/parisc/kernel/firmware.c @@ -83,7 +83,7 @@ extern unsigned long pdc_result2[NUM_PDC_RESULT]; /* Firmware needs to be initially set to narrow to determine the * actual firmware width. */ -int parisc_narrow_firmware __ro_after_init = 1; +int parisc_narrow_firmware __ro_after_init = 2; #endif /* On most currently-supported platforms, IODC I/O calls are 32-bit calls @@ -174,6 +174,11 @@ void set_firmware_width_unlocked(void) void set_firmware_width(void) { unsigned long flags; + + /* already initialized? */ + if (parisc_narrow_firmware != 2) + return; + spin_lock_irqsave(&pdc_lock, flags); set_firmware_width_unlocked(); spin_unlock_irqrestore(&pdc_lock, flags);
Make sure, that set_firmware_width() is only called once at runtime. This prevents that if secondary CPUs are started later get stuck in spinlocks. Signed-off-by: Helge Deller <deller@gmx.de> --- arch/parisc/kernel/firmware.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) -- 2.35.1