spin_lock(&atm_dev_lock); 
down(&atm_dev_mutex); 
void atm_dev_deregister(struct atm_dev *dev){	unsigned long warning_time;	atm_proc_dev_deregister(dev);	spin_lock(&atm_dev_lock);	list_del(&dev->dev_list);	spin_unlock(&atm_dev_lock);        warning_time = jiffies;        while (atomic_read(&dev->refcnt) != 1) {                msleep(250);                if ((jiffies - warning_time) > 10 * HZ) {                        printk(KERN_EMERG "atm_dev_deregister: waiting for "                               "dev %d to become free. Usage count = %d\n",                               dev->number, atomic_read(&dev->refcnt));                        warning_time = jiffies;                }        }	kfree(dev);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/aaaaaadbe7a663d110814db50fcbe7d320eb4c32/resources.c/buggy/net/atm/resources.c