linux/drivers/mtd
Steve Longerbeam 445caaa20c mtd: Allocate bdi objects dynamically
The MTD backing dev info objects mtd_bdi was statically allocated.
So when MTD is built as a loadable module, this object fall in the
vmalloc address space.

The problem with that, is that the BDI APIs use wake_up_bit(), which calls
virt_to_page() to retrieve the memory zone of the page containing the
wait_queue to wake up, and virt_to_page() is not valid for vmalloc or
highmem addresses.

Fix this by allocating the BDI objects dynamically with kmalloc. The
objects now fall in the logical address space so that BDI APIs will
work in all cases (mtd builtin or module).

Signed-off-by: Steve Longerbeam <steve_longerbeam@mentor.com>
Signed-off-by: Jim Baxter <jim_baxter@mentor.com>
Signed-off-by: Sandeep Jain <Sandeep_Jain@mentor.com>
Reviewed-by: Richard Weinberger <richard@nod.at>
Reviewed-by: Marek Vasut <marek.vasut@gmail.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
2016-12-01 10:03:17 -08:00
..
chips mtd: cfi_cmdset_0020: Deinline do_write_buffer, save 5316 bytes 2016-07-09 18:53:33 -07:00
devices mtd: bcm47xxsflash: use uncached MMIO access for BCM53573 2016-11-07 18:17:37 -08:00
lpddr mtd: lpddr: show parent device in sysfs 2015-10-13 09:21:17 -07:00
maps mtd: maps: add missing iounmap() in error path 2016-11-30 18:30:24 -08:00
nand mtd: nand: tango: Add standard legalese header 2016-12-01 09:46:31 -08:00
onenand mtd: silence some uninitialized variable warnings 2016-07-09 18:14:39 -07:00
spi-nor mtd: spi-nor: constify fsl_qspi_devtype_data 2016-11-26 17:45:06 +01:00
tests mtd: nandbiterrs: Support for NAND biterrors test on platforms without raw write 2016-07-11 08:40:13 +02:00
ubi UBI: Fix crash in try_recover_peb() 2016-10-20 00:06:06 +02:00
afs.c mtd: partitions: make parsers return 'const' partition arrays 2015-12-09 10:21:57 -08:00
ar7part.c mtd: partitions: make parsers return 'const' partition arrays 2015-12-09 10:21:57 -08:00
bcm47xxpart.c mtd: bcm47xxpart: fix parsing first block after aligned TRX 2016-11-22 11:09:48 -08:00
bcm63xxpart.c mtd: bcm63xxpart: give width specifier an 'int', not 'size_t' 2016-03-07 13:13:58 -08:00
cmdlinepart.c mtd: partitions: make parsers return 'const' partition arrays 2015-12-09 10:21:57 -08:00
ftl.c mtd: ftl: use swap() in copy_erase_unit() 2015-12-18 16:56:07 -08:00
inftlcore.c
inftlmount.c mtd: intflmount: fix off by one error in INFTL_dumpVUchains() 2014-11-05 13:19:21 -08:00
Kconfig mtd: bcm63xxpart: Remove dependency on mach-bcm63xx 2016-02-12 10:27:48 -08:00
Makefile
mtd_blkdevs.c block: convert to device_add_disk() 2016-06-27 12:26:08 -07:00
mtdblock_ro.c
mtdblock.c mtd: mtdblock: remove the needless mtdblks_lock 2015-01-07 12:51:56 -08:00
mtdchar.c mtd: kill the nand_ecclayout struct 2016-05-05 23:51:51 +02:00
mtdconcat.c mtd: create an mtd_ooblayout_ops struct to ease ECC layout definition 2016-04-19 22:05:55 +02:00
mtdcore.c mtd: Allocate bdi objects dynamically 2016-12-01 10:03:17 -08:00
mtdcore.h mtd: partitions: support a cleanup callback for parsers 2015-12-09 14:57:44 -08:00
mtdoops.c
mtdpart.c treewide: remove redundant #include <linux/kconfig.h> 2016-10-11 15:06:33 -07:00
mtdsuper.c
mtdswap.c mtd: mtdswap: fix spelling mistake "erassure" -> "erasure" 2016-11-22 11:43:52 -08:00
nftlcore.c
nftlmount.c mtd: nftl: reorganize operations in condition check 2015-01-09 15:26:29 -08:00
ofpart.c mtd: partitions: make parsers return 'const' partition arrays 2015-12-09 10:21:57 -08:00
redboot.c mtd: partitions: make parsers return 'const' partition arrays 2015-12-09 10:21:57 -08:00
rfd_ftl.c
sm_ftl.c treewide: Fix typos in printk 2016-04-18 11:23:24 +02:00
sm_ftl.h
ssfdc.c mtd: Replace if and BUG with BUG_ON 2016-07-09 18:48:54 -07:00