Patch "isdn/gigaset: reset tty->receive_room when attaching ser_gigaset" has been added to the 3.14-stable tree
This is a note to let you know that I've just added the patch titled
isdn/gigaset: reset tty->receive_room when attaching ser_gigaset
to the 3.14-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
isdn-gigaset-reset-tty-receive_room-when-attaching-ser_gigaset.patch
and it can be found in the queue-3.14 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From foo@baz Sat Sep 26 11:19:08 PDT 2015
From: Tilman Schmidt <[email protected]>
Date: Tue, 14 Jul 2015 00:37:13 +0200
Subject: isdn/gigaset: reset tty->receive_room when attaching ser_gigaset
From: Tilman Schmidt <[email protected]>
[ Upstream commit fd98e9419d8d622a4de91f76b306af6aa627aa9c ]
Commit 79901317ce80 ("n_tty: Don't flush buffer when closing ldisc"), first merged in kernel release 3.10, caused the following regression in the Gigaset M101 driver:
Before that commit, when closing the N_TTY line discipline in preparation to switching to N_GIGASET_M101, receive_room would be reset to a non-zero value by the call to n_tty_flush_buffer() in n_tty's close method. With the removal of that call, receive_room might be left at zero, blocking data reception on the serial line.
The present patch fixes that regression by setting receive_room to an appropriate value in the ldisc open method.
--- drivers/isdn/gigaset/ser-gigaset.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-)
drivers/isdn/gigaset/ser-gigaset.c +10 -1
@@ -524,9 +524,18 @@ gigaset_tty_open(struct tty_struct *tty) cs->hw.ser->tty = tty;atomic_set (&cs->hw.ser->refcnt,1 );init_completion (&cs->hw.ser->dead_cmp); - tty->disc_data = cs; +/* Set the amount of data we're willing to receive per call +* from the hardware driver to half of the input buffer size +* to leave some reserve. +* Note: We don't do flow control towards the hardware driver. +* If more data is received than will fit into the input buffer, +* it will be dropped and an error will be logged. This should +* never happen as the device is slow and the buffer size ample. +*/ + tty->receive_room =RBUFSIZE /2 ; +/* OK.. Initialization of the datastructures and the HW is done.. Now * startup system and notify the LL that we are ready to run */
Patches currently in stable-queue which might be from [email protected] are
queue-3.14/isdn-gigaset-reset-tty-receive_room-when-attaching-ser_gigaset.patch