RE: [patch 53/58] x86/apic: Convert other overrides to apic_update_callback()

From: Thomas Gleixner
Date: Sun Jul 23 2023 - 08:32:24 EST


On Fri, Jul 21 2023 at 17:49, Michael Kelley wrote:
>> --- a/arch/x86/kernel/kvm.c
>> +++ b/arch/x86/kernel/kvm.c
>> @@ -624,8 +624,8 @@ late_initcall(setup_efi_kvm_sev_migratio
>> */
>> static void kvm_setup_pv_ipi(void)
>> {
>> - apic->send_IPI_mask = kvm_send_ipi_mask;
>> - apic->send_IPI_mask_allbutself = kvm_send_ipi_mask_allbutself;
>> + apic_update_callback(send_IPI_mask, kvm_send_ipi_mask);
>> + apic_update_callback(send_IPI_mask_allbutself,
>> kvm_send_ipi_mask_allbutself);
>> pr_info("setup PV IPIs\n");
>> }
>>
>> --- a/arch/x86/kernel/sev.c
>> +++ b/arch/x86/kernel/sev.c
>> @@ -1099,7 +1099,7 @@ void snp_set_wakeup_secondary_cpu(void)
>> * required method to start APs under SNP. If the hypervisor does
>> * not support AP creation, then no APs will be started.
>> */
>> - apic->wakeup_secondary_cpu = wakeup_cpu_via_vmgexit;
>> + apic_update_callback(wakeup_secondary_cpu, wakeup_cpu_via_vmgexit);
>
> I'm getting a build warning from the above:
>
> section mismatch in reference: snp_set_wakeup_secondary_cpu+0x35 (section: .text) -> __x86_apic_override (section: .init.data)

snp_set_wakeup_secondary_cpu() wants to be __init. So does
kvm_setup_pv_ipi(). Sigh.