Merge tag 'x86_apic_for_6.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 30 Aug 2023 17:44:46 +0000 (10:44 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 30 Aug 2023 17:44:46 +0000 (10:44 -0700)
Pull x86 apic updates from Dave Hansen:
 "This includes a very thorough rework of the 'struct apic' handlers.
  Quite a variety of them popped up over the years, especially in the
  32-bit days when odd apics were much more in vogue.

  The end result speaks for itself, which is a removal of a ton of code
  and static calls to replace indirect calls.

  If there's any breakage here, it's likely to be around the 32-bit
  museum pieces that get light to no testing these days.

  Summary:

   - Rework apic callbacks, getting rid of unnecessary ones and
     coalescing lots of silly duplicates.

   - Use static_calls() instead of indirect calls for apic->foo()

   - Tons of cleanups an crap removal along the way"

* tag 'x86_apic_for_6.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (64 commits)
  x86/apic: Turn on static calls
  x86/apic: Provide static call infrastructure for APIC callbacks
  x86/apic: Wrap IPI calls into helper functions
  x86/apic: Mark all hotpath APIC callback wrappers __always_inline
  x86/xen/apic: Mark apic __ro_after_init
  x86/apic: Convert other overrides to apic_update_callback()
  x86/apic: Replace acpi_wake_cpu_handler_update() and apic_set_eoi_cb()
  x86/apic: Provide apic_update_callback()
  x86/xen/apic: Use standard apic driver mechanism for Xen PV
  x86/apic: Provide common init infrastructure
  x86/apic: Wrap apic->native_eoi() into a helper
  x86/apic: Nuke ack_APIC_irq()
  x86/apic: Remove pointless arguments from [native_]eoi_write()
  x86/apic/noop: Tidy up the code
  x86/apic: Remove pointless NULL initializations
  x86/apic: Sanitize APIC ID range validation
  x86/apic: Prepare x2APIC for using apic::max_apic_id
  x86/apic: Simplify X2APIC ID validation
  x86/apic: Add max_apic_id member
  x86/apic: Wrap APIC ID validation into an inline
  ...

16 files changed:
1  2 
arch/x86/hyperv/hv_apic.c
arch/x86/hyperv/hv_init.c
arch/x86/hyperv/hv_vtl.c
arch/x86/include/asm/processor.h
arch/x86/include/asm/smp.h
arch/x86/kernel/acpi/boot.c
arch/x86/kernel/apic/hw_nmi.c
arch/x86/kernel/apic/ipi.c
arch/x86/kernel/apic/x2apic_uv_x.c
arch/x86/kernel/cpu/amd.c
arch/x86/kernel/cpu/common.c
arch/x86/kernel/kvm.c
arch/x86/kernel/sev.c
arch/x86/kernel/smpboot.c
arch/x86/platform/uv/uv_nmi.c
arch/x86/xen/enlighten_pv.c

Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index d6e01f924299678e2d649c002936cfbade67dced,07a3dd14a6da40ad637252ecda349f7f42845260..45af535c44a07de0c4198acd4aa66fbd0c045e93
@@@ -31,12 -33,12 +33,12 @@@ u64 hw_nmi_get_sample_period(int watchd
  #ifdef arch_trigger_cpumask_backtrace
  static void nmi_raise_cpu_backtrace(cpumask_t *mask)
  {
-       apic->send_IPI_mask(mask, NMI_VECTOR);
+       __apic_send_IPI_mask(mask, NMI_VECTOR);
  }
  
 -void arch_trigger_cpumask_backtrace(const cpumask_t *mask, bool exclude_self)
 +void arch_trigger_cpumask_backtrace(const cpumask_t *mask, int exclude_cpu)
  {
 -      nmi_trigger_cpumask_backtrace(mask, exclude_self,
 +      nmi_trigger_cpumask_backtrace(mask, exclude_cpu,
                                      nmi_raise_cpu_backtrace);
  }
  
index 9bfd6e397384545976b5287e94638cc64e1b4753,b54b2a6a4c322ae01c67163a43086637a5d5ad44..a44ba7209ef3a854e36444af9ad53c7314772fbb
@@@ -301,8 -280,6 +280,7 @@@ void default_send_IPI_mask_logical(cons
        local_irq_restore(flags);
  }
  
- /* must come after the send_IPI functions above for inlining */
 +#ifdef CONFIG_SMP
  static int convert_apicid_to_cpu(int apic_id)
  {
        int i;
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge