[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20100910110446.GA28045@angel.research.nokia.com>
Date: Fri, 10 Sep 2010 14:04:46 +0300
From: Jarkko Lavinen <jarkko.lavinen@...ia.com>
To: linux-kernel@...r.kernel.org
Cc: David Woodhouse <david.woodhouse@...el.com>,
Maxim Levitsky <maximlevitsky@...il.com>
Subject: MTD: 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists