2014-04-07 8:54 GMT+02:00 Nathan Hintz <[email protected]>: > Hi Rafał: > ---------------------------------------- >> From: [email protected] >> To: [email protected]; [email protected] >> Date: Thu, 3 Apr 2014 19:26:48 +0200 >> Subject: [OpenWrt-Devel] [PATCH] kernel: bgmac: rework patch checking packet >> length >> >> This bgmac patch was an attempt to fix/workaround bug reported in >> https://dev.openwrt.org/ticket/7198 noticed on WNR3500L. >> Patch assumed length reported by the hardware was 0 and was trying to >> read it until getting a different value. This was actually the opposite. >> Lenghts were some invalid & huge values that resulted in skb_over_panic. >> For example: >> skbuff: skb_over_panic: text:83b21074 len:57222 (...) >> skbuff: skb_over_panic: text:87af1024 len:43226 (...) >> skbuff: skb_over_panic: text:87af5024 len:8739 (...) >> >> So instead of that not-working patch checking for 0, write a new one >> checking for huge values. In case something like that happens, dump >> hardware state and drop the packet. >> > > It seems like it should be checking the returned "flags" in the dma header > for an overflow error (the GPL sources for RT-N16 include such a check).
Thanks for tip on that! I wasn't looking at possible flags yet. I hope that after applying this patch we can ask some WNR3500L users to give it a try to confirm if they see overflow error in flags. If that appears to be the case, I'll submit proper fix for the mainline inclusion. _______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
