Messages in this thread | | | From | Linus Torvalds <> | Date | Wed, 8 Nov 2017 13:46:24 -0800 | Subject | Re: [PATCH] x86/mm: Unbreak modules that rely on external PAGE_KERNEL availability |
| |
On Wed, Nov 8, 2017 at 1:23 PM, Linus Torvalds <torvalds@linux-foundation.org> wrote: > > So _this_ is the underlying problem: > > #define _PAGE_ENC (_AT(pteval_t, sme_me_mask)) > > because that is simply not how the _PAGE_xyz macros should work! > > So it should have been a fixed bit to begin with, and the dynamic part > should have been elsewhere.
Hmm. It's not an entirely new problem. We have that "cachemode2protval()" thing, which causes he exact same thing, except it accesses the __cachemode2pte_tbl[] array instead.
Which we also EXPORT_SYMBOL().
So I guess _PAGE_ENC isn't any worse than what we already had.
Of course, that at least doesn't trigger for the simple cases - only _PAGE_CACHE_WP and _PAGE_NOCACHE end up triggering that "cachemode2protval()" case.
I do wonder if we could perhaps at least try to unify these things a bit, and export just one thing.
And maybe avoid accessing two completely different memory locasions every time we use _PAGE_KERNEL or whatever.
But it all looks rather nasty, so for 4.14 clearly I should just apply that trivial one-liner patch for now.
Linus
| |