Re: Locking problem in usbserial with 2.6.23-git 5a34417f

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Jiri Kosina wrote:
> On Fri, 19 Oct 2007, Larry Finger wrote:
> 
>> While attempting to configure a new USB modem, the following locking 
>> problem occurred. In addition, shortly after this problem occurred, the 
>> computer froze. The log data starts at the point that usbserial was 
>> loaded and contains everything that was written to disk before the 
>> machine locked up. Some info may be missing from the end of the stack 
>> dump.
> 
> I guess this one is needed.
> 
> 
> From: Jiri Kosina <[email protected]>
> 
> USB: usbserial - fix potential deadlock between write() and irq
> 
> usb_serial_generic_write() doesn't disable interrupts when taking port->lock,
> and could therefore deadlock with usb_serial_generic_read_bulk_callback()
> being called from interrupt, taking the same lock. Fix it.
> 
> Signed-off-by: Jiri Kosina <[email protected]>
> 

As I said earlier, the lock problem went away; however, I get the following two kernel warnings:

WARNING: at kernel/sched.c:3475 sub_preempt_count()

Call Trace:
 [<ffffffff8022df50>] sub_preempt_count+0x7e/0x91
 [<ffffffff80237eb9>] local_bh_enable_ip+0x91/0xf5
 [<ffffffff803eaaa8>] _spin_unlock_bh+0x39/0x3e
 [<ffffffff88405409>] :ppp_generic:ppp_channel_push+0x72/0xad
 [<ffffffff88406528>] :ppp_generic:ppp_write+0x10f/0x121
 [<ffffffff8028f75d>] vfs_write+0xae/0x137
 [<ffffffff8028fcc6>] sys_write+0x47/0x70
 [<ffffffff8020c2fa>] tracesys+0xdc/0xe1

PPP BSD Compression module registered
PPP Deflate Compression module registered
WARNING: at kernel/softirq.c:139 local_bh_enable()

Call Trace:
 [<ffffffff80237d82>] local_bh_enable+0x8f/0x135
 [<ffffffff8038f9ec>] dev_queue_xmit+0x2a6/0x2d2
 [<ffffffff803ab2be>] ip_finish_output+0x221/0x24f
 [<ffffffff803ab5d0>] ip_output+0x53/0x55
 [<ffffffff803a9df5>] ip_push_pending_frames+0x309/0x3ed
 [<ffffffff803c5f88>] udp_push_pending_frames+0x2d7/0x33f
 [<ffffffff803c70e9>] udp_sendmsg+0x4d5/0x61d
 [<ffffffff80248c99>] lock_hrtimer_base+0x25/0x4a
 [<ffffffff803cccce>] inet_sendmsg+0x46/0x53
 [<ffffffff80381ca3>] sock_sendmsg+0xdf/0xf8
 [<ffffffff80248e8f>] hrtimer_start+0x102/0x114
 [<ffffffff8024653c>] autoremove_wake_function+0x0/0x38
 [<ffffffff8020bb85>] do_notify_resume+0x68e/0x7ac
 [<ffffffff803ea5cb>] trace_hardirqs_on_thunk+0x35/0x3a
 [<ffffffff803826b4>] move_addr_to_kernel+0x40/0x49
 [<ffffffff803827db>] sys_sendto+0x11e/0x143
 [<ffffffff8020bf5d>] sys_rt_sigreturn+0x2a6/0x389
 [<ffffffff80265072>] audit_syscall_entry+0x148/0x17e
 [<ffffffff8020c2fa>] tracesys+0xdc/0xe1

The second is complaining that interrupts are disabled, and may be related.

Larry
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux