| From: Mirko Lindner <mlindner@marvell.com> |
| Date: Tue, 26 Mar 2013 06:38:42 +0000 |
| Subject: sky2: Threshold for Pause Packet is set wrong |
| |
| [ Upstream commit 74f9f42c1c1650e74fb464f76644c9041f996851 ] |
| |
| The sky2 driver sets the Rx Upper Threshold for Pause Packet generation to a |
| wrong value which leads to only 2kB of RAM remaining space. This can lead to |
| Rx overflow errors even with activated flow-control. |
| |
| Fix: We should increase the value to 8192/8 |
| |
| Signed-off-by: Mirko Lindner <mlindner@marvell.com> |
| Acked-by: Stephen Hemminger <stephen@networkplumber.org> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Ben Hutchings <ben@decadent.org.uk> |
| --- |
| drivers/net/ethernet/marvell/sky2.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/drivers/net/ethernet/marvell/sky2.c b/drivers/net/ethernet/marvell/sky2.c |
| index 69fc888..94f9a8f 100644 |
| --- a/drivers/net/ethernet/marvell/sky2.c |
| +++ b/drivers/net/ethernet/marvell/sky2.c |
| @@ -1066,7 +1066,7 @@ static void sky2_ramset(struct sky2_hw *hw, u16 q, u32 start, u32 space) |
| sky2_write32(hw, RB_ADDR(q, RB_RX_UTHP), tp); |
| sky2_write32(hw, RB_ADDR(q, RB_RX_LTHP), space/2); |
| |
| - tp = space - 2048/8; |
| + tp = space - 8192/8; |
| sky2_write32(hw, RB_ADDR(q, RB_RX_UTPP), tp); |
| sky2_write32(hw, RB_ADDR(q, RB_RX_LTPP), space/4); |
| } else { |