| From foo@baz Wed Jan 3 18:58:12 CET 2018 |
| From: Hugh Dickins <hughd@google.com> |
| Date: Sun, 29 Oct 2017 11:36:19 -0700 |
| Subject: kaiser: drop is_atomic arg to kaiser_pagetable_walk() |
| |
| From: Hugh Dickins <hughd@google.com> |
| |
| |
| I have not observed a might_sleep() warning from setup_fixmap_gdt()'s |
| use of kaiser_add_mapping() in our tree (why not?), but like upstream |
| we have not provided a way for that to pass is_atomic true down to |
| kaiser_pagetable_walk(), and at startup it's far from a likely source |
| of trouble: so just delete the walk's is_atomic arg and might_sleep(). |
| |
| Signed-off-by: Hugh Dickins <hughd@google.com> |
| Acked-by: Jiri Kosina <jkosina@suse.cz> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| arch/x86/mm/kaiser.c | 10 ++-------- |
| 1 file changed, 2 insertions(+), 8 deletions(-) |
| |
| --- a/arch/x86/mm/kaiser.c |
| +++ b/arch/x86/mm/kaiser.c |
| @@ -108,19 +108,13 @@ static inline unsigned long get_pa_from_ |
| * |
| * Returns a pointer to a PTE on success, or NULL on failure. |
| */ |
| -static pte_t *kaiser_pagetable_walk(unsigned long address, bool is_atomic) |
| +static pte_t *kaiser_pagetable_walk(unsigned long address) |
| { |
| pmd_t *pmd; |
| pud_t *pud; |
| pgd_t *pgd = native_get_shadow_pgd(pgd_offset_k(address)); |
| gfp_t gfp = (GFP_KERNEL | __GFP_NOTRACK | __GFP_ZERO); |
| |
| - 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"); |
| return NULL; |
| @@ -195,7 +189,7 @@ static int kaiser_add_user_map(const voi |
| ret = -EIO; |
| break; |
| } |
| - pte = kaiser_pagetable_walk(address, false); |
| + pte = kaiser_pagetable_walk(address); |
| if (!pte) { |
| ret = -ENOMEM; |
| break; |