<div style="line-height:1.7;color:#000000;font-size:14px;font-family:Arial"><div>Hi all,</div><div><br></div><div>I add debug info in usbnet and qmi_wwan driver, detail as below.</div><div><br></div><div>usbnet.c:</div><div><div>static inline void rx_process (struct usbnet *dev, struct sk_buff *skb)</div><div>{</div><div>   ...</div><div>    if (skb->len) {</div><div>        /* all data was already cloned from skb inside the driver */</div><div>        if (dev->driver_info->flags & FLAG_MULTI_PACKET)</div><div>            dev_kfree_skb_any(skb);</div><div>        else</div><div>            printk (KERN_INFO "danner debug =>rx_process, skb len:%zu, dev:%s\n", skb->len, skb->dev ? skb->dev->name : "<NULL>");</div><div>            usbnet_skb_return(dev, skb);</div><div>        return;</div><div>    }</div><div><br></div><div>    netif_dbg(dev, rx_err, dev->net, "drop\n");</div><div>    dev->net->stats.rx_errors++;</div><div>done:</div><div>    skb_queue_tail(&dev->done, skb);</div><div>}</div><div>void usbnet_skb_return (struct usbnet *dev, struct sk_buff *skb)</div><div>{</div><div>    int status;</div><div><br></div><div>    if (test_bit(EVENT_RX_PAUSED, &dev->flags)) {</div><div>        skb_queue_tail(&dev->rxq_pause, skb);</div><div>        return;</div><div>    }</div><div>    printk (KERN_INFO "danner debug => skb->protocol=%d, net:%s\n", skb->protocol,skb->dev ? skb->dev->name : "<NULL>");</div><div>    if (skb->protocol == 8) {</div><div>        if (strcmp (dev->driver_name, "qmi_wwan") != 0) {</div><div>            skb->protocol = eth_type_trans (skb, dev->net);</div><div>        }</div><div>    } else if (skb->protocol == 0 || !skb->dev){</div><div>        WARN_ONCE(skb->protocol != 0, "skb->dev unset, but skb->protocol=0x%04x\n", ntohs(skb->protocol));</div><div>        skb->protocol = eth_type_trans (skb, dev->net);</div><div>    }</div></div><div>.....</div><div>}</div><div><br></div><div>qmi_wwan.c:</div><div><br></div><div><div>static int qmi_wwan_rx_fixup(struct usbnet *dev, struct sk_buff *skb)</div><div>{</div><div>    struct qmi_wwan_state *info = (void *)&dev->data;</div><div>    bool rawip = info->flags & QMI_WWAN_FLAG_RAWIP;</div><div>    __be16 proto;</div><div><br></div><div>    /* This check is no longer done by usbnet */</div><div>    if (skb->len < dev->net->hard_header_len) {</div><div>        return 0;</div><div>    }    </div><div><br></div><div>    switch (skb->data[0] & 0xf0) {</div><div>    case 0x40:</div><div>        proto = htons(ETH_P_IP);</div><div>        printk(KERN_INFO "danner debug => proto:ETH_P_IP, dev:%s\n", skb->dev ? skb->dev->name: "<NULL>");</div><div>        break;</div><div>    case 0x60:</div><div>        printk(KERN_INFO "danner debug => proto:ETH_P_IPV6, dev:%s\n", skb->dev ? skb->dev->name: "<NULL>");</div><div>        proto = htons(ETH_P_IPV6);</div><div>        break;</div><div>    case 0x00:</div><div>        printk(KERN_INFO "danner debug => proto:00,dev:%s\n", skb->dev ? skb->dev->name: "<NULL>");</div><div>        if (rawip) {</div><div>            printk(KERN_INFO "danner debug => raw ip, return, dev:%s\n", skb->dev ? skb->dev->name: "<NULL>");</div><div>            return 0;</div><div>        }    </div><div>        if (is_multicast_ether_addr(skb->data)) {</div><div>            printk(KERN_INFO "danner debug => is_multicast_ether_addr, return, dev:%s\n", skb->dev ? skb->dev->name: "<NULL>");</div><div>            return 1;</div><div>        }</div><div>        /* possibly bogus destination - rewrite just in case */</div><div>        skb_reset_mac_header(skb);</div><div>        goto fix_dest;</div><div>    default:</div><div>        if (rawip) {</div><div>            printk(KERN_INFO "danner debug => raw ip 2, return, dev:%s\n", skb->dev ? skb->dev->name: "<NULL>");</div><div>            return 0;</div><div>        }</div><div><br></div><div>        /* pass along other packets without modifications */</div><div>        printk(KERN_INFO "danner debug => default, return, dev:%s\n", skb->dev ? skb->dev->name: "<NULL>");</div><div>        return 1;</div><div>    }</div><div><br></div><div>    if (rawip) {</div><div>        skb->dev = dev->net; /* normally set by eth_type_trans */</div><div>        skb->protocol = proto;</div><div>        printk(KERN_INFO "danner debug => raw ip 3, return, dev:%s\n", skb->dev ? skb->dev->name: "<NULL>");</div><div>        return 1;</div><div>    }</div><div><br></div><div>    printk(KERN_INFO "danner debug => %s: len:%d head:%p data:%p tail:%#lx end:%#lx dev:%s\n",</div><div>         __func__,skb->len, skb->head, skb->data,</div><div>         (unsigned long)skb->tail, (unsigned long)skb->end,</div><div>         skb->dev ? skb->dev->name : "<NULL>");</div><div><br></div><div>    if (skb_headroom(skb) < ETH_HLEN) {</div><div>        printk(KERN_INFO "danner debug => skb_headroom, dev:%s\n", skb->dev ? skb->dev->name : "<NULL>");</div><div>        return 0;</div><div>    }</div><div><br></div><div>    printk(KERN_INFO "danner debug => skb_push, dev:%s\n", skb->dev ? skb->dev->name : "<NULL>");</div><div>    skb_push(skb, ETH_HLEN);</div><div>    skb_reset_mac_header(skb);</div><div>    eth_hdr(skb)->h_proto = proto;</div><div>    eth_zero_addr(eth_hdr(skb)->h_source);</div><div>fix_dest:</div><div>    memcpy(eth_hdr(skb)->h_dest, dev->net->dev_addr, ETH_ALEN);</div><div>    printk(KERN_INFO "danner debug => fix dest, return, dev:%s\n", skb->dev ? skb->dev->name: "<NULL>");</div><div>    return 1;</div><div>}</div></div><div><br></div><div>then I test again, plugin 6 MC7430 with 3 SIM card, plugin one MC7304, connect Ethernet cable. after transfer data about 0.5 ~ 2 hour via them, the system still will automatically reboot. and captured the log as below:</div><div><div>259264 Sep 02 09:22:46 tvupack kernel: danner debug =>rx_process, skb len:119, dev:wwan0</div><div>259265 Sep 02 09:22:46 tvupack kernel: danner debug => skb->protocol=0, net:wwan0</div><div>259266 Sep 02 09:22:46 tvupack kernel: danner debug => proto:ETH_P_IP, dev:wwan6</div><div>259267 Sep 02 09:22:46 tvupack kernel: danner debug => raw ip 3, return, dev:wwan6</div><div>259268 Sep 02 09:22:46 tvupack kernel: danner debug =>rx_process, skb len:105, dev:wwan6</div><div>259269 Sep 02 09:22:46 tvupack kernel: danner debug => skb->protocol=8, net:wwan6</div><div>259270 Sep 02 09:22:46 tvupack kernel: danner debug => proto:ETH_P_IP, dev:wwan4</div><div>259271 Sep 02 09:22:46 tvupack kernel: danner debug => raw ip 3, return, dev:wwan4</div><div>259272 Sep 02 09:22:46 tvupack kernel: danner debug =>rx_process, skb len:105, dev:wwan4</div><div>259273 Sep 02 09:22:46 tvupack kernel: danner debug => skb->protocol=8, net:wwan4</div><div>259274 Sep 02 09:22:46 tvupack kernel: danner debug => default, return, dev:wwan0</div><div>259275 Sep 02 09:22:46 tvupack kernel: danner debug =>rx_process, skb len:119, dev:wwan0</div><div>259276 Sep 02 09:22:46 tvupack kernel: danner debug => skb->protocol=0, net:wwan0</div><div>259277 Sep 02 09:22:46 tvupack kernel: danner debug => default, return, dev:wwan0</div><div>259278 Sep 02 09:22:46 tvupack kernel: danner debug =>rx_process, skb len:58, dev:wwan0</div><div>259279 Sep 02 09:22:46 tvupack kernel: danner debug => skb->protocol=0, net:wwan0</div><div>259280 Sep 02 09:22:46 tvupack kernel: danner debug => proto:ETH_P_IP, dev:wwan2</div><div>259281 Sep 02 09:22:46 tvupack kernel: danner debug => raw ip 3, return, dev:wwan2</div><div>259282 Sep 02 09:22:46 tvupack kernel: danner debug =>rx_process, skb len:120, dev:wwan2</div><div>259283 Sep 02 09:22:46 tvupack kernel: danner debug => skb->protocol=8, net:wwan2</div><div>259284 Sep 02 09:22:46 tvupack kernel: danner debug => proto:ETH_P_IP, dev:wwan4</div><div>259285 Sep 02 09:22:46 tvupack kernel: danner debug => raw ip 3, return, dev:wwan4</div><div>259286 Sep 02 09:22:46 tvupack kernel: danner debug =>rx_process, skb len:84, dev:wwan4</div><div>259287 Sep 02 09:22:46 tvupack kernel: danner debug => skb->protocol=8, net:wwan4</div><div>259288 Sep 02 09:22:46 tvupack kernel: danner debug => proto:ETH_P_IP, dev:wwan4</div><div>259289 Sep 02 09:22:46 tvupack kernel: danner debug => raw ip 3, return, dev:wwan4</div><div>259290 Sep 02 09:22:46 tvupack kernel: danner debug =>rx_process, skb len:120, dev:wwan4</div><div>259291 Sep 02 09:22:46 tvupack kernel: danner debug => skb->protocol=8, net:wwan4</div><div>259292 Sep 02 09:22:46 tvupack kernel: danner debug => default, return, dev:wwan0</div><div>259293 Sep 02 09:22:46 tvupack kernel: danner debug =>rx_process, skb len:134, dev:wwan0</div><div>259294 Sep 02 09:22:46 tvupack kernel: danner debug => skb->protocol=0, net:wwan0</div><div>259295 Sep 02 09:22:46 tvupack kernel: danner debug => proto:ETH_P_IP, dev:wwan6</div><div>259296 Sep 02 09:22:46 tvupack kernel: danner debug => raw ip 3, return, dev:wwan6</div><div>259297 Sep 02 09:22:46 tvupack kernel: danner debug =>rx_process, skb len:120, dev:wwan6</div></div><div><br></div><div>From log, three MC7430(wwan2, wwan4, wwan6) use ETH_P_IP, the skb protocol is 8, and use raw ip mode. it should not execute skb_push().</div><div>the MC7304 enter the default logic in <span style="line-height: 23.8px;">qmi_wwan_rx_fixup(see log:</span><span style="line-height: 23.8px;">tvupack kernel: danner debug => default, return, dev:wwan0</span><span style="line-height: 23.8px;">)</span><span style="line-height: 1.7;">, I don't know whether this is right, it don't use ETH_P_IP or ETH_P_IPV6.</span></div><div><span style="line-height: 1.7;">it seems that MC7304 and MC7430 all not execute skb_push(). so this is strange that system display </span><span style="color: rgb(153, 0, 255); font-family: arial, sans-serif; font-size: 12.8px; line-height: normal;">skb_under_panic</span><span style="line-height: 1.7;"> when system reboot.</span></div><div><span style="line-height: 1.7;"><br></span></div><div><span style="line-height: 1.7;">Does anyone can find some clue?</span></div><br><br><div style="position:relative;zoom:1">--<br><div>
<div style="FONT-SIZE: 14px">
<div align="left"><strong><font color="#0000ff"><em>Best Regards,</em></font></strong></div>
<div><strong><font color="#0000ff"><em>Dai,Lijin</em></font></strong></div></div></div><div style="clear:both"></div></div><div id="divNeteaseMailCard"></div><br>在 2016-09-02 11:02:32,"dailijin" <dailijin126@126.com> 写道:<br> <blockquote id="isReplyContent" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid"><div style="line-height:1.7;color:#000000;font-size:14px;font-family:Arial"><div>Hi All,</div><div><br></div><div>when I reproduce it again, the log as below:</div><div><div style="font-family: Helvetica, "Microsoft Yahei", verdana; line-height: 23.324px;">Sep 01 23:12:59 tvupack kernel: usb 1-1.6.5: New USB device found, idVendor=1199, idProduct=9071</div><div style="font-family: Helvetica, "Microsoft Yahei", verdana; line-height: 23.324px;">Sep 01 23:12:59 tvupack kernel: usb 1-1.6.5: New USB device strings: Mfr=1, Product=2, SerialNumber=3</div><div style="font-family: Helvetica, "Microsoft Yahei", verdana; line-height: 23.324px;">Sep 01 23:12:59 tvupack kernel: usb 1-1.6.5: Product: Sierra Wireless MC7455 Qualcomm® Snapdragon™ X7 LTE-A</div><div style="font-family: Helvetica, "Microsoft Yahei", verdana; line-height: 23.324px;">Sep 01 23:12:59 tvupack kernel: usb 1-1.6.5: Manufacturer: Sierra Wireless, Incorporated</div><div style="font-family: Helvetica, "Microsoft Yahei", verdana; line-height: 23.324px;">Sep 01 23:12:59 tvupack kernel: usb 1-1.6.5: SerialNumber: LU55030071041009</div><div style="font-family: Helvetica, "Microsoft Yahei", verdana; line-height: 23.324px;">Sep 01 23:12:59 tvupack kernel: GobiSerial 1-1.6.5:1.2: GobiSerial converter detected</div><div style="font-family: Helvetica, "Microsoft Yahei", verdana; line-height: 23.324px;">Sep 01 23:12:59 tvupack kernel: usb 1-1.6.5: GobiSerial converter now attached to ttyUSB11</div><div style="font-family: Helvetica, "Microsoft Yahei", verdana; line-height: 23.324px;">Sep 01 23:12:59 tvupack kernel: GobiSerial 1-1.6.5:1.3: GobiSerial converter detected</div><div style="font-family: Helvetica, "Microsoft Yahei", verdana; line-height: 23.324px;">Sep 01 23:12:59 tvupack kernel: usb 1-1.6.5: GobiSerial converter now attached to ttyUSB12</div><div style="font-family: Helvetica, "Microsoft Yahei", verdana; line-height: 23.324px;">Sep 01 23:12:59 tvupack kernel: qmi_wwan 1-1.6.5:1.8: cdc-wdm11: USB WDM device</div><div style="font-family: Helvetica, "Microsoft Yahei", verdana; line-height: 23.324px;">Sep 01 23:12:59 tvupack kernel: qmi_wwan 1-1.6.5:1.8 wwan10: register 'qmi_wwan' at usb-0000:00:1d.0-1.6.5, WWAN/QMI device, c2:1d:5c:87:2a:56</div><div style="font-family: Helvetica, "Microsoft Yahei", verdana; line-height: 23.324px;">Sep 01 23:12:59 tvupack kernel: qmi_wwan 1-1.6.5:1.10: cdc-wdm12: USB WDM device</div><div style="font-family: Helvetica, "Microsoft Yahei", verdana; line-height: 23.324px;">Sep 01 23:12:59 tvupack kernel: qmi_wwan 1-1.6.5:1.10 wwan11: register 'qmi_wwan' at usb-0000:00:1d.0-1.6.5, WWAN/QMI device, c2:1d:5c:87:2a:56</div><div style="font-family: Helvetica, "Microsoft Yahei", verdana; line-height: 23.324px;">Sep 01 23:12:59 tvupack systemd-sysctl[26114]: Overwriting earlier assignment of kernel/sysrq in file '/usr/lib64/sysctl.d/60-<wbr></wbr>gentoo.conf'.</div><div style="font-family: Helvetica, "Microsoft Yahei", verdana; line-height: 23.324px;">Sep 01 23:12:59 tvupack NetworkManager[755]: SCPlugin-Ifupdown: devices added (path: /sys/devices/pci0000:00/0000:<wbr></wbr>00:1d.0/usb1/1-1/1-1.6/1-1.6.<wbr></wbr>5/1-1.6.5:1.8/net/wwan10, iface: wwan10)</div><div style="font-family: Helvetica, "Microsoft Yahei", verdana; line-height: 23.324px;">Sep 01 23:12:59 tvupack NetworkManager[755]: SCPluginIfupdown: locking wired connection setting</div><div style="font-family: Helvetica, "Microsoft Yahei", verdana; line-height: 23.324px;">Sep 01 23:12:59 tvupack NetworkManager[755]: Ifupdown: get unmanaged devices count: 13</div><div style="font-family: Helvetica, "Microsoft Yahei", verdana; line-height: 23.324px;">Sep 01 23:12:59 tvupack systemd-sysctl[26116]: Overwriting earlier assignment of kernel/sysrq in file '/usr/lib64/sysctl.d/60-<wbr></wbr>gentoo.conf'.</div><div style="font-family: Helvetica, "Microsoft Yahei", verdana; line-height: 23.324px;">Sep 01 23:12:59 tvupack NetworkManager[755]: SCPlugin-Ifupdown: devices added (path: /sys/devices/pci0000:00/0000:<wbr></wbr>00:1d.0/usb1/1-1/1-1.6/1-1.6.<wbr></wbr>5/1-1.6.5:1.10/net/wwan11, iface: wwan11)</div><div style="font-family: Helvetica, "Microsoft Yahei", verdana; line-height: 23.324px;">Sep 01 23:12:59 tvupack NetworkManager[755]: SCPluginIfupdown: locking wired connection setting</div><div style="font-family: Helvetica, "Microsoft Yahei", verdana; line-height: 23.324px;">Sep 01 23:12:59 tvupack NetworkManager[755]: Ifupdown: get unmanaged devices count: 14</div><div style="font-family: Helvetica, "Microsoft Yahei", verdana; line-height: 23.324px;">Sep 01 23:13:15 tvupack perl[13323]: tvudial  : slotid: 5, using dev 0 -> cdc-wdm3 to dial MC7430</div><div style="font-family: Helvetica, "Microsoft Yahei", verdana; line-height: 23.324px;">Sep 01 23:13:15 tvupack perl[13323]: tvudial  : slotid: 5, using dev 0 -> wwan2 to dial MC7430, diaing net name: wwan2</div><div style="font-family: Helvetica, "Microsoft Yahei", verdana; line-height: 23.324px;">Sep 01 23:13:15 tvupack kernel: usb 1-1.6.2: USB disconnect, device number 48</div><div style="font-family: Helvetica, "Microsoft Yahei", verdana; line-height: 23.324px;">Sep 01 23:13:15 tvupack kernel: GobiSerial driver ttyUSB5: GobiSerial converter now disconnected from ttyUSB5</div><div style="font-family: Helvetica, "Microsoft Yahei", verdana; line-height: 23.324px;">Sep 01 23:13:15 tvupack kernel: GobiSerial 1-1.6.2:1.2: device disconnected</div><div style="font-family: Helvetica, "Microsoft Yahei", verdana; line-height: 23.324px;">Sep 01 23:13:15 tvupack kernel: GobiSerial driver ttyUSB6: GobiSerial converter now disconnected from ttyUSB6</div><div style="font-family: Helvetica, "Microsoft Yahei", verdana; line-height: 23.324px;">Sep 01 23:13:15 tvupack kernel: GobiSerial 1-1.6.2:1.3: device disconnected</div><div style="font-family: Helvetica, "Microsoft Yahei", verdana; line-height: 23.324px;">Sep 01 23:13:15 tvupack kernel: qmi_wwan 1-1.6.2:1.8 wwan4: unregister 'qmi_wwan' usb-0000:00:1d.0-1.6.2, WWAN/QMI device</div><div style="font-family: Helvetica, "Microsoft Yahei", verdana; line-height: 23.324px;">Sep 01 23:13:15 tvupack kernel: qmi_wwan 1-1.6.2:1.10 wwan5: unregister 'qmi_wwan' usb-0000:00:1d.0-1.6.2, WWAN/QMI device</div></div><div style="font-family: Helvetica, "Microsoft Yahei", verdana; line-height: 23.324px;"><span style="line-height: 23.324px;">Sep 01 23:13:15 tvupack kernel: skbuff: skb_under_panic: text:ffffffff816a609d len:167 put:65 head:ffff8800682ddc40 data:ffff8800682ddc3f tail:0xa6 end:0x640 dev:wwan8</span></div><div style="font-family: Helvetica, "Microsoft Yahei", verdana; line-height: 23.324px;"><br></div><br><br><br><br><div style="position:relative;zoom:1">--<br><div>
<div style="FONT-SIZE: 14px">
<div align="left"><strong><font color="#0000ff"><em>Best Regards,</em></font></strong></div>
<div><strong><font color="#0000ff"><em>Dai,Lijin</em></font></strong></div></div></div><div style="clear:both"></div></div><div></div><br>在 2016-09-02 10:00:24,"dailijin" <<a href="mailto:dailijin126@126.com">dailijin126@126.com</a>> 写道:<br> <blockquote id="isReplyContent" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid"><div style="line-height:1.7;color:#000000;font-size:14px;font-family:Arial"><div>Hi Bjorn,</div><div><br></div><div>I am not sure whether the modem send IPV6 packet, how do I check this?</div><div><br></div><div>I also reproduce this issue again. plugin 6 MC7430 with 3 SIM card, connect WIFI,  the device do live about 12 hour with 400k/2s, this issue happen.</div><div><br></div><div>I also attach qmi_wwan driver source code, could you check it and whether can find any clue about this issue? the uncompress command is "tar zxvf my_qmi_wwan.tar.gz"</div><div><br></div><div>I am very appreciate all your notice on this issue.</div><br><br><br><div style="position:relative;zoom:1">--<br><div>
<div style="FONT-SIZE: 14px">
<div align="left"><strong><font color="#0000ff"><em>Best Regards,</em></font></strong></div>
<div><strong><font color="#0000ff"><em>Dai,Lijin</em></font></strong></div></div></div><div style="clear:both"></div></div><div></div><br><pre><br>在 2016-09-02 02:53:12,"Bjørn Mork" <<a href="mailto:bjorn@mork.no">bjorn@mork.no</a>> 写道:
>dailijin  <<a href="mailto:dailijin126@126.com">dailijin126@126.com</a>> writes:
>
>> void usbnet_skb_return (struct usbnet *dev, struct sk_buff *skb)
>> {
>>     int status;
>>
>>
>>     if (test_bit(EVENT_RX_PAUSED, &dev->flags)) {
>>         skb_queue_tail(&dev->rxq_pause, skb);
>>         return;
>>     }    
>>     if (skb->protocol != 8)
>>         skb->protocol = eth_type_trans (skb, dev->net);
>>    .......
>> }
>
>And if the modem ever sends qmi_wwan a raw IPv6 packet, then that will
>obviously blow up...
>
>
>Bjørn
>_______________________________________________
>libqmi-devel mailing list
><a href="mailto:libqmi-devel@lists.freedesktop.org">libqmi-devel@lists.freedesktop.org</a>
>https://lists.freedesktop.org/mailman/listinfo/libqmi-devel
</pre></div><br><br><span title="neteasefooter"><p> </p></span></blockquote></div><br><br><span title="neteasefooter"><div id="netease_mail_footer"><div style="border-top:#CCC 1px solid;padding:10px 5px;font-size:15px;color:#777;line-height:22px"><a href="http://you.163.com/item/detail?id=1055021&from=web_gg_mail_jiaobiao_3" target="_blank" style="color:#3366FF;text-decoration:none">【网易自营|30天无忧退货】Moleskine制造商直供经典商务皮面记事本,限时仅39元></a>
    </div></div></span></blockquote></div><br><br><span title="neteasefooter"><p> </p></span>