[v2] perf: arm_cspmu: Fix variable dereference warning

Message ID 20230302205701.35323-1-bwicaksono@nvidia.com
State New
Headers
Series [v2] perf: arm_cspmu: Fix variable dereference warning |

Commit Message

Besar Wicaksono March 2, 2023, 8:57 p.m. UTC
  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 <lkp@intel.com>
Reported-by: Dan Carpenter <error27@gmail.com>
Link: https://lore.kernel.org/r/202302191227.kc0V8fM7-lkp@intel.com/
Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Besar Wicaksono <bwicaksono@nvidia.com>
---

Changes from v1:
 * Update commit subject and description
 * Added Reviewed-by from Suzuki
v1: https://lore.kernel.org/linux-arm-kernel/20230301225657.30211-1-bwicaksono@nvidia.com/T/#u

---
 drivers/perf/arm_cspmu/arm_cspmu.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)


base-commit: 7f7a8831520f12a3cf894b0627641fad33971221
  

Comments

Will Deacon March 27, 2023, 3:01 p.m. UTC | #1
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,
  

Patch

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) &&