|
@@ -104,7 +104,8 @@ static int ray_dev_init(struct net_device *dev);
|
|
|
static const struct ethtool_ops netdev_ethtool_ops;
|
|
|
|
|
|
static int ray_open(struct net_device *dev);
|
|
|
-static int ray_dev_start_xmit(struct sk_buff *skb, struct net_device *dev);
|
|
|
+static netdev_tx_t ray_dev_start_xmit(struct sk_buff *skb,
|
|
|
+ struct net_device *dev);
|
|
|
static void set_multicast_list(struct net_device *dev);
|
|
|
static void ray_update_multi_list(struct net_device *dev, int all);
|
|
|
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)
|
|
|
}
|
|
|
|
|
|
/*===========================================================================*/
|
|
|
-static int ray_dev_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
|
|
+static netdev_tx_t ray_dev_start_xmit(struct sk_buff *skb,
|
|
|
+ struct net_device *dev)
|
|
|
{
|
|
|
ray_dev_t *local = netdev_priv(dev);
|
|
|
struct pcmcia_device *link = local->finder;
|
|
|
short length = skb->len;
|
|
|
|
|
|
- if (!(pcmcia_dev_present(link))) {
|
|
|
+ if (!pcmcia_dev_present(link)) {
|
|
|
DEBUG(2, "ray_dev_start_xmit - device not present\n");
|
|
|
- return NETDEV_TX_LOCKED;
|
|
|
+ dev_kfree_skb(skb);
|
|
|
+ return NETDEV_TX_OK;
|
|
|
}
|
|
|
+
|
|
|
DEBUG(3, "ray_dev_start_xmit(skb=%p, dev=%p)\n", skb, dev);
|
|
|
if (local->authentication_state == NEED_TO_AUTH) {
|
|
|
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)
|
|
|
default:
|
|
|
dev->trans_start = jiffies;
|
|
|
dev_kfree_skb(skb);
|
|
|
- return NETDEV_TX_OK;
|
|
|
}
|
|
|
+
|
|
|
return NETDEV_TX_OK;
|
|
|
} /* ray_dev_start_xmit */
|
|
|
|