* Toshi Kani <toshi.kani(a)hpe.com> wrote:
Since 4.1, ioremap() supports large page (pud/pmd) mappings in x86_64
and PAE.
vmalloc_fault() however assumes that the vmalloc range is limited to pte
mappings.
pgd_ctor() sets the kernel's pgd entries to user's during fork(), which makes
user processes share the same page tables for the kernel ranges. When a call to
ioremap() is made at run-time that leads to allocate a new 2nd level table (pud
in 64-bit and pmd in PAE), user process needs to re-sync with the updated kernel
pgd entry with vmalloc_fault().
Following changes are made to vmalloc_fault().
So what were the effects of this shortcoming? Were large page ioremap()s unusable?
Was this harmless because no driver used this facility?
If so then the changelog needs to spell this out clearly ...
Thanks,
Ingo