coresight: etb10: Fix check for bogus buffer depth
authorMark Brown <broonie@kernel.org>
Fri, 10 Apr 2015 15:25:37 +0000 (09:25 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 18 May 2015 19:56:15 +0000 (12:56 -0700)
We attempt to sanity check the buffer depth reported by the hardware by
making sure it is not less than zero however this check will never be true
since the buffer depth is stored in an unsigned integer. Instead change
the check to look for the top bit being set which was the intention.

Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/hwtracing/coresight/coresight-etb10.c

index 46eb9f88a29f02c57f0be0c97b09980d6564fe34..2a77d83130e693dc33c91a161724c34b417d8e58 100644 (file)
@@ -457,7 +457,7 @@ static int etb_probe(struct amba_device *adev, const struct amba_id *id)
        drvdata->buffer_depth = etb_get_buffer_depth(drvdata);
        clk_disable_unprepare(drvdata->clk);
 
-       if (drvdata->buffer_depth 0)
+       if (drvdata->buffer_depth & 0x80000000)
                return -EINVAL;
 
        drvdata->buf = devm_kzalloc(dev,