diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.9.21/0012-kaiser-ENOMEM-if-kaiser_pagetable_walk-NULL.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.9.21/0012-kaiser-ENOMEM-if-kaiser_pagetable_walk-NULL.patch | 54 |
1 files changed, 0 insertions, 54 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.9.21/0012-kaiser-ENOMEM-if-kaiser_pagetable_walk-NULL.patch b/common/recipes-kernel/linux/linux-yocto-4.9.21/0012-kaiser-ENOMEM-if-kaiser_pagetable_walk-NULL.patch deleted file mode 100644 index 74d00005..00000000 --- a/common/recipes-kernel/linux/linux-yocto-4.9.21/0012-kaiser-ENOMEM-if-kaiser_pagetable_walk-NULL.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 43eb304091f01c302dfec0f98b29072a0022fdf0 Mon Sep 17 00:00:00 2001 -From: Hugh Dickins <hughd@google.com> -Date: Sun, 3 Sep 2017 18:48:02 -0700 -Subject: [PATCH 012/103] kaiser: ENOMEM if kaiser_pagetable_walk() NULL - -kaiser_add_user_map() took no notice when kaiser_pagetable_walk() failed. -And avoid its might_sleep() when atomic (though atomic at present unused). - -Signed-off-by: Hugh Dickins <hughd@google.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - arch/x86/mm/kaiser.c | 10 +++++++--- - 1 file changed, 7 insertions(+), 3 deletions(-) - -diff --git a/arch/x86/mm/kaiser.c b/arch/x86/mm/kaiser.c -index 8d6061c..ba6fc2c 100644 ---- a/arch/x86/mm/kaiser.c -+++ b/arch/x86/mm/kaiser.c -@@ -98,11 +98,11 @@ static pte_t *kaiser_pagetable_walk(unsigned long address, bool is_atomic) - pgd_t *pgd = native_get_shadow_pgd(pgd_offset_k(address)); - gfp_t gfp = (GFP_KERNEL | __GFP_NOTRACK | __GFP_ZERO); - -- might_sleep(); - if (is_atomic) { - gfp &= ~GFP_KERNEL; - gfp |= __GFP_HIGH | __GFP_ATOMIC; -- } -+ } else -+ might_sleep(); - - if (pgd_none(*pgd)) { - WARN_ONCE(1, "All shadow pgds should have been populated"); -@@ -159,13 +159,17 @@ int kaiser_add_user_map(const void *__start_addr, unsigned long size, - unsigned long end_addr = PAGE_ALIGN(start_addr + size); - unsigned long target_address; - -- for (;address < end_addr; address += PAGE_SIZE) { -+ for (; address < end_addr; address += PAGE_SIZE) { - target_address = get_pa_from_mapping(address); - if (target_address == -1) { - ret = -EIO; - break; - } - pte = kaiser_pagetable_walk(address, false); -+ if (!pte) { -+ ret = -ENOMEM; -+ break; -+ } - if (pte_none(*pte)) { - set_pte(pte, __pte(flags | target_address)); - } else { --- -2.7.4 - |