[patch V2 00/16] x86/tlb: Unexport per-CPU tlbstate

From: Thomas Gleixner
Date: Tue Apr 21 2020 - 05:27:02 EST


The per-CPU tlbstate contains sensitive information which should be really
only accessible in core code. It is exported to modules because some inline
functions which are required by KVM need access to it.

The first version can be found here:

https://lore.kernel.org/r/20200419203137.214111265@xxxxxxxxxxxxx

Changes vs. V1:

- Reduced the number of exports by uninlining __flush_tlb_all() (Christoph)

- Addressed fallout reported by 0-day

- Picked up acks/reviewed tags

I left the LKDTM part alone for now and decided to keep the
__flush_tlb_all() export for SVM as moving that errata handling to builtin
code would required two exports in turn.

The series is also available from git:

git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel x86/tlb

Thanks,

tglx

8<-----------------
arch/x86/events/core.c | 11
arch/x86/include/asm/mmu_context.h | 88 -------
arch/x86/include/asm/paravirt.h | 12 -
arch/x86/include/asm/pgtable_32.h | 2
arch/x86/include/asm/tlbflush.h | 441 +++----------------------------------
arch/x86/kernel/alternative.c | 55 ++++
arch/x86/kernel/cpu/common.c | 25 ++
arch/x86/kernel/cpu/mtrr/generic.c | 4
arch/x86/kernel/paravirt.c | 21 -
arch/x86/kernel/process.c | 11
arch/x86/mm/init.c | 14 +
arch/x86/mm/init_64.c | 2
arch/x86/mm/ioremap.c | 2
arch/x86/mm/kmmio.c | 2
arch/x86/mm/mem_encrypt.c | 2
arch/x86/mm/pat/set_memory.c | 2
arch/x86/mm/pgtable.c | 8
arch/x86/mm/pgtable_32.c | 2
arch/x86/mm/tlb.c | 384 +++++++++++++++++++++++++++++++-
arch/x86/platform/uv/tlb_uv.c | 4
drivers/xen/privcmd.c | 1
21 files changed, 556 insertions(+), 537 deletions(-)