On Tue, May 20, 2014 at 02:46:47PM +0530, Prabhakar Lad wrote: > Hi Sekhar, > > On Tue, May 20, 2014 at 1:43 PM, Sekhar Nori <nsek...@ti.com> wrote: > > On Tuesday 20 May 2014 12:49 PM, Prabhakar Lad wrote: > >> Hi, > >> > >> On Tue, May 20, 2014 at 12:08 AM, Kevin Hilman <khil...@linaro.org> wrote: > >>> As found by my automated boot tester[1], dm365 EVM and da850 EVM started > >>> failing boot tests in today's linux-next. > >>> > >>> I haven't had the time to bisect, but it appears to be related to some > >>> devres failures in the EMAC driver. Full boot log below for the > >>> da850evm (the dm365 fault looks the same.) > >>> > >> I too hit this issue, this was introduced with commit id: > >> e194312854edc22a2faf1931b3c0608fe20cb969 (drivers: net: > >> davinci_cpdma: Convert kzalloc() to devm_kzalloc().) > >> Reverting this patch fixes it. > >> From the outset patch looks good, not sure why exactly it is failing. > > > > Following patch seems to help. I will post it for review after some more > > analysis. > > > I am not sure if you hit the following issue later fixing above one, > I see following issue on DA850 evm, > > git bisect points me to > commit id: 975c3a671f11279441006a29a19f55ccc15fb320 > ( mm: non-atomically mark page accessed during page cache allocation > where possible) > > Unable to handle kernel paging request at virtual address 30e03501 > pgd = c68cc000 > [30e03501] *pgd=00000000 > Internal error: Oops: 1 [#1] PREEMPT ARM > Modules linked in: > CPU: 0 PID: 1015 Comm: network.sh Not tainted 3.15.0-rc5-00323-g975c3a6 #9 > task: c70c4e00 ti: c73d0000 task.ti: c73d0000 > PC is at init_page_accessed+0xc/0x24 > LR is at shmem_write_begin+0x54/0x60 > pc : [<c0088aa0>] lr : [<c00923e8>] psr: 20000013
What line does this address correspond to according to addr2line? It's not a NULL pointer exception obviously because the data address does not match up and there is a check for NULL before calling init_page_accessed. The obvious guess would be that this is due to an uninitialised page pointer on the stack and shmem_getpage_gfp() returning before it gets initialised. Could you try this please? diff --git a/mm/filemap.c b/mm/filemap.c index 2a7b9d1..0691481 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -2459,7 +2459,7 @@ ssize_t generic_perform_write(struct file *file, flags |= AOP_FLAG_UNINTERRUPTIBLE; do { - struct page *page; + struct page *page = NULL; unsigned long offset; /* Offset into pagecache page */ unsigned long bytes; /* Bytes to write to page */ size_t copied; /* Bytes copied from user */ _______________________________________________ Davinci-linux-open-source mailing list Davinci-linux-open-source@linux.davincidsp.com http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source