]>
Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | 2001-08-11 Tim Waugh <[email protected]> |
2 | ||
3 | * serial.c (get_pci_port): Deal with awkward Titan cards. | |
4 | ||
5 | 1998-08-26 Theodore Ts'o <[email protected]> | |
6 | ||
7 | * serial.c (rs_open): Correctly decrement the module in-use count | |
8 | on errors. | |
9 | ||
10 | Thu Feb 19 14:24:08 1998 Theodore Ts'o <[email protected]> | |
11 | ||
12 | * tty_io.c (tty_name): Remove the non-reentrant (and non-SMP safe) | |
13 | version of tty_name, and rename the reentrant _tty_name | |
14 | function to be tty_name. | |
15 | (tty_open): Add a warning message stating callout devices | |
16 | are deprecated. | |
17 | ||
18 | Mon Dec 1 08:24:15 1997 Theodore Ts'o <[email protected]> | |
19 | ||
20 | * tty_io.c (tty_get_baud_rate): Print a warning syslog if the | |
21 | tty->alt_speed kludge is used; this means the system is | |
22 | using the deprecated SPD_HI ioctls. | |
23 | ||
24 | Mon Nov 24 10:37:49 1997 Theodore Ts'o <[email protected]> | |
25 | ||
26 | * serial.c, esp.c, rocket.c: Change drivers to take advantage of | |
27 | tty_get_baud_rate(). | |
28 | ||
29 | * tty_io.c (tty_get_baud_rate): New function which computes the | |
30 | correct baud rate for the tty. More factoring out of | |
31 | common code out of the serial driver to the high-level tty | |
32 | functions.... | |
33 | ||
34 | Sat Nov 22 07:53:36 1997 Theodore Ts'o <[email protected]> | |
35 | ||
36 | * serial.c, esp.c, rocket.c: Add tty->driver.break() routine, and | |
37 | allow high-level tty code to handle the break and soft | |
38 | carrier ioctls. | |
39 | ||
40 | * tty_ioctl.c (n_tty_ioctl): Support TIOCGSOFTCAR and | |
41 | TIOCSSOFTCAR, so that device drivers don't have to support | |
42 | it. | |
43 | ||
44 | * serial.c (autoconfig): Change 16750 test to hopefully eliminate | |
45 | false results by people with strange 16550As being | |
46 | detected as 16750s. Hopefully 16750s will still be | |
47 | detected as 16750, and other weird UARTs won't get poorly | |
48 | autodetected. If this doesn't work, I'll have to disable | |
49 | the auto identification for the 16750. | |
50 | ||
51 | * tty_io.c (tty_hangup): Now actually do the tty hangup | |
52 | processing during the timer processing, and disable | |
53 | interrupts while doing the hangup processing. This avoids | |
54 | several nasty race conditions which happened when the | |
55 | hangup processing was done asynchronously. | |
56 | (tty_ioctl): Do break handling in the tty driver if | |
57 | driver's break function is supported. | |
58 | (tty_flip_buffer_push): New exported function which should | |
59 | be used by drivers to push characters in the flip buffer | |
60 | to the tty handler. This may either be done using a task | |
61 | queue function for better CPU efficiency, or directly for | |
62 | low latency operation. | |
63 | ||
64 | * serial.c (rs_set_termios): Fix bug rs_set_termios when | |
65 | transitioning away from B0, submitted by Stanislav | |
66 | Voronyi. | |
67 | ||
68 | Thu Jun 19 20:05:58 1997 Theodore Ts'o <[email protected]> | |
69 | ||
70 | * serial.c (begin_break, end_break, rs_ioctl): Applied patch | |
71 | to support BSD ioctls to set and clear the break | |
72 | condition explicitly. | |
73 | ||
74 | * console.c (scrup, scrdown, insert_line, delete_line): Applied | |
75 | fix suggested by Aaron Tiensivu to speed up block scrolls | |
76 | up and down. | |
77 | ||
78 | * n_tty.c (opost_block, write_chan): Added a modified "fast | |
79 | console" patch which processes a block of text via | |
80 | "cooking" efficiently. | |
81 | ||
82 | Wed Jun 18 15:25:50 1997 Theodore Ts'o <[email protected]> | |
83 | ||
84 | * tty_io.c (init_dev, release_dev): Applied fix suggested by Bill | |
85 | Hawes to prevent race conditions in the tty code. | |
86 | ||
87 | * n_tty.c (n_tty_chars_in_buffer): Applied fix suggested by Bill | |
88 | Hawes so that n_tty_chars_in_buffer returns the correct | |
89 | value in the case when the tty is in cannonical mode. (To | |
90 | avoid a pty deadlock with telnetd.) | |
91 | ||
92 | Thu Feb 27 01:53:08 1997 Theodore Ts'o <[email protected]> | |
93 | ||
94 | * serial.c (change_speed): Add support for the termios flag | |
95 | CMSPAR, which allows the user to select stick parity. | |
96 | (i.e, if PARODD is set, the parity bit is always 1; if | |
97 | PARRODD is not set, then the parity bit is always 0). | |
98 | ||
99 | Wed Feb 26 19:03:10 1997 Theodore Ts'o <[email protected]> | |
100 | ||
101 | * serial.c (cleanup_module): Fix memory leak when using the serial | |
102 | driver as a module; make sure tmp_buf gets freed! | |
103 | ||
104 | Tue Feb 25 11:01:59 1997 Theodore Ts'o <[email protected]> | |
105 | ||
106 | * serial.c (set_modem_info): Add support for setting and clearing | |
107 | the OUT1 and OUT2 bits. (For special case UART's, usually | |
108 | for half-duplex.) | |
109 | (autoconfig, change_speed): Fix TI 16750 support. | |
110 | ||
111 | Sun Feb 16 00:14:43 1997 Theodore Ts'o <[email protected]> | |
112 | ||
113 | * tty_io.c (release_dev): Add sanity check to make sure there are | |
114 | no waiters on tty->read_wait or tty->write_wait. | |
115 | ||
116 | * serial.c (rs_init): Don't autoconfig a device if the I/O region | |
117 | is already reserved. | |
118 | ||
119 | * serial.c (serial_proc_info): Add support for /proc/serial. | |
120 | ||
121 | Thu Feb 13 00:49:10 1997 Theodore Ts'o <[email protected]> | |
122 | ||
123 | * serial.c (receive_chars): When the UART repotrs an overrun | |
124 | condition, it does so with a valid character. Changed to | |
125 | not throw away the valid character, but instead report the | |
126 | overrun after the valid character. | |
127 | ||
128 | * serial.c: Added new #ifdef's for some of the advanced serial | |
129 | driver features. A minimal driver that only supports COM | |
130 | 1/2/3/4 without sharing serial interrupts only takes 17k; | |
131 | the full driver takes 32k. | |
132 | ||
133 | Wed Feb 12 14:50:44 1997 Theodore Ts'o <[email protected]> | |
134 | ||
135 | * vt.c: | |
136 | * pty.c: | |
137 | * tty_ioctl.c: | |
138 | * serial.c: Update routines to use the new 2.1 memory access | |
139 | routines. | |
140 | ||
141 | Wed Dec 4 07:51:52 1996 Theodore Ts'o <[email protected]> | |
142 | ||
143 | * serial.c (change_speed): Use save_flags(); cli() and | |
144 | restore_flags() in order to ensure we don't accidentally | |
145 | turn on interrupts when starting up the port. | |
146 | (startup): Move the insertion of serial structure into the | |
147 | IRQ chain earlier into the startup processing. Interrupts | |
148 | should be off this whole time, but we eventually will want | |
149 | to reduce this window. | |
150 | ||
151 | Thu Nov 21 10:05:22 1996 Theodore Ts'o <[email protected]> | |
152 | ||
153 | * tty_ioctl.c (tty_wait_until_sent): Always check the driver | |
154 | wait_until_ready routine, even if there are no characters | |
155 | in the xmit buffer. (There may be charactes in the device | |
156 | FIFO.) | |
157 | (n_tty_ioctl): Add new flag tty->flow_stopped which | |
158 | indicates whether the tty is stopped due to a request by | |
159 | the TCXONC ioctl (used by tcflow). If so, don't let an | |
160 | incoming XOFF character restart the tty. The tty can only | |
161 | be restarted by another TCXONC request. | |
162 | ||
163 | * tty_io.c (start_tty): Don't allow the tty to be restarted if | |
164 | tty->flow_stopped is true. | |
165 | ||
166 | * n_tty.c (n_tty_receive_char): If tty->flow_stopped is true, and | |
167 | IXANY is set, don't eat a character trying to restart the | |
168 | tty. | |
169 | ||
170 | * serial.c (startup): Remove need for MCR_noint from the | |
171 | async_struct structure. Only turn on DTR and RTS if the | |
172 | baud rate is not zero. | |
173 | (change_speed): More accurately calculate the timeout | |
174 | value based on the word size. Move responsibility of | |
175 | hangup when speed becomes B0 to rs_set_termios() | |
176 | (set_serial_info): When changing the UART type set the | |
177 | current xmit_fifo_size as well as the permanent | |
178 | xmit_fifo_size. | |
179 | (rs_ioctl): Fix TCSBRK (used by tcdrain) and TCSBRKP | |
180 | ioctls to return EINTR if interrupted by a signal. | |
181 | (rs_set_termios): If the baud rate changes to or from B0, | |
182 | this function is now responsible for setting or clearing | |
183 | DTR and RTS. DTR and RTS are only be changed on the | |
184 | transition to or from the B0 state. | |
185 | (rs_close): Wait for the characters to drain based on | |
186 | info->timeout. At low baud rates (50 bps), it may take a | |
187 | long time for the FIFO to completely drain out! | |
188 | (rs_wait_until_sent): Fixed timeout handling. Now | |
189 | releases control to the scheduler, but checks frequently | |
190 | enough so that the function is sensitive enough to pass | |
191 | the timing requirements of the NIST-PCTS. | |
192 | (block_til_ready): When opening the device, don't turn on | |
193 | DTR and RTS if the baud rate is B0. | |
194 | ||
195 | Thu Nov 14 00:06:09 1996 Theodore Ts'o <[email protected]> | |
196 | ||
197 | * serial.c (autoconfig): Fix autoconfiguration problems; | |
198 | info->flags wasn't getting initialized from the state | |
199 | structure. Put in more paranoid test for the 16750. | |
200 | ||
201 | Fri Nov 8 20:19:50 1996 Theodore Ts'o <[email protected]> | |
202 | ||
203 | * n_tty.c (n_tty_flush_buffer): Only call driver->unthrottle() if | |
204 | the tty was previous throttled. | |
205 | (n_tty_set_termios, write_chan): Add changes suggested by | |
206 | Simon P. Allen to allow hardware cooking. | |
207 | ||
208 | * tty_ioctl.c (set_termios): If we get a signal while waiting for | |
209 | the tty to drain, return -EINTR. | |
210 | ||
211 | * serial.c (change_speed): Add support for CREAD, as required by | |
212 | POSIX. | |
213 | ||
214 | Sat Nov 2 20:43:10 1996 Theodore Ts'o <[email protected]> | |
215 | ||
216 | * serial.c: Wholesale changes. Added support for the Startech | |
217 | 16650 and 16650V2 chips. (WARNING: the new startech | |
218 | 16650A may or may not work!) Added support for the | |
219 | TI16750 (not yet tested). Split async_struct into a | |
220 | transient part (async_struct) and a permanent part | |
221 | (serial_state) which contains the configuration | |
222 | information for the ports. Added new driver routines | |
223 | wait_until_sent() and send_xchar() to help with POSIX | |
224 | compliance. Added support for radio clocks which waggle | |
225 | the carrier detect line (CONFIG_HARD_PPS). | |
226 | ||
227 | * tty_ioctl.c (tty_wait_until_sent): Added call to new driver | |
228 | function tty->driver.wait_until_sent(), which returns when | |
229 | the tty's device xmit buffers are drained. Needed for | |
230 | full POSIX compliance. | |
231 | ||
232 | (send_prio_char): New function, called by the ioctl's | |
233 | TCIOFF and TCION; uses the new driver call send_xchar(), | |
234 | which will send the XON or XOFF character at high priority | |
235 | (and even if tty output is stopped). | |
236 | ||
237 | Wed Jun 5 18:52:04 1996 Theodore Ts'o <[email protected]> | |
238 | ||
239 | * pty.c (pty_close): When closing a pty, make sure packet mode is | |
240 | cleared. | |
241 | ||
242 | Sun May 26 09:33:52 1996 Theodore Ts'o <[email protected]> | |
243 | ||
244 | * vesa_blank.c (set_vesa_blanking): Add missing verify_area() call. | |
245 | ||
246 | * selection.c (set_selection): Add missing verify_area() call. | |
247 | ||
248 | * tty_io.c (tty_ioctl): Add missing verify_area() calls. | |
249 | ||
250 | * serial.c (rs_ioctl): Add missing verify_area() calls. | |
251 | (rs_init): Allow initialization of serial driver | |
252 | configuration from a module. | |
253 | ||
254 | * random.c (extract_entropy): Add missing verify_area call. | |
255 | Don't limit number of characters returned to | |
256 | 32,768. Extract entropy is now no longer a inlined | |
257 | function. | |
258 | ||
259 | (random_read): Check return value in case extract_entropy | |
260 | returns an error. | |
261 | ||
262 | (secure_tcp_sequence_number): New function which returns a | |
263 | secure TCP sequence number. This is needed to prevent some | |
264 | nasty TCP hijacking attacks. | |
265 | ||
266 | (init_std_data): Initialize using gettimeofday() instead of | |
267 | struct timeval xtime. | |
268 | ||
269 | (fast_add_entropy_word, add_entropy_word): Rename the | |
270 | inline function add_entropy_word() to | |
271 | fast_add_entropy_word(). Make add_entropy_word() be the | |
272 | non-inlined function which is used in non-timing critical | |
273 | places, in order to save space. | |
274 | ||
275 | (initialize_benchmark, begin_benchmark, end_benchmark): New | |
276 | functions defined when RANDOM_BENCHMARK is defined. They | |
277 | allow us to benchmark the speed of the | |
278 | add_timer_randomness() call. | |
279 | ||
280 | (int_ln, rotate_left): Add two new inline functions with | |
281 | i386 optimized asm instructions. This speeds up the | |
282 | critical add_entropy_word() and add_timer_randomness() | |
283 | functions, which are called from interrupt handlers. | |
284 | ||
285 | Tue May 7 22:51:11 1996 <[email protected]> | |
286 | ||
287 | * random.c (add_timer_randomness): Limit the amount randomness | |
288 | that we estimate to 12 bits. (An arbitrary amount). | |
289 | ||
290 | (extract_entropy): To make it harder to analyze the hash | |
291 | function, fold the hash function in half using XOR, and | |
292 | use the folded result as the value to emit to the user. | |
293 | Also, add timer randomness each pass through the | |
294 | exact_entropy call, to increase the amount of unknown | |
295 | values during the extraction process. | |
296 | ||
297 | (random_ioctl): Use IOR/IOW definitions to define the | |
298 | ioctl values used by the /dev/random driver. Allow the | |
299 | old ioctl values to be used for backwards compatibility | |
300 | (for a limited amount of time). | |
301 | ||
302 | Wed Apr 24 14:02:04 1996 Theodore Ts'o <[email protected]> | |
303 | ||
304 | * random.c (add_timer_randomness): Use 2nd derivative as well to | |
305 | better estimate entropy. | |
306 | ||
307 | (rand_initialize): Explicitly initialize all the pointers | |
308 | to NULL. (Clearing pointers using memset isn't portable.) | |
309 | Initialize the random pool with OS-dependent data. | |
310 | ||
311 | (random_write): Add sanity checking to the arguments to | |
312 | random_write(), so that bad arguments won't cause a kernel | |
313 | SEGV. | |
314 | ||
315 | (random_read): Update the access time of the device inode | |
316 | when you return data to the user. | |
317 | ||
318 | (random_ioctl): Wake up the random_wait channel when there | |
319 | are only WAIT_INPUT_BITS available. Add more paranoia | |
320 | checks to make sure entropy_count doesn't go beyond the | |
321 | bounds of (0, POOLSIZE). Add a few missing verify_area | |
322 | checks. Add support for the RNDCLEARPOOL ioctl, which | |
323 | zaps the random pool. | |
324 | ||
325 | (add_timer_randomness): Wake up the random_wait | |
326 | channel only when there are WAIT_INPUT_BITS available. | |
327 | ||
328 | (random_select): Allow a random refresh daemon process to | |
329 | select on /dev/random for writing; wake up the daemon when | |
330 | there are less than WAIT_OUTPUT_BITS bits of randomness | |
331 | available. | |
332 | ||
333 | Tue Apr 23 22:56:07 1996 <[email protected]> | |
334 | ||
335 | * tty_io.c (init_dev): Change return code when user attempts to | |
336 | open master pty which is already open from EAGAIN to EIO, | |
337 | to match with BSD expectations. EIO is more correct | |
338 | anyway, since EAGAIN implies that retrying will be | |
339 | successful --- which it might be.... Eventually!! | |
340 | ||
341 | * pty.c (pty_open, pty_close): Fix wait loop so that we don't | |
342 | busy loop while waiting for the master side to open. | |
343 | Fix tty opening/closing logic. TTY_SLAVE_CLOSED was | |
344 | renamed to TTY_OTHER_CLOSED, so that the name is more | |
345 | descriptive. Also fixed code so that the tty flag | |
346 | actually works correctly now.... | |
347 | ||
348 | Mon Apr 1 10:22:01 1996 <[email protected]> | |
349 | ||
350 | * serial.c (rs_close): Cleaned up modularization changes. | |
351 | Remove code which forced line discipline back to N_TTY | |
352 | this is done in the tty upper layers, and there's no | |
353 | reason to do it here. (Making this change also | |
354 | removed the requirement that the serial module access | |
355 | the internal kernel symbol "ldiscs".) | |
356 | ||
357 | * tty_io.c (tty_init): Formally register a tty_driver entry for | |
358 | /dev/tty (device 4, 0) and /dev/console (device 5, 0). | |
359 | This guarantees that major device numbers 4 and 5 will be | |
360 | reserved for the tty subsystem (as they have to be because | |
361 | of /dev/tty and /dev/console). Removed tty_regdev, as | |
362 | this interface is no longer necessary. | |
363 | ||
364 | Sun Mar 17 20:42:47 GMT 1996 <[email protected]> | |
365 | ||
366 | * serial.c : modularisation (changes in linux/fs/device.c allow | |
367 | kerneld to automatically load the serial module). | |
368 | ||
369 | * Makefile, Config.in : serial modularisation adds. | |
370 | ||
371 | * tty_io.c : tty_init_ctty used by to register "cua" driver just | |
372 | for the /dev/tty device (5,0). Added tty_regdev. | |
373 | ||
374 | * serial.c (shutdown, rs_ioctl) : when port shuts down wakeup processes | |
375 | waiting on delta_msr_wait. The TIOCMIWAIT ioctl returns EIO | |
376 | if no change was done since the time of call. | |
377 | ||
378 | Sat Mar 16 14:33:13 1996 <[email protected]> | |
379 | ||
380 | * tty_io.c (disassociate_ctty): If disassociate_ctty is called by | |
381 | exit, do not perform an implicit vhangup on a pty. | |
382 | ||
383 | Fri Feb 9 14:15:47 1996 <[email protected]> | |
384 | ||
385 | * serial.c (block_til_ready): Fixed another race condition which | |
386 | happens if a hangup happens during the open. | |
387 | ||
388 | Wed Jan 10 10:08:00 1996 <[email protected]> | |
389 | ||
390 | * serial.c (block_til_ready): Remove race condition which happened | |
391 | if a hangup condition happened during the setup of the | |
392 | UART, before rs_open() called block_til_ready(). This | |
393 | caused the info->count counter to be erroneously | |
394 | decremented. | |
395 | ||
396 | * serial.c (startup, rs_open): Remove race condition that could | |
397 | cause a memory leak of one page. (Fortunately, both race | |
398 | conditions were relatively rare in practice.) | |
399 | ||
400 | Tue Dec 5 13:21:27 1995 <[email protected]> | |
401 | ||
402 | * serial.c (check_modem_status, rs_ioctl): Support the new | |
403 | ioctl()'s TIOCGICOUNT, TIOCMIWAIT. These allow an | |
404 | application program to wait on a modem serial register | |
405 | status bit change, and to find out how many changes have | |
406 | taken place for the MSR bits. | |
407 | ||
408 | (rs_write): Eliminate a race condition which is introduced | |
409 | if it is necessary to wait for the semaphore. | |
410 | ||
411 | Sat Nov 4 17:14:45 1995 <[email protected]> | |
412 | ||
413 | * tty_io.c (tty_init): Move registration of TTY_MAJOR and | |
414 | TTY_AUX_MAJOR to the end, so that /proc/devices looks | |
415 | prettier. | |
416 | ||
417 | * pty.c (pty_init): Use new major numbers for PTY master and slave | |
418 | devices. This allow us to have more than 64 pty's. We | |
419 | register the old pty devices for backwards compatibility. | |
420 | Note that a system should either be using the old pty | |
421 | devices or the new pty devices --- in general, it should | |
422 | try to use both, since they map into the same pty table. | |
423 | The old pty devices are strictly for backwards compatibility. | |
424 | ||
425 | Wed Oct 11 12:45:24 1995 <[email protected]> | |
426 | ||
427 | * tty_io.c (disassociate_ctty): If disassociate_ctty is called by | |
428 | exit, perform an implicit vhangup on the tty. | |
429 | ||
430 | * pty.c (pty_close): When the master pty is closed, send a hangup | |
431 | to the slave pty. | |
432 | (pty_open): Use the flag TTY_SLAVE_CLOSED to test to see | |
433 | if there are any open slave ptys, instead of using | |
434 | tty->link->count. The old method got confused if there | |
435 | were processes that had hung-up file descriptors on the | |
436 | slave tty. | |
437 | ||
438 | Tue May 2 00:53:25 1995 <[email protected]> | |
439 | ||
440 | * tty_io.c (tty_set_ldisc): Wait until the output buffer is | |
441 | drained before closing the old line discipline --- needed | |
442 | in only one case: XON/XOFF processing. | |
443 | ||
444 | * n_tty.c (n_tty_close): Don't bother waiting until the output | |
445 | driver is closed; in general, the line discipline | |
446 | shouldn't care if the hardware is finished | |
447 | transmitting before the line discipline terminates. | |
448 | ||
449 | * tty_io.c (release_dev): Shutdown the line discipline after | |
450 | decrementing the tty count variable; but set the | |
451 | TTY_CLOSING flag so that we know that this tty structure | |
452 | isn't long for this world. | |
453 | ||
454 | * tty_io.c (init_dev): Add sanity code to check to see if | |
455 | TTY_CLOSING is set on a tty structure; if so, something | |
456 | bad has happened (probably a line discipline close blocked | |
457 | when it shouldn't have; so do a kernel printk and then | |
458 | return an error). | |
459 | ||
460 | Wed Apr 26 10:23:44 1995 Theodore Y. Ts'o <tytso@localhost> | |
461 | ||
462 | * tty_io.c (release_dev): Try to shutdown the line discipline | |
463 | *before* decrementing the tty count variable; this removes | |
464 | a potential race condition which occurs when the line | |
465 | discipline close blocks, and another process then tries | |
466 | open the same serial port. | |
467 | ||
468 | * serial.c (rs_hangup): When hanging up, flush the output buffer | |
469 | before shutting down the UART. Otherwise the line | |
470 | discipline close blocks waiting for the characters to get | |
471 | flushed, which never happens until the serial port gets reused. | |
472 | ||
473 | Wed Apr 12 08:06:16 1995 Theodore Y. Ts'o <tytso@localhost> | |
474 | ||
475 | * serial.c (do_serial_hangup, do_softint, check_modem_status, | |
476 | rs_init): Hangups are now scheduled via a separate tqueue | |
477 | structure in the async_struct structure, tqueue_hangup. | |
478 | This task is pushed on to the tq_schedule queue, so that | |
479 | it is processed synchronously by the scheduler. | |
480 | ||
481 | Sat Feb 18 12:13:51 1995 Theodore Y. Ts'o (tytso@rt-11) | |
482 | ||
483 | * tty_io.c (disassociate_ctty, tty_open, tty_ioctl): Clear | |
484 | current->tty_old_pgrp field when a session leader | |
485 | acquires a controlling tty, and after a session leader | |
486 | has disassociated from a controlling tty. | |
487 | ||
488 | Fri Feb 17 09:34:09 1995 Theodore Y. Ts'o (tytso@rt-11) | |
489 | ||
490 | * serial.c (rs_interrupt_single, rs_interrupt, rs_interrupt_multi): | |
491 | Change the number of passes made from 64 to be 256, | |
492 | configurable with the #define RS_ISR_PASS_LIMIT. | |
493 | ||
494 | * serial.c (rs_init, set_serial_info, get_serial_info, rs_close): | |
495 | Remove support for closing_wait2. Instead, set | |
496 | tty->closing and rely on the line discipline to prevent | |
497 | echo wars. | |
498 | ||
499 | * n_tty.c (n_tty_receive_char): IEXTEN does not need to be | |
500 | enabled in order for IXANY to be active. | |
501 | ||
502 | If tty->closing is set, then only process XON and XOFF | |
503 | characters. | |
504 | ||
505 | Sun Feb 12 23:57:48 1995 Theodore Y. Ts'o (tytso@rt-11) | |
506 | ||
507 | * serial.c (rs_timer): Change the interrupt poll time from 60 | |
508 | seconds to 10 seconds, configurable with the #define | |
509 | RS_STROBE_TIME. | |
510 | ||
511 | * serial.c (rs_interrupt_multi, startup, shutdown, rs_ioctl, | |
512 | set_multiport_struct, get_multiport_struct): Add | |
513 | provisions for a new type of interrupt service routine, | |
514 | which better supports multiple serial ports on a single | |
515 | IRQ. | |
516 | ||
517 | Sun Feb 5 19:35:11 1995 Theodore Y. Ts'o (tytso@rt-11) | |
518 | ||
519 | * tty_ioctl.c (n_tty_ioctl, set_termios, tty_wait_until_sent): | |
520 | * serial.c (rs_ioctl, rs_close): | |
521 | * cyclades.c (cy_ioctl, cy_close): | |
522 | * n_tty.c (n_tty_close): Rename wait_until_sent to | |
523 | tty_wait_until_sent, so that it's a better name to export | |
524 | in ksyms.c. | |
525 | ||
526 | Sat Feb 4 23:36:20 1995 Theodore Y. Ts'o (tytso@rt-11) | |
527 | ||
528 | * serial.c (rs_close): Added missing check for closing_wait2 being | |
529 | ASYNC_CLOSING_WAIT_NONE. | |
530 | ||
531 | Thu Jan 26 09:02:49 1995 Theodore Y. Ts'o (tytso@rt-11) | |
532 | ||
533 | * serial.c (rs_init, set_serial_info, get_serial_info, | |
534 | rs_close): Support close_wait in the serial driver. | |
535 | This is helpful for slow devices (like serial | |
536 | plotters) so that their outputs don't get flushed upon | |
537 | device close. This has to be configurable because | |
538 | normally we don't want ports to be hung up for long | |
539 | periods of time during a close when they are not | |
540 | connected to a device, or the device is powered off. | |
541 | ||
542 | The default is to wait 30 seconds; in the case of a | |
543 | very slow device, the close_wait timeout should be | |
544 | lengthened. If it is set to 0, the kernel will wait | |
545 | forever for all of the data to be transmitted. | |
546 | ||
547 | Thu Jan 17 01:17:20 1995 Theodore Y. Ts'o (tytso@rt-11) | |
548 | ||
549 | * serial.c (startup, change_speed, rs_init): Add support to detect | |
550 | the StarTech 16650 chip. Treat it as a 16450 for now, | |
551 | because of its FIFO bugs. | |
552 | ||
553 | Thu Jan 5 21:21:57 1995 <[email protected]> | |
554 | ||
555 | * serial.c: (receive_char): Added counter to prevent infinite loop | |
556 | when a PCMCIA serial device is ejected. | |
557 | ||
558 | Thu Dec 29 17:53:48 1994 <[email protected]> | |
559 | ||
560 | * tty_io.c (check_tty_count): New procedure which checks | |
561 | tty->count to make sure that it matches with the number of | |
562 | open file descriptors which point at the structure. If | |
563 | the number doesn't match, it prints a warning message. | |
564 | ||
565 | Wed Dec 28 15:41:51 1994 <[email protected]> | |
566 | ||
567 | * tty_io.c (do_tty_hangup, disassociate_ctty): At hangup time, | |
568 | save the tty's current foreground process group in the | |
569 | session leader's task structure. When the session leader | |
570 | terminates, send a SIGHUP, SIGCONT to that process group. | |
571 | This is not required by POSIX, but it's not prohibited | |
572 | either, and it appears to be the least intrusive way | |
573 | to fix a problem that dialup servers have with | |
574 | orphaned process groups caused by modem hangups. | |
575 | ||
576 | Thu Dec 8 14:52:11 1994 <[email protected]> | |
577 | ||
578 | * serial.c (rs_ioctl): Don't allow most ioctl's if the serial port | |
579 | isn't initialized. | |
580 | ||
581 | * serial.c (rs_close): Don't clear the IER if the serial port | |
582 | isn't initialized. | |
583 | ||
584 | * serial.c (block_til_ready): Don't try to block on the dialin | |
585 | port if the serial port isn't initialized. | |
586 | ||
587 | Wed Dec 7 10:48:30 1994 Si Park ([email protected]) | |
588 | * tty_io.c (tty_register_driver): Fix bug when linking onto | |
589 | the tty_drivers list. We now test that there are elements | |
590 | already on the list before setting the back link from the | |
591 | first element to the new driver. | |
592 | ||
593 | * tty_io.c (tty_unregister_driver): Fix bug in unlinking the | |
594 | specified driver from the tty_drivers list. We were not | |
595 | setting the back link correctly. This used to result in | |
596 | a dangling back link pointer and cause panics on the next | |
597 | call to get_tty_driver(). | |
598 | ||
599 | Tue Nov 29 10:21:09 1994 Theodore Y. Ts'o (tytso@rt-11) | |
600 | ||
601 | * tty_io.c (tty_unregister_driver): Fix bug in | |
602 | tty_unregister_driver where the pointer to the refcount is | |
603 | tested, instead of the refcount itself. This caused | |
604 | tty_unregister_driver to always return EBUSY. | |
605 | ||
606 | Sat Nov 26 11:59:24 1994 Theodore Y. Ts'o (tytso@rt-11) | |
607 | ||
608 | * tty_io.c (tty_ioctl): Add support for the new ioctl | |
609 | TIOCTTYGSTRUCT, which allow a kernel debugging program | |
610 | direct read access to the tty and tty_driver structures. | |
611 | ||
612 | Fri Nov 25 17:26:22 1994 Theodore Y. Ts'o (tytso@rt-11) | |
613 | ||
614 | * serial.c (rs_set_termios): Don't wake up processes blocked in | |
615 | open when the CLOCAL flag changes, since a blocking | |
616 | open only samples the CLOCAL flag once when it blocks, | |
617 | and doesn't check it again. (n.b. FreeBSD has a | |
618 | different behavior for blocking opens; it's not clear | |
619 | whether Linux or FreeBSD's interpretation is correct. | |
620 | POSIX doesn't give clear guidance on this issue, so | |
621 | this may change in the future....) | |
622 | ||
623 | * serial.c (block_til_ready): Use the correct termios structure to | |
624 | check the CLOCAL flag. If the cuaXX device is active, | |
625 | then check the saved termios for the ttySXX device. | |
626 | Otherwise, use the currently active termios structure. | |
627 | ||
628 | Sun Nov 6 21:05:44 1994 Theodore Y. Ts'o (tytso@rt-11) | |
629 | ||
630 | * serial.c (change_speed): Add support for direct access of | |
631 | 57,600 and 115,200 bps. | |
632 | ||
633 | Wed Nov 2 10:32:36 1994 Theodore Y. Ts'o (tytso@rt-11) | |
634 | ||
635 | * n_tty.c (n_tty_receive_room): Only allow excess characters | |
636 | through if we are in ICANON mode *and* there are other no | |
637 | pending lines in the buffer. Otherwise cut and paste over | |
638 | 4k breaks. | |
639 | ||
640 | Sat Oct 29 18:17:34 1994 Theodore Y. Ts'o (tytso@rt-11) | |
641 | ||
642 | * serial.c (rs_ioctl, get_lsr_info): Added patch suggested by Arne | |
643 | Riiber so that user mode programs can tell when the | |
644 | transmitter shift register is empty. | |
645 | ||
646 | Thu Oct 27 23:14:29 1994 Theodore Y. Ts'o (tytso@rt-11) | |
647 | ||
648 | * tty_ioctl.c (wait_until_sent): Added debugging printk statements | |
649 | (under the #ifdef TTY_DEBUG_WAIT_UNTIL_SENT) | |
650 | ||
651 | * serial.c (rs_interrupt, rs_interrupt_single, receive_chars, | |
652 | change_speed, rs_close): rs_close now disables receiver | |
653 | interrupts when closing the serial port. This allows the | |
654 | serial port to close quickly when Linux and a modem (or a | |
655 | mouse) are engaged in an echo war; when closing the serial | |
656 | port, we now first stop listening to incoming characters, | |
657 | and *then* wait for the transmit buffer to drain. | |
658 | ||
659 | In order to make this change, the info->read_status_mask | |
660 | is now used to control what bits of the line status | |
661 | register are looked at in the interrupt routine in all | |
662 | cases; previously it was only used in receive_chars to | |
663 | select a few of the status bits. | |
664 | ||
665 | Mon Oct 24 23:36:21 1994 Theodore Y. Ts'o (tytso@rt-11) | |
666 | ||
667 | * serial.c (rs_close): Add a timeout to the transmitter flush | |
668 | loop; this is just a sanity check in case we have flaky | |
669 | (or non-existent-but-configured-by-the-user) hardware. | |
670 | ||
671 | Fri Oct 21 09:37:23 1994 Theodore Y. Ts'o (tytso@rt-11) | |
672 | ||
673 | * tty_io.c (tty_fasync): When asynchronous I/O is enabled, if the | |
674 | process or process group has not be specified yet, set it | |
675 | to be the tty's process group, or if that is not yet set, | |
676 | to the current process's pid. | |
677 | ||
678 | Thu Oct 20 23:17:28 1994 Theodore Y. Ts'o (tytso@rt-11) | |
679 | ||
680 | * n_tty.c (n_tty_receive_room): If we are doing input | |
681 | canonicalization, let as many characters through as | |
682 | possible, so that the excess characters can be "beeped". | |
683 | ||
684 | Tue Oct 18 10:02:43 1994 Theodore Y. Ts'o (tytso@rt-11) | |
685 | ||
686 | * serial.c (rs_start): Removed an incorrect '!' that was | |
687 | preventing transmit interrupts from being re-enabled in | |
688 | rs_start(). Fortunately in most cases it would be | |
689 | re-enabled elsewhere, but this still should be fixed | |
690 | correctly. | |
691 | ||
692 | Sun Oct 9 23:46:03 1994 Theodore Y. Ts'o (tytso@rt-11) | |
693 | ||
694 | * tty_io.c (do_tty_hangup): If the tty driver flags | |
695 | TTY_DRIVER_RESET_TERMIOS is set, then reset the termios | |
696 | settings back to the driver's initial configuration. This | |
697 | allows the termios settings to be reset even if a process | |
698 | has hung up file descriptors keeping a pty's termios from | |
699 | being freed and reset. | |
700 | ||
701 | * tty_io.c (release_dev): Fix memory leak. The pty's other | |
702 | termios structure should also be freed. | |
703 | ||
704 | * serial.c (rs_close, shutdown): Change how we wait for the | |
705 | transmitter to completely drain before shutting down the | |
706 | serial port. We now do it by scheduling in another | |
707 | process instead of busy looping with the interrupts turned | |
708 | on. This may eliminate some race condition problems that | |
709 | some people seem to be reporting. | |
710 | ||
711 | Sun Sep 25 14:18:14 1994 Theodore Y. Ts'o (tytso@rt-11) | |
712 | ||
713 | * tty_io.c (release_dev): When freeing a tty make sure that both | |
714 | the tty and the o_tty (if present) aren't a process's | |
715 | controlling tty. (Previously, we only checked the tty.) | |
716 | ||
717 | * serial.c (change_speed): Only enable the Modem Status | |
718 | Interrupt for a port if CLOCAL is not set or CRTSCTS | |
719 | is set. If we're not checking the carrier detect and | |
720 | CTS line, there's no point in enabling the modem | |
721 | status interrupt. This will save spurious interrupts | |
722 | from slowing down systems who have terminals that | |
723 | don't support either line. (Of course, if you want | |
724 | only one of CD and CTS support, you will need a | |
725 | properly wired serial cable.) | |
726 | ||
727 | Thu Sep 22 08:32:48 1994 Theodore Y. Ts'o (tytso@rt-11) | |
728 | ||
729 | * tty_io.c (do_SAK): Return if tty is null. | |
730 | ||
731 | * tty_io.c (_tty_name): Return "NULL tty" if the passed in tty is | |
732 | NULL. | |
733 | ||
734 | Sat Sep 17 13:19:25 1994 Theodore Y. Ts'o (tytso@rt-11) | |
735 | ||
736 | * tty_ioctl.c (n_tty_ioctl): Fix TIOCGLCKTRMIOS and | |
737 | TIOCSLCKTRMIOS, which were totally broken. Remove | |
738 | extra indirection from argument; it should be a struct | |
739 | termios *, not a struct termios **. | |
740 | &real_tty->termios_locked should have been | |
741 | real_tty->termios_locked. This caused us to be | |
742 | reading and writing the termios_locked structure to | |
743 | random places in kernel memory. | |
744 | ||
745 | * tty_io.c (release_dev): Oops! Forgot to delete a critical kfree | |
746 | of the locked_termios. This leaves the locked_termios | |
747 | structure pointed at a freed object. | |
748 | ||
749 | Fri Sep 16 08:13:25 1994 Theodore Y. Ts'o (tytso@rt-11) | |
750 | ||
751 | * tty_io.c (tty_open): Don't check for an exclusive open until | |
752 | after the device specific open routine has been called. | |
753 | Otherwise, the serial device ref counting will be screwed | |
754 | up. | |
755 | ||
756 | * serial.c (rs_open, block_til_ready): Don't set termios structure | |
757 | until after block_til_ready has returned successfully. | |
758 | Modify block_til_ready to check the normal_termios | |
759 | structure directly, so it doesn't rely on termios being | |
760 | set before it's called. | |
761 | ||
762 | Thu Sep 15 23:34:01 1994 Theodore Y. Ts'o (tytso@rt-11) | |
763 | ||
764 | * serial.c (rs_close): Turn off interrupts during rs_close() to | |
765 | prevent a race condition with the hangup code (which | |
766 | runs during a software interrupt). | |
767 | ||
768 | * tty_io.c (release_dev): Don't free the locked_termios structure; | |
769 | its state must be retained across device opens. | |
770 | ||
771 | ||
772 | * tty_io.c (tty_unregister_driver): Added function to unregister a | |
773 | tty driver. (For loadable device drivers.) | |
774 | ||
775 |