Messages in this thread | | | Date | Fri, 01 Mar 2013 17:00:56 -0500 (EST) | Subject | Re: WARNING at tty_buffer.c:428 process_one_work() | From | David Miller <> |
| |
From: David Miller <davem@davemloft.net> Date: Fri, 01 Mar 2013 16:47:11 -0500 (EST)
> > I'm getting these non-stop right when the hypervisor console registers > on sparc64, and the machine won't boot up properly. This is with > Linus's current tree.
As a quick addendum I'm looking at all of these tty_insert_flip_char() conversions and I'm extremely disappointed.
Let's just look at just two of the sparc drivers converted in commit 92a19f9cec9a80ad93c06e115822deb729e2c6ad, namely sunhv.c and sunsab.c.
The changes to the uart_handle_sysrq_char() call sites are handled completely differently in these two drivers, in nearly identical situations. How can this be correct?
In the sunhv.c case the uart_handle_sysrq_char() call is preserved but the guarding test is changed from:
if (tty == NULL)
into
if (port->start == NULL)
Whereas in the sunsab.c case, the entire guarding test as well as the uart_handle_sysrq_char() invocation itself are both completly removed.
How in the world can that be right?
Either the receive_chars() method's invocations of uart_handle_sysrq_char() should be retained, or this sysrq processing is handled now elsewhere and in which case that should be documented clearly and in detail in the commit log message.
| |