[CHECKER] 1 potential double unlock error

Junfeng Yang (yjf@stanford.edu)
Sun, 23 Mar 2003 16:29:19 -0800 (PST)


It's in net/3c505.c. Please help us to confirm or clarify. Thanks.

Junfeng

[BUG] if timeouts, will double unlock

/home/junfeng/linux-2.5.63/drivers/net/3c505.c:467:send_pcb:
ERROR:LOCK:432:467:double unlock &(*adapter).lock[TRANS: &(*adapter).lock,
locked->unlocked, /home/junfeng/linux-2.5.63/drivers/net/3c505.c,
send_pcb, 446]

set_hsf(dev, 0);

if (send_pcb_slow(dev->base_addr, pcb->command))
goto abort;

Start --->
spin_lock_irqsave(&adapter->lock, flags);

... DELETED 29 lines ...

if (elp_debug >= 1)
printk("%s: timeout waiting for PCB acknowledge (status
%02x)\n", dev->name, inb_status(dev->base_addr));

sti_abort:
Error --->
spin_unlock_irqrestore(&adapter->lock, flags);
abort:
adapter->send_pcb_semaphore = 0;
return FALSE;

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/