Re: USB client crash on Vybrid with USB gadget RNDIS connection

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Peter,

On 15-09-11 16:58:52, Peter Chen wrote:
> On Fri, Sep 11, 2015 at 02:36:58PM +0530, maitysanchayan@xxxxxxxxx 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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux