Hello, We're working with an embedded system that uses the RK3188 SoC and has a Quectel EC25 4G modem connected via USB. We're using Buildroot 2018.02.1 to compile the kernel (4.15.16 using the radxarock_defconfig) and root file system. The system enumerates the USB just fine and Quectel's quectel-CM executable is then used to start QMI and connect to the 4G network. The connection is successful, and I can ping websites just fine. However, when I come to download a large file, a kernel oops occurs. This happens consistently. Here's an example log: # wget http://speedtest.tele2.net/100MB.zip --2018-04-27 14:54:54-- http://speedtest.tele2.net/100MB.zip Resolving speedtest.tele2.net... 90.130.70.73, 2a00:800:1010::1 Connecting to speedtest.tele2.net|90.130.70.73|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 104857600 (100M) [application/zip] Saving to: '100MB.zip' 100MB.zip 0%[ ] 358.58K 1.72MB/s dwc2 101c0000.usb: dwc2_hc_chhltd_intr_dma: Channel 1 - ChHltd set, but reason is unknown dwc2 101c0000.usb: hcint 0x00000002, intsts 0x04000029 dwc2 101c0000.usb: dwc2_update_urb_state_abn(): trimming xfer length dwc2 101c0000.usb: dwc2_update_urb_state(): trimming xfer length Unable to handle kernel paging request at virtual address 2f0cf7d0 pgd = e12e3a71 [2f0cf7d0] *pgd=00000000 Internal error: Oops: 5 [#1] SMP ARM Modules linked in: CPU: 1 PID: 196 Comm: wget Not tainted 4.15.16 #2 Hardware name: Rockchip (Device Tree) PC is at kfree_skb_list+0x18/0x28 LR is at skb_release_data+0x40/0x134 pc : [<c0508f58>] lr : [<c05098f8>] psr: 20000013 sp : ef085d60 ip : ef085d78 fp : ef085d74 r10: 00000000 r9 : 00000000 r8 : ee4a1084 r7 : ef085df8 r6 : 00000000 r5 : ee9b9780 r4 : eeae7f40 r3 : 00000000 r2 : 00001b40 r1 : 00001380 r0 : 2f0cf7d0 Flags: nzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none Control: 10c5387d Table: 8e45804a DAC: 00000051 Process wget (pid: 196, stack limit = 0x11d0fd5f) Stack: (0xef085d60 to 0xef086000) 5d60: eeae7f40 ee9b9780 ef085d94 ef085d78 c05098f8 c0508f4c ee9b9780 00001600 5d80: ee9b9780 ef085df8 ef085dac ef085d98 c0508ec0 c05098c4 ee9b9780 00001600 5da0: ef085dc4 ef085db0 c0508ed8 c0508ea4 ee4a0cc0 00001600 ef085e4c ef085dc8 5dc0: c055b948 c0508ed0 effba620 00000000 eeede0b0 00000004 ef085e20 ee4a0d5c 5de0: 00000001 00000000 ee4a115c 00000001 ef085e90 00000a00 5ae339c0 1c015810 5e00: ef085ef0 7fffffff 5ae339c0 1c015810 ef085e28 ef085e2c 00000000 00000000 5e20: 00000008 ef085e90 c055b304 ee9bdc00 eeea5500 00002000 ef084000 00000000 5e40: ef085e74 ef085e50 c0582410 c055b310 00000000 ef085e5c ef085edc 00000000 5e60: c05823c8 00002000 ef085e8c ef085e78 c04fdb38 c05823d4 ef085ef0 00002000 5e80: ef085edc ef085e90 c04fdbc4 c04fdb24 00000000 00000000 00000000 00001600 5ea0: 00000a00 ef085ee8 00000001 00000002 00000000 00000000 00000000 ef085f08 5ec0: ee9bdc00 00000000 00000000 ef085f80 ef085f4c ef085ee0 c01eaf88 c04fdb48 5ee0: 00002000 00000000 00e25b18 00002000 00000000 00000000 00002000 ef085ee8 5f00: 00000001 00000002 ee9bdc00 00000000 00000000 00000000 00000000 00000000 5f20: 00000000 00000000 be9243e0 ee9bdc00 00000000 00002000 00e25b18 ef085f80 5f40: ef085f7c ef085f50 c01eb044 c01eae94 c02072ac c020720c ef085f7c ee9bdc00 5f60: ee9bdc00 00e25b18 00002000 c0107c84 ef085fa4 ef085f80 c01eb4b0 c01eafb8 5f80: 00000000 00000000 00000000 00000003 0008ce08 00000003 00000000 ef085fa8 5fa0: c0107aa0 c01eb474 00000000 00000003 00000003 00e25b18 00002000 00000000 5fc0: 00000000 00000003 0008ce08 00000003 00002000 00000000 000bf64d 00000000 5fe0: 000850a4 be924470 000164e0 b6cacaf8 60000010 00000003 ffffffff ffffffff Backtrace: [<c0508f40>] (kfree_skb_list) from [<c05098f8>] (skb_release_data+0x40/0x134) r5:ee9b9780 r4:eeae7f40 [<c05098b8>] (skb_release_data) from [<c0508ec0>] (skb_release_all+0x28/0x2c) r7:ef085df8 r6:ee9b9780 r5:00001600 r4:ee9b9780 [<c0508e98>] (skb_release_all) from [<c0508ed8>] (__kfree_skb+0x14/0x20) r5:00001600 r4:ee9b9780 [<c0508ec4>] (__kfree_skb) from [<c055b948>] (tcp_recvmsg+0x644/0x8c8) r5:00001600 r4:ee4a0cc0 [<c055b304>] (tcp_recvmsg) from [<c0582410>] (inet_recvmsg+0x48/0xc4) r10:00000000 r9:ef084000 r8:00002000 r7:eeea5500 r6:ee9bdc00 r5:c055b304 r4:ef085e90 [<c05823c8>] (inet_recvmsg) from [<c04fdb38>] (sock_recvmsg+0x20/0x24) r5:00002000 r4:c05823c8 [<c04fdb18>] (sock_recvmsg) from [<c04fdbc4>] (sock_read_iter+0x88/0xb0) r5:00002000 r4:ef085ef0 [<c04fdb3c>] (sock_read_iter) from [<c01eaf88>] (__vfs_read+0x100/0x124) r7:ef085f80 r6:00000000 r5:00000000 r4:ee9bdc00 [<c01eae88>] (__vfs_read) from [<c01eb044>] (vfs_read+0x98/0x104) r8:ef085f80 r7:00e25b18 r6:00002000 r5:00000000 r4:ee9bdc00 [<c01eafac>] (vfs_read) from [<c01eb4b0>] (SyS_read+0x48/0x80) r8:c0107c84 r7:00002000 r6:00e25b18 r5:ee9bdc00 r4:ee9bdc00 [<c01eb468>] (SyS_read) from [<c0107aa0>] (ret_fast_syscall+0x0/0x54) r7:00000003 r6:0008ce08 r5:00000003 r4:00000000 Code: e24cb004 e3500000 1a000000 e89da830 (e5904000) ---[ end trace 7a84dd028106284e ]--- The repeated references to dwc2 in the log made me think there may be a problem in the USB driver. Any thoughts? Amr -- 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