m25p80: missing MTD owner

Grégor Boirie gregor.boirie at parrot.com
Mon Oct 1 04:01:15 EDT 2012


Hi all,

It seems possible to unload m25p80 module while a JFFS2 partition is
still mounted onto flash. This produces oops when MTD layer tries to
access underlying device later on.

A quick look at m25p_probe shows that "owner" field of allocated mtd
device structure is left uninitialized, preventing MTD layer from
incrementing module usage count. This patch for v3.4.11 solves the issue
for me :

@@ -873,6 +873,7 @@ static int __devinit m25p_probe(struct spi_device *spi)
        else
                flash->mtd.name = dev_name(&spi->dev);

+       flash->mtd.owner = THIS_MODULE;
        flash->mtd.type = MTD_NORFLASH;
        flash->mtd.writesize = 1;
        flash->mtd.flags = MTD_CAP_NORFLASH;


Regards.

-- 
Grégor Boirie
Software engineer
R&D / OS platform
tel +33 1 48 03 73 24
-----------------------------------------
Parrot
174, quai de Jemmapes
75010 Paris  France
tel + 33 1 48 03 60 60
fax + 33 1 48 03 06 66
-----------------------------------------
http://www.parrot.com



More information about the linux-mtd mailing list