[LKP] [tty] c96cf923a9: WARNING:possible_circular_locking_dependency_detected

Sergey Senozhatsky sergey.senozhatsky.work at gmail.com
Tue Dec 11 21:04:32 PST 2018


On (12/12/18 12:42), Sergey Senozhatsky wrote:
[..]
> > >> [   87.255156]        CPU0                    CPU1
> > >> [   87.255813]        ----                    ----
> > >> [   87.256460]   lock(&port_lock_key);
> > >> [   87.256973]                                lock(console_owner);
> > >> [   87.257829]                                lock(&port_lock_key);
> > >> [   87.258680]   lock(&obj_hash[i].lock);
> 
> So it's like
> 
> 	CPU0					CPU1
> 
> 	uart_shutdown()				db->lock
> 	 uart_port->lock			 debug_print_object()
> 	  free_page()				  printk
> 	   debug_check_no_obj_freed		   uart_port->lock
> 	    db->lock
> 
> 
> In this particular case we probably can just move free_page()
> out of uart_port lock scope. Note that free_page()->MM can printk()
> on its own.
> 
[..]
> 
> [1] https://lore.kernel.org/lkml/1542653726-5655-8-git-send-email-longman@redhat.com/T/#u

That said, I'd first try Waiman's patch. The one I suggested is
more of a defense move - there are too many things happening under
uart_port->lock. This is not the first time we see lockdep complaining
about the way uart and the rest of the kernel interact.

	-ss


More information about the LKP mailing list