• S
    coresight: Fix csdev connections initialisation · 068c0a54
    Suzuki K Poulose 提交于
    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 initialisation to make sure we initialise it
    properly(i.e, either NULL or valid conns array).
    
    Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
    Signed-off-by: NSuzuki K Poulose <suzuki.poulose@arm.com>
    Signed-off-by: NMathieu Poirier <mathieu.poirier@linaro.org>
    Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    068c0a54
coresight.c 22.4 KB