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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----Original Message-----
> From: Terry Loftin [mailto:terry.loftin@xxxxxx]
> Sent: 2006年10月12日 6:41
> To: linux-ia64@xxxxxxxxxxxxxxx; fastboot@xxxxxxxxxxxxxx
> Cc: Zou, Nanhai; horms@xxxxxxxxxxxx
> 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.....

Thanks.
Acked-by: Zou Nan hai <nanhai.zou@xxxxxxxxx>
-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel]     [Sparc Linux]     [DCCP]     [Linux ARM]     [Yosemite News]     [Linux SCSI]     [Linux x86_64]     [Linux for Ham Radio]

  Powered by Linux