On 29/10/14 18:01, Stephen Boyd wrote: > On 10/29/2014 09:38 AM, Daniel Thompson wrote: >> Currently the _dm RX handler detects breaks but does not pass any >> characters to uart_handle_sysrq_char(). >> >> The _dm optimizations combined with the port's spin lock make if >> difficult to pass all characters to the sysrq logic because we cannot >> safely call uart_handle_sysrq_char() when the lock is held without >> deadlock (the console handler also takes the lock). >> >> Rather than passing all characters via uart_handle_sysrq_char() this patch >> only passes the last few characters in the FIFO. This should include all >> characters typed as a slow (human) rate. This makes the problem much >> simpler and allows us to move the handling of these characters outside >> of the port lock. This makes magic SysRq work if there is a human at >> the keyboard (or a short delay in a script). >> >> Signed-off-by: Daniel Thompson <daniel.thompson@xxxxxxxxxx> >> --- > > I have a patch that I was going to send for this (Frank R. and I have > been looking at it since a month or two ago). This patch doesn't look > correct given that the SR register is not actually accurate and doesn't > indicate that a break is there in the fifo. I'll Cc you on the patch, > please test it. Testing on IFC6410 is mostly OK. Most sysrq actions work fine but resume from kdb is extremely unreliable; in most cases is kills the serial RX ('echo g > /proc/sysrq-trigger' shows that characters are still going into the FIFO but never get to the interrupt handler). However, this is not a regression versus my patch, resume was not reliable with my patch either. -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html