Skip to contentSkip to conversation

m25p80: missing MTD owner

DISCUSSION Grégor Boirie 2 participants 2 messages Oct 1, 2012 – Oct 5, 2012 Memory technology devices (MTD)

lore
Share & tools
lore
#0 lore raw

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.

Signature · 12 lines
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
#1 lore raw

Dear Grégor Boirie,

Quoted 21 lines

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 :

(quoted diff) +1 -0
@@ -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;
Quoted 1 line

Regards.

Do you mind submitting a proper patch via git send-email please?

Best regards,
Marek Vasut