AnsweredAssumed Answered

Linux Kernel Crash - gianfar.c ethernet driver

Question asked by Akshaya K on Dec 11, 2015

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

Outcomes