summaryrefslogtreecommitdiffstats
path: root/drivers/net/can
diff options
context:
space:
mode:
authorDavide Ciminaghi <ciminaghi@gnudd.com>2012-04-13 04:48:25 +0000
committerDavid S. Miller <davem@davemloft.net>2012-04-14 15:21:27 -0400
commit8a9a0ea6032186e3030419262678d652b88bf6a8 (patch)
treedb5ab740913595d6b89c7a8974a1743dffc98930 /drivers/net/can
parentc509e754af96882eb46130e215cc4aa8f763d4ac (diff)
downloadlinux-stable-8a9a0ea6032186e3030419262678d652b88bf6a8.tar.gz
linux-stable-8a9a0ea6032186e3030419262678d652b88bf6a8.tar.bz2
linux-stable-8a9a0ea6032186e3030419262678d652b88bf6a8.zip
net/ethernet: ks8851_mll fix rx frame buffer overflow
At the beginning of ks_rcv(), a for loop retrieves the header information relevant to all the frames stored in the mac's internal buffers. The number of pending frames is stored as an 8 bits field in KS_RXFCTR. If interrupts are disabled long enough to allow for more than 32 frames to accumulate in the MAC's internal buffers, a buffer overflow occurs. This patch fixes the problem by making the driver's frame_head_info buffer big enough. Well actually, since the chip appears to have 12K of internal rx buffers and the shortest ethernet frame should be 64 bytes long, maybe the limit could be set to 12*1024/64 = 192 frames, but 255 should be safer. Signed-off-by: Davide Ciminaghi <ciminaghi@gnudd.com> Signed-off-by: Raffaele Recalcati <raffaele.recalcati@bticino.it> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/can')
0 files changed, 0 insertions, 0 deletions