Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'tty-3.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty

Pull tty/serial fixes from Greg KH:
"Here are some tty/serial driver fixes for reported issues in 3.13-rc2.

The n_gsm "fix" was reverted as it was found to not be correct.
Hopefully this will be resolved in a future pull request, but as
there's really only one user of this line setting, it's not a big
deal..."

* tag 'tty-3.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
Revert "n_gsm: race between ld close and gsmtty open"
n_tty: Protect minimum_to_wake reset for concurrent readers
tty: Reset hupped state on open
TTY: amiserial, add missing platform check
TTY: pmac_zilog, check existence of ports in pmz_console_init()
n_gsm: race between ld close and gsmtty open
tty/serial/8250: fix typo in help text
n_tty: Fix 4096-byte canonical reads
n_tty: Fix echo overrun tail computation
n_tty: Ensure reader restarts worker for next reader

+18 -7
+3
drivers/tty/amiserial.c
··· 1855 1855 */ 1856 1856 static int __init amiserial_console_init(void) 1857 1857 { 1858 + if (!MACH_IS_AMIGA) 1859 + return -ENODEV; 1860 + 1858 1861 register_console(&sercons); 1859 1862 return 0; 1860 1863 }
+10 -6
drivers/tty/n_tty.c
··· 768 768 * data at the tail to prevent a subsequent overrun */ 769 769 while (ldata->echo_commit - tail >= ECHO_DISCARD_WATERMARK) { 770 770 if (echo_buf(ldata, tail) == ECHO_OP_START) { 771 - if (echo_buf(ldata, tail) == ECHO_OP_ERASE_TAB) 771 + if (echo_buf(ldata, tail + 1) == ECHO_OP_ERASE_TAB) 772 772 tail += 3; 773 773 else 774 774 tail += 2; ··· 1998 1998 found = 1; 1999 1999 2000 2000 size = N_TTY_BUF_SIZE - tail; 2001 - n = (found + eol + size) & (N_TTY_BUF_SIZE - 1); 2001 + n = eol - tail; 2002 + if (n > 4096) 2003 + n += 4096; 2004 + n += found; 2002 2005 c = n; 2003 2006 2004 2007 if (found && read_buf(ldata, eol) == __DISABLED_CHAR) { ··· 2246 2243 if (time) 2247 2244 timeout = time; 2248 2245 } 2249 - mutex_unlock(&ldata->atomic_read_lock); 2250 - remove_wait_queue(&tty->read_wait, &wait); 2246 + n_tty_set_room(tty); 2247 + up_read(&tty->termios_rwsem); 2251 2248 2249 + remove_wait_queue(&tty->read_wait, &wait); 2252 2250 if (!waitqueue_active(&tty->read_wait)) 2253 2251 ldata->minimum_to_wake = minimum; 2252 + 2253 + mutex_unlock(&ldata->atomic_read_lock); 2254 2254 2255 2255 __set_current_state(TASK_RUNNING); 2256 2256 if (b - buf) 2257 2257 retval = b - buf; 2258 2258 2259 - n_tty_set_room(tty); 2260 - up_read(&tty->termios_rwsem); 2261 2259 return retval; 2262 2260 } 2263 2261
+1 -1
drivers/tty/serial/8250/Kconfig
··· 41 41 accept kernel parameters in both forms like 8250_core.nr_uarts=4 and 42 42 8250.nr_uarts=4. We now renamed the module back to 8250, but if 43 43 anybody noticed in 3.7 and changed their userspace we still have to 44 - keep the 8350_core.* options around until they revert the changes 44 + keep the 8250_core.* options around until they revert the changes 45 45 they already did. 46 46 47 47 If 8250 is built as a module, this adds 8250_core alias instead.
+3
drivers/tty/serial/pmac_zilog.c
··· 2052 2052 /* Probe ports */ 2053 2053 pmz_probe(); 2054 2054 2055 + if (pmz_ports_count == 0) 2056 + return -ENODEV; 2057 + 2055 2058 /* TODO: Autoprobe console based on OF */ 2056 2059 /* pmz_console.index = i; */ 2057 2060 register_console(&pmz_console);
+1
drivers/tty/tty_io.c
··· 2086 2086 filp->f_op = &tty_fops; 2087 2087 goto retry_open; 2088 2088 } 2089 + clear_bit(TTY_HUPPED, &tty->flags); 2089 2090 tty_unlock(tty); 2090 2091 2091 2092