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

Reply via email to