- Cyril Chemparathy as his email is bouncing back to me.
Quoting Sebastian Capella (2014-02-21 10:39:56)
Quoting Lorenzo Pieralisi (2014-02-20 08:27:55)
cpu_switch_mm(idmap_pgd, &init_mm);
[ ... ]
I can try removing it and seeing if there are side effects.
FYI, It's definitely hanging with this removed, still looking.
In this state I believe:
- our stack is safe because it's in nosave.
- userspace is frozen, those pages are 'don't care', as we're discarding its state.
- our instructions and globals are ok, because they're in the same place as last boot and are not getting restored. None are in modules.
- Globals: restore_pblist, idmap_pgd, init_mm, swapper_pg_dir
Sorry, this last bit about the globals is not correct. Of course they're getting restored. What I meant to say is that they shouldn't be affected by the mmu switch as they remain at the same address.
For our purposes, I think we won't care about their state as we're not referencing them after we start restoring. We start the list with restore_pblist, but after following the initial pointer, we don't reference it again. From then on, we're walking safe memory lists.
Sorry for the misleading statements.
Sebastian