aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/parisc/include/asm/ptrace.h5
-rw-r--r--arch/parisc/kernel/process.c6
-rw-r--r--arch/parisc/kernel/setup.c3
-rw-r--r--drivers/parisc/iosapic.c6
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
23static inline unsigned long regs_return_value(struct pt_regs *regs) 23static 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
28static inline void instruction_pointer_set(struct pt_regs *regs, 28static 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
211static int __init parisc_idle_init(void) 211static 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