Quoting Lorenzo Pieralisi (2014-02-22 04:09:10)
On Sat, Feb 22, 2014 at 10:38:40AM +0000, Russell King - ARM Linux wrote:
On Wed, Feb 19, 2014 at 04:12:54PM +0000, Lorenzo Pieralisi wrote:
- cpu_switch_mm(idmap_pgd, &init_mm);
You need the idmap_pgd in place to call cpu_resume at it's physical address. Other page tables just won't do here. It's well established that this page table must be in place for the resume paths to work.
Well, we do not need idmap page tables for copying the restore_pblist, but we do need a set of tables that won't be corrupted by the copy and idmap does the trick (I was confused because 1:1 mappings are not needed for the copy itself).
The switch to idmap is done for us in soft_reboot anyway before jumping to cpu_resume and that's required, as you said.
Ok, so I'll leave the cpu_switch_mm as is for the next patchset.
Thanks Lorenzo, Russ and Russell!
Sebastian