[PATCH] r8169: incoming frame length check
authorFrancois Romieu <romieu@fr.zoreil.com>
Fri, 13 May 2005 00:09:17 +0000 (20:09 -0400)
committerJeff Garzik <jgarzik@pobox.com>
Fri, 13 May 2005 00:09:17 +0000 (20:09 -0400)
  The size of the incoming frame is not correctly checked.

  The RxMaxSize register (0xDA) does not work as expected and incoming
  frames whose size exceeds the MTU actually end spanning multiple
  descriptors. The first Rx descriptor contains the size of the whole
  frame (or some garbage in its place). The driver does not expect
  something above the space allocated to the current skb and crashes
  loudly when it issues a skb_put.

  The fix contains two parts:
  - disable hardware Rx size filtering: so far it only proved to be able
    to trigger some new fancy errors;
  - drop multi-descriptors frame: as the driver allocates MTU sized Rx
    buffers, it provides an adequate filtering.

  As a bonus, wrong descriptors were not returned to the asic after their
  processing.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>

No differences found