diff options
| -rw-r--r-- | arch/sparc64/kernel/irq.c | 5 | ||||
| -rw-r--r-- | arch/sparc64/kernel/pci_psycho.c | 8 | ||||
| -rw-r--r-- | arch/sparc64/kernel/traps.c | 3 |
3 files changed, 10 insertions, 6 deletions
diff --git a/arch/sparc64/kernel/irq.c b/arch/sparc64/kernel/irq.c index 23963882bc18..7495bc774685 100644 --- a/arch/sparc64/kernel/irq.c +++ b/arch/sparc64/kernel/irq.c | |||
| @@ -7,6 +7,7 @@ | |||
| 7 | 7 | ||
| 8 | #include <linux/module.h> | 8 | #include <linux/module.h> |
| 9 | #include <linux/sched.h> | 9 | #include <linux/sched.h> |
| 10 | #include <linux/linkage.h> | ||
| 10 | #include <linux/ptrace.h> | 11 | #include <linux/ptrace.h> |
| 11 | #include <linux/errno.h> | 12 | #include <linux/errno.h> |
| 12 | #include <linux/kernel_stat.h> | 13 | #include <linux/kernel_stat.h> |
| @@ -866,7 +867,7 @@ static void kill_prom_timer(void) | |||
| 866 | : "g1", "g2"); | 867 | : "g1", "g2"); |
| 867 | } | 868 | } |
| 868 | 869 | ||
| 869 | void init_irqwork_curcpu(void) | 870 | void notrace init_irqwork_curcpu(void) |
| 870 | { | 871 | { |
| 871 | int cpu = hard_smp_processor_id(); | 872 | int cpu = hard_smp_processor_id(); |
| 872 | 873 | ||
| @@ -897,7 +898,7 @@ static void __cpuinit register_one_mondo(unsigned long paddr, unsigned long type | |||
| 897 | } | 898 | } |
| 898 | } | 899 | } |
| 899 | 900 | ||
| 900 | void __cpuinit sun4v_register_mondo_queues(int this_cpu) | 901 | void __cpuinit notrace sun4v_register_mondo_queues(int this_cpu) |
| 901 | { | 902 | { |
| 902 | struct trap_per_cpu *tb = &trap_block[this_cpu]; | 903 | struct trap_per_cpu *tb = &trap_block[this_cpu]; |
| 903 | 904 | ||
diff --git a/arch/sparc64/kernel/pci_psycho.c b/arch/sparc64/kernel/pci_psycho.c index e205ade69cfc..f85b6bebb0be 100644 --- a/arch/sparc64/kernel/pci_psycho.c +++ b/arch/sparc64/kernel/pci_psycho.c | |||
| @@ -575,7 +575,7 @@ static irqreturn_t psycho_pcierr_intr_other(struct pci_pbm_info *pbm, int is_pbm | |||
| 575 | { | 575 | { |
| 576 | unsigned long csr_reg, csr, csr_error_bits; | 576 | unsigned long csr_reg, csr, csr_error_bits; |
| 577 | irqreturn_t ret = IRQ_NONE; | 577 | irqreturn_t ret = IRQ_NONE; |
| 578 | u16 stat; | 578 | u16 stat, *addr; |
| 579 | 579 | ||
| 580 | if (is_pbm_a) { | 580 | if (is_pbm_a) { |
| 581 | csr_reg = pbm->controller_regs + PSYCHO_PCIA_CTRL; | 581 | csr_reg = pbm->controller_regs + PSYCHO_PCIA_CTRL; |
| @@ -597,7 +597,9 @@ static irqreturn_t psycho_pcierr_intr_other(struct pci_pbm_info *pbm, int is_pbm | |||
| 597 | printk("%s: PCI SERR signal asserted.\n", pbm->name); | 597 | printk("%s: PCI SERR signal asserted.\n", pbm->name); |
| 598 | ret = IRQ_HANDLED; | 598 | ret = IRQ_HANDLED; |
| 599 | } | 599 | } |
| 600 | pci_read_config_word(pbm->pci_bus->self, PCI_STATUS, &stat); | 600 | addr = psycho_pci_config_mkaddr(pbm, pbm->pci_first_busno, |
| 601 | 0, PCI_STATUS); | ||
| 602 | pci_config_read16(addr, &stat); | ||
| 601 | if (stat & (PCI_STATUS_PARITY | | 603 | if (stat & (PCI_STATUS_PARITY | |
| 602 | PCI_STATUS_SIG_TARGET_ABORT | | 604 | PCI_STATUS_SIG_TARGET_ABORT | |
| 603 | PCI_STATUS_REC_TARGET_ABORT | | 605 | PCI_STATUS_REC_TARGET_ABORT | |
| @@ -605,7 +607,7 @@ static irqreturn_t psycho_pcierr_intr_other(struct pci_pbm_info *pbm, int is_pbm | |||
| 605 | PCI_STATUS_SIG_SYSTEM_ERROR)) { | 607 | PCI_STATUS_SIG_SYSTEM_ERROR)) { |
| 606 | printk("%s: PCI bus error, PCI_STATUS[%04x]\n", | 608 | printk("%s: PCI bus error, PCI_STATUS[%04x]\n", |
| 607 | pbm->name, stat); | 609 | pbm->name, stat); |
| 608 | pci_write_config_word(pbm->pci_bus->self, PCI_STATUS, 0xffff); | 610 | pci_config_write16(addr, 0xffff); |
| 609 | ret = IRQ_HANDLED; | 611 | ret = IRQ_HANDLED; |
| 610 | } | 612 | } |
| 611 | return ret; | 613 | return ret; |
diff --git a/arch/sparc64/kernel/traps.c b/arch/sparc64/kernel/traps.c index 3d924121c796..c824df13f589 100644 --- a/arch/sparc64/kernel/traps.c +++ b/arch/sparc64/kernel/traps.c | |||
| @@ -10,6 +10,7 @@ | |||
| 10 | 10 | ||
| 11 | #include <linux/module.h> | 11 | #include <linux/module.h> |
| 12 | #include <linux/sched.h> | 12 | #include <linux/sched.h> |
| 13 | #include <linux/linkage.h> | ||
| 13 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
| 14 | #include <linux/signal.h> | 15 | #include <linux/signal.h> |
| 15 | #include <linux/smp.h> | 16 | #include <linux/smp.h> |
| @@ -2453,7 +2454,7 @@ struct trap_per_cpu trap_block[NR_CPUS]; | |||
| 2453 | /* This can get invoked before sched_init() so play it super safe | 2454 | /* This can get invoked before sched_init() so play it super safe |
| 2454 | * and use hard_smp_processor_id(). | 2455 | * and use hard_smp_processor_id(). |
| 2455 | */ | 2456 | */ |
| 2456 | void init_cur_cpu_trap(struct thread_info *t) | 2457 | void notrace init_cur_cpu_trap(struct thread_info *t) |
| 2457 | { | 2458 | { |
| 2458 | int cpu = hard_smp_processor_id(); | 2459 | int cpu = hard_smp_processor_id(); |
| 2459 | struct trap_per_cpu *p = &trap_block[cpu]; | 2460 | struct trap_per_cpu *p = &trap_block[cpu]; |
