ctc_clear_busy(dev); 
ctc_tx(struct sk_buff *skb, struct net_device * dev){	int rc = 0;	struct ctc_priv *privptr = (struct ctc_priv *) dev->priv;	DBF_TEXT(trace, 5, __FUNCTION__);	/**	 * Some sanity checks ...	 */	if (skb == NULL) {		ctc_pr_warn("%s: NULL sk_buff passed\n", dev->name);		privptr->stats.tx_dropped++;		return 0;	}	if (skb_headroom(skb) < (LL_HEADER_LENGTH + 2)) {		ctc_pr_warn("%s: Got sk_buff with head room < %ld bytes\n",			    dev->name, LL_HEADER_LENGTH + 2);		dev_kfree_skb(skb);		privptr->stats.tx_dropped++;		return 0;	}	/**	 * If channels are not running, try to restart them	 * and throw away packet. 	 */	if (fsm_getstate(privptr->fsm) != DEV_STATE_RUNNING) {		fsm_event(privptr->fsm, DEV_EVENT_START, dev);		if (privptr->protocol == CTC_PROTO_LINUX_TTY)			return -EBUSY;		dev_kfree_skb(skb);		privptr->stats.tx_dropped++;		privptr->stats.tx_errors++;		privptr->stats.tx_carrier_errors++;		return 0;	}	if (ctc_test_and_set_busy(dev))		return -EBUSY;	dev->trans_start = jiffies;	if (transmit_skb(privptr->channel[WRITE], skb) != 0)		rc = 1;	ctc_clear_busy(dev);	return rc;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/e172577da02cde3916e75406b314e6f01c228a5c/ctcmain.c/clean/drivers/s390/net/ctcmain.c