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

Reply via email to