Skip to content

Commit 373c392

Browse files
committed
Merge branch 'parisc-5.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux
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
2 parents 10dce8a + d006e95 commit 373c392

File tree

4 files changed

+11
-9
lines changed

4 files changed

+11
-9
lines changed

arch/parisc/include/asm/ptrace.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,14 @@ unsigned long profile_pc(struct pt_regs *);
2222

2323
static inline unsigned long regs_return_value(struct pt_regs *regs)
2424
{
25-
return regs->gr[20];
25+
return regs->gr[28];
2626
}
2727

2828
static inline void instruction_pointer_set(struct pt_regs *regs,
2929
unsigned long val)
3030
{
31-
regs->iaoq[0] = val;
31+
regs->iaoq[0] = val;
32+
regs->iaoq[1] = val + 4;
3233
}
3334

3435
/* Query offset/name of register from its name/offset */

arch/parisc/kernel/process.c

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -210,12 +210,6 @@ void __cpuidle arch_cpu_idle(void)
210210

211211
static int __init parisc_idle_init(void)
212212
{
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-
219213
if (!running_on_qemu)
220214
cpu_idle_poll_ctrl(1);
221215

arch/parisc/kernel/setup.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -397,6 +397,9 @@ void __init start_parisc(void)
397397
int ret, cpunum;
398398
struct pdc_coproc_cfg coproc_cfg;
399399

400+
/* check QEMU/SeaBIOS marker in PAGE0 */
401+
running_on_qemu = (memcmp(&PAGE0->pad0, "SeaBIOS", 8) == 0);
402+
400403
cpunum = smp_processor_id();
401404

402405
init_cpu_topology();

drivers/parisc/iosapic.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,8 +157,12 @@
157157
#define DBG_IRT(x...)
158158
#endif
159159

160+
#ifdef CONFIG_64BIT
161+
#define COMPARE_IRTE_ADDR(irte, hpa) ((irte)->dest_iosapic_addr == (hpa))
162+
#else
160163
#define COMPARE_IRTE_ADDR(irte, hpa) \
161-
((irte)->dest_iosapic_addr == F_EXTEND(hpa))
164+
((irte)->dest_iosapic_addr == ((hpa) | 0xffffffff00000000ULL))
165+
#endif
162166

163167
#define IOSAPIC_REG_SELECT 0x00
164168
#define IOSAPIC_REG_WINDOW 0x10

0 commit comments

Comments
 (0)