This mutex_lock and mutex_unlock has no use in such way.
It should be like this way:
Signed-off-by: Zhenwen Xu <[email protected]>
---
kernel/audit.c | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/kernel/audit.c b/kernel/audit.c
index 9442c35..3176ffa 100644
--- a/kernel/audit.c
+++ b/kernel/audit.c
@@ -485,12 +485,11 @@ int audit_send_list(void *_dest)
/* wait for parent to finish and send an ACK */
mutex_lock(&audit_cmd_mutex);
- mutex_unlock(&audit_cmd_mutex);
-
while ((skb = __skb_dequeue(&dest->q)) != NULL)
netlink_unicast(audit_sock, skb, pid, 0);
kfree(dest);
+ mutex_unlock(&audit_cmd_mutex);
return 0;
}
--
1.5.6.5
--
---------------------------------
Zhenwen Xu - Open and Free
Home Page: http://zhwen.org
My Studio: http://dim4.cn
On Sun, Apr 19, 2009 at 10:03:55PM +0800, Zhenwen Xu wrote:
>
> This mutex_lock and mutex_unlock has no use in such way.
Incorrect. They delay sending response until we are out of audit_receive().
> It should be like this way:
No, it should not. In particular, it should *NOT* be held while sending
these packets.