patch-2.2.13 linux/drivers/char/serial.c
Next file: linux/drivers/char/sx.c
Previous file: linux/drivers/char/random.c
Back to the patch index
Back to the overall index
- Lines: 38
- Date:
Tue Oct 19 17:14:00 1999
- Orig file:
v2.2.12/linux/drivers/char/serial.c
- Orig date:
Mon Aug 9 16:05:55 1999
diff -u --recursive --new-file v2.2.12/linux/drivers/char/serial.c linux/drivers/char/serial.c
@@ -1693,7 +1693,7 @@
if ((new_serial.type != state->type) ||
(new_serial.xmit_fifo_size <= 0))
new_serial.xmit_fifo_size =
- uart_config[state->type].dfl_xmit_fifo_size;
+ uart_config[new_serial.type].dfl_xmit_fifo_size;
/* Make sure address is not already in use */
if (new_serial.type) {
@@ -2782,7 +2782,7 @@
off_t begin = 0;
len += sprintf(page, "serinfo:1.0 driver:%s\n", serial_version);
- for (i = 0; i < NR_PORTS && len < 4000; i++) {
+ for (i = 0; i < NR_PORTS && len < 3900; i++) {
l = line_info(page + len, &rs_table[i]);
len += l;
if (len+begin > off+count)
@@ -3289,6 +3289,7 @@
unsigned long flags;
int e1, e2;
int i;
+ struct async_struct *info;
/* printk("Unloading %s: version %s\n", serial_name, serial_version); */
save_flags(flags);
@@ -3308,6 +3309,11 @@
for (i = 0; i < NR_PORTS; i++) {
if (rs_table[i].type != PORT_UNKNOWN)
release_region(rs_table[i].port, 8);
+ info = rs_table[i].info;
+ if (info) {
+ rs_table[i].info = NULL;
+ kfree_s(info, sizeof(struct async_struct));
+ }
}
if (tmp_buf) {
free_page((unsigned long) tmp_buf);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)