diff options
author | Arnd Bergmann <arnd@arndb.de> | 2012-07-21 23:34:31 +0200 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2012-07-21 23:34:31 +0200 |
commit | 088eb2a84b3b093af60bbe0b65151e8a9cd2d57d (patch) | |
tree | 8f145d8c71f6e249d6664b5482ac216b8c6e4016 /include/asm-generic/pgtable.h | |
parent | 6217a69a1e38807b3046b4fd6e4bf413e0e03b67 (diff) | |
parent | 84a1caf1453c3d44050bd22db958af4a7f99315c (diff) | |
download | talos-op-linux-088eb2a84b3b093af60bbe0b65151e8a9cd2d57d.tar.gz talos-op-linux-088eb2a84b3b093af60bbe0b65151e8a9cd2d57d.zip |
Merge tag 'v3.5-rc7' into late/soc
Linux 3.5-rc7
Diffstat (limited to 'include/asm-generic/pgtable.h')
-rw-r--r-- | include/asm-generic/pgtable.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h index 6f2b45a9b6bc..ff4947b7a976 100644 --- a/include/asm-generic/pgtable.h +++ b/include/asm-generic/pgtable.h @@ -484,6 +484,16 @@ static inline int pmd_none_or_trans_huge_or_clear_bad(pmd_t *pmd) /* * The barrier will stabilize the pmdval in a register or on * the stack so that it will stop changing under the code. + * + * When CONFIG_TRANSPARENT_HUGEPAGE=y on x86 32bit PAE, + * pmd_read_atomic is allowed to return a not atomic pmdval + * (for example pointing to an hugepage that has never been + * mapped in the pmd). The below checks will only care about + * the low part of the pmd with 32bit PAE x86 anyway, with the + * exception of pmd_none(). So the important thing is that if + * the low part of the pmd is found null, the high part will + * be also null or the pmd_none() check below would be + * confused. */ #ifdef CONFIG_TRANSPARENT_HUGEPAGE barrier(); |