diff options
| -rw-r--r-- | drivers/net/sky2.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c index 3bfc9d3e3c6e..162489b9f599 100644 --- a/drivers/net/sky2.c +++ b/drivers/net/sky2.c | |||
| @@ -910,6 +910,20 @@ static inline struct sky2_tx_le *get_tx_le(struct sky2_port *sky2) | |||
| 910 | return le; | 910 | return le; |
| 911 | } | 911 | } |
| 912 | 912 | ||
| 913 | static void tx_init(struct sky2_port *sky2) | ||
| 914 | { | ||
| 915 | struct sky2_tx_le *le; | ||
| 916 | |||
| 917 | sky2->tx_prod = sky2->tx_cons = 0; | ||
| 918 | sky2->tx_tcpsum = 0; | ||
| 919 | sky2->tx_last_mss = 0; | ||
| 920 | |||
| 921 | le = get_tx_le(sky2); | ||
| 922 | le->addr = 0; | ||
| 923 | le->opcode = OP_ADDR64 | HW_OWNER; | ||
| 924 | sky2->tx_addr64 = 0; | ||
| 925 | } | ||
| 926 | |||
| 913 | static inline struct tx_ring_info *tx_le_re(struct sky2_port *sky2, | 927 | static inline struct tx_ring_info *tx_le_re(struct sky2_port *sky2, |
| 914 | struct sky2_tx_le *le) | 928 | struct sky2_tx_le *le) |
| 915 | { | 929 | { |
| @@ -1320,7 +1334,8 @@ static int sky2_up(struct net_device *dev) | |||
| 1320 | GFP_KERNEL); | 1334 | GFP_KERNEL); |
| 1321 | if (!sky2->tx_ring) | 1335 | if (!sky2->tx_ring) |
| 1322 | goto err_out; | 1336 | goto err_out; |
| 1323 | sky2->tx_prod = sky2->tx_cons = 0; | 1337 | |
| 1338 | tx_init(sky2); | ||
| 1324 | 1339 | ||
| 1325 | sky2->rx_le = pci_alloc_consistent(hw->pdev, RX_LE_BYTES, | 1340 | sky2->rx_le = pci_alloc_consistent(hw->pdev, RX_LE_BYTES, |
| 1326 | &sky2->rx_le_map); | 1341 | &sky2->rx_le_map); |
