On 30.01.2023 10:21, Josef Johansson wrote: > On 11/21/22 11:21, Roger Pau Monne wrote: >> --- a/arch/x86/xen/enlighten.c >> +++ b/arch/x86/xen/enlighten.c >> @@ -346,3 +346,30 @@ void xen_arch_unregister_cpu(int num) >> } >> EXPORT_SYMBOL(xen_arch_unregister_cpu); >> #endif >> + >> +#ifdef CONFIG_XEN_DOM0 >> +bool __init xen_processor_present(uint32_t acpi_id) >> +{ >> + unsigned int i, maxid; >> + struct xen_platform_op op = { >> + .cmd = XENPF_get_cpuinfo, >> + .interface_version = XENPF_INTERFACE_VERSION, >> + }; >> + int ret = HYPERVISOR_platform_op(&op); >> + >> + if (ret) >> + return false; >> + >> + maxid = op.u.pcpu_info.max_present; >> + for (i = 0; i <= maxid; i++) { >> + op.u.pcpu_info.xen_cpuid = i; >> + ret = HYPERVISOR_platform_op(&op); >> + if (ret) >> + continue; >> + if (op.u.pcpu_info.acpi_id == acpi_id) >> + return op.u.pcpu_info.flags & XEN_PCPU_FLAGS_ONLINE; >> + } >> + >> + return false; >> +} > My compiler (Default GCC on Fedora 32, compiling for Qubes) complain > loudly that the below was missing. > > +} > +EXPORT_SYMBOL(xen_processor_present); > > `ERROR: MODPOST xen_processor_present > [drivers/xen/xen-acpi-processor.ko] undefined!` > > Same thing with xen_sanitize_pdc in the next patch. > > +} > +EXPORT_SYMBOL(xen_sanitize_pdc); > > Everything compiled fine after those changes. Except that you may not export __init symbols. The section mismatch checker should actually complain about that. Jan