arm64 fix

- Remove accidental VM_WARN_ON
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQEcBAABCgAGBQJbkorgAAoJELescNyEwWM0my8IAKsVsc5heKBeL/0Ep5gfXJLS
 H3kjkToFKfOeVADLfZXfTkPzlx9f1NrEP4+b/hQYgqGqXQcvCIwEXzpTMFg4pT4/
 ERhYtq9qYBNQmg4AZnTHl2cKSRFt+s7knTZMoTEwNk1NxdBQAtbIZa9HB9Ly2mSn
 xK6UP7zsZvRcY02BlyDQ0A/QBjzQAi3I83FRLizxjPYaSUhF0QqhrzTr0ANoKEjv
 DnX04nJEMYqLEjSKWTn3rzot2PgLVDcMEjXKwMB3XB6LML3KLRUsvnTpxED5c+dW
 tv+wzKKdaFeHWmfFxUgYZXSd4igh0IKf3OZDohRKz+lNOhKrTYUE35dtFyyw04I=
 =xYN8
 -----END PGP SIGNATURE-----

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
This commit is contained in:
Linus Torvalds 2018-09-07 10:37:23 -07:00
commit 4ff8a142bd

View File

@ -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)
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;
} }