[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>
This commit is contained in:
parent
8a3360f06c
commit
f13ae30e13
|
@ -689,6 +689,12 @@ and is between 256 and 4096 characters. It is defined in the file
|
||||||
floppy= [HW]
|
floppy= [HW]
|
||||||
See Documentation/floppy.txt.
|
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]=
|
gamecon.map[2|3]=
|
||||||
[HW,JOY] Multisystem joystick and NES/SNES/PSX pad
|
[HW,JOY] Multisystem joystick and NES/SNES/PSX pad
|
||||||
support via parallel port (up to 5 devices per port)
|
support via parallel port (up to 5 devices per port)
|
||||||
|
|
|
@ -229,6 +229,14 @@ static void __init sal_desc_ap_wakeup(void *p) { }
|
||||||
*/
|
*/
|
||||||
static int sal_cache_flush_drops_interrupts;
|
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
|
void __init
|
||||||
check_sal_cache_flush (void)
|
check_sal_cache_flush (void)
|
||||||
{
|
{
|
||||||
|
@ -237,6 +245,9 @@ check_sal_cache_flush (void)
|
||||||
u64 vector, cache_type = 3;
|
u64 vector, cache_type = 3;
|
||||||
struct ia64_sal_retval isrv;
|
struct ia64_sal_retval isrv;
|
||||||
|
|
||||||
|
if (sal_cache_flush_drops_interrupts)
|
||||||
|
return;
|
||||||
|
|
||||||
cpu = get_cpu();
|
cpu = get_cpu();
|
||||||
local_irq_save(flags);
|
local_irq_save(flags);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue