Hello Peter,
On 15-09-11 16:58:52, Peter Chen wrote:
> On Fri, Sep 11, 2015 at 02:36:58PM +0530, [email protected] wrote:
> > Hello,
> >
> > We are using the 4.1.5 kernel on Freescale Vybrid SoC which has a Chipidea
> > IP. One of our customer's reported a kernel crash while using USB client
> > with the USB gadget RNDIS functionality while being connected to a host
> > running Windows 7 SP1 Pro and I was also able to reproduce the issue here.
> >
> > The issue seems reproducible and occurs while doing bidirectional
> > communication
> > over socket after an hour or so. Strangely it did not happen while doing one
> > way transfers from the Vybrid to PC side which I tested by running for
> > almost
> > 16 hours. For testing birectional communication I had a simple Python echo
> > server
> > running on PC and client on Vybrid side while for one way test I had Python
> > client on Vybrid and Hercules application on Windows side.
> >
> > Both the Python client and server do a continous send/recv in a while loop.
> >
> > I could not reproduce it while doing bidirectional iperf tests for 5-6 hours
> > with a Linux machine.
> >
> > The same issue is also seen with 4.0.5. Is this a known issue or reported
> > earlier?
> >
> > The stack trace is below on 4.1.5 kernel.
> >
> > [69253.557550] Unable to handle kernel NULL pointer dereference at virtual
> > address 00000000
> > [69253.565681] pgd = 80004000
> > [69253.568396] [00000000] *pgd=00000000
> > [69253.572004] Internal error: Oops: 817 [#1] ARM
> > [69253.576457] Modules linked in: mcp251x can_dev
> > [69253.580963] CPU: 0 PID: 0 Comm: swapper Not tainted
> > 4.1.4-v2.5b1+gdc92514 #1
> > [69253.588016] Hardware name: Freescale Vybrid VF5xx/VF6xx (Device Tree)
> > [69253.594469] task: 807d04b0 ti: 807ca000 task.ti: 807ca000
> > [69253.599896] PC is at add_td_to_list+0x118/0x1a0
> > [69253.604441] LR is at add_td_to_list+0x58/0x1a0
> > [69253.608895] pc : [<803b9fd4>] lr : [<803b9f14>] psr: 30010193
> > [69253.608895] sp : 807cbcf0 ip : 00000006 fp : 807cbd14
> > [69253.620379] r10: 00000008 r9 : 00004000 r8 : 8da82db4
> > [69253.625614] r7 : 8e02f6e8 r6 : 00000008 r5 : 8da82d80 r4 : 8da321c0
> > [69253.632148] r3 : 00000000 r2 : 8e403580 r1 : 8da82dbc r0 : 00000000
> > [69253.638687] Flags: nzCV IRQs off FIQs on Mode SVC_32 ISA ARM
> > Segment kernel
> > [69253.646087] Control: 10c5387d Table: 8cb50059 DAC: 00000015
> > [69253.651839] Process swapper (pid: 0, stack limit = 0x807ca208)
> > [69253.657681] Stack: (0x807cbcf0 to 0x807cc000)
> > [69253.662053] bce0: 8da82d80 8e02f6e8
> > 00000008 8e02f010
> > [69253.670248] bd00: 8da82db4 00004000 807cbd54 807cbd18 803ba9dc 803b9ec8
> > 00000000 00000000
> > [69253.678439] bd20: 00000000 00000000 00000000 a0010193 8d94d5f4 8e23f3d4
> > 00000000 00000024
> > [69253.686633] bd40: 8e02f408 8db1773c 807cbd6c 807cbd58 803bad8c 803ba8a4
> > 8d94d540 8d94d5f4
> > [69253.694825] bd60: 807cbd84 807cbd70 803ca360 803bad68 8081f3f8 8d8ce000
> > 807cbda4 807cbd88
> > [69253.703017] bd80: 803cbd78 803ca310 8db17700 8db1773c 00000024 8db17700
> > 807cbdbc 807cbda8
> > [69253.711209] bda0: 803ca624 803cbaec 00000024 8db1773c 807cbdcc 807cbdc0
> > 803c30e4 803ca610
> > [69253.719402] bdc0: 807cbe3c 807cbdd0 803bb264 803c30dc 807cbdec 80815d74
> > 803ba500 8e02f408
> > [69253.727594] bde0: 807cc044 00000001 8e02f440 8e02f630 8e02f010 8e02f010
> > 00000000 8db17734
> > [69253.735787] be00: 8e02f40c 8e02f460 00000021 00240000 807cbe5c 8e02f010
> > 807dd644 00000000
> > [69253.743979] be20: 00000000 00000027 8e0b8480 807fdc3d 807cbe54 807cbe40
> > 803b81ac 803bada8
> > [69253.752172] be40: 8e2c2580 807dd644 807cbe8c 807cbe58 8004ced0 803b8160
> > 800644b8 80040464
> > [69253.760363] be60: 00003efc 8e0b8480 807dd644 00000000 00000001 8e006000
> > 00000001 807f2430
> > [69253.768556] be80: 807cbea4 807cbe90 8004cfc8 8004ce5c 8e0b8480 807dd644
> > 807cbebc 807cbea8
> > [69253.776748] bea0: 8004f538 8004cfa4 00000027 00000000 807cbed4 807cbec0
> > 8004c638 8004f4a0
> > [69253.784941] bec0: 807dd47c 00000000 807cbefc 807cbed8 8004c89c 8004c610
> > 9000210c 807cc364
> > [69253.793133] bee0: 807cbf20 90002100 807cc0cc 00000001 807cbf1c 807cbf00
> > 8000935c 8004c84c
> > [69253.801325] bf00: 8000ff2c 60010013 ffffffff 807cbf54 807cbf74 807cbf20
> > 80013700 8000933c
> > [69253.809517] bf20: 00000001 00000000 00000000 8001d540 807ca000 807cc0cc
> > 00000000 00000000
> > [69253.817710] bf40: 807cc0cc 00000001 807f2430 807cbf74 807cbf78 807cbf68
> > 8000ff28 8000ff2c
> > [69253.825902] bf60: 60010013 ffffffff 807cbf9c 807cbf78 80045c1c 8000fef8
> > 807fdc3b 807cc0d4
> > [69253.834095] bf80: 807cbf9c 807d4310 805a7cd0 ffffffff 807cbfac 807cbfa0
> > 805a3ee8 80045a68
> > [69253.842287] bfa0: 807cbff4 807cbfb0 80794cd4 805a3e7c ffffffff ffffffff
> > 807946d4 00000000
> > [69253.850480] bfc0: 00000000 807c0cc8 00000000 807fdfd4 807cc074 807c0cc4
> > 807d16e8 80004059
> > [69253.858671] bfe0: 410fc051 00000000 00000000 807cbff8 80008078 80794950
> > 00000000 00000000
> > [69253.866848] Backtrace:
> > [69253.869340] [<803b9ebc>] (add_td_to_list) from [<803ba9dc>]
> > (_ep_queue.isra.22+0x144/0x47c)
> > [69253.877691] r9:00004000 r8:8da82db4 r7:8e02f010 r6:00000008 r5:8e02f6e8
> > r4:8da82d80
> > [69253.885533] [<803ba898>] (_ep_queue.isra.22) from [<803bad8c>]
> > (ep_queue+0x30/0x40)
> > [69253.893190] r10:8db1773c r9:8e02f408 r8:00000024 r7:00000000
> > r6:8e23f3d4 r5:8d94d5f4
> > [69253.901103] r4:a0010193
> > [69253.903672] [<803bad5c>] (ep_queue) from [<803ca360>]
> > (rndis_response_available+0x5c/0x80)
> > [69253.911944] r5:8d94d5f4 r4:8d94d540
> > [69253.915563] [<803ca304>] (rndis_response_available) from [<803cbd78>]
> > (rndis_msg_parser+0x298/0x4f4)
> > [69253.924700] r5:8d8ce000 r4:8081f3f8
> > [69253.928317] [<803cbae0>] (rndis_msg_parser) from [<803ca624>]
> > (rndis_command_complete+0x20/0x40)
> > [69253.937102] r7:8db17700 r6:00000024 r5:8db1773c r4:8db17700
> > [69253.942840] [<803ca604>] (rndis_command_complete) from [<803c30e4>]
> > (usb_gadget_giveback_request+0x14/0x18)
> > [69253.952584] r5:8db1773c r4:00000024
> > [69253.956201] [<803c30d0>] (usb_gadget_giveback_request) from [<803bb264>]
> > (udc_irq+0x4c8/0xcb4)
> > [69253.964826] [<803bad9c>] (udc_irq) from [<803b81ac>] (ci_irq+0x58/0x120)
> > [69253.971529] r10:807fdc3d r9:8e0b8480 r8:00000027 r7:00000000
> > r6:00000000 r5:807dd644
> > [69253.979443] r4:8e02f010
> > [69253.982007] [<803b8154>] (ci_irq) from [<8004ced0>]
> > (handle_irq_event_percpu+0x80/0x148)
> > [69253.990100] r5:807dd644 r4:8e2c2580
> > [69253.993718] [<8004ce50>] (handle_irq_event_percpu) from [<8004cfc8>]
> > (handle_irq_event+0x30/0x40)
> > [69254.002597] r10:807f2430 r9:00000001 r8:8e006000 r7:00000001
> > r6:00000000 r5:807dd644
> > [69254.010511] r4:8e0b8480
> > [69254.013074] [<8004cf98>] (handle_irq_event) from [<8004f538>]
> > (handle_fasteoi_irq+0xa4/0x16c)
> > [69254.021603] r5:807dd644 r4:8e0b8480
> > [69254.025221] [<8004f494>] (handle_fasteoi_irq) from [<8004c638>]
> > (generic_handle_irq+0x34/0x44)
> > [69254.033839] r5:00000000 r4:00000027
> > [69254.037465] [<8004c604>] (generic_handle_irq) from [<8004c89c>]
> > (__handle_domain_irq+0x5c/0xb0)
> > [69254.046162] r5:00000000 r4:807dd47c
> > [69254.049781] [<8004c840>] (__handle_domain_irq) from [<8000935c>]
> > (gic_handle_irq+0x2c/0x5c)
> > [69254.058139] r9:00000001 r8:807cc0cc r7:90002100 r6:807cbf20 r5:807cc364
> > r4:9000210c
> > [69254.065979] [<80009330>] (gic_handle_irq) from [<80013700>]
> > (__irq_svc+0x40/0x54)
> > [69254.073467] Exception stack(0x807cbf20 to 0x807cbf68)
> > [69254.078537] bf20: 00000001 00000000 00000000 8001d540 807ca000 807cc0cc
> > 00000000 00000000
> > [69254.086730] bf40: 807cc0cc 00000001 807f2430 807cbf74 807cbf78 807cbf68
> > 8000ff28 8000ff2c
> > [69254.094912] bf60: 60010013 ffffffff
> > [69254.098406] r7:807cbf54 r6:ffffffff r5:60010013 r4:8000ff2c
> > [69254.104155] [<8000feec>] (arch_cpu_idle) from [<80045c1c>]
> > (cpu_startup_entry+0x1c0/0x234)
> > [69254.112448] [<80045a5c>] (c]<94(s_kl) [<x80008078)
> > [2430-- i o nn t excptnner5190 30 520
>
> Hi Sanchayan,
>
> It seems linked list (hwreq->tds) has corrupted, would you please open the
> kernel
> debug for linked list to run again? Meanwhile, if you can share you
> application and related instructions for testing, I can help test at
> i.mx platform to see if it is memory corruption issue.
Sorry I did not clearly understand "would you please open the kernel
debug for linked list to run again?".
I am running a Python client on the Vybrid as follows:
#!/usr/env/python
import socket
TCP_IP = '192.168.11.2'
TCP_PORT = 502
MESSAGE = 'Test USB Client\n'
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((TCP_IP, TCP_PORT))
while 1:
s.send(MESSAGE)
data = s.recv(1024)
print data
s.close()
The corresponding Python server on host
import socket
HOST = ''
TCP_PORT = 502
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(HOST, TCP_PORT)
s.listen(1)
conn, addr = s.accept()
print ('Connected by', addr)
while 1:
data = conn.recv(1024)
print (data)
if not data: continue
conn.sendall(data)
conn.close()
I let them run and after an hour or so, I get the stack trace.
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html