Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d77eeb70 authored by Patrick McHardy's avatar Patrick McHardy Committed by David S. Miller
Browse files

net: fix network drivers ndo_start_xmit() return values



Fix up remaining drivers returning a magic or an errno value from their
ndo_start_xmit() functions that were missed in the first pass:

- isdn_net: missed conversion
- bpqether: missed conversion: skb is freed, so return NETDEV_TX_OK
- hp100: intention appears to be to resubmit skb once resources are
  available, but due to no queue handling it is dropped for now.
- lapbether: skb is freed, so return NETDEV_TX_OK

Signed-off-by: default avatarPatrick McHardy <kaber@trash.net>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 5dbc9011
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1300,7 +1300,7 @@ isdn_net_start_xmit(struct sk_buff *skb, struct net_device *ndev)
				netif_stop_queue(ndev);
		}
	}
	return 1;
	return NETDEV_TX_BUSY;
}

/*
+1 −1
Original line number Diff line number Diff line
@@ -260,7 +260,7 @@ static int bpq_xmit(struct sk_buff *skb, struct net_device *dev)
	 */
	if (!netif_running(dev)) {
		kfree_skb(skb);
		return -ENODEV;
		return NETDEV_TX_OK;
	}

	skb_pull(skb, 1);
+17 −18
Original line number Diff line number Diff line
@@ -1495,13 +1495,8 @@ static int hp100_start_xmit_bm(struct sk_buff *skb, struct net_device *dev)
	hp100_outw(0x4210, TRACE);
	printk("hp100: %s: start_xmit_bm\n", dev->name);
#endif

	if (skb == NULL) {
		return 0;
	}

	if (skb->len <= 0)
		return 0;
		goto drop;

	if (lp->chip == HP100_CHIPID_SHASTA && skb_padto(skb, ETH_ZLEN))
		return 0;
@@ -1514,10 +1509,10 @@ static int hp100_start_xmit_bm(struct sk_buff *skb, struct net_device *dev)
#endif
		/* not waited long enough since last tx? */
		if (time_before(jiffies, dev->trans_start + HZ))
			return -EAGAIN;
			goto drop;

		if (hp100_check_lan(dev))
			return -EIO;
			goto drop;

		if (lp->lan_type == HP100_LAN_100 && lp->hub_status < 0) {
			/* we have a 100Mb/s adapter but it isn't connected to hub */
@@ -1551,7 +1546,7 @@ static int hp100_start_xmit_bm(struct sk_buff *skb, struct net_device *dev)
		}

		dev->trans_start = jiffies;
		return -EAGAIN;
		goto drop;
	}

	/*
@@ -1591,6 +1586,10 @@ static int hp100_start_xmit_bm(struct sk_buff *skb, struct net_device *dev)
	dev->trans_start = jiffies;

	return 0;

drop:
	dev_kfree_skb(skb);
	return NETDEV_TX_OK;
}


@@ -1648,16 +1647,11 @@ static int hp100_start_xmit(struct sk_buff *skb, struct net_device *dev)
	hp100_outw(0x4212, TRACE);
	printk("hp100: %s: start_xmit\n", dev->name);
#endif

	if (skb == NULL) {
		return 0;
	}

	if (skb->len <= 0)
		return 0;
		goto drop;

	if (hp100_check_lan(dev))
		return -EIO;
		goto drop;

	/* If there is not enough free memory on the card... */
	i = hp100_inl(TX_MEM_FREE) & 0x7fffffff;
@@ -1671,7 +1665,7 @@ static int hp100_start_xmit(struct sk_buff *skb, struct net_device *dev)
			printk("hp100: %s: trans_start timing problem\n",
			       dev->name);
#endif
			return -EAGAIN;
			goto drop;
		}
		if (lp->lan_type == HP100_LAN_100 && lp->hub_status < 0) {
			/* we have a 100Mb/s adapter but it isn't connected to hub */
@@ -1705,7 +1699,7 @@ static int hp100_start_xmit(struct sk_buff *skb, struct net_device *dev)
			}
		}
		dev->trans_start = jiffies;
		return -EAGAIN;
		goto drop;
	}

	for (i = 0; i < 6000 && (hp100_inb(OPTION_MSW) & HP100_TX_CMD); i++) {
@@ -1759,6 +1753,11 @@ static int hp100_start_xmit(struct sk_buff *skb, struct net_device *dev)
#endif

	return 0;

drop:
	dev_kfree_skb(skb);
	return NETDEV_TX_OK;

}


+5 −11
Original line number Diff line number Diff line
@@ -149,46 +149,40 @@ static int lapbeth_data_indication(struct net_device *dev, struct sk_buff *skb)
 */
static int lapbeth_xmit(struct sk_buff *skb, struct net_device *dev)
{
	int err = -ENODEV;
	int err;

	/*
	 * Just to be *really* sure not to send anything if the interface
	 * is down, the ethernet device may have gone.
	 */
	if (!netif_running(dev)) {
	if (!netif_running(dev))
		goto drop;
	}

	switch (skb->data[0]) {
	case 0x00:
		err = 0;
		break;
	case 0x01:
		if ((err = lapb_connect_request(dev)) != LAPB_OK)
			printk(KERN_ERR "lapbeth: lapb_connect_request "
			       "error: %d\n", err);
		goto drop_ok;
		goto drop;
	case 0x02:
		if ((err = lapb_disconnect_request(dev)) != LAPB_OK)
			printk(KERN_ERR "lapbeth: lapb_disconnect_request "
			       "err: %d\n", err);
		/* Fall thru */
	default:
		goto drop_ok;
		goto drop;
	}

	skb_pull(skb, 1);

	if ((err = lapb_data_request(dev, skb)) != LAPB_OK) {
		printk(KERN_ERR "lapbeth: lapb_data_request error - %d\n", err);
		err = -ENOMEM;
		goto drop;
	}
	err = 0;
out:
	return err;
drop_ok:
	err = 0;
	return NETDEV_TX_OK;
drop:
	kfree_skb(skb);
	goto out;