Thread (19 messages) flat view 19 messages, 5 authors, 2014-07-11

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

From: Olivier Sobrie <hidden>
Date: 2014-07-07 18:49:49
Also in: lkml

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:
quoted
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help