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 09:53:41 +0000 (10:53 +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 95d47422bbf2039f9e92bc7d09e08c548d7e3b0a..5725818fa199f72c056e9f1bb5be10eb2126e93a 100644 (file)
@@ -313,7 +313,7 @@ static int __mtd_del_partition(struct mtd_info *mtd)
        if (err)
                return err;
 
        if (err)
                return err;
 
-       list_del(&child->part.node);
+       list_del(&mtd->part.node);
        free_partition(mtd);
 
        return 0;
        free_partition(mtd);
 
        return 0;