* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6: sparc64: Fix SMP bootup with CONFIG_STACK_DEBUG or ftrace. sparc64: Fix OOPS in psycho_pcierr_intr_other().
···575575{576576 unsigned long csr_reg, csr, csr_error_bits;577577 irqreturn_t ret = IRQ_NONE;578578- u16 stat;578578+ u16 stat, *addr;579579580580 if (is_pbm_a) {581581 csr_reg = pbm->controller_regs + PSYCHO_PCIA_CTRL;···597597 printk("%s: PCI SERR signal asserted.\n", pbm->name);598598 ret = IRQ_HANDLED;599599 }600600- pci_read_config_word(pbm->pci_bus->self, PCI_STATUS, &stat);600600+ addr = psycho_pci_config_mkaddr(pbm, pbm->pci_first_busno,601601+ 0, PCI_STATUS);602602+ pci_config_read16(addr, &stat);601603 if (stat & (PCI_STATUS_PARITY |602604 PCI_STATUS_SIG_TARGET_ABORT |603605 PCI_STATUS_REC_TARGET_ABORT |···607605 PCI_STATUS_SIG_SYSTEM_ERROR)) {608606 printk("%s: PCI bus error, PCI_STATUS[%04x]\n",609607 pbm->name, stat);610610- pci_write_config_word(pbm->pci_bus->self, PCI_STATUS, 0xffff);608608+ pci_config_write16(addr, 0xffff);611609 ret = IRQ_HANDLED;612610 }613611 return ret;
+2-1
arch/sparc64/kernel/traps.c
···10101111#include <linux/module.h>1212#include <linux/sched.h>1313+#include <linux/linkage.h>1314#include <linux/kernel.h>1415#include <linux/signal.h>1516#include <linux/smp.h>···24542453/* This can get invoked before sched_init() so play it super safe24552454 * and use hard_smp_processor_id().24562455 */24572457-void init_cur_cpu_trap(struct thread_info *t)24562456+void notrace init_cur_cpu_trap(struct thread_info *t)24582457{24592458 int cpu = hard_smp_processor_id();24602459 struct trap_per_cpu *p = &trap_block[cpu];