diff options
author | Patrick McHardy <kaber@trash.net> | 2009-06-12 00:08:02 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-06-13 04:18:37 -0400 |
commit | 4153e77596c4caaf52293b0c6b2207d73ed8f1eb (patch) | |
tree | 5920561315cfea1b89e287d264fdac6314c670ec /drivers/net/wireless/prism54 | |
parent | 4bd73ae2682d9069746bb049a416d9ab90c6684b (diff) |
net: fix network drivers ndo_start_xmit() return values (part 3)
net: fix network drivers ndo_start_xmit() return values (part 3)
Fix up wireless drivers that return an errno value to qdisc_restart(), causing
qdisc_restart() to print a warning an requeue/retransmit the skb.
- airo: transmission not implemented for chip, intention is to free and abort
- ipw2200: transmission not implemented for promiscous mode, intention is to
drop
- prism54: intention is to drop
- wl3501_cs: intention appears to be to drop
- zd1201: error counter indicates intention is to drop
All drivers compile tested.
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/wireless/prism54')
-rw-r--r-- | drivers/net/wireless/prism54/islpci_eth.c | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/drivers/net/wireless/prism54/islpci_eth.c b/drivers/net/wireless/prism54/islpci_eth.c index ef3ef4551b31..8f6210993448 100644 --- a/drivers/net/wireless/prism54/islpci_eth.c +++ b/drivers/net/wireless/prism54/islpci_eth.c | |||
@@ -87,7 +87,6 @@ islpci_eth_transmit(struct sk_buff *skb, struct net_device *ndev) | |||
87 | unsigned long flags; | 87 | unsigned long flags; |
88 | unsigned char wds_mac[6]; | 88 | unsigned char wds_mac[6]; |
89 | u32 curr_frag; | 89 | u32 curr_frag; |
90 | int err = 0; | ||
91 | 90 | ||
92 | #if VERBOSE > SHOW_ERROR_MESSAGES | 91 | #if VERBOSE > SHOW_ERROR_MESSAGES |
93 | DEBUG(SHOW_FUNCTION_CALLS, "islpci_eth_transmit \n"); | 92 | DEBUG(SHOW_FUNCTION_CALLS, "islpci_eth_transmit \n"); |
@@ -107,8 +106,6 @@ islpci_eth_transmit(struct sk_buff *skb, struct net_device *ndev) | |||
107 | isl38xx_w32_flush(priv->device_base, ISL38XX_DEV_INT_UPDATE, | 106 | isl38xx_w32_flush(priv->device_base, ISL38XX_DEV_INT_UPDATE, |
108 | ISL38XX_DEV_INT_REG); | 107 | ISL38XX_DEV_INT_REG); |
109 | udelay(ISL38XX_WRITEIO_DELAY); | 108 | udelay(ISL38XX_WRITEIO_DELAY); |
110 | |||
111 | err = -EBUSY; | ||
112 | goto drop_free; | 109 | goto drop_free; |
113 | } | 110 | } |
114 | /* Check alignment and WDS frame formatting. The start of the packet should | 111 | /* Check alignment and WDS frame formatting. The start of the packet should |
@@ -152,7 +149,6 @@ islpci_eth_transmit(struct sk_buff *skb, struct net_device *ndev) | |||
152 | if (unlikely(newskb == NULL)) { | 149 | if (unlikely(newskb == NULL)) { |
153 | printk(KERN_ERR "%s: Cannot allocate skb\n", | 150 | printk(KERN_ERR "%s: Cannot allocate skb\n", |
154 | ndev->name); | 151 | ndev->name); |
155 | err = -ENOMEM; | ||
156 | goto drop_free; | 152 | goto drop_free; |
157 | } | 153 | } |
158 | newskb_offset = (4 - (long) newskb->data) & 0x03; | 154 | newskb_offset = (4 - (long) newskb->data) & 0x03; |
@@ -197,8 +193,6 @@ islpci_eth_transmit(struct sk_buff *skb, struct net_device *ndev) | |||
197 | if (unlikely(pci_map_address == 0)) { | 193 | if (unlikely(pci_map_address == 0)) { |
198 | printk(KERN_WARNING "%s: cannot map buffer to PCI\n", | 194 | printk(KERN_WARNING "%s: cannot map buffer to PCI\n", |
199 | ndev->name); | 195 | ndev->name); |
200 | |||
201 | err = -EIO; | ||
202 | goto drop_free; | 196 | goto drop_free; |
203 | } | 197 | } |
204 | /* Place the fragment in the control block structure. */ | 198 | /* Place the fragment in the control block structure. */ |
@@ -246,7 +240,7 @@ islpci_eth_transmit(struct sk_buff *skb, struct net_device *ndev) | |||
246 | ndev->stats.tx_dropped++; | 240 | ndev->stats.tx_dropped++; |
247 | spin_unlock_irqrestore(&priv->slock, flags); | 241 | spin_unlock_irqrestore(&priv->slock, flags); |
248 | dev_kfree_skb(skb); | 242 | dev_kfree_skb(skb); |
249 | return err; | 243 | return NETDEV_TX_OK; |
250 | } | 244 | } |
251 | 245 | ||
252 | static inline int | 246 | static inline int |