Use mutex instead of semaphore in CAPI 2.0 driver
The CAPI 2.0 driver uses a semaphore as mutex. Use the mutex API instead of the (binary) semaphore. Signed-off-by: Matthias Kaehlcke <matthias.kaehlcke@gmail.com> Acked-by: Karsten Keil <kkeil@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
9404082898
commit
67837f232d
@ -258,7 +258,7 @@ static void recv_handler(struct work_struct *work)
|
||||
if ((!ap) || (ap->release_in_progress))
|
||||
return;
|
||||
|
||||
down(&ap->recv_sem);
|
||||
mutex_lock(&ap->recv_mtx);
|
||||
while ((skb = skb_dequeue(&ap->recv_queue))) {
|
||||
if (CAPIMSG_CMD(skb->data) == CAPI_DATA_B3_IND)
|
||||
ap->nrecvdatapkt++;
|
||||
@ -267,7 +267,7 @@ static void recv_handler(struct work_struct *work)
|
||||
|
||||
ap->recv_message(ap, skb);
|
||||
}
|
||||
up(&ap->recv_sem);
|
||||
mutex_unlock(&ap->recv_mtx);
|
||||
}
|
||||
|
||||
void capi_ctr_handle_message(struct capi_ctr * card, u16 appl, struct sk_buff *skb)
|
||||
@ -547,7 +547,7 @@ u16 capi20_register(struct capi20_appl *ap)
|
||||
ap->nsentctlpkt = 0;
|
||||
ap->nsentdatapkt = 0;
|
||||
ap->callback = NULL;
|
||||
init_MUTEX(&ap->recv_sem);
|
||||
mutex_init(&ap->recv_mtx);
|
||||
skb_queue_head_init(&ap->recv_queue);
|
||||
INIT_WORK(&ap->recv_work, recv_handler);
|
||||
ap->release_in_progress = 0;
|
||||
|
@ -64,7 +64,7 @@ struct capi20_appl {
|
||||
unsigned long nrecvdatapkt;
|
||||
unsigned long nsentctlpkt;
|
||||
unsigned long nsentdatapkt;
|
||||
struct semaphore recv_sem;
|
||||
struct mutex recv_mtx;
|
||||
struct sk_buff_head recv_queue;
|
||||
struct work_struct recv_work;
|
||||
int release_in_progress;
|
||||
|
Loading…
Reference in New Issue
Block a user