mtd: Fixed breaking list in __mtd_del_partition.
authorAndreas Oetken <ennoerlangen@gmail.com>
Tue, 2 Nov 2021 17:26:04 +0000 (18:26 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Jan 2022 10:02:48 +0000 (11:02 +0100)
commit 2966daf7d253d9904b337b040dd7a43472858b8a upstream.

Not the child partition should be removed from the partition list
but the partition itself. Otherwise the partition list gets broken
and any subsequent remove operations leads to a kernel panic.

Fixes: 46b5889cc2c5 ("mtd: implement proper partition handling")
Signed-off-by: Andreas Oetken <andreas.oetken@siemens-energy.com>
Cc: stable@vger.kernel.org
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20211102172604.2921065-1-andreas.oetken@siemens-energy.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/mtd/mtdpart.c

index 04af12b66110c60df1a49347acb0d95d41581fba..357661b62c94d1cc8b27d1e09f3290a9225b3ca2 100644 (file)
@@ -312,7 +312,7 @@ static int __mtd_del_partition(struct mtd_info *mtd)
        if (err)
                return err;
 
-       list_del(&child->part.node);
+       list_del(&mtd->part.node);
        free_partition(mtd);
 
        return 0;