Re: [PATCH] x86/mm: Unbreak modules that rely on external PAGE_KERNEL availability
From: Thomas Gleixner
Date: Wed Nov 08 2017 - 15:48:04 EST
On Wed, 8 Nov 2017, Jiri Kosina wrote:
> From: Jiri Kosina <jkosina@xxxxxxx>
>
> Commit
>
> 7744ccdbc16f0 ("x86/mm: Add Secure Memory Encryption (SME) support")
>
> as a side-effect made PAGE_KERNEL all of a sudden unavailable to modules
> which can't make use of EXPORT_SYMBOL_GPL() symbols.
>
> This is because once SME is enabled, sme_me_mask (which is introduced as
> EXPORT_SYMBOL_GPL) makes its way to PAGE_KERNEL through _PAGE_ENC, causing
> imminent build failure for all the modules which make use of all the
> EXPORT-SYMBOL()-exported API (such as vmap(), __vmalloc(),
> remap_pfn_range(), ...).
>
> Exporting (as EXPORT_SYMBOL()) interfaces (and having done so for ages)
> that take pgprot_t argument, while making it impossible to -- all of a
> sudden -- pass PAGE_KERNEL to it, feels rather incosistent.
>
> Restore the original behavior and make it possible to pass PAGE_KERNEL to
> all its EXPORT_SYMBOL() consumers.
To be honest, I fundamentaly hate this, because proprietary crap out there
more or less holds the kernel hostage in its decisions of marking new
functionality GPL only. You have already a choice by disabling SME, but
sure you want to get everything: new features and proprietary stuff.
I fear, that I can't prevent this from being applied, but whoever picks up
that patch, please add:
Despised-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>