From 618b206f0b580d965eb26f704ed23beee2a8c25d Mon Sep 17 00:00:00 2001 From: Russ Anderson Date: Thu, 14 Dec 2006 16:01:41 -0600 Subject: [IA64] Proper handling of TLB errors from duplicate itr.d dropins Jack Steiner noticed that duplicate TLB DTC entries do not cause a linux panic. See discussion: http://www.gelato.unsw.edu.au/archives/linux-ia64/0307/6108.html The current TLB recovery code is recovering from the duplicate itr.d dropins, masking the underlying problem. This change modifies the MCA recovery code to look for the TLB check signature of the duplicate TLB entry and panic in that case. Signed-off-by: Russ Anderson (rja@sgi.com) Signed-off-by: Tony Luck --- include/asm-ia64/pal.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include/asm-ia64') diff --git a/include/asm-ia64/pal.h b/include/asm-ia64/pal.h index e43021a99a20..67656ce767c2 100644 --- a/include/asm-ia64/pal.h +++ b/include/asm-ia64/pal.h @@ -371,6 +371,7 @@ typedef u64 pal_mc_info_index_t; * dependent */ +#define PAL_TLB_CHECK_OP_PURGE 8 typedef struct pal_process_state_info_s { u64 reserved1 : 2, -- cgit v1.2.1 From 860abe8f7254208074cef83dc9ebc4d70ae277a9 Mon Sep 17 00:00:00 2001 From: Horms Date: Wed, 7 Feb 2007 15:49:25 +0900 Subject: [IA64] whitespace fixes for include/asm-ia64/sal.h * Make use of spaces and tabs consistent * Make long line < 80col Signed-off-by: Simon Horman Signed-off-by: Tony Luck --- include/asm-ia64/sal.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'include/asm-ia64') diff --git a/include/asm-ia64/sal.h b/include/asm-ia64/sal.h index d000689d9142..46cadf5aaac5 100644 --- a/include/asm-ia64/sal.h +++ b/include/asm-ia64/sal.h @@ -847,12 +847,13 @@ extern int ia64_sal_oemcall_reentrant(struct ia64_sal_retval *, u64, u64, u64, */ struct sal_to_os_boot { u64 rr[8]; /* Region Registers */ - u64 br[6]; /* br0: return addr into SAL boot rendez routine */ + u64 br[6]; /* br0: + * return addr into SAL boot rendez routine */ u64 gr1; /* SAL:GP */ u64 gr12; /* SAL:SP */ u64 gr13; /* SAL: Task Pointer */ u64 fpsr; - u64 pfs; + u64 pfs; u64 rnat; u64 unat; u64 bspstore; -- cgit v1.2.1 From 8621235b2ede3276e9862540f0188e40471a99f7 Mon Sep 17 00:00:00 2001 From: "Zhang, Yanmin" Date: Mon, 12 Feb 2007 14:12:01 +0800 Subject: [IA64] pci_get_legacy_ide_irq should return irq (not GSI) Function pci_get_legacy_ide_irq is incorrect on ia64. It should return irq vector instead of GSI. The fixed number 14 and 15 are just GSI. Signed-off-by: Zhang Yanmin Signed-off-by: Tony Luck --- include/asm-ia64/pci.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'include/asm-ia64') diff --git a/include/asm-ia64/pci.h b/include/asm-ia64/pci.h index 5160233bbfac..5a5d1c2ce39d 100644 --- a/include/asm-ia64/pci.h +++ b/include/asm-ia64/pci.h @@ -9,6 +9,7 @@ #include #include +#include /* * Can be used to override the logic in pci_scan_bus for skipping already-configured bus @@ -170,7 +171,7 @@ pcibios_select_root(struct pci_dev *pdev, struct resource *res) #define HAVE_ARCH_PCI_GET_LEGACY_IDE_IRQ static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) { - return channel ? 15 : 14; + return channel ? isa_irq_to_vector(15) : isa_irq_to_vector(14); } #endif /* _ASM_IA64_PCI_H */ -- cgit v1.2.1 From 297632544a7a761144636accdb558db9d99a3647 Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Wed, 14 Feb 2007 16:17:47 +0900 Subject: [IA64] kexec: declare ia64_mca_pal_base in mca.h rather than kexec.h * Kexec adds some code to arch/ia64/kernel/smp.c which needs ia64_mca_pal_base, so the kexec patch (actually the kdump patch) declares this per-cpu variable in include/asm-ia64/kexec.h. * ia64_mca_pal_base is defined in arch/ia64/kernel/mca.c, so it seems to me that it would make a lot more sense to declare it in include/asm-ia64/mca.h. Signed-off-by: Simon Horman Signed-off-by: Tony Luck --- include/asm-ia64/kexec.h | 1 - include/asm-ia64/mca.h | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'include/asm-ia64') diff --git a/include/asm-ia64/kexec.h b/include/asm-ia64/kexec.h index f2ad469a6ddf..41299ddfee30 100644 --- a/include/asm-ia64/kexec.h +++ b/include/asm-ia64/kexec.h @@ -22,7 +22,6 @@ } while(0) extern struct kimage *ia64_kimage; -DECLARE_PER_CPU(u64, ia64_mca_pal_base); extern const unsigned int relocate_new_kernel_size; extern void relocate_new_kernel(unsigned long, unsigned long, struct ia64_boot_param *, unsigned long); diff --git a/include/asm-ia64/mca.h b/include/asm-ia64/mca.h index ee97f7c2d462..41098f459684 100644 --- a/include/asm-ia64/mca.h +++ b/include/asm-ia64/mca.h @@ -156,6 +156,8 @@ struct ia64_mca_notify_die { int *monarch_cpu; }; +DECLARE_PER_CPU(u64, ia64_mca_pal_base); + #else /* __ASSEMBLY__ */ #define IA64_MCA_CORRECTED 0x0 /* Error has been corrected by OS_MCA */ -- cgit v1.2.1 From 1f0ef4ef60b4ef0a18dfc50938f3a94c5edd66ce Mon Sep 17 00:00:00 2001 From: Keith Owens Date: Thu, 1 Mar 2007 16:19:00 +1100 Subject: [IA64] Remove sparse warning from unwind code Running ia64 through sparse gives warnings in the unwind code. include/asm-ia64/unwind.h:84:17: error: dubious bitfield without explicit `signed' or `unsigned' Make the bitfield explicitly unsigned. Signed-off-by: Keith Owens Signed-off-by: Tony Luck --- include/asm-ia64/unwind.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include/asm-ia64') diff --git a/include/asm-ia64/unwind.h b/include/asm-ia64/unwind.h index 5df0276b0493..1af3875f1a57 100644 --- a/include/asm-ia64/unwind.h +++ b/include/asm-ia64/unwind.h @@ -81,7 +81,7 @@ struct unw_frame_info { struct unw_ireg { unsigned long *loc; struct unw_ireg_nat { - long type : 3; /* enum unw_nat_type */ + unsigned long type : 3; /* enum unw_nat_type */ signed long off : 61; /* NaT word is at loc+nat.off */ } nat; } r4, r5, r6, r7; -- cgit v1.2.1