aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char/tty_buffer.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2010-03-03 11:47:22 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2010-03-03 11:47:22 -0500
commit94468080220162f74dc6ce5c3e95e5fec8022902 (patch)
treeb1c46b83e4e731b7b4f70bd341267da519958bdb /drivers/char/tty_buffer.c
parentfb7b096d949fa852442ed9d8f982bce526ccfe7e (diff)
parent137ee2f5d173a0e859e35bfb900261418eb88ace (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6: (36 commits) jsm: fixing error if the driver fails to load jsm: removing the uart structure and filename on error tty: Add a new VT mode which is like VT_PROCESS but doesn't require a VT_RELDISP ioctl call tty: Keep the default buffering to sub-page units tty: Fix up char drivers request_room usage tty: Fix the ldisc hangup race serial: timberdale: Remove dependancies nozomi: Tidy up the PCI table nozomi: Fix mutex handling nozomi: Add tty_port usage sdio_uart: Use kfifo instead of the messy circ stuff serial: bcm63xx_uart: allow more than one uart to be registered. serial: bcm63xx_uart: don't use kfree() on non kmalloced area. serial: bfin_5xx: pull in linux/io.h for ioremap prototypes serial: bfin_5xx: kgdboc should accept gdb break only when it is active serial: bfin_5xx: need to disable DMA TX interrupt too serial: bfin_5xx: remove useless gpio handling with hard flow control Char: synclink, remove unnecessary checks tty: declare MODULE_FIRMWARE in various drivers ip2: Add module parameter. ...
Diffstat (limited to 'drivers/char/tty_buffer.c')
-rw-r--r--drivers/char/tty_buffer.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/char/tty_buffer.c b/drivers/char/tty_buffer.c
index 66fa4e10d76b..f27c4d6d956e 100644
--- a/drivers/char/tty_buffer.c
+++ b/drivers/char/tty_buffer.c
@@ -247,7 +247,8 @@ int tty_insert_flip_string(struct tty_struct *tty, const unsigned char *chars,
247{ 247{
248 int copied = 0; 248 int copied = 0;
249 do { 249 do {
250 int space = tty_buffer_request_room(tty, size - copied); 250 int goal = min(size - copied, TTY_BUFFER_PAGE);
251 int space = tty_buffer_request_room(tty, goal);
251 struct tty_buffer *tb = tty->buf.tail; 252 struct tty_buffer *tb = tty->buf.tail;
252 /* If there is no space then tb may be NULL */ 253 /* If there is no space then tb may be NULL */
253 if (unlikely(space == 0)) 254 if (unlikely(space == 0))
@@ -283,7 +284,8 @@ int tty_insert_flip_string_flags(struct tty_struct *tty,
283{ 284{
284 int copied = 0; 285 int copied = 0;
285 do { 286 do {
286 int space = tty_buffer_request_room(tty, size - copied); 287 int goal = min(size - copied, TTY_BUFFER_PAGE);
288 int space = tty_buffer_request_room(tty, goal);
287 struct tty_buffer *tb = tty->buf.tail; 289 struct tty_buffer *tb = tty->buf.tail;
288 /* If there is no space then tb may be NULL */ 290 /* If there is no space then tb may be NULL */
289 if (unlikely(space == 0)) 291 if (unlikely(space == 0))