RE: [PATCH] kexec-tools: ia64: icache flush should align to 32-bytes

From: Zou, Nanhai <>
Date: 2006-10-12 11:04:56
> -----Original Message-----
> From: Terry Loftin []
> Sent: 20061012 6:41
> To:;
> Cc: Zou, Nanhai;
> Subject: [PATCH] kexec-tools: ia64: icache flush should align to 32-bytes
> Hi,
> I've run into problems testing kexec/kdump on a Montecito revision C
> processor.  In purgatory, __dummy_efi_function is copied onto the
> end of the command line boot parameter (command_line + command_line_len)
> and this address is used to replace the EFI call to set_virtual_address_map().
> The copied range is then icache flushed.
> The destination address is aligned to 16-bytes (in kexec-elf-ia64.c), but
> the fc.i instruction flushes a 32-byte range "associated" with that address.
> When my command line length is 16-byte aligned but not 32-byte aligned, this
> results in the first 16-bytes of __dummy_efi_function getting flushed (and
> the 16 bytes prior to that), but the second half of the function (the part
> with the br.ret) does not get flushed.  kdump then hangs in purgatory.  By
> adding a few spaces to my command line, it becomes both 16 and 32-byte
> aligned, and kdump works.
> This patch makes icache_flush_range() align the start address to 32-bytes and
> account for the difference.  The patch is against Horms kexec-tools-testing
> tree.  As a side note, you could also fix this by just adding 32 to the length
> passed to flush_icache_range() but that hides the dependent behavior.
> Thanks,
> -T

It seems I was always testing with command line more than 16 bytes length.....

Acked-by: Zou Nan hai <>
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to
More majordomo info at
Received on Thu Oct 12 11:05:14 2006

This archive was generated by hypermail 2.1.8 : 2006-10-12 11:05:25 EST