Re: [PATCH -next] hwmon: (amd_energy) Fix build error

From: Yuehaibing
Date: Wed May 27 2020 - 21:10:19 EST


On 2020/5/27 21:22, Guenter Roeck wrote:
> On 5/27/20 6:02 AM, YueHaibing wrote:
>> If CONFIG_NEED_MULTIPLE_NODES is n, building fails:
>>
>> 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
>> ^~~~~~~~~~~~~~~
>>
>> Fixes: 8abee9566b7e ("hwmon: Add amd_energy driver to report energy counters")
>> Signed-off-by: YueHaibing <yuehaibing@xxxxxxxxxx>
>> ---
>> drivers/hwmon/amd_energy.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/hwmon/amd_energy.c b/drivers/hwmon/amd_energy.c
>> index bc8b643a37d5..9d5cd3057866 100644
>> --- a/drivers/hwmon/amd_energy.c
>> +++ b/drivers/hwmon/amd_energy.c
>> @@ -192,7 +192,7 @@ static int amd_energy_read(struct device *dev,
>> if (channel >= data->nr_cpus) {
>> cpu = cpumask_first_and(cpu_online_mask,
>> cpumask_of_node
>> - (channel - data->nr_cpus));
>> + ((channel - data->nr_cpus)));
>
> Wrong fix. The correct fix is to fix the macro, not its caller.
> A patch to fix the macro has been submitted.
>
Thanks, missing that.

> Guenter
>
>
>> amd_add_delta(data, channel, cpu, val, false);
>> } else {
>> cpu = channel;
>>
>
>
>