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);
|