Re: [PATCH v3] tty: serial: msm_serial: avoid system lockup condition

From: Jorge Ramirez
Date: Mon Jun 10 2019 - 15:15:51 EST

On 6/10/19 19:53, Rob Clark wrote:
> On Mon, Jun 10, 2019 at 10:23 AM Jorge Ramirez-Ortiz
> <jorge.ramirez-ortiz@xxxxxxxxxx> wrote:
>> The function msm_wait_for_xmitr can be taken with interrupts
>> disabled. In order to avoid a potential system lockup - demonstrated
>> under stress testing conditions on SoC QCS404/5 - make sure we wait
>> for a bounded amount of time.
>> Tested on SoC QCS404.
>> Signed-off-by: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@xxxxxxxxxx>
> I had observed that heavy UART traffic would lockup the system (on
> sdm845, but I guess same serial driver)?
> But a comment from the peanut gallary: wouldn't this fix lead to TX
> corruption, ie. writing more into TX fifo before hw is ready? I
> haven't looked closely at the driver, but a way to wait without irqs
> disabled would seem nicer..
> BR,
> -R

I think sdm845 uses a different driver (qcom_geni_serial.c) but yes in
any case we need to determine the sequence leading to the lockup. In our
internal releases we are adding additional debug information to try to
capture this info.

But also I dont think this means that the safety net should not be used

btw, do you think that perhaps we should add a WARN_ONCE() on timeout?.