• Michael Ellerman's avatar
    powerpc/64s/kuap: Use mmu_has_feature() · 7613f5a6
    Michael Ellerman authored
    In commit 8150a153 ("powerpc/64s: Use early_mmu_has_feature() in
    set_kuap()") we switched the KUAP code to use early_mmu_has_feature(),
    to avoid a bug where we called set_kuap() before feature patching had
    been done, leading to recursion and crashes.
    
    That path, which called probe_kernel_read() from printk(), has since
    been removed, see commit 2ac5a3bf ("vsprintf: Do not break early
    boot with probing addresses").
    
    Additionally probe_kernel_read() no longer invokes any KUAP routines,
    since commit fe557319 ("maccess: rename probe_kernel_{read,write}
    to copy_{from,to}_kernel_nofault") and c3316525 ("powerpc: use
    non-set_fs based maccess routines").
    
    So it should now be safe to use mmu_has_feature() in the KUAP
    routines, because we shouldn't invoke them prior to feature patching.
    
    This is essentially a revert of commit 8150a153 ("powerpc/64s: Use
    early_mmu_has_feature() in set_kuap()"), but we've since added a
    second usage of early_mmu_has_feature() in get_kuap(), so we convert
    that to use mmu_has_feature() as well.
    Reported-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Depends-on: c3316525 ("powerpc: use non-set_fs based maccess routines").
    Link: https://lore.kernel.org/r/20201217005306.895685-1-mpe@ellerman.id.au
    7613f5a6
kup.h 10.1 KB