lkml.org 
[lkml]   [2010]   [Sep]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectMTD: mtd_blkdevs regression
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


\
 
 \ /
  Last update: 2010-09-10 13:07    [W:0.021 / U:0.876 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site