Hi all, The IRQ should be disabled somewhere in the path walk, which makes the GFP_KERNEL allocation in uart_startup() no longer valid.. [ 0.499537] kworker/u:1 (29) used greatest stack depth: 7156 bytes left [ 0.500947] ------------[ cut here ]------------ [ 0.501445] WARNING: at /c/kernel-tests/src/stable/kernel/lockdep.c:2739 lockdep_trace_alloc+0x86/0xb2() [ 0.502413] Modules linked in: [ 0.502766] Pid: 1, comm: init Not tainted 3.5.0-01258-g1ade992 #182 [ 0.503419] Call Trace: [ 0.503696] [] warn_slowpath_common+0x48/0x5d [ 0.504250] [] ? lockdep_trace_alloc+0x86/0xb2 [ 0.504381] [] warn_slowpath_null+0xf/0x13 [ 0.504381] [] lockdep_trace_alloc+0x86/0xb2 [ 0.504381] [] __alloc_pages_nodemask+0x78/0x4f0 [ 0.504381] [] ? trace_hardirqs_off_caller+0x2e/0x88 [ 0.504381] [] ? trace_hardirqs_off_caller+0x2e/0x88 [ 0.504381] [] __get_free_pages+0xf/0x1f [ 0.504381] [] get_zeroed_page+0xd/0xf [ 0.504381] [] uart_startup.part.8+0x46/0x152 [ 0.504381] [] ? tty_port_tty_set+0x37/0x3c [ 0.504381] [] uart_open+0xc9/0x10b [ 0.504381] [] ? uart_suspend_port+0x229/0x229 [ 0.504381] [] tty_open+0x26b/0x3d3 [ 0.504381] [] chrdev_open+0xf7/0x117 [ 0.504381] [] do_dentry_open.isra.17+0x148/0x1d2 [ 0.504381] [] ? cdev_put+0x1a/0x1a [ 0.504381] [] finish_open+0x25/0x31 [ 0.504381] [] do_last.isra.48+0x6d6/0x83a [ 0.504381] [] ? __inode_permission+0x4c/0x79 [ 0.504381] [] ? link_path_walk+0x97/0x3af [ 0.504381] [] ? lock_rcu_walk+0x2b/0x61 [ 0.504381] [] path_openat+0x93/0x27c [ 0.504381] [] do_filp_open+0x21/0x5d [ 0.504381] [] ? _raw_spin_unlock+0x1d/0x20 [ 0.504381] [] ? alloc_fd+0x12e/0x139 [ 0.504381] [] do_sys_open+0x56/0xd2 [ 0.504381] [] sys_open+0x1b/0x20 [ 0.504381] [] syscall_call+0x7/0xb Thanks, Fengguang