2023-03-01 22:57:45

by Besar Wicaksono

[permalink] [raw]
Subject: [PATCH] perf: arm_cspmu: Fix compiler warning

Fix following compiler warning message
| smatch warnings:
| drivers/perf/arm_cspmu/arm_cspmu.c:1075 arm_cspmu_find_cpu_container()
| warn: variable dereferenced before check 'cpu_dev' (see line 1073)

Reported-by: kernel test robot <[email protected]>
Reported-by: Dan Carpenter <[email protected]>
Link: https://lore.kernel.org/r/[email protected]/
Signed-off-by: Besar Wicaksono <[email protected]>
---
drivers/perf/arm_cspmu/arm_cspmu.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/perf/arm_cspmu/arm_cspmu.c b/drivers/perf/arm_cspmu/arm_cspmu.c
index e31302ab7e37..a3f1c410b417 100644
--- a/drivers/perf/arm_cspmu/arm_cspmu.c
+++ b/drivers/perf/arm_cspmu/arm_cspmu.c
@@ -1078,12 +1078,14 @@ static int arm_cspmu_request_irq(struct arm_cspmu *cspmu)
static inline int arm_cspmu_find_cpu_container(int cpu, u32 container_uid)
{
u32 acpi_uid;
- struct device *cpu_dev = get_cpu_device(cpu);
- struct acpi_device *acpi_dev = ACPI_COMPANION(cpu_dev);
+ struct device *cpu_dev;
+ struct acpi_device *acpi_dev;

+ cpu_dev = get_cpu_device(cpu);
if (!cpu_dev)
return -ENODEV;

+ acpi_dev = ACPI_COMPANION(cpu_dev);
while (acpi_dev) {
if (!strcmp(acpi_device_hid(acpi_dev),
ACPI_PROCESSOR_CONTAINER_HID) &&

base-commit: 7f7a8831520f12a3cf894b0627641fad33971221
--
2.17.1



2023-03-02 12:02:00

by Suzuki K Poulose

[permalink] [raw]
Subject: Re: [PATCH] perf: arm_cspmu: Fix compiler warning

On 01/03/2023 22:56, Besar Wicaksono wrote:
> Fix following compiler warning message
> | smatch warnings:
> | drivers/perf/arm_cspmu/arm_cspmu.c:1075 arm_cspmu_find_cpu_container()
> | warn: variable dereferenced before check 'cpu_dev' (see line 1073)
>
> Reported-by: kernel test robot <[email protected]>
> Reported-by: Dan Carpenter <[email protected]>
> Link: https://lore.kernel.org/r/[email protected]/
> Signed-off-by: Besar Wicaksono <[email protected]>

Reviewed-by: Suzuki K Poulose <[email protected]>

> ---
> drivers/perf/arm_cspmu/arm_cspmu.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/perf/arm_cspmu/arm_cspmu.c b/drivers/perf/arm_cspmu/arm_cspmu.c
> index e31302ab7e37..a3f1c410b417 100644
> --- a/drivers/perf/arm_cspmu/arm_cspmu.c
> +++ b/drivers/perf/arm_cspmu/arm_cspmu.c
> @@ -1078,12 +1078,14 @@ static int arm_cspmu_request_irq(struct arm_cspmu *cspmu)
> static inline int arm_cspmu_find_cpu_container(int cpu, u32 container_uid)
> {
> u32 acpi_uid;
> - struct device *cpu_dev = get_cpu_device(cpu);
> - struct acpi_device *acpi_dev = ACPI_COMPANION(cpu_dev);
> + struct device *cpu_dev;
> + struct acpi_device *acpi_dev;
>
> + cpu_dev = get_cpu_device(cpu);
> if (!cpu_dev)
> return -ENODEV;
>
> + acpi_dev = ACPI_COMPANION(cpu_dev);
> while (acpi_dev) {
> if (!strcmp(acpi_device_hid(acpi_dev),
> ACPI_PROCESSOR_CONTAINER_HID) &&
>
> base-commit: 7f7a8831520f12a3cf894b0627641fad33971221


2023-03-02 16:35:39

by Randy Dunlap

[permalink] [raw]
Subject: Re: [PATCH] perf: arm_cspmu: Fix compiler warning



On 3/2/23 04:01, Suzuki K Poulose wrote:
> On 01/03/2023 22:56, Besar Wicaksono wrote:
>> Fix following compiler warning message
>>    | smatch warnings:
>>    | drivers/perf/arm_cspmu/arm_cspmu.c:1075 arm_cspmu_find_cpu_container()
>>    |    warn: variable dereferenced before check 'cpu_dev' (see line 1073)
>>
>> Reported-by: kernel test robot <[email protected]>
>> Reported-by: Dan Carpenter <[email protected]>
>> Link: https://lore.kernel.org/r/[email protected]/
>> Signed-off-by: Besar Wicaksono <[email protected]>
>
> Reviewed-by: Suzuki K Poulose <[email protected]>

in Subject:, s/compiler/smatch/

>> ---
>>   drivers/perf/arm_cspmu/arm_cspmu.c | 6 ++++--
>>   1 file changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/perf/arm_cspmu/arm_cspmu.c b/drivers/perf/arm_cspmu/arm_cspmu.c
>> index e31302ab7e37..a3f1c410b417 100644
>> --- a/drivers/perf/arm_cspmu/arm_cspmu.c
>> +++ b/drivers/perf/arm_cspmu/arm_cspmu.c
>> @@ -1078,12 +1078,14 @@ static int arm_cspmu_request_irq(struct arm_cspmu *cspmu)
>>   static inline int arm_cspmu_find_cpu_container(int cpu, u32 container_uid)
>>   {
>>       u32 acpi_uid;
>> -    struct device *cpu_dev = get_cpu_device(cpu);
>> -    struct acpi_device *acpi_dev = ACPI_COMPANION(cpu_dev);
>> +    struct device *cpu_dev;
>> +    struct acpi_device *acpi_dev;
>>   +    cpu_dev = get_cpu_device(cpu);
>>       if (!cpu_dev)
>>           return -ENODEV;
>>   +    acpi_dev = ACPI_COMPANION(cpu_dev);
>>       while (acpi_dev) {
>>           if (!strcmp(acpi_device_hid(acpi_dev),
>>                   ACPI_PROCESSOR_CONTAINER_HID) &&
>>
>> base-commit: 7f7a8831520f12a3cf894b0627641fad33971221
>

--
~Randy