[PATCH] mtd: Allocate bdi objects dynamically

Richard Weinberger richard.weinberger at gmail.com
Sat Sep 17 07:41:47 PDT 2016


On Thu, Aug 4, 2016 at 4:01 PM, Sandeep Jain <Sandeep_Jain at mentor.com> wrote:
> From: Steve Longerbeam <steve_longerbeam at mentor.com>
>
> 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 at mentor.com>
> Signed-off-by: Jim Baxter <jim_baxter at mentor.com>
> Signed-off-by: Sandeep Jain <Sandeep_Jain at mentor.com>

Reviewed-by: Richard Weinberger <richard at nod.at>

-- 
Thanks,
//richard



More information about the linux-mtd mailing list