On 16/12/15 07:18, Pratyush Anand wrote: > On 15/12/2015:04:14:30 PM, Geoff Levand wrote: >> On Tue, 2015-12-15 at 18:29 +0000, Will Deacon wrote: >>>> +> > > > * Copy arm64_relocate_new_kernel to the reboot_code_buffer for use >>>> +> > > > * after the kernel is shut down. >>>> +> > > > */ >>>> +> > > > memcpy(reboot_code_buffer, arm64_relocate_new_kernel, >>>> +> > > > > > arm64_relocate_new_kernel_size); >>> >>> At which point does the I-cache get invalidated for this? >> >> I'll add a call to flush_icache_range() for reboot_code_buffer. I >> think that should do it. > > We execute arm64_relocate_new_kernel() code with I-cache disabled. So, do we > really need to invalidate I-cache? I got bitten by this, see Mark's earlier reply[0]: Mark Rutland wrote: > The SCTLR_ELx.I only affects the attributes that the I-cache uses to > fetch with, not whether it is enabled (it cannot be disabled > architecturally). James [0] http://lists.infradead.org/pipermail/linux-arm-kernel/2015-October/382101.html