diff options
author | Linus Torvalds <[email protected]> | 2024-01-17 11:45:01 -0800 |
---|---|---|
committer | Linus Torvalds <[email protected]> | 2024-01-17 11:45:01 -0800 |
commit | bce3b5d6764b1e8cd8e24f4ced54ec0c42a64c32 (patch) | |
tree | a9b7b34d0106c6511c9f8a502d940944180d0e7a | |
parent | 47ce834fbb6ce6cb9e802f651b647b8030c5fc7f (diff) | |
parent | 6472036581f947109b20664121db1d143e916f0b (diff) |
Merge tag 'parisc-for-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux
Pull parisc updates from Helge Deller:
"Two small fixes for the parisc architecture:
- Fix PDC address calculation with narrow firmware (64-bit kernel on
32-bit firmware)
- Fix kthread which checks power button get started on qemu too"
* tag 'parisc-for-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
parisc/power: Fix power soft-off button emulation on qemu
parisc/firmware: Fix F-extend for PDC addresses
-rw-r--r-- | arch/parisc/kernel/firmware.c | 4 | ||||
-rw-r--r-- | drivers/parisc/power.c | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/arch/parisc/kernel/firmware.c b/arch/parisc/kernel/firmware.c index 904ca3b9e7a7..c69f6d5946e9 100644 --- a/arch/parisc/kernel/firmware.c +++ b/arch/parisc/kernel/firmware.c @@ -123,10 +123,10 @@ static unsigned long f_extend(unsigned long address) #ifdef CONFIG_64BIT if(unlikely(parisc_narrow_firmware)) { if((address & 0xff000000) == 0xf0000000) - return 0xf0f0f0f000000000UL | (u32)address; + return (0xfffffff0UL << 32) | (u32)address; if((address & 0xf0000000) == 0xf0000000) - return 0xffffffff00000000UL | (u32)address; + return (0xffffffffUL << 32) | (u32)address; } #endif return address; diff --git a/drivers/parisc/power.c b/drivers/parisc/power.c index bb0d92461b08..7a6a3e7f2825 100644 --- a/drivers/parisc/power.c +++ b/drivers/parisc/power.c @@ -213,7 +213,7 @@ static int __init power_init(void) if (running_on_qemu && soft_power_reg) register_sys_off_handler(SYS_OFF_MODE_POWER_OFF, SYS_OFF_PRIO_DEFAULT, qemu_power_off, (void *)soft_power_reg); - else + if (!running_on_qemu || soft_power_reg) power_task = kthread_run(kpowerswd, (void*)soft_power_reg, KTHREAD_NAME); if (IS_ERR(power_task)) { |