aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ray_cs.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/ray_cs.c')
-rw-r--r--drivers/net/wireless/ray_cs.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/drivers/net/wireless/ray_cs.c b/drivers/net/wireless/ray_cs.c
index 325206969c97..88cd58eb3b9f 100644
--- a/drivers/net/wireless/ray_cs.c
+++ b/drivers/net/wireless/ray_cs.c
@@ -104,7 +104,8 @@ static int ray_dev_init(struct net_device *dev);
104static const struct ethtool_ops netdev_ethtool_ops; 104static const struct ethtool_ops netdev_ethtool_ops;
105 105
106static int ray_open(struct net_device *dev); 106static int ray_open(struct net_device *dev);
107static int ray_dev_start_xmit(struct sk_buff *skb, struct net_device *dev); 107static netdev_tx_t ray_dev_start_xmit(struct sk_buff *skb,
108 struct net_device *dev);
108static void set_multicast_list(struct net_device *dev); 109static void set_multicast_list(struct net_device *dev);
109static void ray_update_multi_list(struct net_device *dev, int all); 110static void ray_update_multi_list(struct net_device *dev, int all);
110static int translate_frame(ray_dev_t *local, struct tx_msg __iomem *ptx, 111static int translate_frame(ray_dev_t *local, struct tx_msg __iomem *ptx,
@@ -915,16 +916,19 @@ static int ray_dev_config(struct net_device *dev, struct ifmap *map)
915} 916}
916 917
917/*===========================================================================*/ 918/*===========================================================================*/
918static int ray_dev_start_xmit(struct sk_buff *skb, struct net_device *dev) 919static netdev_tx_t ray_dev_start_xmit(struct sk_buff *skb,
920 struct net_device *dev)
919{ 921{
920 ray_dev_t *local = netdev_priv(dev); 922 ray_dev_t *local = netdev_priv(dev);
921 struct pcmcia_device *link = local->finder; 923 struct pcmcia_device *link = local->finder;
922 short length = skb->len; 924 short length = skb->len;
923 925
924 if (!(pcmcia_dev_present(link))) { 926 if (!pcmcia_dev_present(link)) {
925 DEBUG(2, "ray_dev_start_xmit - device not present\n"); 927 DEBUG(2, "ray_dev_start_xmit - device not present\n");
926 return NETDEV_TX_LOCKED; 928 dev_kfree_skb(skb);
929 return NETDEV_TX_OK;
927 } 930 }
931
928 DEBUG(3, "ray_dev_start_xmit(skb=%p, dev=%p)\n", skb, dev); 932 DEBUG(3, "ray_dev_start_xmit(skb=%p, dev=%p)\n", skb, dev);
929 if (local->authentication_state == NEED_TO_AUTH) { 933 if (local->authentication_state == NEED_TO_AUTH) {
930 DEBUG(0, "ray_cs Sending authentication request.\n"); 934 DEBUG(0, "ray_cs Sending authentication request.\n");
@@ -951,8 +955,8 @@ static int ray_dev_start_xmit(struct sk_buff *skb, struct net_device *dev)
951 default: 955 default:
952 dev->trans_start = jiffies; 956 dev->trans_start = jiffies;
953 dev_kfree_skb(skb); 957 dev_kfree_skb(skb);
954 return NETDEV_TX_OK;
955 } 958 }
959
956 return NETDEV_TX_OK; 960 return NETDEV_TX_OK;
957} /* ray_dev_start_xmit */ 961} /* ray_dev_start_xmit */
958 962