Hi,
We are using QorIQ P1021 processor, SDK - QorIQ-SDK-V1.7 , Linux version 3.12.19. Facing a kernel crash issue with ethernet driver gianfar.c - gfar_clean_rx_ring function. I am attaching crash logs here. Disassembling the gianfar.c function points to line -> " newskb = gfar_new_skb(dev); skb = rx_queue->rx_skbuff[rx_queue->skb_currx]; "
Crash Logs:
uChar port 1 ee
Unable to handle kernel paging request for data at address 0xffffff54
Faulting instruction address: 0xc0518a7c
Oops: Kernel access of bad area, sig: 11 [#1]
SMP NR_CPUS=4 P1021PLCM-ISDN
Modules linked in: isdn_gw(PO+)
CPU: 0 PID: 0 Comm: swapper/0 Tainted: P O 3.12.19-rt30isdn-svn714 #2
task: c0855300 ti: effea000 task.ti: c08a6000
NIP: c0518a7c LR: c03c5d24 CTR: c000d280
REGS: effebe20 TRAP: 0300 Tainted: P O (3.12.19-rt30isdn-svn714)
MSR: 00029000 <CE,EE,ME> CR: 44024048 XER: 20000000
DEAR: ffffff54, ESR: 00000000
GPR00: c03c5c7c effebed0 c0855300 ffffff00 0000006c 00000000 07610e80 00000600
GPR08: 00000800 00000101 c72415c0 00000001 84024048 1001a6f0 ef024658 ef024650
GPR16: ef024648 ef024640 c08b0000 c70dd000 ef5665c0 ffffff00 c0670000 00000008
GPR24: c08b4274 c70dd000 c11f0ae8 00000001 0000006c 00000040 c654f6c0 ef024000
NIP [c0518a7c] skb_put+0x0/0x5c
LR [c03c5d24] gfar_clean_rx_ring+0x2b4/0x558
Call Trace:
[effebed0] [c03c5c7c] gfar_clean_rx_ring+0x20c/0x558 (unreliable)
[effebf50] [c03c6004] gfar_poll_rx_sq+0x3c/0xa8
[effebf70] [c05272b4] net_rx_action+0x120/0x1d8
[effebfa0] [c00434f8] __do_softirq+0x100/0x1cc
[effebff0] [c000d6d4] call_do_softirq+0x24/0x3c
[effe9fc0] [c00048ec] do_softirq+0x90/0xb8
[effe9fe0] [c0043ec4] irq_exit+0xa4/0xc8
[effe9ff0] [c000d710] call_do_irq+0x24/0x3c
[c08a7ea0] [c000467c] do_IRQ+0x8c/0xf8
[c08a7ec0] [c000f69c] ret_from_except+0x0/0x18
--- Exception: 501 at arch_cpu_idle+0x24/0x5c
LR = arch_cpu_idle+0x24/0x5c
[c08a7f80] [c00a5528] rcu_idle_enter+0xac/0xec (unreliable)
[c08a7f90] [c007f980] cpu_startup_entry+0x120/0x170
[c08a7fc0] [c08107a4] start_kernel+0x2f0/0x304
[c08a7ff0] [c00003fc] skpinv+0x2e8/0x324
Instruction dump:
4bfffe1d 54692834 3929ffe0 7d5f482e 554a003c 614a0002 7d5f492e 80010014
83e1000c 38210010 7c0803a6 4e800020 <81230054> 81430094 7d290034 5529d97e
---[ end trace 60191b6bdb0b3477 ]---
Kernel panic - not syncing: Fatal exception in interrupt
Rebooting in 180 seconds..
Is there a fix available for this? Or any idea on the cause?
Original Attachment has been moved to: gianfar.c.zip