X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;ds=sidebyside;f=drivers%2Fisdn%2Fi4l%2Fisdn_net.h;h=bc2f0dd962eae6d93a7bf58f95b954df5ca3979d;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=ebdcde3710be77af81ca565ad2fd13b66672fb51;hpb=87fc8d1bb10cd459024a742c6a10961fefcef18f;p=linux-2.6.git diff --git a/drivers/isdn/i4l/isdn_net.h b/drivers/isdn/i4l/isdn_net.h index ebdcde371..bc2f0dd96 100644 --- a/drivers/isdn/i4l/isdn_net.h +++ b/drivers/isdn/i4l/isdn_net.h @@ -78,18 +78,19 @@ static __inline__ isdn_net_local * isdn_net_get_locked_lp(isdn_net_dev *nd) spin_lock_irqsave(&nd->queue_lock, flags); lp = nd->queue; /* get lp on top of queue */ - spin_lock_bh(&nd->queue->xmit_lock); + spin_lock(&nd->queue->xmit_lock); while (isdn_net_lp_busy(nd->queue)) { - spin_unlock_bh(&nd->queue->xmit_lock); + spin_unlock(&nd->queue->xmit_lock); nd->queue = nd->queue->next; if (nd->queue == lp) { /* not found -- should never happen */ lp = NULL; goto errout; } - spin_lock_bh(&nd->queue->xmit_lock); + spin_lock(&nd->queue->xmit_lock); } lp = nd->queue; nd->queue = nd->queue->next; + local_bh_disable(); errout: spin_unlock_irqrestore(&nd->queue_lock, flags); return lp;