lpmask = veth_transmit_to_many(skb, lpmask, dev);  if (! lpmask) { dev_kfree_skb(skb); } else { if (port->pending_skb) { veth_error("%s: TX while skb was pending!\n", dev->name); dev_kfree_skb(skb); spin_unlock_irqrestore(&port->pending_gate, flags); return 1; }  port->pending_skb = skb; port->pending_lpmask = lpmask; netif_stop_queue(dev); }  spin_unlock_irqrestore(&port->pending_gate, flags); 
dev_kfree_skb(skb); 
static int veth_start_xmit(struct sk_buff *skb, struct net_device *dev){	unsigned char *frame = skb->data;	struct veth_port *port = (struct veth_port *) dev->priv;	unsigned long flags;	HvLpIndexMap lpmask;	if (! (frame[0] & 0x01)) {		/* unicast packet */		HvLpIndex rlp = frame[5];		if ( ! ((1 << rlp) & port->lpar_map) ) {			dev_kfree_skb(skb);			return 0;		}		lpmask = 1 << rlp;	} else {		lpmask = port->lpar_map;	}	spin_lock_irqsave(&port->pending_gate, flags);	lpmask = veth_transmit_to_many(skb, lpmask, dev);	if (! lpmask) {		dev_kfree_skb(skb);	} else {		if (port->pending_skb) {			veth_error("%s: TX while skb was pending!\n",				   dev->name);			dev_kfree_skb(skb);			spin_unlock_irqrestore(&port->pending_gate, flags);			return 1;		}		port->pending_skb = skb;		port->pending_lpmask = lpmask;		netif_stop_queue(dev);	}	spin_unlock_irqrestore(&port->pending_gate, flags);	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/e0808494ff44d5cedcaf286bb8a93d08e8d9af49/iseries_veth.c/clean/drivers/net/iseries_veth.c