down(&s->skt_sem); if ((s->callback) && (s->state & SOCKET_PRESENT) && !(s->state & SOCKET_CARDBUS)) { if (try_module_get(s->callback->owner)) { s->callback->resources_done(s); module_put(s->callback->owner); } 
down(&s->skt_sem); if ((s->callback) && (s->state & SOCKET_PRESENT) && !(s->state & SOCKET_CARDBUS)) { if (try_module_get(s->callback->owner)) { s->callback->requery(s); module_put(s->callback->owner); 
static ssize_t pccard_store_resource(struct class_device *dev, const char *buf, size_t count){	unsigned long flags;	struct pcmcia_socket *s = to_socket(dev);	if (!count)		return -EINVAL;	spin_lock_irqsave(&s->lock, flags);	if (!s->resource_setup_done) {		s->resource_setup_done = 1;		spin_unlock_irqrestore(&s->lock, flags);		down(&s->skt_sem);		if ((s->callback) &&		    (s->state & SOCKET_PRESENT) &&		    !(s->state & SOCKET_CARDBUS)) {			if (try_module_get(s->callback->owner)) {				s->callback->resources_done(s);				module_put(s->callback->owner);			}		}		up(&s->skt_sem);		return count;	}	spin_unlock_irqrestore(&s->lock, flags);	return count;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/e2f0b5344161dabfab102ac0a54f330f61477972/socket_sysfs.c/buggy/drivers/pcmcia/socket_sysfs.c