--- zzzz-none-000/linux-2.6.19.2/arch/ia64/kernel/sal.c 2007-01-10 19:10:37.000000000 +0000 +++ davinci-8020-5505/linux-2.6.19.2/arch/ia64/kernel/sal.c 2007-01-11 07:38:19.000000000 +0000 @@ -223,13 +223,12 @@ */ static int sal_cache_flush_drops_interrupts; -void __init +static void __init check_sal_cache_flush (void) { unsigned long flags; int cpu; - u64 vector, cache_type = 3; - struct ia64_sal_retval isrv; + u64 vector; cpu = get_cpu(); local_irq_save(flags); @@ -244,10 +243,7 @@ while (!ia64_get_irr(IA64_TIMER_VECTOR)) cpu_relax(); - 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); + ia64_sal_cache_flush(3); if (ia64_get_irr(IA64_TIMER_VECTOR)) { vector = ia64_get_ivr(); @@ -335,6 +331,7 @@ p += SAL_DESC_SIZE(*p); } + check_sal_cache_flush(); } int