if (! cnx->state & VETH_STATE_READY)
if (! (cnx->state & VETH_STATE_READY))
static int veth_transmit_to_one(struct sk_buff *skb, HvLpIndex rlp,				struct net_device *dev){	struct veth_lpar_connection *cnx = veth_cnx[rlp];	struct veth_port *port = (struct veth_port *) dev->priv;	HvLpEvent_Rc rc;	u32 dma_address, dma_length;	struct veth_msg *msg = NULL;	int err = 0;	unsigned long flags;	if (! cnx) {		port->stats.tx_errors++;		dev_kfree_skb(skb);		return 0;	}	spin_lock_irqsave(&cnx->lock, flags);	if (! cnx->state & VETH_STATE_READY)		goto drop;	if ((skb->len - 14) > VETH_MAX_MTU)		goto drop;	msg = veth_stack_pop(cnx);	if (! msg) {		err = 1;		goto drop;	}	dma_length = skb->len;	dma_address = dma_map_single(port->dev, skb->data,				     dma_length, DMA_TO_DEVICE);	if (dma_mapping_error(dma_address))		goto recycle_and_drop;	/* Is it really necessary to check the length and address	 * fields of the first entry here? */	msg->skb = skb;	msg->dev = port->dev;	msg->data.addr[0] = dma_address;	msg->data.len[0] = dma_length;	msg->data.eofmask = 1 << VETH_EOF_SHIFT;	set_bit(0, &(msg->in_use));	rc = veth_signaldata(cnx, VethEventTypeFrames, msg->token, &msg->data);	if (rc != HvLpEvent_Rc_Good)		goto recycle_and_drop;	spin_unlock_irqrestore(&cnx->lock, flags);	return 0; recycle_and_drop:	msg->skb = NULL;	/* need to set in use to make veth_recycle_msg in case this	 * was a mapping failure */	set_bit(0, &msg->in_use);	veth_recycle_msg(cnx, msg); drop:	port->stats.tx_errors++;	dev_kfree_skb(skb);	spin_unlock_irqrestore(&cnx->lock, flags);	return err;}