Kernel panic in mxs_auart_irq_handle with latest kernel?

Russell King - ARM Linux linux at arm.linux.org.uk
Mon Oct 8 04:07:54 EDT 2012


On Mon, Oct 08, 2012 at 09:45:47AM +0200, Uwe Kleine-König wrote:
> On Fri, Oct 05, 2012 at 11:58:26PM +0000, Subodh Nijsure wrote:
> > 
> > On my MX28 based board with top of the Linus's git tree I am consistently getting following kernel panic, anybody else seen this?
> > (I will start bisecting and see if I can find a reason this wknd)
> > 
> > -Subodh
> > 
> This dump is not complete, there is at least a line missing that reads
> 
> 	[   $timestamp] pgd = ....
> 
> It's a good habit to always provide the full info.
> 
> > [    9.700000] [00000118] *pgd=00000000

Uwe, yes it is, it is the line above.  It's saying that there is no
pgd entry at address 0x118 (which is correct.)

> > [    9.700000] Internal error: Oops: 5 [#1] PREEMPT ARM
> > [    9.700000] Modules linked in:
> > [    9.700000] CPU: 0    Not tainted  (3.6.0-11641-gbe4ae13-dirty #1)
> > [    9.700000] PC is at uart_insert_char+0x38/0x130
> > [    9.700000] LR is at mxs_auart_irq_handle+0x198/0x2b0
> > [    9.700000] pc : [<c025a3e0>]    lr : [<c0261700>]    psr: 40000093
> > [    9.700000] sp : c0549ea0  ip : 00000000  fp : 00000001
> > [    9.700000] r10: 00000000  r9 : c057e64e  r8 : 00000020
> > [    9.700000] r7 : 00000000  r6 : 00080000  r5 : 00000000  r4 : c39566c0
> > [    9.700000] r3 : 00000020  r2 : 00000000  r1 : 00000000  r0 : 00000000
> I don't see what should access the address 0x118 here, can you please
> provide the output of
> 
> 	objdump -d vmlinux | sed -nr '/^[0-9]{8} <uart_insert_char/,/^$/p'

	objdump -d vmlinux --start-addr=0xc025a3a8 | less

will give you the disassembly starting at uart_insert_char().

The faulting instruction is (which is below in the Code: line of the oops
dump):

	e5973118

It's an "ldr r3, [r7, #280]  ; 0x118" instruction.  r7 is zero, and the
instruction has an pre-indexed offset of 0x118.  _That_ is where 0x118
is coming from.

The full code line is:

  28:   1a000012        bne     0x78
  2c:   e59d2020        ldr     r2, [sp, #32]
  30:   e5cd3006        strb    r3, [sp, #6]
  34:   e5cd2007        strb    r2, [sp, #7]
  38:   e5973118        ldr     r3, [r7, #280]  ; 0x118

I suspect the problem is that the mxs serial driver is calling
uart_insert_char() when the port has been closed by userland, which
means there's no tty associated with it.

> Best regards
> Uwe
> 
> > [    9.700000] Flags: nZcv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
> > [    9.700000] Control: 0005317f  Table: 40004000  DAC: 00000017
> > [    9.700000] Process swapper (pid: 0, stack limit = 0xc0548270)
> > [    9.700000] Stack: (0xc0549ea0 to 0xc054a000)
> > [    9.700000] 9ea0: c0554c00 00200002 00000000 c39566c0 00000000 0052006d 0052006d c0261700
> > [    9.700000] 9ec0: 00000000 c0548000 c398f980 c0548000 00000000 00000000 000000d3 c057e64e
> > [    9.700000] 9ee0: c387d700 c0063e74 ffffffff 20000093 00000002 c387d700 c0548000 00000000
> > [    9.700000] 9f00: c0549f9c 40004000 41069265 40541cd8 00000000 c006403c 427c4747 00000002
> > [    9.700000] 9f20: c0548000 c0548000 c387d700 c00662dc 000000d3 000000d3 00000000 c00637b0
> > [    9.700000] 9f40: c0568748 c000ffec f5000000 c0549f68 c0587814 c0008778 c0010144 60000013
> > [    9.700000] 9f60: ffffffff c000eda0 00000000 0005317f 0005217f 60000013 c0548000 c05875a8
> > [    9.700000] 9f80: c0554300 c0644480 40004000 41069265 40541cd8 00000000 600000d3 c0549fb0
> > [    9.700000] 9fa0: c0010138 c0010144 60000013 ffffffff 60000093 c0010308 c05500a8 c0587520
> > [    9.700000] 9fc0: c0543150 c0522700 ffffffff ffffffff c05221d0 00000000 00000000 c0543150
> > [    9.700000] 9fe0: 00000000 00053175 c055001c c0543120 c05542f4 40008040 00000000 00000000
> > [    9.700000] [<c025a3e0>] (uart_insert_char+0x38/0x130) from [<c0261700>] (mxs_auart_irq_handle+0x198/0x2b0)
> > [    9.700000] [<c0261700>] (mxs_auart_irq_handle+0x198/0x2b0) from [<c0063e74>] (handle_irq_event_percpu+0x50/0x1c4)
> > [    9.700000] [<c0063e74>] (handle_irq_event_percpu+0x50/0x1c4) from [<c006403c>] (handle_irq_event+0x54/0x84)
> > [    9.700000] [<c006403c>] (handle_irq_event+0x54/0x84) from [<c00662dc>] (handle_level_irq+0x98/0x14c)
> > [    9.700000] [<c00662dc>] (handle_level_irq+0x98/0x14c) from [<c00637b0>] (generic_handle_irq+0x20/0x30)
> > [    9.700000] [<c00637b0>] (generic_handle_irq+0x20/0x30) from [<c000ffec>] (handle_IRQ+0x30/0x84)
> > [    9.700000] [<c000ffec>] (handle_IRQ+0x30/0x84) from [<c0008778>] (icoll_handle_irq+0x34/0x48)
> > [    9.700000] [<c0008778>] (icoll_handle_irq+0x34/0x48) from [<c000eda0>] (__irq_svc+0x40/0x6c)
> > [    9.700000] Exception stack(0xc0549f68 to 0xc0549fb0)
> > [    9.700000] 9f60:                   00000000 0005317f 0005217f 60000013 c0548000 c05875a8
> > [    9.700000] 9f80: c0554300 c0644480 40004000 41069265 40541cd8 00000000 600000d3 c0549fb0
> > [    9.700000] 9fa0: c0010138 c0010144 60000013 ffffffff
> > [    9.700000] [<c000eda0>] (__irq_svc+0x40/0x6c) from [<c0010144>] (default_idle+0x38/0x40)
> > [    9.700000] [<c0010144>] (default_idle+0x38/0x40) from [<c0010308>] (cpu_idle+0x9c/0xd4)
> > [    9.700000] [<c0010308>] (cpu_idle+0x9c/0xd4) from [<c0522700>] (start_kernel+0x264/0x2a4)
> > [    9.700000] [<c0522700>] (start_kernel+0x264/0x2a4) from [<40008040>] (0x40008040)
> > [    9.700000] Code: 1a000012 e59d2020 e5cd3006 e5cd2007 (e5973118) 
> > [    9.700000] ---[ end trace 179ba7640a9ebb7c ]---
> > [    9.700000] Kernel panic - not syncing: Fatal exception in interrupt
> 
> -- 
> Pengutronix e.K.                           | Uwe Kleine-König            |
> Industrial Linux Solutions                 | http://www.pengutronix.de/  |
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel



More information about the linux-arm-kernel mailing list