powerpc fixes for 6.3 #3
- Fix false detection of read faults, introduced by execute-only support. - Fix a build failure when GENERIC_ALLOCATOR is not selected. Thanks to: Russell Currey, Randy Dunlap, Michal Suchánek, Nathan Lynch, Benjamin Gray. -----BEGIN PGP SIGNATURE----- iQJHBAABCAAxFiEEJFGtCPCthwEv2Y/bUevqPMjhpYAFAmQT3MgTHG1wZUBlbGxl cm1hbi5pZC5hdQAKCRBR6+o8yOGlgIvBD/4n/LI1Q1B4K5yl84DeSybcqVcK+C/h p+Js7zBRRfGH7O1Orum3WSbHguBwa0iAJvCKJTcR/1FIyljUU9NtAbo2jc+JYRJc Td/PMdG3XvG8eg87uELcE7VPixVskRAIolU/GRNZ+fJ8hSJDmJiomKl3IzTmAWsn NF+RXKKvC3q7f/iVxBBSI4w+ZWC8geunLQIBhVQVjjC94sHDG/ONijBQjr7RUYBX MjophiqzFFKX7y7v0Cd0mRwLpZTKb5DK0iQ/H2mc9S9ktI7HBhH/fvsOlSw9GjS0 41n3yvm2/RXVe2F2oZpYyU5aALOV9wpIqPb90LUE2p2+qpKZaW4AYN6Ts51iZahk Wgi0Hm9YIDrdzU39PjrrdGT9u4Qc6kCfF18NKThN2K4RzeaGAVIw/UGEe2z2qhlx RhGGtaC0D0/WbVYQHGf1X8Hi8vVyZ4XlAmR2mBIR1wqkox8GTA+r0AjaJ4o4Mscs kRbcLoDR6iXbMNqN7zrPtepI8l6H9zdWrazQcH4X3Zck5nJYCC+Z5imJC+uay9XB 7rCKDZ+itcVFhYgJf0M5TwURaULAPb2pEVuu9hqIZENiit8EQmpU89w04tvmTqSS NPkVDa8rFtfa+R9qvJOpyOMKY8mzIMmdY25YvdXP5l8NYZoLG0T4IixTpWFcGoLg +mKla4fp2e4wxw== =BXsq -----END PGP SIGNATURE----- Merge tag 'powerpc-6.3-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux Pull powerpc fixes from Michael Ellerman: - Fix false detection of read faults, introduced by execute-only support - Fix a build failure when GENERIC_ALLOCATOR is not selected Thanks to Russell Currey, Randy Dunlap, Michal Suchánek, Nathan Lynch, and Benjamin Gray. * tag 'powerpc-6.3-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: powerpc/mm: Fix false detection of read faults powerpc/pseries: RTAS work area requires GENERIC_ALLOCATOR
This commit is contained in:
commit
17adaeaed0
@ -271,11 +271,16 @@ static bool access_error(bool is_write, bool is_exec, struct vm_area_struct *vma
|
||||
}
|
||||
|
||||
/*
|
||||
* Check for a read fault. This could be caused by a read on an
|
||||
* inaccessible page (i.e. PROT_NONE), or a Radix MMU execute-only page.
|
||||
* VM_READ, VM_WRITE and VM_EXEC all imply read permissions, as
|
||||
* defined in protection_map[]. Read faults can only be caused by
|
||||
* a PROT_NONE mapping, or with a PROT_EXEC-only mapping on Radix.
|
||||
*/
|
||||
if (unlikely(!(vma->vm_flags & VM_READ)))
|
||||
if (unlikely(!vma_is_accessible(vma)))
|
||||
return true;
|
||||
|
||||
if (unlikely(radix_enabled() && ((vma->vm_flags & VM_ACCESS_FLAGS) == VM_EXEC)))
|
||||
return true;
|
||||
|
||||
/*
|
||||
* We should ideally do the vma pkey access check here. But in the
|
||||
* fault path, handle_mm_fault() also does the same check. To avoid
|
||||
|
@ -7,6 +7,7 @@ config PPC_PSERIES
|
||||
select OF_DYNAMIC
|
||||
select FORCE_PCI
|
||||
select PCI_MSI
|
||||
select GENERIC_ALLOCATOR
|
||||
select PPC_XICS
|
||||
select PPC_XIVE_SPAPR
|
||||
select PPC_ICP_NATIVE
|
||||
|
Loading…
x
Reference in New Issue
Block a user