--- kexec-tools-1.101/purgatory/arch/ia64/purgatory-ia64.c.orig 2006-10-20 13:45:49.000000000 -0400 +++ kexec-tools-1.101/purgatory/arch/ia64/purgatory-ia64.c 2006-10-20 13:46:56.000000000 -0400 @@ -224,7 +224,9 @@ void flush_icache_range(char *start, unsigned long len) { - unsigned long i; + unsigned long i,addr; + addr = (unsigned long)start & ~31UL; + len += (unsigned long)start - addr; for (i = 0;i < len; i += 32) asm volatile("fc.i %0"::"r"(start + i):"memory"); asm volatile (";;sync.i;;":::"memory");