Pull parisc fixes from Helge Deller: "A 32-bit boot regression fix introduced in the merge window, a QEMU detection fix and two fixes by Sven regarding ptrace & kprobes" * 'parisc-5.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux: parisc: Detect QEMU earlier in boot process parisc: also set iaoq_b in instruction_pointer_set() parisc: regs_return_value() should return gpr28 Revert: parisc: Use F_EXTEND() macro in iosapic code
Unified · Split
| @@ -22,13 +22,14 @@ unsigned long profile_pc(struct pt_regs *); · 21 unmodified lines | |||
| 22 | 22 | ||
| 23 | static inline unsigned long regs_return_value(struct pt_regs *regs) | 23 | static inline unsigned long regs_return_value(struct pt_regs *regs) |
| 24 | { | 24 | { |
| 25 | return regs->gr[20]; | 25 | return regs->gr[28]; |
| 26 | } | 26 | } |
| 27 | 27 | ||
| 28 | static inline void instruction_pointer_set(struct pt_regs *regs, | 28 | static inline void instruction_pointer_set(struct pt_regs *regs, |
| 29 | unsigned long val) | 29 | unsigned long val) |
| 30 | { | 30 | { |
| 31 | regs->iaoq[0] = val; | 31 | regs->iaoq[0] = val; |
| 32 | regs->iaoq[1] = val + 4; | ||
| 32 | } | 33 | } |
| 33 | 34 | ||
| 34 | /* Query offset/name of register from its name/offset */ | 35 | /* Query offset/name of register from its name/offset */ |
| @@ -210,12 +210,6 @@ void __cpuidle arch_cpu_idle(void) · 209 unmodified lines | |||
| 210 | 210 | ||
| 211 | static int __init parisc_idle_init(void) | 211 | static int __init parisc_idle_init(void) |
| 212 | { | 212 | { |
| 213 | const char *marker; | ||
| 214 | |||
| 215 | /* check QEMU/SeaBIOS marker in PAGE0 */ | ||
| 216 | marker = (char *) &PAGE0->pad0; | ||
| 217 | running_on_qemu = (memcmp(marker, "SeaBIOS", 8) == 0); | ||
| 218 | |||
| 219 | if (!running_on_qemu) | 213 | if (!running_on_qemu) |
| 220 | cpu_idle_poll_ctrl(1); | 214 | cpu_idle_poll_ctrl(1); |
| 221 | 215 | ||
| @@ -397,6 +397,9 @@ void __init start_parisc(void) · 396 unmodified lines | |||
| 397 | int ret, cpunum; | 397 | int ret, cpunum; |
| 398 | struct pdc_coproc_cfg coproc_cfg; | 398 | struct pdc_coproc_cfg coproc_cfg; |
| 399 | 399 | ||
| 400 | /* check QEMU/SeaBIOS marker in PAGE0 */ | ||
| 401 | running_on_qemu = (memcmp(&PAGE0->pad0, "SeaBIOS", 8) == 0); | ||
| 402 | |||
| 400 | cpunum = smp_processor_id(); | 403 | cpunum = smp_processor_id(); |
| 401 | 404 | ||
| 402 | init_cpu_topology(); | 405 | init_cpu_topology(); |
| @@ -157,8 +157,12 @@ · 156 unmodified lines | |||
| 157 | #define DBG_IRT(x...) | 157 | #define DBG_IRT(x...) |
| 158 | #endif | 158 | #endif |
| 159 | 159 | ||
| 160 | #ifdef CONFIG_64BIT | ||
| 161 | #define COMPARE_IRTE_ADDR(irte, hpa) ((irte)->dest_iosapic_addr == (hpa)) | ||
| 162 | #else | ||
| 160 | #define COMPARE_IRTE_ADDR(irte, hpa) \ | 163 | #define COMPARE_IRTE_ADDR(irte, hpa) \ |
| 161 | ((irte)->dest_iosapic_addr == F_EXTEND(hpa)) | 164 | ((irte)->dest_iosapic_addr == ((hpa) | 0xffffffff00000000ULL)) |
| 165 | #endif | ||
| 162 | 166 | ||
| 163 | #define IOSAPIC_REG_SELECT 0x00 | 167 | #define IOSAPIC_REG_SELECT 0x00 |
| 164 | #define IOSAPIC_REG_WINDOW 0x10 | 168 | #define IOSAPIC_REG_WINDOW 0x10 |