You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(135) |
Nov
(123) |
Dec
(83) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(244) |
Feb
(72) |
Mar
(221) |
Apr
(91) |
May
(104) |
Jun
(93) |
Jul
(78) |
Aug
(1) |
Sep
(1) |
Oct
(29) |
Nov
(98) |
Dec
(20) |
2003 |
Jan
|
Feb
(21) |
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
(18) |
Sep
(18) |
Oct
(23) |
Nov
(12) |
Dec
(6) |
2004 |
Jan
(2) |
Feb
(32) |
Mar
|
Apr
(12) |
May
(11) |
Jun
(11) |
Jul
|
Aug
(9) |
Sep
|
Oct
(15) |
Nov
|
Dec
|
2005 |
Jan
|
Feb
(2) |
Mar
(11) |
Apr
(6) |
May
(1) |
Jun
(9) |
Jul
(7) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2006 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2007 |
Jan
|
Feb
(2) |
Mar
|
Apr
(25) |
May
(2) |
Jun
|
Jul
(5) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2008 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2009 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2010 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(13) |
Oct
|
Nov
(2) |
Dec
(2) |
2011 |
Jan
|
Feb
|
Mar
(10) |
Apr
(10) |
May
(1) |
Jun
(6) |
Jul
|
Aug
(2) |
Sep
(5) |
Oct
|
Nov
|
Dec
|
From: James S. <jsi...@us...> - 2001-12-08 00:58:10
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/video In directory usw-pr-cvs1:/tmp/cvs-serv23944/drivers/video Modified Files: fbcon.c mdacon.c vgacon.c Log Message: Don't need to pass in struct tty_driver to create_vt anymore. Plus I removed the need for tty specific stuff in the console display drivers. Index: fbcon.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/fbcon.c,v retrieving revision 1.58 retrieving revision 1.59 diff -u -d -r1.58 -r1.59 --- fbcon.c 2001/11/22 18:00:42 1.58 +++ fbcon.c 2001/12/08 00:58:07 1.59 @@ -722,14 +722,6 @@ // con_invert_region: fbcon_invert_region, }; -/* FIXME!!!! Broke. Assume one framebuffer device. Just done to make it work - again. */ -static struct tty_struct *fbcon_table[MAX_NR_USER_CONSOLES]; -static struct termios *fbcon_termios[MAX_NR_USER_CONSOLES]; -static struct termios *fbcon_termios_locked[MAX_NR_USER_CONSOLES]; -static int fbcon_refcount; -struct tty_driver fbcon_driver; - int __init fb_console_init(void) { const char *display_desc = NULL; @@ -742,15 +734,9 @@ if (!vt) return -ENOMEM; memset(vt, 0, sizeof(struct vt_struct)); - memset(&fbcon_driver, 0, sizeof(struct tty_driver)); - fbcon_driver.refcount = &fbcon_refcount; - fbcon_driver.table = fbcon_table; - fbcon_driver.termios = fbcon_termios; - fbcon_driver.termios_locked = fbcon_termios_locked; - vt->kmalloced = 1; vt->vt_sw = &fb_con; - display_desc = create_vt(&fbcon_driver, vt, 0); + display_desc = create_vt(vt, 0); if (!display_desc) return -ENODEV; printk("Console: %s %s %dx%d\n", vt->default_mode->vc_can_do_color ? "colour" : "mono",display_desc, vt->default_mode->vc_cols, vt->default_mode->vc_rows); Index: mdacon.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/mdacon.c,v retrieving revision 1.39 retrieving revision 1.40 diff -u -d -r1.39 -r1.40 --- mdacon.c 2001/10/29 22:58:43 1.39 +++ mdacon.c 2001/12/08 00:58:07 1.40 @@ -67,12 +67,6 @@ static enum { TYPE_MDA, TYPE_HERC, TYPE_HERCPLUS, TYPE_HERCCOLOR } mda_type; static char *mda_type_name; -static struct tty_struct *mdacon_table[MAX_NR_USER_CONSOLES]; -static struct termios *mdacon_termios[MAX_NR_USER_CONSOLES]; -static struct termios *mdacon_termios_locked[MAX_NR_USER_CONSOLES]; -static int mdacon_refcount; -struct tty_driver mdacon_driver; - static struct vc_data mda_default; static struct vt_struct mda_vt; @@ -591,12 +585,6 @@ { const char *display_desc = NULL; - memset(&mdacon_driver, 0, sizeof(struct tty_driver)); - mdacon_driver.refcount = &mdacon_refcount; - mdacon_driver.table = mdacon_table; - mdacon_driver.termios = mdacon_termios; - mdacon_driver.termios_locked = mdacon_termios_locked; - memset(&mda_vt, 0, sizeof(struct vt_struct)); #ifdef MODULE mda_vt.kmalloced = 1; @@ -604,7 +592,7 @@ mda_vt.kmalloced = 0; #endif mda_vt.vt_sw = &mda_con; - display_desc = create_vt(&mdacon_driver, &mda_vt, 1); + display_desc = create_vt(&mda_vt, 1); if (!display_desc) return -ENODEV; printk("Console: mono %s %dx%d\n", display_desc, mda_vt.default_mode->vc_cols, mda_vt.default_mode->vc_rows); Index: vgacon.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/vgacon.c,v retrieving revision 1.58 retrieving revision 1.59 diff -u -d -r1.58 -r1.59 --- vgacon.c 2001/12/07 00:56:47 1.58 +++ vgacon.c 2001/12/08 00:58:07 1.59 @@ -965,7 +965,7 @@ vga_vt.kmalloced = 0; #endif vga_vt.vt_sw = &vga_con; - display_desc = create_vt(NULL, &vga_vt, 1); + display_desc = create_vt(&vga_vt, 1); if (!display_desc) return -ENODEV; printk("Console: %s %s %dx%d\n", vga_vt.default_mode->vc_can_do_color ? "colour" : "mono", |
From: James S. <jsi...@us...> - 2001-12-08 00:58:10
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/char In directory usw-pr-cvs1:/tmp/cvs-serv23944/drivers/char Modified Files: vt.c Log Message: Don't need to pass in struct tty_driver to create_vt anymore. Plus I removed the need for tty specific stuff in the console display drivers. Index: vt.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/vt.c,v retrieving revision 1.113 retrieving revision 1.114 diff -u -d -r1.113 -r1.114 --- vt.c 2001/12/08 00:38:09 1.113 +++ vt.c 2001/12/08 00:58:07 1.114 @@ -1499,7 +1499,7 @@ /* * Mapping and unmapping VT display */ -const char *create_vt(struct tty_driver *drv, struct vt_struct *vt, int init) +const char *create_vt(struct vt_struct *vt, int init) { const char *display_desc = vt->vt_sw->con_startup(vt, init); |
From: James S. <jsi...@us...> - 2001-12-08 00:54:04
|
Update of /cvsroot/linuxconsole/ruby/linux/include/linux In directory usw-pr-cvs1:/tmp/cvs-serv23193/include/linux Modified Files: tty_driver.h Log Message: Almost done. Now to make the lock shared between the console layer and the tty layer. Index: tty_driver.h =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/include/linux/tty_driver.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- tty_driver.h 2001/10/08 04:27:13 1.3 +++ tty_driver.h 2001/12/08 00:54:01 1.4 @@ -131,7 +131,7 @@ int flags; /* tty driver flags */ int may_schedule; /* when we can schedule */ int *refcount; /* for loadable tty drivers */ - struct semaphore tty_lock;/* access control for printk and tty layer */ + struct semaphore *tty_lock;/* access control for printk and tty layer */ struct proc_dir_entry *proc_entry; /* /proc fs entry */ struct tty_driver *other; /* only used for the PTY driver */ |
From: James S. <jsi...@us...> - 2001-12-08 00:54:04
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/char In directory usw-pr-cvs1:/tmp/cvs-serv23193/drivers/char Modified Files: tty_io.c Log Message: Almost done. Now to make the lock shared between the console layer and the tty layer. Index: tty_io.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/tty_io.c,v retrieving revision 1.40 retrieving revision 1.41 diff -u -d -r1.40 -r1.41 --- tty_io.c 2001/12/07 00:17:55 1.40 +++ tty_io.c 2001/12/08 00:54:01 1.41 @@ -2078,7 +2078,9 @@ tty_drivers = driver; //if (!(driver->flags & TTY_DRIVER_CONSOLE)) - // init_MUTEX(&driver->tty_lock); + + driver->tty_lock = kmalloc(sizeof(struct semaphore), GFP_KERNEL); + init_MUTEX(driver->tty_lock); if ( !(driver->flags & TTY_DRIVER_NO_DEVFS) ) { for(i = 0; i < driver->num; i++) |
From: James S. <jsi...@us...> - 2001-12-08 00:38:12
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/char In directory usw-pr-cvs1:/tmp/cvs-serv20474 Modified Files: vt.c Log Message: A really stupid mistake. Now memset is before everything. Index: vt.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/vt.c,v retrieving revision 1.112 retrieving revision 1.113 diff -u -d -r1.112 -r1.113 --- vt.c 2001/12/07 00:56:47 1.112 +++ vt.c 2001/12/08 00:38:09 1.113 @@ -1579,13 +1579,14 @@ #endif kbd_init(); console_map_init(); - + + memset(&vty_driver, 0, sizeof(struct tty_driver)); + vty_driver.refcount = &vty_refcount; vty_driver.table = vty_table; vty_driver.termios = vty_termios; vty_driver.termios_locked = vty_termios_locked; - memset(&vty_driver, 0, sizeof(struct tty_driver)); vty_driver.magic = TTY_DRIVER_MAGIC; vty_driver.name = "vc/%d"; vty_driver.name_base = 0; //current_vc; |
From: James S. <jsi...@us...> - 2001-12-07 00:56:50
|
Update of /cvsroot/linuxconsole/ruby/linux/kernel In directory usw-pr-cvs1:/tmp/cvs-serv25433/kernel Modified Files: printk.c Log Message: This breaks things and oops but I really need to save my work until I get home to finish it. Index: printk.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/kernel/printk.c,v retrieving revision 1.20 retrieving revision 1.21 diff -u -d -r1.20 -r1.21 --- printk.c 2001/12/07 00:17:55 1.20 +++ printk.c 2001/12/07 00:56:47 1.21 @@ -534,11 +534,12 @@ wake_up_interruptible(&log_wait); up(&con->lock); } - +/* if (driver) { driver->may_schedule = 0; up(&driver->tty_lock); } +*/ } /** console_conditional_schedule - yield the CPU if required |
From: James S. <jsi...@us...> - 2001-12-07 00:56:50
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/char In directory usw-pr-cvs1:/tmp/cvs-serv25433/drivers/char Modified Files: vt.c Log Message: This breaks things and oops but I really need to save my work until I get home to finish it. Index: vt.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/vt.c,v retrieving revision 1.111 retrieving revision 1.112 diff -u -d -r1.111 -r1.112 --- vt.c 2001/12/06 23:32:50 1.111 +++ vt.c 2001/12/07 00:56:47 1.112 @@ -1505,35 +1505,6 @@ if (!display_desc) return NULL; - /* Must be done before register_console */ - drv->magic = TTY_DRIVER_MAGIC; - drv->name = "vc/%d"; - drv->name_base = current_vc; - drv->major = TTY_MAJOR; - drv->minor_start = current_vc; - drv->num = MAX_NR_USER_CONSOLES; - drv->type = TTY_DRIVER_TYPE_CONSOLE; - drv->init_termios = tty_std_termios; - drv->flags = TTY_DRIVER_REAL_RAW | TTY_DRIVER_RESET_TERMIOS; - /* Tell tty_register_driver() to skip consoles because they are - * registered before kmalloc() is ready. We'll patch them in later. - * See comments at console_init(); see also con_init_devfs(). - */ - drv->flags |= TTY_DRIVER_NO_DEVFS; - drv->open = vt_open; - drv->close = vt_close; - drv->write = vt_write; - drv->write_room = vt_write_room; - drv->put_char = vt_put_char; - drv->flush_chars = vt_flush_chars; - drv->chars_in_buffer = vt_chars_in_buffer; - drv->ioctl = vt_ioctl; - drv->stop = vt_stop; - drv->start = vt_start; - drv->throttle = vt_throttle; - drv->unthrottle = vt_unthrottle; - if (tty_register_driver(drv)) - printk("Couldn't register console driver\n"); /* Now to setup the VT */ vt->first_vc = current_vc; init_MUTEX(&vt->lock); @@ -1592,6 +1563,12 @@ #endif } +static struct tty_struct *vty_table[MAX_NR_USER_CONSOLES]; +static struct termios *vty_termios[MAX_NR_USER_CONSOLES]; +static struct termios *vty_termios_locked[MAX_NR_USER_CONSOLES]; +struct tty_driver vty_driver; +static int vty_refcount; + int __init vty_init(void) { #if defined (CONFIG_PROM_CONSOLE) @@ -1602,6 +1579,36 @@ #endif kbd_init(); console_map_init(); + + vty_driver.refcount = &vty_refcount; + vty_driver.table = vty_table; + vty_driver.termios = vty_termios; + vty_driver.termios_locked = vty_termios_locked; + + memset(&vty_driver, 0, sizeof(struct tty_driver)); + vty_driver.magic = TTY_DRIVER_MAGIC; + vty_driver.name = "vc/%d"; + vty_driver.name_base = 0; //current_vc; + vty_driver.major = TTY_MAJOR; + vty_driver.minor_start = 0; //current_vc; + vty_driver.num = MAX_NR_USER_CONSOLES; + vty_driver.type = TTY_DRIVER_TYPE_CONSOLE; + vty_driver.init_termios = tty_std_termios; + vty_driver.flags = TTY_DRIVER_REAL_RAW | TTY_DRIVER_RESET_TERMIOS; + vty_driver.open = vt_open; + vty_driver.close = vt_close; + vty_driver.write = vt_write; + vty_driver.write_room = vt_write_room; + vty_driver.put_char = vt_put_char; + vty_driver.flush_chars = vt_flush_chars; + vty_driver.chars_in_buffer = vt_chars_in_buffer; + vty_driver.ioctl = vt_ioctl; + vty_driver.stop = vt_stop; + vty_driver.start = vt_start; + vty_driver.throttle = vt_throttle; + vty_driver.unthrottle = vt_unthrottle; + if (tty_register_driver(&vty_driver)) + printk("Couldn't register console driver\n"); vcs_init(); return 0; } |
From: James S. <jsi...@us...> - 2001-12-07 00:56:50
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/video In directory usw-pr-cvs1:/tmp/cvs-serv25433/drivers/video Modified Files: vgacon.c Log Message: This breaks things and oops but I really need to save my work until I get home to finish it. Index: vgacon.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/vgacon.c,v retrieving revision 1.57 retrieving revision 1.58 diff -u -d -r1.57 -r1.58 --- vgacon.c 2001/10/29 22:58:43 1.57 +++ vgacon.c 2001/12/07 00:56:47 1.58 @@ -63,12 +63,6 @@ */ #undef TRIDENT_GLITCH -static struct tty_struct *vgacon_table[MAX_NR_USER_CONSOLES]; -static struct termios *vgacon_termios[MAX_NR_USER_CONSOLES]; -static struct termios *vgacon_termios_locked[MAX_NR_USER_CONSOLES]; -static int vgacon_refcount; -struct tty_driver vgacon_driver; - static struct vc_data vga_default; static struct vt_struct vga_vt; @@ -964,12 +958,6 @@ { const char *display_desc = NULL; - memset(&vgacon_driver, 0, sizeof(struct tty_driver)); - vgacon_driver.refcount = &vgacon_refcount; - vgacon_driver.table = vgacon_table; - vgacon_driver.termios = vgacon_termios; - vgacon_driver.termios_locked = vgacon_termios_locked; - memset(&vga_vt, 0, sizeof(struct vt_struct)); #ifdef MODULE vga_vt.kmalloced = 1; @@ -977,7 +965,7 @@ vga_vt.kmalloced = 0; #endif vga_vt.vt_sw = &vga_con; - display_desc = create_vt(&vgacon_driver, &vga_vt, 1); + display_desc = create_vt(NULL, &vga_vt, 1); if (!display_desc) return -ENODEV; printk("Console: %s %s %dx%d\n", vga_vt.default_mode->vc_can_do_color ? "colour" : "mono", |
From: James S. <jsi...@us...> - 2001-12-07 00:17:58
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/char In directory usw-pr-cvs1:/tmp/cvs-serv16225/drivers/char Modified Files: tty_io.c Log Message: More changes over to new console lock. Index: tty_io.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/tty_io.c,v retrieving revision 1.39 retrieving revision 1.40 diff -u -d -r1.39 -r1.40 --- tty_io.c 2001/12/06 23:32:50 1.39 +++ tty_io.c 2001/12/07 00:17:55 1.40 @@ -2077,8 +2077,8 @@ if (tty_drivers) tty_drivers->prev = driver; tty_drivers = driver; - if (!(driver->flags & TTY_DRIVER_CONSOLE)) - init_MUTEX(&driver->tty_lock); + //if (!(driver->flags & TTY_DRIVER_CONSOLE)) + // init_MUTEX(&driver->tty_lock); if ( !(driver->flags & TTY_DRIVER_NO_DEVFS) ) { for(i = 0; i < driver->num; i++) |
From: James S. <jsi...@us...> - 2001-12-07 00:17:58
|
Update of /cvsroot/linuxconsole/ruby/linux/kernel In directory usw-pr-cvs1:/tmp/cvs-serv16225/kernel Modified Files: printk.c Log Message: More changes over to new console lock. Index: printk.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/kernel/printk.c,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20 --- printk.c 2001/12/07 00:00:08 1.19 +++ printk.c 2001/12/07 00:17:55 1.20 @@ -286,15 +286,13 @@ */ static void __call_console_drivers(struct console *con, unsigned long start, unsigned long end) { - struct tty_driver *driver = get_tty_driver(con->device(con)); - /* Make sure that we print immediately */ if (oops_in_progress) - init_MUTEX(&driver->tty_lock); + init_MUTEX(&con->lock); - down(&driver->tty_lock); + down(&con->lock); con->write(con, &LOG_BUF(start), end - start); - up(&driver->tty_lock); + up(&con->lock); } /* @@ -396,7 +394,6 @@ unsigned long semi_random; } printk_buf; static int log_level_unknown = 1; - struct tty_driver *driver; unsigned long sr_copy; unsigned long flags; struct console *con; @@ -450,11 +447,8 @@ */ spin_unlock(&console_lock); if ((con->flags & CON_ENABLED) && con->write) { - driver = get_tty_driver(con->device(con)); - if (driver && !down_trylock(&driver->tty_lock)) { - driver->may_schedule = 0; + if (!down_trylock(&con->lock)) release_console_sem(con->device(con)); - } } spin_lock(&console_lock); } @@ -473,14 +467,22 @@ */ void acquire_console_sem(kdev_t device) { - struct tty_driver *driver = get_tty_driver(device); + struct console *con; if (in_interrupt()) BUG(); - - if (driver) { - down(&driver->tty_lock); - driver->may_schedule = 1; + + spin_lock(&console_lock); + /* Look for new messages */ + for (con = console_drivers; con; con = con->next) { + if (con->device(con) == device) + break; + } + spin_unlock(&console_lock); + + if (con) { + down(&con->lock); + //driver->may_schedule = 1; } } EXPORT_SYMBOL(acquire_console_sem); @@ -530,7 +532,9 @@ spin_unlock_irqrestore(&logbuf_lock, flags); if (must_wake_klogd && !oops_in_progress) wake_up_interruptible(&log_wait); + up(&con->lock); } + if (driver) { driver->may_schedule = 0; up(&driver->tty_lock); @@ -567,7 +571,6 @@ */ void register_console(struct console * console) { - struct tty_driver *driver; unsigned long flags; int i; @@ -625,11 +628,7 @@ } spin_unlock(&console_lock); - driver = get_tty_driver(console->device(console)); - if (driver) { - init_MUTEX(&driver->tty_lock); - driver->flags |= TTY_DRIVER_CONSOLE; - } + init_MUTEX(&console->lock); if (console->flags & CON_PRINTBUFFER) { /* |
From: James S. <jsi...@us...> - 2001-12-07 00:17:58
|
Update of /cvsroot/linuxconsole/ruby/linux/include/linux In directory usw-pr-cvs1:/tmp/cvs-serv16225/include/linux Modified Files: console.h Log Message: More changes over to new console lock. Index: console.h =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/include/linux/console.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- console.h 2001/08/05 22:58:18 1.5 +++ console.h 2001/12/07 00:17:55 1.6 @@ -47,6 +47,7 @@ kdev_t (*device)(struct console *); int (*wait_key)(struct console *); int (*setup)(struct console *, char *); + struct semaphore lock; short flags; short index; int cflag; |
From: James S. <jsi...@us...> - 2001-12-07 00:00:12
|
Update of /cvsroot/linuxconsole/ruby/linux/kernel In directory usw-pr-cvs1:/tmp/cvs-serv12464 Modified Files: printk.c Log Message: Fixed a spinlock issue which I believe was locking SMP machines. Index: printk.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/kernel/printk.c,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- printk.c 2001/12/06 23:32:51 1.18 +++ printk.c 2001/12/07 00:00:08 1.19 @@ -448,6 +448,7 @@ * We own the drivers list. We can drop the lock and * let release_console_sem() print the text */ + spin_unlock(&console_lock); if ((con->flags & CON_ENABLED) && con->write) { driver = get_tty_driver(con->device(con)); if (driver && !down_trylock(&driver->tty_lock)) { @@ -455,6 +456,7 @@ release_console_sem(con->device(con)); } } + spin_lock(&console_lock); } spin_unlock(&console_lock); return printed_len; @@ -475,8 +477,11 @@ if (in_interrupt()) BUG(); - down(&driver->tty_lock); - driver->may_schedule = 1; + + if (driver) { + down(&driver->tty_lock); + driver->may_schedule = 1; + } } EXPORT_SYMBOL(acquire_console_sem); @@ -502,15 +507,15 @@ unsigned long flags; struct console *con; - if (driver->flags & TTY_DRIVER_CONSOLE) { - spin_lock(&console_lock); - /* Look for new messages */ - for (con = console_drivers; con; con = con->next) { - if (con->device(con) == device) - break; - } - spin_unlock(&console_lock); + spin_lock(&console_lock); + /* Look for new messages */ + for (con = console_drivers; con; con = con->next) { + if (con->device(con) == device) + break; + } + spin_unlock(&console_lock); + if (con) { for ( ; ; ) { spin_lock_irqsave(&logbuf_lock, flags); must_wake_klogd |= log_start - log_end; @@ -526,8 +531,10 @@ if (must_wake_klogd && !oops_in_progress) wake_up_interruptible(&log_wait); } - driver->may_schedule = 0; - up(&driver->tty_lock); + if (driver) { + driver->may_schedule = 0; + up(&driver->tty_lock); + } } /** console_conditional_schedule - yield the CPU if required @@ -638,12 +645,10 @@ int unregister_console(struct console * console) { - struct tty_driver *driver = get_tty_driver(console->device(console)); struct console *a,*b; int res = 1; - if (driver) - release_console_sem(console->device(console)); + release_console_sem(console->device(console)); spin_lock(&console_lock); if (console_drivers == console) { |
From: James S. <jsi...@us...> - 2001-12-06 23:32:53
|
Update of /cvsroot/linuxconsole/ruby/linux/kernel In directory usw-pr-cvs1:/tmp/cvs-serv5434/kernel Modified Files: printk.c Log Message: Start of reworking the console lock. Index: printk.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/kernel/printk.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- printk.c 2001/10/08 04:30:38 1.17 +++ printk.c 2001/12/06 23:32:51 1.18 @@ -14,6 +14,9 @@ * man...@co... * Rewrote bits to get rid of console_lock * 01Mar01 Andrew Morton <an...@uo...> + * Added finer grain locking for the console system. Also made it more + * VT independent. + * 11-28-2001 James Simmons <jsi...@tr...> */ #include <linux/mm.h> |
From: James S. <jsi...@us...> - 2001-12-06 23:32:53
|
Update of /cvsroot/linuxconsole/ruby/linux/include/linux In directory usw-pr-cvs1:/tmp/cvs-serv5434/include/linux Modified Files: tty.h Log Message: Start of reworking the console lock. Index: tty.h =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/include/linux/tty.h,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- tty.h 2001/08/05 22:58:18 1.10 +++ tty.h 2001/12/06 23:32:51 1.11 @@ -416,6 +416,10 @@ /* vt.c */ +extern int vty_init(void); + +/* vt_ioctl.c */ + extern int vt_ioctl(struct tty_struct *tty, struct file * file, unsigned int cmd, unsigned long arg); |
From: James S. <jsi...@us...> - 2001-12-06 23:32:53
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/char In directory usw-pr-cvs1:/tmp/cvs-serv5434/drivers/char Modified Files: tty_io.c vt.c Log Message: Start of reworking the console lock. Index: tty_io.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/tty_io.c,v retrieving revision 1.38 retrieving revision 1.39 diff -u -d -r1.38 -r1.39 --- tty_io.c 2001/11/23 04:10:15 1.38 +++ tty_io.c 2001/12/06 23:32:50 1.39 @@ -100,14 +100,7 @@ #ifdef CONFIG_VT #include <linux/vt_kern.h> -extern void con_init_devfs (void); -#ifdef CONFIG_PROM_CONSOLE -extern void prom_con_init(void); #endif -#ifdef CONFIG_FRAMEBUFFER_CONSOLE -extern void fb_console_init(void); -#endif -#endif #define TTY_DEV MKDEV(TTYAUX_MAJOR,0) #define SYSCONS_DEV MKDEV(TTYAUX_MAJOR,1) @@ -2307,15 +2300,7 @@ #endif #ifdef CONFIG_VT -#if defined (CONFIG_PROM_CONSOLE) - prom_con_init(); -#endif -#if defined (CONFIG_FRAMEBUFFER_CONSOLE) - fb_console_init(); -#endif - kbd_init(); - console_map_init(); - vcs_init(); + vty_init(); #endif #ifdef CONFIG_ESPSERIAL /* init ESP before rs, so rs doesn't see the port */ espserial_init(); Index: vt.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/vt.c,v retrieving revision 1.110 retrieving revision 1.111 diff -u -d -r1.110 -r1.111 --- vt.c 2001/10/29 00:10:59 1.110 +++ vt.c 2001/12/06 23:32:50 1.111 @@ -54,6 +54,12 @@ #ifdef CONFIG_MDA_CONSOLE extern void mda_console_init(void); #endif +#if defined (CONFIG_PROM_CONSOLE) +extern void prom_con_init(void); +#endif +#if defined (CONFIG_FRAMEBUFFER_CONSOLE) +extern void fb_console_init(void); +#endif #ifndef MIN #define MIN(a,b) ((a) < (b) ? (a) : (b)) @@ -1544,6 +1550,12 @@ vt->default_mode->display_fg = vt; vt->vc_cons[0] = vc_allocate(current_vc); vt->keyboard = NULL; + + init_timer(&vt->timer); + vt->timer.data = (long) vt; + vt->timer.function = blank_screen; + mod_timer(&vt->timer, jiffies + vt->blank_interval); + INIT_TQUEUE(&vt->vt_tq, vt_callback, vt); if (!admin_vt) { struct vc_data *vc = vt->vc_cons[0]; @@ -1556,11 +1568,6 @@ vte_ed(vt->vc_cons[0], 0); update_screen(vt->vc_cons[0]); } - init_timer(&vt->timer); - vt->timer.data = (long) vt; - vt->timer.function = blank_screen; - mod_timer(&vt->timer, jiffies + vt->blank_interval); - INIT_TQUEUE(&vt->vt_tq, vt_callback, vt); current_vc += MAX_NR_USER_CONSOLES; return display_desc; } @@ -1583,6 +1590,20 @@ #if defined(CONFIG_MDA_CONSOLE) mda_console_init(); #endif +} + +int __init vty_init(void) +{ +#if defined (CONFIG_PROM_CONSOLE) + prom_con_init(); +#endif +#if defined (CONFIG_FRAMEBUFFER_CONSOLE) + fb_console_init(); +#endif + kbd_init(); + console_map_init(); + vcs_init(); + return 0; } static void clear_buffer_attributes(struct vc_data *vc) |
From: James S. <jsi...@us...> - 2001-12-02 07:04:02
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/serial In directory usw-pr-cvs1:/tmp/cvs-serv22182 Modified Files: serial_8250_pci.c serial_8250_pnp.c Log Message: Removed the MODULE_GENERIC_TABLE stuff. It doesn't work in the standard tree. Why it is there bets me. Index: serial_8250_pci.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/serial/serial_8250_pci.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- serial_8250_pci.c 2001/11/23 01:44:33 1.10 +++ serial_8250_pci.c 2001/12/02 07:03:59 1.11 @@ -1078,4 +1078,4 @@ MODULE_LICENSE("GPL"); MODULE_DESCRIPTION("Generic 8250/16x50 PCI serial probe module"); -MODULE_GENERIC_TABLE(pci, serial_pci_tbl); +//MODULE_GENERIC_TABLE(pci, serial_pci_tbl); Index: serial_8250_pnp.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/serial/serial_8250_pnp.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- serial_8250_pnp.c 2001/11/01 21:38:35 1.5 +++ serial_8250_pnp.c 2001/12/02 07:03:59 1.6 @@ -549,5 +549,5 @@ MODULE_LICENSE("GPL"); MODULE_DESCRIPTION("Generic 8250/16x50 PNPBIOS serial probe module"); -MODULE_GENERIC_TABLE(pnp, pnp_dev_table); +//MODULE_GENERIC_TABLE(pnp, pnp_dev_table); |
From: James S. <jsi...@us...> - 2001-12-02 07:02:10
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/video In directory usw-pr-cvs1:/tmp/cvs-serv21937 Modified Files: aty128fb.c Log Message: Missing fb_info in fb_info_aty128. Index: aty128fb.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/aty128fb.c,v retrieving revision 1.20 retrieving revision 1.21 diff -u -d -r1.20 -r1.21 --- aty128fb.c 2001/11/23 01:30:30 1.20 +++ aty128fb.c 2001/12/02 07:02:03 1.21 @@ -258,7 +258,8 @@ }; struct fb_info_aty128 { - struct fb_info_aty128 *next; + struct fb_info *info; + struct fb_info_aty128 *next; }; static struct fb_info_aty128 *board_list = NULL; |
From: Paul M. <le...@us...> - 2001-12-01 19:03:26
|
Update of /cvsroot/linuxconsole/ruby/linux/include/linux In directory usw-pr-cvs1:/tmp/cvs-serv32393/include/linux Removed Files: gfxfs_fs.h inputfs_fs.h Log Message: Kill off gfxfs and inputfs, we'll use driverfs instead. --- gfxfs_fs.h DELETED --- --- inputfs_fs.h DELETED --- |
From: Paul M. <le...@us...> - 2001-12-01 19:03:26
|
Update of /cvsroot/linuxconsole/ruby/linux/fs/gfxfs In directory usw-pr-cvs1:/tmp/cvs-serv32393/fs/gfxfs Removed Files: Makefile dir.c file.c inode.c super.c Log Message: Kill off gfxfs and inputfs, we'll use driverfs instead. --- Makefile DELETED --- --- dir.c DELETED --- --- file.c DELETED --- --- inode.c DELETED --- --- super.c DELETED --- |
From: Paul M. <le...@us...> - 2001-12-01 19:03:26
|
Update of /cvsroot/linuxconsole/ruby/linux/fs In directory usw-pr-cvs1:/tmp/cvs-serv32393/fs Modified Files: Config.in Makefile Log Message: Kill off gfxfs and inputfs, we'll use driverfs instead. Index: Config.in =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/fs/Config.in,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- Config.in 2001/11/13 19:38:22 1.5 +++ Config.in 2001/12/01 19:03:22 1.6 @@ -51,11 +51,6 @@ tristate 'OS/2 HPFS file system support' CONFIG_HPFS_FS -dep_tristate 'Graphics file system support (EXPERIMENTAL)' CONFIG_GFXFS_FS $CONFIG_EXPERIMENTAL -dep_bool ' Debug gfxfs' CONFIG_GFXFS_FS_DEBUG $CONFIG_GFXFS_FS - -dep_tristate 'Input file system support (EXPERIMENTAL)' CONFIG_INPUTFS_FS $CONFIG_EXPERIMENTAL - bool '/proc file system support' CONFIG_PROC_FS dep_bool '/dev file system support (EXPERIMENTAL)' CONFIG_DEVFS_FS $CONFIG_EXPERIMENTAL Index: Makefile =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/fs/Makefile,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- Makefile 2001/10/15 01:13:17 1.3 +++ Makefile 2001/12/01 19:03:22 1.4 @@ -63,8 +63,6 @@ subdir-$(CONFIG_REISERFS_FS) += reiserfs subdir-$(CONFIG_DEVPTS_FS) += devpts subdir-$(CONFIG_SUN_OPENPROMFS) += openpromfs -subdir-$(CONFIG_GFXFS_FS) += gfxfs -subdir-$(CONFIG_INPUTFS_FS) += inputfs obj-$(CONFIG_BINFMT_AOUT) += binfmt_aout.o obj-$(CONFIG_BINFMT_EM86) += binfmt_em86.o |
From: Paul M. <le...@us...> - 2001-12-01 19:03:26
|
Update of /cvsroot/linuxconsole/ruby/linux/fs/inputfs In directory usw-pr-cvs1:/tmp/cvs-serv32393/fs/inputfs Removed Files: Makefile dir.c file.c inode.c super.c Log Message: Kill off gfxfs and inputfs, we'll use driverfs instead. --- Makefile DELETED --- --- dir.c DELETED --- --- file.c DELETED --- --- inode.c DELETED --- --- super.c DELETED --- |
From: James S. <jsi...@us...> - 2001-11-25 05:16:49
|
Update of /cvsroot/linuxconsole/ruby/linux/include/linux In directory usw-pr-cvs1:/tmp/cvs-serv7043 Modified Files: fb.h Log Message: Reverse getcolreg change. We don't need it. Index: fb.h =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/include/linux/fb.h,v retrieving revision 1.44 retrieving revision 1.45 diff -u -d -r1.44 -r1.45 --- fb.h 2001/11/25 04:44:16 1.44 +++ fb.h 2001/11/25 05:16:47 1.45 @@ -332,9 +332,6 @@ int (*fb_set_par)(struct fb_info *info); /* cursor control */ int (*fb_cursor)(struct fb_info *info, struct fbcursor *cursor); - /* get color register */ - int (*fb_getcolreg)(unsigned regno, unsigned *reg, unsigned *green, - unsigned *blue, unsigned *transp, struct fb_info *info); /* set color register */ int (*fb_setcolreg)(unsigned regno, unsigned red, unsigned green, unsigned blue, unsigned transp, struct fb_info *info); |
From: James S. <jsi...@us...> - 2001-11-25 05:14:17
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/video In directory usw-pr-cvs1:/tmp/cvs-serv6776 Modified Files: fbcmap.c Log Message: Reverse getcolreg change. We don't need it. Index: fbcmap.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/fbcmap.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- fbcmap.c 2001/11/25 04:44:16 1.9 +++ fbcmap.c 2001/11/25 05:14:14 1.10 @@ -221,7 +221,7 @@ blue = cmap->blue; transp = cmap->transp; start = cmap->start; - if (start < 0 || !info->fbops->fb_getcolreg) + if (start < 0) return -EINVAL; for (i = 0; i < cmap->len; i++) { if (!&info->cmap) @@ -244,8 +244,6 @@ blue++; if (transp) transp++; - if (info->fbops->fb_getcolreg(start++,red,green,blue,transp,info)) - return 0; } return 0; } |
From: James S. <jsi...@tr...> - 2001-11-25 05:06:39
|
> fbcmap.c > Log Message: > Add an fb_getcolreg to the fb_ops.. call it from within the get_cmap(). Its not needed. Remember a color map is stored in struct fb_info. So we just move data to/from the color map in struct fb_info from/to userland. So we don't need a getcolreg function. I will reverse the change. |
From: Paul M. <le...@us...> - 2001-11-25 04:44:20
|
Update of /cvsroot/linuxconsole/ruby/linux/include/linux In directory usw-pr-cvs1:/tmp/cvs-serv2668/include/linux Modified Files: fb.h Log Message: Add an fb_getcolreg to the fb_ops.. call it from within the get_cmap(). Index: fb.h =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/include/linux/fb.h,v retrieving revision 1.43 retrieving revision 1.44 diff -u -d -r1.43 -r1.44 --- fb.h 2001/11/14 17:10:40 1.43 +++ fb.h 2001/11/25 04:44:16 1.44 @@ -332,6 +332,9 @@ int (*fb_set_par)(struct fb_info *info); /* cursor control */ int (*fb_cursor)(struct fb_info *info, struct fbcursor *cursor); + /* get color register */ + int (*fb_getcolreg)(unsigned regno, unsigned *reg, unsigned *green, + unsigned *blue, unsigned *transp, struct fb_info *info); /* set color register */ int (*fb_setcolreg)(unsigned regno, unsigned red, unsigned green, unsigned blue, unsigned transp, struct fb_info *info); |