On Thu, Aug 4, 2016 at 4:01 PM, Sandeep Jain <sandeep_j...@mentor.com> wrote: > From: Steve Longerbeam <steve_longerb...@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_longerb...@mentor.com> > Signed-off-by: Jim Baxter <jim_bax...@mentor.com> > Signed-off-by: Sandeep Jain <sandeep_j...@mentor.com>
Reviewed-by: Richard Weinberger <rich...@nod.at> -- Thanks, //richard