Hi Lorenzo, Today's linux-next merge of the arm-mpidr tree got a conflict in arch/arm/kernel/suspend.c between commit aa1aadc3305c ("ARM: suspend: fix CPU suspend code for !CONFIG_MMU configurations") from the arm tree and commit 3fed6a1e3bf0 ("ARM: kernel: implement stack pointer save array through MPIDR hashing") from the arm-mpidr tree. I fixed it up (see below) and can carry the fix as necessary (no action is required). P.S. that arm tree commit above has no Signed-off-by from its committer :-( -- Cheers, Stephen Rothwell sfr@xxxxxxxxxxxxxxxx diff --cc arch/arm/kernel/suspend.c index 38a5067,17d02f6..0000000 --- a/arch/arm/kernel/suspend.c +++ b/arch/arm/kernel/suspend.c @@@ -82,3 -49,48 +85,20 @@@ void __cpu_suspend_save(u32 *ptr, u32 p outer_clean_range(virt_to_phys(save_ptr), virt_to_phys(save_ptr) + sizeof(*save_ptr)); } + -/* - * Hide the first two arguments to __cpu_suspend - these are an implementation - * detail which platform code shouldn't have to know about. - */ -int cpu_suspend(unsigned long arg, int (*fn)(unsigned long)) -{ - struct mm_struct *mm = current->active_mm; - int ret; - - if (!idmap_pgd) - return -EINVAL; - - /* - * Provide a temporary page table with an identity mapping for - * the MMU-enable code, required for resuming. On successful - * resume (indicated by a zero return code), we need to switch - * back to the correct page tables. - */ - ret = __cpu_suspend(arg, fn); - if (ret == 0) { - cpu_switch_mm(mm->pgd, mm); - local_flush_bp_all(); - local_flush_tlb_all(); - } - - return ret; -} - + extern struct sleep_save_sp sleep_save_sp; + + static int cpu_suspend_alloc_sp(void) + { + void *ctx_ptr; + /* ctx_ptr is an array of physical addresses */ + ctx_ptr = kcalloc(mpidr_hash_size(), sizeof(u32), GFP_KERNEL); + + if (WARN_ON(!ctx_ptr)) + return -ENOMEM; + sleep_save_sp.save_ptr_stash = ctx_ptr; + sleep_save_sp.save_ptr_stash_phys = virt_to_phys(ctx_ptr); + sync_cache_w(&sleep_save_sp); + return 0; + } + early_initcall(cpu_suspend_alloc_sp);
Attachment:
pgpNCfEfsGS2_.pgp
Description: PGP signature