| kworker -000|n_tty_receive_buf_common() -001|n_tty_receive_buf2() -002|tty_ldisc_receive_buf(inline) -002|receive_buf(inline) -002|flush_to_ldisc() -003|__read_once_size(inline) -003|static_key_count(inline) -003|static_key_false(inline) -003|trace_workqueue_execute_end(inline) -003|process_one_work() |
init -005|tty_unthrottle() -006|n_tty_open() -007|tty_ldisc_open.isra.3() -008|tty_ldisc_setup() -009|tty_init_dev() -010|tty_open_by_driver(inline) -010|tty_open() -011|chrdev_open() -012|do_dentry_open() -013|vfs_open() -014|do_last() |
So it seems this case only , open call has not completed but we have request for receive .2. tty_init_dev when we set up a new tty At that point the tty is not supposed to be receiving data and sure enough we don't call tty->ops->open until it has finished the ldisc set up, nor do we tty_init_dev a port that is already running. So given we don't activate the port until tty->ops->open() calls tty_port_open calls the port activation routine I don't see a bug.
We are using tty for console logging,What does a full (all CPU) trace of the bug look like and what tty driver are you using when you capture the trace ?
-- Qualcomm India Private Limited, on behalf of Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.