DBF_TEXT(trace, 3, __FUNCTION__); 
DBF_TEXT(setup, 3, __FUNCTION__); 
ctc_shutdown_device(struct ccwgroup_device *cgdev){	struct ctc_priv *priv;	struct net_device *ndev;			DBF_TEXT(trace, 3, __FUNCTION__);	pr_debug("%s() called\n", __FUNCTION__);	priv = cgdev->dev.driver_data;	ndev = NULL;	if (!priv)		return -ENODEV;	if (priv->channel[READ]) {		ndev = priv->channel[READ]->netdev;		/* Close the device */		ctc_close(ndev);		ndev->flags &=~IFF_RUNNING;		ctc_remove_attributes(&cgdev->dev);		channel_free(priv->channel[READ]);	}	if (priv->channel[WRITE])		channel_free(priv->channel[WRITE]);	if (ndev) {		ctc_netdev_unregister(ndev);		ndev->priv = NULL;		ctc_free_netdevice(ndev, 1);	}	if (priv->fsm)		kfree_fsm(priv->fsm);	ccw_device_set_offline(cgdev->cdev[1]);	ccw_device_set_offline(cgdev->cdev[0]);	if (priv->channel[READ])		channel_remove(priv->channel[READ]);	if (priv->channel[WRITE])		channel_remove(priv->channel[WRITE]);		priv->channel[READ] = priv->channel[WRITE] = NULL;	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/7394c928c849fe2ea5c20b6d73cbe7f220810d94/ctcmain.c/buggy/drivers/s390/net/ctcmain.c