diff options
| -rw-r--r-- | arch/parisc/include/asm/ptrace.h | 5 | ||||
| -rw-r--r-- | arch/parisc/kernel/process.c | 6 | ||||
| -rw-r--r-- | arch/parisc/kernel/setup.c | 3 | ||||
| -rw-r--r-- | drivers/parisc/iosapic.c | 6 |
4 files changed, 11 insertions, 9 deletions
diff --git a/arch/parisc/include/asm/ptrace.h b/arch/parisc/include/asm/ptrace.h index 2a27b275ab09..9ff033d261ab 100644 --- a/arch/parisc/include/asm/ptrace.h +++ b/arch/parisc/include/asm/ptrace.h | |||
| @@ -22,13 +22,14 @@ unsigned long profile_pc(struct pt_regs *); | |||
| 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 */ |
diff --git a/arch/parisc/kernel/process.c b/arch/parisc/kernel/process.c index eb39e7e380d7..841db71958cd 100644 --- a/arch/parisc/kernel/process.c +++ b/arch/parisc/kernel/process.c | |||
| @@ -210,12 +210,6 @@ void __cpuidle arch_cpu_idle(void) | |||
| 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 | ||
diff --git a/arch/parisc/kernel/setup.c b/arch/parisc/kernel/setup.c index 15dd9e21be7e..d908058d05c1 100644 --- a/arch/parisc/kernel/setup.c +++ b/arch/parisc/kernel/setup.c | |||
| @@ -397,6 +397,9 @@ void __init start_parisc(void) | |||
| 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(); |
diff --git a/drivers/parisc/iosapic.c b/drivers/parisc/iosapic.c index 1be571c20062..6bad04cbb1d3 100644 --- a/drivers/parisc/iosapic.c +++ b/drivers/parisc/iosapic.c | |||
| @@ -157,8 +157,12 @@ | |||
| 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 |
