2023-03-02 20:57:48

by Besar Wicaksono

[permalink] [raw]
Subject: [PATCH v2] perf: arm_cspmu: Fix variable dereference warning

Fix warning message from smatch tool:
| 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]/
Reviewed-by: Suzuki K Poulose <[email protected]>
Signed-off-by: Besar Wicaksono <[email protected]>
---

Changes from v1:
* Update commit subject and description
* Added Reviewed-by from Suzuki
v1: https://lore.kernel.org/linux-arm-kernel/[email protected]/T/#u

---
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 21:02:51

by Randy Dunlap

[permalink] [raw]
Subject: Re: [PATCH v2] perf: arm_cspmu: Fix variable dereference warning



On 3/2/23 12:57, Besar Wicaksono wrote:
> Fix warning message from smatch tool:
> | 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]/
> Reviewed-by: Suzuki K Poulose <[email protected]>
> Signed-off-by: Besar Wicaksono <[email protected]>

Acked-by: Randy Dunlap <[email protected]>

Thanks.

> ---
>
> Changes from v1:
> * Update commit subject and description
> * Added Reviewed-by from Suzuki
> v1: https://lore.kernel.org/linux-arm-kernel/[email protected]/T/#u
>
> ---
> 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

2023-03-27 15:06:10

by Will Deacon

[permalink] [raw]
Subject: Re: [PATCH v2] perf: arm_cspmu: Fix variable dereference warning

On Thu, 2 Mar 2023 14:57:01 -0600, Besar Wicaksono wrote:
> Fix warning message from smatch tool:
> | 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)
>
>

Applied to will (for-next/perf), thanks!

[1/1] perf: arm_cspmu: Fix variable dereference warning
https://git.kernel.org/will/c/16e15834659e

Cheers,
--
Will

https://fixes.arm64.dev
https://next.arm64.dev
https://will.arm64.dev