Re: [pdx86-platform-drivers-x86:review-hans 46/59] kernel/stop_machine.c:638:35: error: call to undeclared function 'cpu_smt_mask'; ISO C99 and later do not support implicit function declarations

From: Thomas Gleixner
Date: Thu May 12 2022 - 07:42:33 EST


On Thu, May 12 2022 at 11:53, Hans de Goede wrote:
> On 5/12/22 11:24, Thomas Gleixner wrote:
>> On Thu, May 12 2022 at 09:29, kernel test robot wrote:
>>>>> kernel/stop_machine.c:638:35: error: call to undeclared function 'cpu_smt_mask'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
>>> const struct cpumask *smt_mask = cpu_smt_mask(cpu);
>>
>> This warning with W=1 is not the worst of the problems.
>>
>> The build will simply fail for CONFIG_SMP=y && CONFIG_SCHED_SMT=n
>> because cpu_smt_mask() cannot be resolved.
>>
>> The other issue is CONFIG_SMP=n. This will fail to build the IFS driver
>> because stop_core_cpuslocked() is not available for SMP=n.
>
> The IFS Kconfig already depends on SMP :
>
> config INTEL_IFS
> tristate "Intel In Field Scan"
> depends on X86 && 64BIT && SMP
> select INTEL_IFS_DEVICE
> help
> Enable ...
>
>
> So I don't think we need the non-SMP implementation inside
> include/linux/stop_machine.h, we only need the #ifdef you
> suggest in kernel/stop_machine.c ?

For the case at hand that's sufficient.

> I think it is best to just squash this into the original
> patch, do you agree ?

Yes.