Thread (18 messages) 18 messages, 2 authors, 2016-06-13

[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 we

This 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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help