rose: Socket lock was not released before returning to user space
================================================ [ BUG: lock held when returning to user space! ] ------------------------------------------------ xfbbd/3683 is leaving the kernel with locks still held! 1 lock held by xfbbd/3683: #0: (sk_lock-AF_ROSE){--..}, at: [<c8cd1eb3>] rose_connect+0x73/0x420 [rose] INFO: task xfbbd:3683 blocked for more than 120 seconds. "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. xfbbd D 00000246 0 3683 3669 c6965ee0 00000092 c02c5c40 00000246 c0f6b5f0 c0f6b5c0 c0f6b5f0 c0f6b5c0 c0f6b614 c6965f18 c024b74b ffffffff c06ba070 00000000 00000000 00000001 c6ab07c0 c012d450 c0f6b634 c0f6b634 c7b5bf10 c0d6004c c7b5bf10 c6965f40 Call Trace: [<c024b74b>] lock_sock_nested+0x6b/0xd0 [<c012d450>] ? autoremove_wake_function+0x0/0x40 [<c02488f1>] sock_fasync+0x41/0x150 [<c0249e69>] sock_close+0x19/0x40 [<c0175d54>] __fput+0xb4/0x170 [<c0176018>] fput+0x18/0x20 [<c017300e>] filp_close+0x3e/0x70 [<c01744e9>] sys_close+0x69/0xb0 [<c0103bda>] sysenter_past_esp+0x5f/0xa5 ======================= INFO: lockdep is turned off. Signed-off-by: Bernard Pidoux <f6bvp@amsat.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
d129f188ab
commit
43837b1e6c
|
@ -760,8 +760,10 @@ static int rose_connect(struct socket *sock, struct sockaddr *uaddr, int addr_le
|
||||||
|
|
||||||
rose->neighbour = rose_get_neigh(&addr->srose_addr, &cause,
|
rose->neighbour = rose_get_neigh(&addr->srose_addr, &cause,
|
||||||
&diagnostic);
|
&diagnostic);
|
||||||
if (!rose->neighbour)
|
if (!rose->neighbour) {
|
||||||
return -ENETUNREACH;
|
err = -ENETUNREACH;
|
||||||
|
goto out_release;
|
||||||
|
}
|
||||||
|
|
||||||
rose->lci = rose_new_lci(rose->neighbour);
|
rose->lci = rose_new_lci(rose->neighbour);
|
||||||
if (!rose->lci) {
|
if (!rose->lci) {
|
||||||
|
|
Loading…
Reference in New Issue