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 | 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 | 28 | static inline void instruction_pointer_set(struct pt_regs *regs, |
| 29 | 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 | 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 | 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 | 213 | if (!running_on_qemu) |
| 220 | 214 | cpu_idle_poll_ctrl(1); |
| 221 | 215 | |
| @@ -397,6 +397,9 @@ void __init start_parisc(void) · 396 unmodified lines | ||
| 397 | 397 | int ret, cpunum; |
| 398 | 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 | 403 | cpunum = smp_processor_id(); |
| 401 | 404 | |
| 402 | 405 | init_cpu_topology(); |
| @@ -157,8 +157,12 @@ · 156 unmodified lines | ||
| 157 | 157 | #define DBG_IRT(x...) |
| 158 | 158 | #endif |
| 159 | 159 | |
| 160 | +#ifdef CONFIG_64BIT | |
| 161 | +#define COMPARE_IRTE_ADDR(irte, hpa) ((irte)->dest_iosapic_addr == (hpa)) | |
| 162 | +#else | |
| 160 | 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 | 167 | #define IOSAPIC_REG_SELECT 0x00 |
| 164 | 168 | #define IOSAPIC_REG_WINDOW 0x10 |