On 2018-06-22 15:56:42 [+0200], Daniel Wagner wrote:
From: Daniel Wagner daniel.wagner@siemens.com
[ Upstream commit 8afb1d2c12163f77777f84616a8e9444d0050ebe ]
Commit 40f70c03e33a ("serial: sh-sci: add locking to console write function to avoid SMP lockup") copied the strategy to avoid locking problems in conjuncture with the console from the UART8250 driver. Instead using directly spin_{try}lock_irqsave(), local_irq_save() followed by spin_{try}lock() was used. While this is correct on mainline, for -rt it is a problem. spin_{try}lock() will check if it is running in a valid context. Since the local_irq_save() has already been executed, the context has changed and spin_{try}lock() will complain. The reason why spin_{try}lock() complains is that on -rt the spin locks are turned into mutexes and therefore can sleep. Sleeping with interrupts disabled is not valid.
This change only effects RT. Usually I don't bother Greg/stable team which changes which went upstream and help/fix RT but don't affect (as in fix) non-RT code. I usually add them to the RT queue and let RT-stable team pick it up. So I would suggest I pick it up for v4.16 and it gets then picked up the RT-stable team. Any objections?
Sebastian