dmaengine: idxd: off by one in cleanup code
authorDan Carpenter <dan.carpenter@oracle.com>
Wed, 16 Dec 2020 08:29:46 +0000 (11:29 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 12 Jan 2021 19:18:26 +0000 (20:18 +0100)
commit ff58f7dd0c1352a01de3a40327895bd51e03de3a upstream.

The clean up is off by one so this will start at "i" and it should start
with "i - 1" and then it doesn't unregister the zeroeth elements in the
array.

Fixes: c52ca478233c ("dmaengine: idxd: add configuration component of driver")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Dave Jiang <dave.jiang@intel.com>
Link: https://lore.kernel.org/r/X9nFeojulsNqUSnG@mwanda
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/dma/idxd/sysfs.c

index 07a5db0..fb97c9f 100644 (file)
@@ -379,7 +379,7 @@ int idxd_register_driver(void)
        return 0;
 
 drv_fail:
-       for (; i > 0; i--)
+       while (--i >= 0)
                driver_unregister(&idxd_drvs[i]->drv);
        return rc;
 }
@@ -1639,7 +1639,7 @@ int idxd_register_bus_type(void)
        return 0;
 
 bus_err:
-       for (; i > 0; i--)
+       while (--i >= 0)
                bus_unregister(idxd_bus_types[i]);
        return rc;
 }