Re: linux-next: Tree for May 26 (hwmon/amd_energy.c)

From: Guenter Roeck
Date: Tue May 26 2020 - 13:14:51 EST


On 5/26/20 9:24 AM, Randy Dunlap wrote:
> On 5/26/20 3:39 AM, Stephen Rothwell wrote:
>> Hi all,
>>
>> News: there will be no linux-next release tomorrow.
>>
>> Changes since 20200525:
>>
>
> Hi,
>
> All of my drivers/hwmon/amd_energy.c builds are failing (on i386 or x86_64).
>
I don't see that, neither in my hwmon-next branch (on top of v5.7-rc6)
nor with next-20200526.

Ah yes, you must have NUMA and NEED_MULTIPLE_NODES disabled.
With that (allnoconfig+HWMON+SENSORS_AMD_ENERGY), I see the error as well.
The problem is:

#define cpumask_of_node(node) ((void)node, cpu_online_mask)

The caller passes node as "channel - data->nr_cpus", which I would argue
is perfectly valid. This is converted to

#define cpumask_of_node(node) ((void)channel - data->nr_cpus, cpu_online_mask)

which doesn't look that good and results in the error. The problem
is the missing ( ) around node, not the amd_energy driver.

Do you want to submit a patch, or do you want me to do it ?

Thanks,
Guenter

>
> $ gcc --version
> gcc (SUSE Linux) 7.5.0
>
>
> CC drivers/hwmon/amd_energy.o
> In file included from ../arch/x86/include/asm/cpumask.h:5:0,
> from ../arch/x86/include/asm/msr.h:11,
> from ../arch/x86/include/asm/processor.h:22,
> from ../arch/x86/include/asm/cpu_device_id.h:16,
> from ../drivers/hwmon/amd_energy.c:6:
> ../drivers/hwmon/amd_energy.c: In function 'amd_energy_read':
> ../include/asm-generic/topology.h:51:36: error: void value not ignored as it ought to be
> #define cpumask_of_node(node) ((void)node, cpu_online_mask)
> ../include/linux/cpumask.h:618:72: note: in definition of macro 'cpumask_first_and'
> #define cpumask_first_and(src1p, src2p) cpumask_next_and(-1, (src1p), (src2p))
> ^~~~~
> ../drivers/hwmon/amd_energy.c:194:6: note: in expansion of macro 'cpumask_of_node'
> cpumask_of_node
> ^~~~~~~~~~~~~~~
> ../include/asm-generic/topology.h:51:46: warning: left-hand operand of comma expression has no effect [-Wunused-value]
> #define cpumask_of_node(node) ((void)node, cpu_online_mask)
> ^
> ../include/linux/cpumask.h:618:72: note: in definition of macro 'cpumask_first_and'
> #define cpumask_first_and(src1p, src2p) cpumask_next_and(-1, (src1p), (src2p))
> ^~~~~
> ../drivers/hwmon/amd_energy.c:194:6: note: in expansion of macro 'cpumask_of_node'
> cpumask_of_node
> ^~~~~~~~~~~~~~~
>
>
> thanks.
>