intel_th: gth: Fix an off-by-one in output unassigning
authorAlexander Shishkin <alexander.shishkin@linux.intel.com>
Fri, 1 Mar 2019 08:09:55 +0000 (10:09 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 2 May 2019 07:32:03 +0000 (09:32 +0200)
commit 91d3f8a629849968dc91d6ce54f2d46abf4feb7f upstream.

Commit 9ed3f22223c3 ("intel_th: Don't reference unassigned outputs")
fixes a NULL dereference for all masters except the last one ("256+"),
which keeps the stale pointer after the output driver had been unassigned.

Fix the off-by-one.

Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Fixes: 9ed3f22223c3 ("intel_th: Don't reference unassigned outputs")
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/hwtracing/intel_th/gth.c

index b0502e2..98a4cb5 100644 (file)
@@ -605,7 +605,7 @@ static void intel_th_gth_unassign(struct intel_th_device *thdev,
        othdev->output.port = -1;
        othdev->output.active = false;
        gth->output[port].output = NULL;
-       for (master = 0; master < TH_CONFIGURABLE_MASTERS; master++)
+       for (master = 0; master <= TH_CONFIGURABLE_MASTERS; master++)
                if (gth->master[master] == port)
                        gth->master[master] = -1;
        spin_unlock(&gth->gth_lock);