mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* MTD: mtd_blkdevs regression
@ 2010-09-10 11:04 Jarkko Lavinen
  0 siblings, 0 replies; only message in thread
From: Jarkko Lavinen @ 2010-09-10 11:04 UTC (permalink / raw)
  To: linux-kernel; +Cc: David Woodhouse, Maxim Levitsky

In 2.6.34 modules using add_mtd_blktrans_dev() have reference
count 0 after loading and I can remove the module if it is not
being used. 

In 2.6.34, using mtdblock as an example:

    # modprobe nandsim
    # modprobe mtdblock
    # lsmod 
    Module                  Size  Used by
    mtdblock                2829  0 
    mtd_blkdevs             4217  1 mtdblock
    nandsim                25811  0 
    nand                   27184  1 nandsim
    nand_ids                2666  2 nandsim,nand
    nand_ecc                3392  1 nand
    mtd                    14794  5 mtd_blkdevs,nandsim,nand
    # rmmod mtdblock
    # 

Since commit 048d871 (mtd: blktrans: Hotplug fixes) in 2.6.35-rc1 
add_mtd_blktrans_dev() uses __get_module(tr->owner) to add reference 
count to calling module.

Because of this the module cannot be removed and since module
exit cannot be called, del_mtd_blktrans_dev() will not be called,
which would do the module_put().

In 2.6.35:

    # modprobe nandsim
    # modprobe mtdblock
    # lsmod
    Module                  Size  Used by
    mtdblock                2721  1 
    mtd_blkdevs             4895  1 mtdblock
    nandsim                25819  1 
    nand                   28326  1 nandsim
    nand_ids                2698  2 nandsim,nand
    nand_ecc                3400  1 nand
    mtd                    15352  5 mtd_blkdevs,nandsim,nand
    # rmmod mtdblock
    ERROR: Module mtdblock is in use
    #

Jarkko Lavinen

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2010-09-10 11:05 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-09-10 11:04 MTD: mtd_blkdevs regression Jarkko Lavinen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®