pcipcwd_stop(); 
if (pcipcwd_stop()) return -EIO; 
static int pcipcwd_ioctl(struct inode *inode, struct file *file,			  unsigned int cmd, unsigned long arg){	void __user *argp = (void __user *)arg;	int __user *p = argp;	static struct watchdog_info ident = {		.options =		WDIOF_OVERHEAT |					WDIOF_CARDRESET |					WDIOF_KEEPALIVEPING |					WDIOF_SETTIMEOUT |					WDIOF_MAGICCLOSE,		.firmware_version =	1,		.identity =		WATCHDOG_DRIVER_NAME,	};	switch (cmd) {		case WDIOC_GETSUPPORT:			return copy_to_user(argp, &ident,				sizeof (ident)) ? -EFAULT : 0;		case WDIOC_GETSTATUS:		{			int status;			pcipcwd_get_status(&status);			return put_user(status, p);		}		case WDIOC_GETBOOTSTATUS:			return put_user(pcipcwd_private.boot_status, p);		case WDIOC_GETTEMP:		{			int temperature;			if (pcipcwd_get_temperature(&temperature))				return -EFAULT;			return put_user(temperature, p);		}		case WDIOC_KEEPALIVE:			pcipcwd_keepalive();			return 0;		case WDIOC_SETOPTIONS:		{			int new_options, retval = -EINVAL;			if (get_user (new_options, p))				return -EFAULT;			if (new_options & WDIOS_DISABLECARD) {				pcipcwd_stop();				retval = 0;			}			if (new_options & WDIOS_ENABLECARD) {				pcipcwd_start();				retval = 0;			}			if (new_options & WDIOS_TEMPPANIC) {				temp_panic = 1;				retval = 0;			}			return retval;		}		case WDIOC_SETTIMEOUT:		{			int new_heartbeat;			if (get_user(new_heartbeat, p))				return -EFAULT;			if (pcipcwd_set_heartbeat(new_heartbeat))			    return -EINVAL;			pcipcwd_keepalive();			/* Fall */		}		case WDIOC_GETTIMEOUT:			return put_user(heartbeat, p);		default:			return -ENOIOCTLCMD;	}}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/c315b7e840a1f336ffefb21d3130f9799af2ecd6/pcwd_pci.c/buggy/drivers/char/watchdog/pcwd_pci.c