/* Return 0 in almost all cases; non-zero value in extreme hard failure only  */
int et131x_send_packets(struct sk_buff *skb, struct net_device *netdev)
/* Return 0 in almost all cases; non-zero value in extreme hard failure only  */
int et131x_send_packets(struct sk_buff *skb, struct net_device *netdev)
{
	int status = 0;
	struct et131x_adapter *etdev = NULL;
	etdev = netdev_priv(netdev);
	if (etdev->tx_ring.used >= NUM_TCB) {
		status = -ENOMEM;
	} else {
		if ((etdev->Flags & fMP_ADAPTER_FAIL_SEND_MASK) ||
					!netif_carrier_ok(netdev)) {
			dev_kfree_skb_any(skb);
			skb = NULL;
			etdev->net_stats.tx_dropped++;
		} else {
			status = et131x_send_packet(skb, etdev);
			if (status != 0 && status != -ENOMEM) {
				dev_kfree_skb_any(skb);
				skb = NULL;
				etdev->net_stats.tx_dropped++;
			}
		}
	}
	return status;
}