From: Aivils S. <Aiv...@un...> - 2002-11-08 12:54:14
|
Hi, James Yes it's boot! Around the code popup currcons mismatch. find_vc() vc_allocate() good only for one console. small patch allow me start ruby with single VGA, single XFree. diff -Nurp linux-2.5.45/drivers/char/consolemap.c linux-2.5.45-chg/drivers/char/consolemap.c --- linux-2.5.45/drivers/char/consolemap.c Sat Nov 2 01:27:32 2002 +++ linux-2.5.45-chg/drivers/char/consolemap.c Fri Nov 8 00:44:00 2002 @@ -234,7 +234,7 @@ static void update_user_maps(struct vc_d struct uni_pagedir *p, *q = NULL; int i; - for (i = 0; i < MAX_NR_CONSOLES; i++) { + for (i = 0; i < MAX_NR_USER_CONSOLES; i++) { struct vc_data *tmp = vc->display_fg->vc_cons[i]; if (!tmp) @@ -379,7 +379,7 @@ static int con_unify_unimap(struct vc_da struct uni_pagedir *q; int i, j, k; - for (i = 0; i < MAX_NR_CONSOLES; i++) { + for (i = 0; i < MAX_NR_USER_CONSOLES; i++) { struct vc_data *tmp = vc->display_fg->vc_cons[i]; if (!tmp) @@ -670,7 +670,7 @@ console_map_init(void) struct vt_struct *vt = vt_cons; int i; - for (i = 0; i < MAX_NR_CONSOLES; i++) { + for (i = 0; i < MAX_NR_USER_CONSOLES; i++) { struct vc_data *vc = vt->vc_cons[i]; if (vc && !*vc->vc_uni_pagedir_loc) diff -Nurp linux-2.5.45/drivers/char/keyboard.c linux-2.5.45-chg/drivers/char/keyboard.c --- linux-2.5.45/drivers/char/keyboard.c Sat Nov 2 01:27:32 2002 +++ linux-2.5.45-chg/drivers/char/keyboard.c Thu Nov 7 23:24:37 2002 @@ -45,6 +45,7 @@ extern void ctrl_alt_del(void); void compute_shiftstate(void); struct pt_regs *kbd_pt_regs; EXPORT_SYMBOL(kbd_pt_regs); +extern int do_poke_blanked_console; /* * Handler Tables. diff -Nurp linux-2.5.45/drivers/char/vc_screen.c linux-2.5.45-chg/drivers/char/vc_screen.c --- linux-2.5.45/drivers/char/vc_screen.c Sat Nov 2 01:27:32 2002 +++ linux-2.5.45-chg/drivers/char/vc_screen.c Fri Nov 8 00:52:08 2002 @@ -91,7 +91,7 @@ vcs_size(struct inode *inode) else currcons--; - vc = vt_cons->vc_cons[currcons]; + vc = vt_cons->vc_cons[currcons - vt_cons->first_vc]; if (!vc) return -ENXIO; @@ -168,7 +168,7 @@ vcs_read(struct file *file, char *buf, s } ret = -ENXIO; - vc = vt_cons->vc_cons[currcons]; + vc = vt_cons->vc_cons[currcons - vt_cons->first_vc]; if (!vc) goto unlock_out; @@ -343,7 +343,7 @@ vcs_write(struct file *file, const char } ret = -ENXIO; - vc = vt_cons->vc_cons[currcons]; + vc = vt_cons->vc_cons[currcons - vt_cons->first_vc]; if (!vc) goto unlock_out; @@ -504,7 +504,7 @@ vcs_open(struct inode *inode, struct fil { unsigned int currcons = minor(inode->i_rdev) & 127; - if (currcons && !vt_cons->vc_cons[currcons-1]) + if (currcons && !vt_cons->vc_cons[currcons-1-vt_cons->first_vc]) return -ENXIO; return 0; } diff -Nurp linux-2.5.45/drivers/char/vt_ioctl.c linux-2.5.45-chg/drivers/char/vt_ioctl.c --- linux-2.5.45/drivers/char/vt_ioctl.c Sat Nov 2 01:27:32 2002 +++ linux-2.5.45-chg/drivers/char/vt_ioctl.c Fri Nov 8 01:01:08 2002 @@ -1094,7 +1094,7 @@ int vt_ioctl(struct tty_struct *tty, str return i; } } - + vc->vt_newvt = -1; /* * When we actually do the console switch, * make sure we are atomic with respect to diff -Nurp linux-2.5.45/drivers/video/console/Makefile linux-2.5.45-chg/drivers/video/console/Makefile --- linux-2.5.45/drivers/video/console/Makefile Sat Nov 2 01:51:14 2002 +++ linux-2.5.45-chg/drivers/video/console/Makefile Thu Nov 7 23:33:24 2002 @@ -11,7 +11,7 @@ export-objs := fbcon.o fbcon-accel.o # Each configuration option enables a list of files. -obj-$(CONFIG_DUMMY_CONSOLE) += dummycon.o +#obj-$(CONFIG_DUMMY_CONSOLE) += dummycon.o obj-$(CONFIG_SGI_NEWPORT_CONSOLE) += newport_con.o obj-$(CONFIG_PROM_CONSOLE) += promcon.o promcon_tbl.o obj-$(CONFIG_STI_CONSOLE) += sticon.o sticore.o Aivils Stoss |