From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter Hurley Subject: Re: USB-serial console and lockdep Date: Wed, 31 Dec 2014 21:07:59 -0500 Message-ID: <54A4ABFF.5000304@hurleysoftware.com> References: <20141118161833.GA22786@localhost> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20141118161833.GA22786@localhost> Sender: linux-usb-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Johan Hovold Cc: linux-serial-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: linux-serial@vger.kernel.org Hi Johan, On 11/18/2014 11:18 AM, Johan Hovold wrote: > I get this missing-lockdep-annotation warning which I haven't seen > before when booting with a usb-serial console on 3.18-rc5. It's been a > while since I last tested this, though, and the tty_ldisc_ref wasn't > introduced until 833efc0ed19c ("USB: serial: invoke dcd_change ldisc's > handler."). Sorry it took me so long to finally look at this -- at least I'm looking at it in the same year ;) (in my tzone anyway) Is this easily reproducible? Because for lockdep to be trying to register the ldsem lock class from the tty_ldisc_ref() means that no tty has yet been opened [see 1]. So how did the call to tty_port_tty_get() in pl2303_update_line_status() return a tty? If you can easily reproduce this, I can supply you with a debug patch to find out what's going on. Regards, Peter Hurley > [ 10.575225] usbserial: USB Serial support registered for pl2303 > [ 10.575561] pl2303 1-2.1:1.0: pl2303 converter detected > [ 10.627563] usb 1-2.1: pl2303 converter now attached to ttyUSB0 > [ 10.650939] INFO: trying to register non-static key. > [ 10.651000] the code is fine but needs lockdep annotation. > [ 10.651000] turning off the locking correctness validator. > [ 10.651031] CPU: 0 PID: 68 Comm: udevd Tainted: G W 3.18.0-rc5 #10 > [ 10.651092] [] (unwind_backtrace) from [] (show_stack+0x20/0x24) > [ 10.651123] [] (show_stack) from [] (dump_stack+0x24/0x28) > [ 10.651184] [] (dump_stack) from [] (__lock_acquire+0x1e50/0x2004) > [ 10.651214] [] (__lock_acquire) from [] (lock_acquire+0xe4/0x18c) > [ 10.651245] [] (lock_acquire) from [] (ldsem_down_read_trylock+0x78/0x90) > [ 10.651275] [] (ldsem_down_read_trylock) from [] (tty_ldisc_ref+0x24/0x58) > [ 10.651306] [] (tty_ldisc_ref) from [] (usb_serial_handle_dcd_change+0x48/0xe8) > [ 10.651367] [] (usb_serial_handle_dcd_change) from [] (pl2303_read_int_callback+0x210/0x220 [pl2303]) > [ 10.651428] [] (pl2303_read_int_callback [pl2303]) from [] (__usb_hcd_giveback_urb+0x80/0x140) > [ 10.651458] [] (__usb_hcd_giveback_urb) from [] (usb_giveback_urb_bh+0x98/0xd4) > [ 10.651489] [] (usb_giveback_urb_bh) from [] (tasklet_hi_action+0x9c/0x108) > [ 10.651519] [] (tasklet_hi_action) from [] (__do_softirq+0x148/0x42c) > [ 10.651550] [] (__do_softirq) from [] (irq_exit+0xd8/0x114) > [ 10.651580] [] (irq_exit) from [] (__handle_domain_irq+0x84/0xdc) > [ 10.651611] [] (__handle_domain_irq) from [] (omap_intc_handle_irq+0xd8/0xe0) > [ 10.651641] [] (omap_intc_handle_irq) from [] (__irq_svc+0x44/0x7c) > [ 10.651641] Exception stack(0xdf4e7f08 to 0xdf4e7f50) > [ 10.651672] 7f00: debc0b80 df4e7f5c 00000000 00000000 debc0b80 be8da96c > [ 10.651702] 7f20: 00000000 00000128 c000fc84 df4e6000 00000000 df4e7f94 00000004 df4e7f50 > [ 10.651702] 7f40: c038ebc0 c038d74c 600f0013 ffffffff > [ 10.651733] [] (__irq_svc) from [] (___sys_sendmsg.part.29+0x0/0x2e0) > [ 10.651763] [] (___sys_sendmsg.part.29) from [] (SyS_sendmsg+0x18/0x1c) > [ 10.651794] [] (SyS_sendmsg) from [] (ret_fast_syscall+0x0/0x48) > [ 10.692871] console [ttyUSB0] enabled [1] Call tree for registering the ldsem lock class tty_open tty_init_dev alloc_tty_struct init_ldsem (macro in include/linux/tty_ldisc.h) * the static lock_class_key is expanded here * -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html