Commit 4ff8a142 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux

Pull arm64 fix from Will Deacon:
 "Just one small fix here, preventing a VM_WARN_ON when a !present
  PMD/PUD is "freed" as part of a huge ioremap() operation.

  The correct behaviour is to skip the free silently in this case, which
  is a little weird (the function is a bit of a misnomer), but it
  follows the x86 implementation"

* tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
  arm64: fix erroneous warnings in page freeing functions
parents 53937340 fac880c7
...@@ -985,8 +985,9 @@ int pmd_free_pte_page(pmd_t *pmdp, unsigned long addr) ...@@ -985,8 +985,9 @@ int pmd_free_pte_page(pmd_t *pmdp, unsigned long addr)
pmd = READ_ONCE(*pmdp); pmd = READ_ONCE(*pmdp);
/* No-op for empty entry and WARN_ON for valid entry */ if (!pmd_present(pmd))
if (!pmd_present(pmd) || !pmd_table(pmd)) { return 1;
if (!pmd_table(pmd)) {
VM_WARN_ON(!pmd_table(pmd)); VM_WARN_ON(!pmd_table(pmd));
return 1; return 1;
} }
...@@ -1007,8 +1008,9 @@ int pud_free_pmd_page(pud_t *pudp, unsigned long addr) ...@@ -1007,8 +1008,9 @@ int pud_free_pmd_page(pud_t *pudp, unsigned long addr)
pud = READ_ONCE(*pudp); pud = READ_ONCE(*pudp);
/* No-op for empty entry and WARN_ON for valid entry */ if (!pud_present(pud))
if (!pud_present(pud) || !pud_table(pud)) { return 1;
if (!pud_table(pud)) {
VM_WARN_ON(!pud_table(pud)); VM_WARN_ON(!pud_table(pud));
return 1; return 1;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment