ARM/kirkwood: v3.12-rc6: kernel BUG at mm/util.c:390!

Aaro Koskinen aaro.koskinen at iki.fi
Sat Oct 26 13:23:12 EDT 2013


Hi,

On Sat, Oct 26, 2013 at 03:36:17PM +0100, Will Deacon wrote:
> On Thu, Oct 24, 2013 at 09:07:30PM +0100, Aaro Koskinen wrote:
> > [   26.694345] ata2: link is slow to respond, please be patient (ready=0)
> > [   31.194346] ata2: SRST failed (errno=-16)
> > [   31.754426] ata2: SATA link up 3.0 Gbps (SStatus 123 SControl F300)
> > [   31.834619] ata2.00: ATA-6: eSATA-2 WD5000AAKX-00ERMA0, 15.01H15, max UDMA/133
> > [   31.899627] ata2.00: 976773168 sectors, multi 0: LBA48
> > [   31.994458] ata2.00: configured for UDMA/133
> > [   32.075306] ------------[ cut here ]------------
> > [   32.136256] kernel BUG at mm/util.c:390!
> > [   32.195446] Internal error: Oops - BUG: 0 [#1] PREEMPT ARM
> > [   32.255893] Modules linked in:
> > [   32.313109] CPU: 0 PID: 12 Comm: kworker/u2:1 Not tainted 3.12.0-rc6-openrd-los.git-1836ad9-dirty #3
> > [   32.435821] Workqueue: events_unbound async_run_entry_fn
> > [   32.498701] task: df854700 ti: df8a8000 task.ti: df8a8000
> > [   32.561662] PC is at page_mapping+0x48/0x50
> > [   32.622764] LR is at flush_kernel_dcache_page+0x14/0x98
> > [   32.685421] pc : [<c00923c4>]    lr : [<c0010dd8>]    psr: 20000093
> > [   32.685421] sp : df8a99f8  ip : df8a9a08  fp : df8a9a04
> > [   32.812754] r10: 60000093  r9 : df8a9c24  r8 : 00000024
> > [   32.874269] r7 : 00000000  r6 : c0a3cd0c  r5 : 00001000  r4 : c0e2732c
> > [   32.936395] r3 : 00000000  r2 : 00000080  r1 : 00000564  r0 : c0e2732c
> > [   32.996978] Flags: nzCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
> > [   33.059012] Control: 0005317f  Table: 1a8dc000  DAC: 00000017
> > [   33.119473] Process kworker/u2:1 (pid: 12, stack limit = 0xdf8a81c0)
> 
> The BUG is because page_mapping is being given a slab page...
> 
> > [   36.477203] Backtrace:
> > [   36.535603] [<c009237c>] (page_mapping+0x0/0x50) from [<c0010dd8>] (flush_kernel_dcache_page+0x14/0x98)
> > [   36.661070] [<c0010dc4>] (flush_kernel_dcache_page+0x0/0x98) from [<c0172b60>] (sg_miter_stop+0xc8/0x10c)
> > [   36.792813]  r4:df8a9a64 r3:00000003
> > [   36.857524] [<c0172a98>] (sg_miter_stop+0x0/0x10c) from [<c0172f20>] (sg_miter_next+0x14/0x13c)
> 
> ... assumedly for scatter/gather DMA. How is your block driver allocating
> its buffers? If you're using the DMA API, I can't see how this would happen.

This is sata_mv driver. As far as I understand, it's using DMA API
(dma_pool_alloc() etc.).

I noticed that for some reason CMA has gotten disabled on my
.config. However, enabling both CMA and DMA_CMA will still trigger
this BUG...

A.



More information about the linux-arm-kernel mailing list