[PATCH 0/4] x86: Restrict KVM-induced symbol exports to KVM

Sean Christopherson <[email protected]>
Newsgroups org.kernel.vger.linux-sgx,dev.linux.lists.linux-coco,org.kernel.vger.kvm,org.kernel.vger.linux-kernel,org.kernel.vger.linux-perf-users
Message-ID <[email protected]>
Leverage and extend KVM's macro shenanigans to export symbols for KVM if
and only if kvm{,-amd,intel}.ko is being built as a module, and only for
the KVM modules that are being built.

Note, this approach isn't 100% precise, as exports that are only strictly
necessary for one of KVM's modules will get exported for all KVM modules.
But I don't see any value in being super precise as it's not like kvm.ko is
any more trustworthy tha kvm-{amd,intel}.ko (and it's easy to circumvent
"for module" exports by abusing module names (in out-of-tree code)).  And
maintaining precise exports would likely be a nightmare (as would writing
the macros to get the exports right).

Patches 1-3 drop superfluous exports that I found while digging around for
KVM-only exports.

Sean Christopherson (4):
  x86/bugs: Drop unnecessary export of "x86_spec_ctrl_base"
  x86/mtrr: Drop unnecessary export of "mtrr_state"
  x86/mm: Drop unnecessary export of "ptdump_walk_pgd_level_debugfs"
  x86: Restrict KVM-induced symbol exports to KVM modules where
    obvious/possible

 arch/x86/entry/entry.S             |  7 ++-
 arch/x86/entry/entry_64.S          |  3 +-
 arch/x86/entry/entry_64_fred.S     |  3 +-
 arch/x86/events/amd/core.c         |  5 ++-
 arch/x86/events/core.c             |  7 +--
 arch/x86/events/intel/lbr.c        |  3 +-
 arch/x86/events/intel/pt.c         |  7 +--
 arch/x86/include/asm/kvm_types.h   |  5 +++
 arch/x86/kernel/apic/apic.c        |  3 +-
 arch/x86/kernel/apic/apic_common.c |  3 +-
 arch/x86/kernel/cpu/amd.c          |  4 +-
 arch/x86/kernel/cpu/bugs.c         | 18 ++++----
 arch/x86/kernel/cpu/bus_lock.c     |  3 +-
 arch/x86/kernel/cpu/common.c       |  7 +--
 arch/x86/kernel/cpu/mtrr/generic.c |  1 -
 arch/x86/kernel/cpu/sgx/main.c     |  3 +-
 arch/x86/kernel/cpu/sgx/virt.c     |  5 ++-
 arch/x86/kernel/e820.c             |  3 +-
 arch/x86/kernel/fpu/core.c         | 21 ++++-----
 arch/x86/kernel/fpu/xstate.c       |  7 +--
 arch/x86/kernel/hw_breakpoint.c    |  3 +-
 arch/x86/kernel/irq.c              |  3 +-
 arch/x86/kernel/kvm.c              |  5 ++-
 arch/x86/kernel/nmi.c              |  5 +--
 arch/x86/kernel/process_64.c       |  5 +--
 arch/x86/kernel/reboot.c           |  5 ++-
 arch/x86/kernel/tsc.c              |  1 +
 arch/x86/lib/cache-smp.c           |  9 ++--
 arch/x86/lib/msr.c                 |  5 ++-
 arch/x86/mm/dump_pagetables.c      |  1 -
 arch/x86/mm/pat/memtype.c          |  3 +-
 arch/x86/mm/tlb.c                  |  5 ++-
 arch/x86/virt/vmx/tdx/tdx.c        | 69 +++++++++++++++---------------
 include/linux/kvm_types.h          | 14 ++++++
 34 files changed, 144 insertions(+), 107 deletions(-)


base-commit: 19e2126bba55df9de15d9100b922df1dad6d39a4
-- 
2.51.2.1041.gc1ab5b90ca-goog
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.