From 02ea08ec68970cbdf2cc57a602dc88811313dc96 Mon Sep 17 00:00:00 2001 From: dann frazier Date: Mon, 6 Nov 2006 22:17:32 +0000 Subject: [PATCH] * [ia64] Move to upstream version of sal-flush-fix patch, which is slightly different than the early version added in 2.6.18-3. svn path=/dists/trunk/linux-2.6/; revision=7707 --- debian/changelog | 6 +- .../bugfix/ia64/sal-flush-fix-upstream.patch | 76 +++++++++++++++++++ debian/patches/series/5 | 2 + 3 files changed, 83 insertions(+), 1 deletion(-) create mode 100644 debian/patches/bugfix/ia64/sal-flush-fix-upstream.patch diff --git a/debian/changelog b/debian/changelog index bf8d6b7a5..8ed15bbde 100644 --- a/debian/changelog +++ b/debian/changelog @@ -13,7 +13,11 @@ linux-2.6 (2.6.18-5) UNRELEASED; urgency=low * Update vserver patch to 2.0.2.2-rc5. * Update xen parts for vserver. (closes: #397281) - -- Bastian Blank Mon, 6 Nov 2006 14:24:00 +0100 + [ dann frazier ] + * [ia64] Move to upstream version of sal-flush-fix patch, which is slightly + different than the early version added in 2.6.18-3. + + -- dann frazier Mon, 6 Nov 2006 15:15:17 -0700 linux-2.6 (2.6.18-4) unstable; urgency=low diff --git a/debian/patches/bugfix/ia64/sal-flush-fix-upstream.patch b/debian/patches/bugfix/ia64/sal-flush-fix-upstream.patch new file mode 100644 index 000000000..e312cdc85 --- /dev/null +++ b/debian/patches/bugfix/ia64/sal-flush-fix-upstream.patch @@ -0,0 +1,76 @@ +From: Troy Heber +Date: Wed, 25 Oct 2006 20:46:15 +0000 (-0600) +Subject: [IA64] move SAL_CACHE_FLUSH check later in boot +X-Git-Url: http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=fa1d19e5d9a94120f31e5783ab44758f46892d94 + +[IA64] move SAL_CACHE_FLUSH check later in boot + +The check to see if the firmware drops interrupts during a +SAL_CACHE_FLUSH is done to early in the boot. SAL_CACHE_FLUSH expects +to be able to make PAL calls in virtual mode, on some cell based +machines a fault occurs causing a MCA. This patch moves the check +after mmu_context_init so the TLB and VHPT are properly setup. + +Signed-off-by Troy Heber +Signed-off-by: Tony Luck +--- + +--- a/arch/ia64/kernel/sal.c ++++ b/arch/ia64/kernel/sal.c +@@ -223,12 +223,13 @@ static void __init sal_desc_ap_wakeup(vo + */ + static int sal_cache_flush_drops_interrupts; + +-static void __init ++void __init + check_sal_cache_flush (void) + { + unsigned long flags; + int cpu; +- u64 vector; ++ u64 vector, cache_type = 3; ++ struct ia64_sal_retval isrv; + + cpu = get_cpu(); + local_irq_save(flags); +@@ -243,7 +244,10 @@ check_sal_cache_flush (void) + while (!ia64_get_irr(IA64_TIMER_VECTOR)) + cpu_relax(); + +- ia64_sal_cache_flush(3); ++ SAL_CALL(isrv, SAL_CACHE_FLUSH, cache_type, 0, 0, 0, 0, 0, 0); ++ ++ if (isrv.status) ++ printk(KERN_ERR "SAL_CAL_FLUSH failed with %ld\n", isrv.status); + + if (ia64_get_irr(IA64_TIMER_VECTOR)) { + vector = ia64_get_ivr(); +@@ -331,7 +335,6 @@ ia64_sal_init (struct ia64_sal_systab *s + p += SAL_DESC_SIZE(*p); + } + +- check_sal_cache_flush(); + } + + int +--- a/arch/ia64/kernel/setup.c ++++ b/arch/ia64/kernel/setup.c +@@ -457,6 +457,8 @@ setup_arch (char **cmdline_p) + cpu_init(); /* initialize the bootstrap CPU */ + mmu_context_init(); /* initialize context_id bitmap */ + ++ check_sal_cache_flush(); ++ + #ifdef CONFIG_ACPI + acpi_boot_init(); + #endif +--- a/include/asm-ia64/sal.h ++++ b/include/asm-ia64/sal.h +@@ -659,6 +659,7 @@ ia64_sal_freq_base (unsigned long which, + } + + extern s64 ia64_sal_cache_flush (u64 cache_type); ++extern void __init check_sal_cache_flush (void); + + /* Initialize all the processor and platform level instruction and data caches */ + static inline s64 diff --git a/debian/patches/series/5 b/debian/patches/series/5 index 6b8a2d221..4e27c714c 100644 --- a/debian/patches/series/5 +++ b/debian/patches/series/5 @@ -1,3 +1,5 @@ - bugfix/s390-ftbfs-2.6.18.1.patch + bugfix/s390-copy_from_user_padding_take2.patch + bugfix/copy-user-highpage-2.patch +- bugfix/ia64/sal-flush-fix.patch ++ bugfix/ia64/sal-flush-fix-upstream.patch