mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-07 18:37:58 -04:00
coresight: etm3x: Smatch: Fix potential NULL pointer dereference
Based on the following report from Smatch tool, make sure we have a
valid drvdata before we dereference it to find the real dev.
The patch 21d26b905c05: "coresight: etm: Clean up device specific
data" from May 22, 2019, leads to the following Smatch complaint:
./drivers/hwtracing/coresight/coresight-etm3x.c:460 etm_get_trace_id()
warn: variable dereferenced before check 'drvdata' (see line 458)
./drivers/hwtracing/coresight/coresight-etm3x.c
457 int trace_id = -1;
458 struct device *etm_dev = drvdata->csdev->dev.parent;
^^^^^^^^^
New dereference
459
460 if (!drvdata)
^^^^^^^^
Checked too late. Delete the check?
461 goto out;
462
Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
Cc: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Link: https://lore.kernel.org/r/20190621175205.24551-2-mathieu.poirier@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
0530ef6b41
commit
0206016223
@@ -455,11 +455,12 @@ int etm_get_trace_id(struct etm_drvdata *drvdata)
|
||||
{
|
||||
unsigned long flags;
|
||||
int trace_id = -1;
|
||||
struct device *etm_dev = drvdata->csdev->dev.parent;
|
||||
struct device *etm_dev;
|
||||
|
||||
if (!drvdata)
|
||||
goto out;
|
||||
|
||||
etm_dev = drvdata->csdev->dev.parent;
|
||||
if (!local_read(&drvdata->mode))
|
||||
return drvdata->traceid;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user