Skip to content

Commit

Permalink
[PATCH] orinoco: refactor and clean up Tx error handling
Browse files Browse the repository at this point in the history
The result of orinoco_xmit() can be OK, dropped packet and busy
transmitter.  Rename labels accordingly.  Increment stats->tx_errors in
one place.  Increment stats->tx_dropped - nobody is doing it for us.

Signed-off-by: Pavel Roskin <proski@gnu.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Pavel Roskin authored and John W. Linville committed Apr 24, 2006
1 parent 8d5be08 commit 470e2aa
Showing 1 changed file with 13 additions and 16 deletions.
29 changes: 13 additions & 16 deletions drivers/net/wireless/orinoco.c
Original file line number Diff line number Diff line change
Expand Up @@ -449,16 +449,13 @@ static int orinoco_xmit(struct sk_buff *skb, struct net_device *dev)
/* Oops, the firmware hasn't established a connection,
silently drop the packet (this seems to be the
safest approach). */
stats->tx_errors++;
orinoco_unlock(priv, &flags);
dev_kfree_skb(skb);
return NETDEV_TX_OK;
goto drop;
}

/* Check packet length */
data_len = skb->len;
if (data_len < ETH_HLEN)
goto fail;
goto drop;

eh = (struct ethhdr *)skb->data;

Expand All @@ -469,8 +466,7 @@ static int orinoco_xmit(struct sk_buff *skb, struct net_device *dev)
if (net_ratelimit())
printk(KERN_ERR "%s: Error %d writing Tx descriptor "
"to BAP\n", dev->name, err);
stats->tx_errors++;
goto fail;
goto busy;
}

/* Clear the 802.11 header and data length fields - some
Expand Down Expand Up @@ -501,8 +497,7 @@ static int orinoco_xmit(struct sk_buff *skb, struct net_device *dev)
if (net_ratelimit())
printk(KERN_ERR "%s: Error %d writing packet "
"header to BAP\n", dev->name, err);
stats->tx_errors++;
goto fail;
goto busy;
}
} else { /* IEEE 802.3 frame */
data_len = skb->len;
Expand All @@ -515,8 +510,7 @@ static int orinoco_xmit(struct sk_buff *skb, struct net_device *dev)
if (err) {
printk(KERN_ERR "%s: Error %d writing packet to BAP\n",
dev->name, err);
stats->tx_errors++;
goto fail;
goto busy;
}

/* Finally, we actually initiate the send */
Expand All @@ -529,20 +523,23 @@ static int orinoco_xmit(struct sk_buff *skb, struct net_device *dev)
if (net_ratelimit())
printk(KERN_ERR "%s: Error %d transmitting packet\n",
dev->name, err);
stats->tx_errors++;
goto fail;
goto busy;
}

dev->trans_start = jiffies;
stats->tx_bytes += data_off + data_len;
goto ok;

orinoco_unlock(priv, &flags);
drop:
stats->tx_errors++;
stats->tx_dropped++;

ok:
orinoco_unlock(priv, &flags);
dev_kfree_skb(skb);

return NETDEV_TX_OK;
fail:

busy:
orinoco_unlock(priv, &flags);
return NETDEV_TX_BUSY;
}
Expand Down

0 comments on commit 470e2aa

Please sign in to comment.