diff options
Diffstat (limited to 'drivers/net/wireless/ray_cs.c')
-rw-r--r-- | drivers/net/wireless/ray_cs.c | 14 |
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); | |||
104 | static const struct ethtool_ops netdev_ethtool_ops; | 104 | static const struct ethtool_ops netdev_ethtool_ops; |
105 | 105 | ||
106 | static int ray_open(struct net_device *dev); | 106 | static int ray_open(struct net_device *dev); |
107 | static int ray_dev_start_xmit(struct sk_buff *skb, struct net_device *dev); | 107 | static netdev_tx_t ray_dev_start_xmit(struct sk_buff *skb, |
108 | struct net_device *dev); | ||
108 | static void set_multicast_list(struct net_device *dev); | 109 | static void set_multicast_list(struct net_device *dev); |
109 | static void ray_update_multi_list(struct net_device *dev, int all); | 110 | static void ray_update_multi_list(struct net_device *dev, int all); |
110 | static int translate_frame(ray_dev_t *local, struct tx_msg __iomem *ptx, | 111 | static 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 | /*===========================================================================*/ |
918 | static int ray_dev_start_xmit(struct sk_buff *skb, struct net_device *dev) | 919 | static 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 | ||