From 9da98c4c49629113cd1706b129729bb60fa74b09 Mon Sep 17 00:00:00 2001 From: Hendrik Brueckner Date: Tue, 21 Apr 2009 06:04:24 +0000 Subject: [PATCH] --- yaml --- r: 143949 b: refs/heads/master c: 3fa6b5adbe46b3d665267dee0f879858ab464f44 h: refs/heads/master i: 143947: ef3ec040495b8abf51ea044797fb42675a070e2b v: v3 --- [refs] | 2 +- trunk/net/iucv/af_iucv.c | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 2f8c19922ae0..b9f4b1742ee4 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e14ad5fa8705fb354e72312479abbe420ebc3f8e +refs/heads/master: 3fa6b5adbe46b3d665267dee0f879858ab464f44 diff --git a/trunk/net/iucv/af_iucv.c b/trunk/net/iucv/af_iucv.c index 9cfdaaddc5b2..b51c9187c347 100644 --- a/trunk/net/iucv/af_iucv.c +++ b/trunk/net/iucv/af_iucv.c @@ -1124,6 +1124,8 @@ static void iucv_callback_rx(struct iucv_path *path, struct iucv_message *msg) return; } + spin_lock(&iucv->message_q.lock); + if (!list_empty(&iucv->message_q.list) || !skb_queue_empty(&iucv->backlog_skb_q)) goto save_message; @@ -1137,9 +1139,8 @@ static void iucv_callback_rx(struct iucv_path *path, struct iucv_message *msg) if (!skb) goto save_message; - spin_lock(&iucv->message_q.lock); iucv_process_message(sk, skb, path, msg); - spin_unlock(&iucv->message_q.lock); + goto out_unlock; return; @@ -1150,8 +1151,9 @@ static void iucv_callback_rx(struct iucv_path *path, struct iucv_message *msg) save_msg->path = path; save_msg->msg = *msg; - spin_lock(&iucv->message_q.lock); list_add_tail(&save_msg->list, &iucv->message_q.list); + +out_unlock: spin_unlock(&iucv->message_q.lock); }