kaiser: Set _PAGE_NX only if supported
This finally resolve crash if loaded under qemu + haxm. Haitao Shan pointed out that the reason of that crash is that NX bit get set for page tables. It seems we missed checking if _PAGE_NX is supported in kaiser_add_user_map Link: https://www.spinics.net/lists/kernel/msg2689835.html Reviewed-by: Guenter Roeck <groeck@chromium.org> Signed-off-by: Lepton Wu <ytht.net@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
08a7525811
commit
ec61bafb2a
@ -197,6 +197,8 @@ static int kaiser_add_user_map(const void *__start_addr, unsigned long size,
|
||||
* requires that not to be #defined to 0): so mask it off here.
|
||||
*/
|
||||
flags &= ~_PAGE_GLOBAL;
|
||||
if (!(__supported_pte_mask & _PAGE_NX))
|
||||
flags &= ~_PAGE_NX;
|
||||
|
||||
for (; address < end_addr; address += PAGE_SIZE) {
|
||||
target_address = get_pa_from_mapping(address);
|
||||
|
Loading…
x
Reference in New Issue
Block a user