net: smsc911x: fix skb handling in receive path
authorWill Deacon <will.deacon@arm.com>
Thu, 12 Apr 2012 05:54:09 +0000 (05:54 +0000)
committerBen Hutchings <ben@decadent.org.uk>
Fri, 11 May 2012 12:14:24 +0000 (13:14 +0100)
commite09252e4613a16a79dfa15df731cb0e6f7f57118
treec56ac3709d444e405f25e409d36204c02bffb2ad
parent71335bb4ceec1191b26eeb068a3877918cb066d6
net: smsc911x: fix skb handling in receive path

[ Upstream commit 3c5e979bd037888dd7d722da22da4b43659af485 ]

The SMSC911x driver resets the ->head, ->data and ->tail pointers in the
skb on the reset path in order to avoid buffer overflow due to packet
padding performed by the hardware.

This patch fixes the receive path so that the skb pointers are fixed up
after the data has been read from the device, The error path is also
fixed to use number of words consistently and prevent erroneous FIFO
fastforwarding when skipping over bad data.

Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/net/ethernet/smsc/smsc911x.c