From 1a23e92c99b5dbe1ef2ecc69b1eb71c701ad2379 Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Thu, 27 Sep 2007 12:38:12 -0700 Subject: [PATCH] --- yaml --- r: 65205 b: refs/heads/master c: 88f5f0cad396be594d6d55cb2d0cd69e8df9ab16 h: refs/heads/master i: 65203: 0b098e560c9a091dc1afb1651b3942094538b1bd v: v3 --- [refs] | 2 +- trunk/drivers/net/sky2.c | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index d4f6159a623f..ca9c678d0049 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d6c9bc1ed4301cbc3df4565ff5348b64bf2a767c +refs/heads/master: 88f5f0cad396be594d6d55cb2d0cd69e8df9ab16 diff --git a/trunk/drivers/net/sky2.c b/trunk/drivers/net/sky2.c index 3bfc9d3e3c6e..162489b9f599 100644 --- a/trunk/drivers/net/sky2.c +++ b/trunk/drivers/net/sky2.c @@ -910,6 +910,20 @@ static inline struct sky2_tx_le *get_tx_le(struct sky2_port *sky2) return le; } +static void tx_init(struct sky2_port *sky2) +{ + struct sky2_tx_le *le; + + sky2->tx_prod = sky2->tx_cons = 0; + sky2->tx_tcpsum = 0; + sky2->tx_last_mss = 0; + + le = get_tx_le(sky2); + le->addr = 0; + le->opcode = OP_ADDR64 | HW_OWNER; + sky2->tx_addr64 = 0; +} + static inline struct tx_ring_info *tx_le_re(struct sky2_port *sky2, struct sky2_tx_le *le) { @@ -1320,7 +1334,8 @@ static int sky2_up(struct net_device *dev) GFP_KERNEL); if (!sky2->tx_ring) goto err_out; - sky2->tx_prod = sky2->tx_cons = 0; + + tx_init(sky2); sky2->rx_le = pci_alloc_consistent(hw->pdev, RX_LE_BYTES, &sky2->rx_le_map);