[PATCH v2 4/9] coresight: Fix csdev connections initialisation
From: mathieu.poirier@linaro.org (Mathieu Poirier)
Date: 2016-06-13 14:37:43
Also in:
lkml
On 13 June 2016 at 02:54, Suzuki K Poulose [off-list ref] wrote:
On 12/06/16 21:39, Mathieu Poirier wrote:quoted
On 6 June 2016 at 03:11, Suzuki K Poulose [off-list ref] wrote:quoted
This is a cleanup patch. coresight_device->conns holds an array to point to the devices connected to the OUT ports of a component. Sinks, e.g ETR, do not have an OUT port (nr_outport = 0), as it streams the trace to memory via AXI. At coresight_register() we do : conns = kcalloc(csdev->nr_outport, sizeof(*conns), GFP_KERNEL); if (!conns) { ret = -ENOMEM; goto err_kzalloc_conns; } For ETR, since the total size requested for kcalloc is zero, the return value is, ZERO_SIZE_PTR ( != NULL). Hence, csdev->conns = ZERO_SIZE_PTR which cannot be verified later to contain a valid pointer. The code which accesses the csdev->conns is bounded by the csdev->nr_outport check, hence we don't try to dereference the ZERO_SIZE_PTR. This patch cleans up the csdev->conns and csdev->refcnt, initialisation to make sure weThis patch no longer deals with csdev->refcnt.Ok, fill fix that. Btw, do we need that check ? I am tempted to keep it there, just to make sure we don't end up in something similar in the future.
If it becomes an issue in the future we'll know what to do :o) Thanks, Mathieu
Cheers Suzuki