login
Header Space

 
 

[IA64] allow user to force_pal_cache_flush

Score:
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: <git-commits-head@...>
Date: Thursday, May 15, 2008 - 5:00 pm

Gitweb:     http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f13ae3...
Commit:     f13ae30e1397e3bfb38feb3b6e889af5d021f13d
Parent:     8a3360f06cd4d3b1d57f73e029f2f8b6057fdcba
Author:     Alex Chiang <achiang@hp.com>
AuthorDate: Thu May 8 14:03:23 2008 -0600
Committer:  Tony Luck <tony.luck@intel.com>
CommitDate: Wed May 14 15:42:07 2008 -0700

    [IA64] allow user to force_pal_cache_flush
    
    The sequence executed in check_sal_cache_flush:
    
    	- pend a timer interrupt
    	- call SAL_CACHE_FLUSH
    	- see if interrupt is still pending
    
    can hang HP machines with buggy SAL_CACHE_FLUSH implementations.
    
    Provide a kernel command-line argument to allow users skip this
    check if desired. Using this parameter will force ia64_sal_cache_flush
    to call ia64_pal_cache_flush() instead of SAL_CACHE_FLUSH.
    
    Signed-off-by: Alex Chiang <achiang@hp.com>
    Signed-off-by: Tony Luck <tony.luck@intel.com>
---
 Documentation/kernel-parameters.txt |    6 ++++++
 arch/ia64/kernel/sal.c              |   11 +++++++++++
 2 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index cdd5b93..654d630 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -689,6 +689,12 @@ and is between 256 and 4096 characters. It is defined in the file
 	floppy=		[HW]
 			See Documentation/floppy.txt.
 
+	force_pal_cache_flush
+			[IA-64] Avoid check_sal_cache_flush which may hang on
+			buggy SAL_CACHE_FLUSH implementations. Using this
+			parameter will force ia64_sal_cache_flush to call
+			ia64_pal_cache_flush instead of SAL_CACHE_FLUSH.
+
 	gamecon.map[2|3]=
 			[HW,JOY] Multisystem joystick and NES/SNES/PSX pad
 			support via parallel port (up to 5 devices per port)
diff --git a/arch/ia64/kernel/sal.c b/arch/ia64/kernel/sal.c
index a3022dc..7e02597 100644
--- a/arch/ia64/kernel/sal.c
+++ b/arch/ia64/kernel/sal.c
@@ -229,6 +229,14 @@ static void __init sal_desc_ap_wakeup(void *p) { }
  */
 static int sal_cache_flush_drops_interrupts;
 
+static int __init
+force_pal_cache_flush(char *str)
+{
+	sal_cache_flush_drops_interrupts = 1;
+	return 0;
+}
+early_param("force_pal_cache_flush", force_pal_cache_flush);
+
 void __init
 check_sal_cache_flush (void)
 {
@@ -237,6 +245,9 @@ check_sal_cache_flush (void)
 	u64 vector, cache_type = 3;
 	struct ia64_sal_retval isrv;
 
+	if (sal_cache_flush_drops_interrupts)
+		return;
+
 	cpu = get_cpu();
 	local_irq_save(flags);
 
--
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[IA64] allow user to force_pal_cache_flush, Linux Kernel Mailing List..., (Thu May 15, 5:00 pm)
speck-geostationary