Re: [PATCH 2/2] hso: fix deadlock when receiving bursts of data

From: Olivier Sobrie
Date: Mon Jul 07 2014 - 14:49:51 EST


Hi Dan,

On Mon, Jul 07, 2014 at 11:41:20AM -0500, Dan Williams wrote:
> On Mon, 2014-07-07 at 11:06 +0200, Olivier Sobrie wrote:
> > When the module sends bursts of data, sometimes a deadlock happens in
> > the hso driver when the tty buffer doesn't get the chance to be flushed
> > quickly enough.
> >
> > To avoid this, first, we remove the endless while loop in
> > put_rx_bufdata() which is the root cause of the deadlock.
> > Secondly, when there is no room anymore in the tty buffer, we set up a
> > timer of 100 msecs to give a chance to the upper layer to flush the tty
> > buffer and make room for new data.
>
> I assume this problem happens when using PPP for data transfer, instead
> of using the network port that the modules expose? Or maybe the NMEA
> port? I can't imagine that AT commands would make this happen...

Yes it happens when using ppp for data transfer.
The transfer of a large file sometimes triggers the problem.

--
Olivier
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/