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...> - 2002-05-01 18:07:56
|
Update of /cvsroot/linuxconsole/ruby/linux/arch/ia64 In directory usw-pr-cvs1:/tmp/cvs-serv3020/linux/arch/ia64 Modified Files: config.in Log Message: Synced against 2.5.11 Index: config.in =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/arch/ia64/config.in,v retrieving revision 1.22 retrieving revision 1.23 diff -u -d -r1.22 -r1.23 --- config.in 24 Apr 2002 18:56:50 -0000 1.22 +++ config.in 1 May 2002 18:07:49 -0000 1.23 @@ -83,7 +83,7 @@ define_bool CONFIG_KCORE_ELF y # On IA-64, we always want an ELF /proc/kcore. bool 'SMP support' CONFIG_SMP -tristate 'Support running of Linux/x86 binaries' CONFIG_IA32_SUPPORT +bool 'Support running of Linux/x86 binaries' CONFIG_IA32_SUPPORT bool 'Performance monitor support' CONFIG_PERFMON tristate '/proc/pal support' CONFIG_IA64_PALINFO tristate '/proc/efi/vars support' CONFIG_EFI_VARS @@ -123,6 +123,7 @@ source drivers/ieee1394/Config.in source drivers/message/i2o/Config.in source drivers/md/Config.in +source drivers/message/fusion/Config.in mainmenu_option next_comment comment 'ATA/IDE/MFM/RLL support' |
From: James S. <jsi...@us...> - 2002-05-01 18:07:56
|
Update of /cvsroot/linuxconsole/ruby/linux/arch/i386/kernel In directory usw-pr-cvs1:/tmp/cvs-serv3020/linux/arch/i386/kernel Modified Files: apm.c setup.c Log Message: Synced against 2.5.11 Index: apm.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/arch/i386/kernel/apm.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- apm.c 22 Mar 2002 20:13:57 -0000 1.3 +++ apm.c 1 May 2002 18:07:49 -0000 1.4 @@ -578,7 +578,7 @@ __asm__ __volatile__(APM_DO_ZERO_SEGS "pushl %%edi\n\t" "pushl %%ebp\n\t" - "lcall *%%cs:" SYMBOL_NAME_STR(apm_bios_entry) "\n\t" + "lcall *%%cs:apm_bios_entry\n\t" "setc %%al\n\t" "popl %%ebp\n\t" "popl %%edi\n\t" @@ -625,7 +625,7 @@ __asm__ __volatile__(APM_DO_ZERO_SEGS "pushl %%edi\n\t" "pushl %%ebp\n\t" - "lcall *%%cs:" SYMBOL_NAME_STR(apm_bios_entry) "\n\t" + "lcall *%%cs:apm_bios_entry\n\t" "setc %%bl\n\t" "popl %%ebp\n\t" "popl %%edi\n\t" Index: setup.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/arch/i386/kernel/setup.c,v retrieving revision 1.40 retrieving revision 1.41 diff -u -d -r1.40 -r1.41 --- setup.c 24 Apr 2002 18:56:50 -0000 1.40 +++ setup.c 1 May 2002 18:07:49 -0000 1.41 @@ -2863,7 +2863,7 @@ set_tss_desc(nr,t); gdt_table[__TSS(nr)].b &= 0xfffffdff; load_TR(nr); - load_LDT(&init_mm); + load_LDT(&init_mm.context); /* Clear %fs and %gs. */ asm volatile ("xorl %eax, %eax; movl %eax, %fs; movl %eax, %gs"); |
From: James S. <jsi...@us...> - 2002-05-01 18:07:55
|
Update of /cvsroot/linuxconsole/ruby/linux/arch/ia64/kernel In directory usw-pr-cvs1:/tmp/cvs-serv3020/linux/arch/ia64/kernel Modified Files: setup.c traps.c Log Message: Synced against 2.5.11 Index: setup.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/arch/ia64/kernel/setup.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- setup.c 24 Apr 2002 18:56:50 -0000 1.5 +++ setup.c 1 May 2002 18:07:49 -0000 1.6 @@ -377,7 +377,7 @@ switch (c->family) { case 0x07: memcpy(family, "Itanium", 8); break; - case 0x1f: memcpy(family, "McKinley", 9); break; + case 0x1f: memcpy(family, "Itanium 2", 9); break; default: sprintf(family, "%u", c->family); break; } Index: traps.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/arch/ia64/kernel/traps.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- traps.c 24 Apr 2002 18:56:50 -0000 1.3 +++ traps.c 1 May 2002 18:07:49 -0000 1.4 @@ -183,6 +183,10 @@ sig = SIGSEGV; code = __SEGV_PSTKOVF; break; + case 0x3f000 ... 0x3ffff: /* bundle-update in progress */ + sig = SIGILL; code = __ILL_BNDMOD; + break; + default: if (break_num < 0x40000 || break_num > 0x100000) die_if_kernel("Bad break", regs, break_num); @@ -440,30 +444,14 @@ "Unknown fault 13", "Unknown fault 14", "Unknown fault 15" }; -#if 0 - /* this is for minimal trust debugging; yeah this kind of stuff is useful at times... */ - - if (vector != 25) { - static unsigned long last_time; - static char count; - unsigned long n = vector; - char buf[32], *cp; - - if (jiffies - last_time > 5*HZ) - count = 0; - - if (count++ < 5) { - last_time = jiffies; - cp = buf + sizeof(buf); - *--cp = '\0'; - while (n) { - *--cp = "0123456789abcdef"[n & 0xf]; - n >>= 4; - } - printk("<0x%s>", cp); - } + if ((isr & IA64_ISR_NA) && ((isr & IA64_ISR_CODE_MASK) == IA64_ISR_CODE_LFETCH)) { + /* + * This fault was due to lfetch.fault, set "ed" bit in the psr to cancel + * the lfetch. + */ + ia64_psr(regs)->ed = 1; + return; } -#endif switch (vector) { case 24: /* General Exception */ |
From: James S. <jsi...@us...> - 2002-05-01 18:07:55
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/usb/input In directory usw-pr-cvs1:/tmp/cvs-serv3020/linux/drivers/usb/input Modified Files: hiddev.c Log Message: Synced against 2.5.11 Index: hiddev.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/usb/input/hiddev.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- hiddev.c 26 Apr 2002 17:23:40 -0000 1.2 +++ hiddev.c 1 May 2002 18:07:50 -0000 1.3 @@ -25,10 +25,7 @@ * e-mail - mail your message to Paul Stewart <st...@we...> */ -#define HIDDEV_MINOR_BASE 96 -#define HIDDEV_MINORS 16 -#define HIDDEV_BUFFER_SIZE 64 - +#include <linux/config.h> #include <linux/poll.h> #include <linux/slab.h> #include <linux/module.h> @@ -39,6 +36,15 @@ #include "hid.h" #include <linux/hiddev.h> +#ifdef CONFIG_USB_DYNAMIC_MINORS +#define HIDDEV_MINOR_BASE 0 +#define HIDDEV_MINORS 256 +#else +#define HIDDEV_MINOR_BASE 96 +#define HIDDEV_MINORS 16 +#endif +#define HIDDEV_BUFFER_SIZE 64 + struct hiddev { int exist; int open; @@ -62,6 +68,9 @@ static struct hiddev *hiddev_table[HIDDEV_MINORS]; static devfs_handle_t hiddev_devfs_handle; +/* forward reference to make our lives easier */ +extern struct usb_driver hiddev_driver; + /* * Find a report, given the report's type and ID. The ID can be specified * indirectly by REPORT_ID_FIRST (which returns the first report of the given @@ -184,6 +193,7 @@ static void hiddev_cleanup(struct hiddev *hiddev) { devfs_unregister(hiddev->devfs); + usb_deregister_dev(&hiddev_driver, 1, hiddev->minor); hiddev_table[hiddev->minor] = NULL; kfree(hiddev); } @@ -627,10 +637,12 @@ if (i == hid->maxapplication) return -1; - for (minor = 0; minor < HIDDEV_MINORS && hiddev_table[minor]; minor++); - if (minor == HIDDEV_MINORS) { - printk(KERN_ERR "hiddev: no more free hiddev devices\n"); - return -1; + if (usb_register_dev (&hiddev_driver, 1, &minor)) { + for (minor = 0; minor < HIDDEV_MINORS && hiddev_table[minor]; minor++); + if (minor == HIDDEV_MINORS) { + printk(KERN_ERR "hiddev: no more free hiddev devices\n"); + return -1; + } } if (!(hiddev = kmalloc(sizeof(struct hiddev), GFP_KERNEL))) |
From: James S. <jsi...@us...> - 2002-05-01 18:07:55
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/char In directory usw-pr-cvs1:/tmp/cvs-serv3020/linux/drivers/char Modified Files: Config.in Makefile Log Message: Synced against 2.5.11 Index: Config.in =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/Config.in,v retrieving revision 1.37 retrieving revision 1.38 diff -u -d -r1.37 -r1.38 --- Config.in 14 Mar 2002 20:02:06 -0000 1.37 +++ Config.in 1 May 2002 18:07:50 -0000 1.38 @@ -54,6 +54,7 @@ dep_tristate ' Multi-Tech multiport card support (EXPERIMENTAL)' CONFIG_ISI m fi tristate ' Microgate SyncLink card support' CONFIG_SYNCLINK + tristate ' SyncLink Multiport support' CONFIG_SYNCLINKMP tristate ' HDLC line discipline support' CONFIG_N_HDLC tristate ' SDL RISCom/8 card support' CONFIG_RISCOM8 tristate ' Specialix IO8+ card support' CONFIG_SPECIALIX Index: Makefile =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/Makefile,v retrieving revision 1.36 retrieving revision 1.37 diff -u -d -r1.36 -r1.37 --- Makefile 24 Apr 2002 18:56:51 -0000 1.36 +++ Makefile 1 May 2002 18:07:50 -0000 1.37 @@ -50,6 +50,7 @@ obj-$(CONFIG_ISI) += isicom.o obj-$(CONFIG_ESPSERIAL) += esp.o obj-$(CONFIG_SYNCLINK) += synclink.o +obj-$(CONFIG_SYNCLINKMP) += synclinkmp.o obj-$(CONFIG_N_HDLC) += n_hdlc.o obj-$(CONFIG_SPECIALIX) += specialix.o obj-$(CONFIG_AMIGA_BUILTIN_SERIAL) += amiserial.o |
From: James S. <jsi...@us...> - 2002-05-01 18:07:55
|
Update of /cvsroot/linuxconsole/ruby/linux/arch/ppc/kernel In directory usw-pr-cvs1:/tmp/cvs-serv3020/linux/arch/ppc/kernel Modified Files: ppc4xx_setup.c Log Message: Synced against 2.5.11 Index: ppc4xx_setup.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/arch/ppc/kernel/ppc4xx_setup.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- ppc4xx_setup.c 14 Mar 2002 22:32:22 -0000 1.1 +++ ppc4xx_setup.c 1 May 2002 18:07:49 -0000 1.2 @@ -256,29 +256,6 @@ * IDE stuff. * should be generic for every IDE PCI chipset */ -#if defined(CONFIG_BLK_DEV_IDE) -static int -ppc4xx_ide_check_region(ide_ioreg_t from, unsigned int extent) -{ - return check_region(from, extent); -} - -static void -ppc4xx_ide_request_region(ide_ioreg_t from, unsigned int extent, - const char *name) -{ - request_region(from, extent, name); - return; -} - -static void -ppc4xx_ide_release_region(ide_ioreg_t from, unsigned int extent) -{ - release_region(from, extent); - return; -} -#endif - #if defined(CONFIG_BLK_DEV_IDEPCI) static void ppc4xx_ide_init_hwif_ports(hw_regs_t * hw, ide_ioreg_t data_port, @@ -398,16 +375,13 @@ ** m8xx_setup.c, prep_setup.c use ** defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_IDE_MODULE) */ -#if defined (CONFIG_IDE) - ppc_ide_md.ide_request_region = ppc4xx_ide_request_region; - ppc_ide_md.ide_release_region = ppc4xx_ide_release_region; - ppc_ide_md.ide_check_region = ppc4xx_ide_check_region; -#if defined(CONFIG_BLK_DEV_IDEPCI) +#ifdef CONFIG_IDE +# if defined(CONFIG_BLK_DEV_IDEPCI) ppc_ide_md.ide_init_hwif = ppc4xx_ide_init_hwif_ports; -#elif defined (CONFIG_DMA_NONPCI) /* ON board IDE */ +# elif defined (CONFIG_DMA_NONPCI) /* ON board IDE */ ppc_ide_md.default_irq = nonpci_ide_default_irq; ppc_ide_md.ide_init_hwif = nonpci_ide_init_hwif_ports; -#endif +# endif #endif board_init(); |
From: James S. <jsi...@us...> - 2002-05-01 18:07:53
|
Update of /cvsroot/linuxconsole/ruby/linux/Documentation/DocBook In directory usw-pr-cvs1:/tmp/cvs-serv3020/linux/Documentation/DocBook Modified Files: Makefile Log Message: Synced against 2.5.11 Index: Makefile =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/Documentation/DocBook/Makefile,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- Makefile 16 Apr 2002 17:41:46 -0000 1.10 +++ Makefile 1 May 2002 18:07:49 -0000 1.11 @@ -2,7 +2,7 @@ kernel-api.sgml parportbook.sgml kernel-hacking.sgml \ kernel-locking.sgml via-audio.sgml mousedrivers.sgml sis900.sgml \ deviceiobook.sgml procfs-guide.sgml tulip-user.sgml \ - writing_usb_driver.sgml + writing_usb_driver.sgml scsidrivers.sgml PS := $(patsubst %.sgml, %.ps, $(BOOKS)) PDF := $(patsubst %.sgml, %.pdf, $(BOOKS)) @@ -67,6 +67,9 @@ $(TOPDIR)/scripts/docgen <$< >$@ writing_usb_driver.sgml: writing_usb_driver.tmpl + $(TOPDIR)/scripts/docgen <$< >$@ + +scsidrivers.sgml : scsidrivers.tmpl $(TOPDIR)/scripts/docgen <$< >$@ sis900.sgml: sis900.tmpl $(TOPDIR)/drivers/net/sis900.c |
From: James S. <jsi...@us...> - 2002-05-01 18:07:53
|
Update of /cvsroot/linuxconsole/ruby/linux/arch/i386 In directory usw-pr-cvs1:/tmp/cvs-serv3020/linux/arch/i386 Modified Files: config.in Log Message: Synced against 2.5.11 Index: config.in =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/arch/i386/config.in,v retrieving revision 1.39 retrieving revision 1.40 diff -u -d -r1.39 -r1.40 --- config.in 24 Apr 2002 18:56:50 -0000 1.39 +++ config.in 1 May 2002 18:07:49 -0000 1.40 @@ -154,7 +154,9 @@ fi bool 'Machine Check Exception' CONFIG_X86_MCE -dep_bool 'Check for non-fatal errors' CONFIG_X86_MCE_NONFATAL $CONFIG_X86_MCE +dep_bool 'Check for non-fatal errors on Athlon/Duron' CONFIG_X86_MCE_NONFATAL $CONFIG_X86_MCE +dep_bool 'check for P4 thermal throttling interrupt.' CONFIG_X86_MCE_P4THERMAL $CONFIG_X86_MCE $CONFIG_X86_LOCAL_APIC + tristate 'Toshiba Laptop support' CONFIG_TOSHIBA tristate 'Dell laptop support' CONFIG_I8K |
From: James S. <jsi...@us...> - 2002-05-01 18:07:53
|
Update of /cvsroot/linuxconsole/ruby/linux In directory usw-pr-cvs1:/tmp/cvs-serv3020/linux Modified Files: Makefile Log Message: Synced against 2.5.11 Index: Makefile =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/Makefile,v retrieving revision 1.53 retrieving revision 1.54 diff -u -d -r1.53 -r1.54 --- Makefile 26 Apr 2002 17:23:39 -0000 1.53 +++ Makefile 1 May 2002 18:07:49 -0000 1.54 @@ -1,6 +1,6 @@ VERSION = 2 PATCHLEVEL = 5 -SUBLEVEL = 10 +SUBLEVEL = 11 EXTRAVERSION = -ruby KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) |
From: James S. <jsi...@us...> - 2002-05-01 18:07:53
|
Update of /cvsroot/linuxconsole/ruby In directory usw-pr-cvs1:/tmp/cvs-serv3020 Added Files: AGAINST-2.5.11 Removed Files: AGAINST-2.5.10 Log Message: Synced against 2.5.11 --- NEW FILE: AGAINST-2.5.11 --- --- AGAINST-2.5.10 DELETED --- |
From: James S. <jsi...@us...> - 2002-04-26 17:23:43
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/usb/input In directory usw-pr-cvs1:/tmp/cvs-serv22497/linux/drivers/usb/input Modified Files: Config.in Makefile hiddev.c Log Message: Synced to 2.5.10 Index: Config.in =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/usb/input/Config.in,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- Config.in 23 Apr 2002 00:50:39 -0000 1.3 +++ Config.in 26 Apr 2002 17:23:40 -0000 1.4 @@ -20,13 +20,4 @@ dep_mbool ' PID Devices' CONFIG_HID_PID $CONFIG_USB_HID $CONFIG_HID_FF dep_tristate ' Wacom Intuos/Graphire tablet support' CONFIG_USB_WACOM $CONFIG_USB $CONFIG_INPUT - -# Turn on CONFIG_USB_INPUT if any of the drivers are compiled into the kernel -# to make our Makefile logic a bit simpler. -if [ "$CONFIG_USB_HID" = "y" -o "$CONFIG_USB_KBD" = "y" -o "$CONFIG_USB_MOUSE" = "y" ]; then - define_bool CONFIG_USB_INPUT y -fi -if [ "$CONFIG_USB_WACOM" = "y" ]; then - define_bool CONFIG_USB_INPUT y -fi Index: Makefile =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/usb/input/Makefile,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- Makefile 18 Apr 2002 22:02:47 -0000 1.2 +++ Makefile 26 Apr 2002 17:23:40 -0000 1.3 @@ -2,7 +2,7 @@ # Makefile for the USB input drivers # -O_TARGET := usb-input.o +O_TARGET := input.o # Multipart objects. hid-objs := hid-core.o Index: hiddev.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/usb/input/hiddev.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- hiddev.c 16 Apr 2002 17:41:51 -0000 1.1 +++ hiddev.c 26 Apr 2002 17:23:40 -0000 1.2 @@ -700,10 +700,11 @@ static /* const */ struct usb_driver hiddev_driver = { - name: "hiddev", - probe: hiddev_usbd_probe, - fops: &hiddev_fops, - minor: HIDDEV_MINOR_BASE + name: "hiddev", + probe: hiddev_usbd_probe, + fops: &hiddev_fops, + minor: HIDDEV_MINOR_BASE, + num_minors: HIDDEV_MINORS, }; int __init hiddev_init(void) |
From: James S. <jsi...@us...> - 2002-04-26 17:23:43
|
Update of /cvsroot/linuxconsole/ruby/linux/arch/x86_64/ia32 In directory usw-pr-cvs1:/tmp/cvs-serv22497/linux/arch/x86_64/ia32 Modified Files: ia32_ioctl.c Log Message: Synced to 2.5.10 Index: ia32_ioctl.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/arch/x86_64/ia32/ia32_ioctl.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- ia32_ioctl.c 24 Apr 2002 18:56:51 -0000 1.4 +++ ia32_ioctl.c 26 Apr 2002 17:23:40 -0000 1.5 @@ -3187,7 +3187,6 @@ */ COMPATIBLE_IOCTL(HDIO_GET_IDENTITY) COMPATIBLE_IOCTL(HDIO_SET_DMA) -COMPATIBLE_IOCTL(HDIO_SET_KEEPSETTINGS) COMPATIBLE_IOCTL(HDIO_SET_UNMASKINTR) COMPATIBLE_IOCTL(HDIO_SET_NOWERR) COMPATIBLE_IOCTL(HDIO_SET_32BIT) @@ -3747,7 +3746,6 @@ HANDLE_IOCTL(BLKPG, blkpg_ioctl_trans) HANDLE_IOCTL(FBIOGETCMAP, fb_ioctl_trans) HANDLE_IOCTL(FBIOPUTCMAP, fb_ioctl_trans) -HANDLE_IOCTL(HDIO_GET_KEEPSETTINGS, hdio_ioctl_trans) HANDLE_IOCTL(HDIO_GET_UNMASKINTR, hdio_ioctl_trans) HANDLE_IOCTL(HDIO_GET_DMA, hdio_ioctl_trans) HANDLE_IOCTL(HDIO_GET_32BIT, hdio_ioctl_trans) |
From: James S. <jsi...@us...> - 2002-04-26 17:23:43
|
Update of /cvsroot/linuxconsole/ruby/linux/arch/x86_64/mm In directory usw-pr-cvs1:/tmp/cvs-serv22497/linux/arch/x86_64/mm Modified Files: fault.c Log Message: Synced to 2.5.10 Index: fault.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/arch/x86_64/mm/fault.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- fault.c 24 Apr 2002 18:56:51 -0000 1.3 +++ fault.c 26 Apr 2002 17:23:40 -0000 1.4 @@ -82,7 +82,7 @@ } int page_fault_trace; -int exception_trace = 1; +int exception_trace; /* * This routine handles page faults. It determines the address, |
From: James S. <jsi...@us...> - 2002-04-26 17:23:42
|
Update of /cvsroot/linuxconsole/ruby In directory usw-pr-cvs1:/tmp/cvs-serv22497 Added Files: AGAINST-2.5.10 Removed Files: AGAINST-2.5.9 Log Message: Synced to 2.5.10 --- NEW FILE: AGAINST-2.5.10 --- --- AGAINST-2.5.9 DELETED --- |
From: James S. <jsi...@us...> - 2002-04-26 17:23:42
|
Update of /cvsroot/linuxconsole/ruby/linux In directory usw-pr-cvs1:/tmp/cvs-serv22497/linux Modified Files: Makefile Log Message: Synced to 2.5.10 Index: Makefile =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/Makefile,v retrieving revision 1.52 retrieving revision 1.53 diff -u -d -r1.52 -r1.53 --- Makefile 24 Apr 2002 18:56:49 -0000 1.52 +++ Makefile 26 Apr 2002 17:23:39 -0000 1.53 @@ -1,6 +1,6 @@ VERSION = 2 PATCHLEVEL = 5 -SUBLEVEL = 9 +SUBLEVEL = 10 EXTRAVERSION = -ruby KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) |
From: johann d. <jd...@us...> - 2002-04-26 16:37:47
|
Update of /cvsroot/linuxconsole/ruby/web/htdocs/input In directory usw-pr-cvs1:/tmp/cvs-serv19102/input Modified Files: hardware.html Log Message: Updated I-Force support status (force feedback has been supported for quite some time now). Index: hardware.html =================================================================== RCS file: /cvsroot/linuxconsole/ruby/web/htdocs/input/hardware.html,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- hardware.html 3 Nov 2001 19:42:21 -0000 1.2 +++ hardware.html 26 Apr 2002 16:37:44 -0000 1.3 @@ -116,7 +116,7 @@ <li>LabTec SpaceBall 4000 FLX 6dof controller <li>Gunze AHL-51S touchscreen <li>Gravis Stinger - <li>I-Force based joysticks and wheels (without force feedback) + <li>I-Force based joysticks and wheels (with force feedback) <ul> <li>Logitech WingMan Force <li>Logitech WingMan Force Wheel @@ -247,7 +247,7 @@ <li>HIDBP Keyboards <li>HIDBP Mice </ul> - <li>I-Force based joysticks and wheels (without force feedback) + <li>I-Force based joysticks and wheels (with force feedback) <ul> <li>Logitech WingMan Force <li>Logitech WingMan Force Wheel @@ -291,7 +291,6 @@ <li>Colorado Spectrum Notebook Gameport <li>Colorado Spectrum Workstation Gameport <li>Gravis GrIP MultiPort -<li>I-Force force feedback <li>Immersion Impulse Engine 2000 <li>Immersion Interface Box <li>Logitech 3D Mouse |
From: johann d. <jd...@us...> - 2002-04-26 16:36:37
|
Update of /cvsroot/linuxconsole/ruby/web/htdocs In directory usw-pr-cvs1:/tmp/cvs-serv18377 Modified Files: index.html Log Message: Removed duplicate entry for Dominik Kubla in the "People" section. Index: index.html =================================================================== RCS file: /cvsroot/linuxconsole/ruby/web/htdocs/index.html,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- index.html 24 Apr 2002 05:18:39 -0000 1.6 +++ index.html 26 Apr 2002 16:36:33 -0000 1.7 @@ -115,10 +115,6 @@ Developing the new fbdev API, multihead support, and the core console code.<p> -<dt><a href="mailto:dom...@un...">Dominik Kubla</a> -<dd> Wrote the ANSI/ECMA-48 terminal emulation code and designed - the terminal emulation modular design.<p> - <dt><a href="vo...@su...">Vojtech Pavlik</a> <dd> Co-Maintainer of this project. Developing the input API and writing most of the core input drivers.<p> |
From: johann d. <jd...@us...> - 2002-04-26 16:26:03
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/usb/input In directory usw-pr-cvs1:/tmp/cvs-serv7903/linux/drivers/usb/input Modified Files: hid-core.c hid-lg3dff.c hid-lgff.c Log Message: hid-core.c: Do not abort init when there is no support for force-feedback. hid-lg*ff.c: Cleaned-up a few confusing lines. Index: hid-core.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/usb/input/hid-core.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- hid-core.c 16 Apr 2002 17:41:51 -0000 1.1 +++ hid-core.c 26 Apr 2002 16:26:00 -0000 1.2 @@ -1415,7 +1415,16 @@ hid_dump_device(hid); #ifdef CONFIG_HID_FF - if (hid_ff_init(hid)) { + switch (hid_ff_init(hid)) { + case 0: + break; + + case -ENOSYS: + info("No force feedback support for this hid device"); + break; + + default: + err("hid_ff_init failed"); hid_free_device(hid); return NULL; } Index: hid-lg3dff.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/usb/input/hid-lg3dff.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- hid-lg3dff.c 18 Apr 2002 22:02:47 -0000 1.1 +++ hid-lg3dff.c 26 Apr 2002 16:26:00 -0000 1.2 @@ -98,8 +98,7 @@ struct lg3d_device *private; /* Private data */ - hid->ff_private = kmalloc(sizeof(struct lg3d_device), GFP_KERNEL); - private = hid->ff_private; + private = kmalloc(sizeof(struct lg3d_device), GFP_KERNEL); if (!private) return -1; memset(private, 0, sizeof(struct lg3d_device)); Index: hid-lgff.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/usb/input/hid-lgff.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- hid-lgff.c 18 Apr 2002 22:02:47 -0000 1.2 +++ hid-lgff.c 26 Apr 2002 16:26:00 -0000 1.3 @@ -121,8 +121,7 @@ int i; /* Private data */ - hid->ff_private = kmalloc(sizeof(struct hid_ff_logitech), GFP_KERNEL); - private = hid->ff_private; + private = kmalloc(sizeof(struct hid_ff_logitech), GFP_KERNEL); if (!private) return -1; memset(private, 0, sizeof(struct hid_ff_logitech)); |
From: James S. <jsi...@us...> - 2002-04-24 18:57:23
|
Update of /cvsroot/linuxconsole/ruby/linux In directory usw-pr-cvs1:/tmp/cvs-serv8328/linux Modified Files: Makefile Log Message: Synced to 2.5.9. Note some of the fb changes went into 2.5.9. Yeah :-) Index: Makefile =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/Makefile,v retrieving revision 1.51 retrieving revision 1.52 diff -u -d -r1.51 -r1.52 --- Makefile 16 Apr 2002 17:41:46 -0000 1.51 +++ Makefile 24 Apr 2002 18:56:49 -0000 1.52 @@ -1,6 +1,6 @@ VERSION = 2 PATCHLEVEL = 5 -SUBLEVEL = 8 +SUBLEVEL = 9 EXTRAVERSION = -ruby KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) @@ -348,9 +348,9 @@ $(MAKE) CFLAGS="$(CFLAGS) $(CFLAGS_KERNEL)" $(subst $@, _dir_$@, $@) TAGS: dummy - etags `find include/asm-$(ARCH) -name '*.h'` - find include -type d \( -name "asm-*" -o -name config \) -prune -o -name '*.h' -print | xargs etags -a - find $(SUBDIRS) init -name '*.[ch]' | xargs etags -a + { find include/asm-${ARCH} -name '*.h' -print ; \ + find include -type d \( -name "asm-*" -o -name config \) -prune -o -name '*.h' -print ; \ + find $(SUBDIRS) init -name '*.[ch]' ; } | grep -v SCCS | etags - # Exuberant ctags works better with -I tags: dummy |
From: James S. <jsi...@us...> - 2002-04-24 18:56:59
|
Update of /cvsroot/linuxconsole/ruby/linux/kernel In directory usw-pr-cvs1:/tmp/cvs-serv8328/linux/kernel Modified Files: printk.c Log Message: Synced to 2.5.9. Note some of the fb changes went into 2.5.9. Yeah :-) Index: printk.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/kernel/printk.c,v retrieving revision 1.28 retrieving revision 1.29 diff -u -d -r1.28 -r1.29 --- printk.c 22 Mar 2002 20:13:58 -0000 1.28 +++ printk.c 24 Apr 2002 18:56:51 -0000 1.29 @@ -40,6 +40,10 @@ #define LOG_BUF_MASK (LOG_BUF_LEN-1) +#ifndef arch_consoles_callable +#define arch_consoles_callable() (1) +#endif + /* printk's without a loglevel use this.. */ #define DEFAULT_MESSAGE_LOGLEVEL 4 /* KERN_WARNING */ @@ -446,6 +450,12 @@ } spin_unlock_irqrestore(&logbuf_lock, flags); + /* + * On some architectures, the consoles are not usable + * on secondary CPUs early in the boot process. + */ + if (!arch_consoles_callable()) goto out; + spin_lock(&console_lock); for (con = console_drivers; con; con = con->next) { /* @@ -462,6 +472,7 @@ } con_start = log_end; /* Flush all consoles */ spin_unlock(&console_lock); +out: return printed_len; } EXPORT_SYMBOL(printk); |
From: James S. <jsi...@us...> - 2002-04-24 18:56:59
|
Update of /cvsroot/linuxconsole/ruby/linux/arch/x86_64/kernel In directory usw-pr-cvs1:/tmp/cvs-serv8328/linux/arch/x86_64/kernel Modified Files: setup.c Log Message: Synced to 2.5.9. Note some of the fb changes went into 2.5.9. Yeah :-) Index: setup.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/arch/x86_64/kernel/setup.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- setup.c 18 Mar 2002 17:37:26 -0000 1.1 +++ setup.c 24 Apr 2002 18:56:51 -0000 1.2 @@ -49,14 +49,15 @@ #include <asm/mpspec.h> #include <asm/mmu_context.h> #include <asm/bootsetup.h> +#include <asm/smp.h> /* * Machine setup.. */ extern void mcheck_init(struct cpuinfo_x86 *c); +extern void init_memory_mapping(void); -char ignore_irq13; /* set if exception 16 works */ struct cpuinfo_x86 boot_cpu_data = { 0, 0, 0, 0, -1, 1, 0, 0, -1 }; unsigned long mmu_cr4_features; @@ -69,7 +70,6 @@ */ struct drive_info_struct { char dummy[32]; } drive_info; struct screen_info screen_info; -struct apm_info apm_info; struct sys_desc_table_struct { unsigned short length; unsigned char table[0]; @@ -79,7 +79,6 @@ extern int root_mountflags; extern char _text, _etext, _edata, _end; -extern unsigned long cpu_khz; static int disable_x86_fxsr __initdata = 0; @@ -199,8 +198,8 @@ for (i = 0; i < e820.nr_map; i++) { printk(" %s: %016Lx - %016Lx ", who, - (unsigned long long)e820.map[i].addr, - (unsigned long long)(e820.map[i].addr + e820.map[i].size)); + (unsigned long long) e820.map[i].addr, + (unsigned long long) (e820.map[i].addr + e820.map[i].size)); switch (e820.map[i].type) { case E820_RAM: printk("(usable)\n"); break; @@ -213,7 +212,7 @@ case E820_NVS: printk("(ACPI NVS)\n"); break; - default: printk("type %lu\n", (unsigned long)e820.map[i].type); + default: printk("type %u\n", e820.map[i].type); break; } } @@ -542,16 +541,16 @@ } } +unsigned long start_pfn, end_pfn; + void __init setup_arch(char **cmdline_p) { unsigned long bootmap_size, low_mem_size; - unsigned long start_pfn, max_pfn, max_low_pfn; int i; ROOT_DEV = to_kdev_t(ORIG_ROOT_DEV); drive_info = DRIVE_INFO; screen_info = SCREEN_INFO; - apm_info.bios = APM_BIOS_INFO; #ifdef CONFIG_BLK_DEV_RAM rd_image_start = RAMDISK_FLAGS & RAMDISK_IMAGE_START_MASK; @@ -578,20 +577,20 @@ #define PFN_DOWN(x) ((x) >> PAGE_SHIFT) #define PFN_PHYS(x) ((x) << PAGE_SHIFT) -#define VMALLOC_RESERVE (unsigned long)(4096 << 20) -#define MAXMEM (unsigned long)(-PAGE_OFFSET-VMALLOC_RESERVE) +#define MAXMEM (120UL * 1024 * 1024 * 1024 * 1024) /* 120TB */ #define MAXMEM_PFN PFN_DOWN(MAXMEM) +#define MAX_NONPAE_PFN (1 << 20) /* * partially used pages are not usable - thus * we are rounding upwards: */ - start_pfn = PFN_UP(__pa(&_end)); + start_pfn = PFN_UP(__pa_symbol(&_end)); /* * Find the highest page frame number we have available */ - max_pfn = 0; + end_pfn = 0; for (i = 0; i < e820.nr_map; i++) { unsigned long start, end; /* RAM? */ @@ -601,23 +600,20 @@ end = PFN_DOWN(e820.map[i].addr + e820.map[i].size); if (start >= end) continue; - if (end > max_pfn) - max_pfn = end; + if (end > end_pfn) + end_pfn = end; } - /* - * Determine low and high memory ranges: - */ - max_low_pfn = max_pfn; - if (max_low_pfn > MAXMEM_PFN) { - max_low_pfn = MAXMEM_PFN; + if (end_pfn > MAXMEM_PFN) { + end_pfn = MAXMEM_PFN; } + init_memory_mapping(); /* * Initialize the boot-time allocator (with low memory only): */ - bootmap_size = init_bootmem(start_pfn, max_low_pfn); + bootmap_size = init_bootmem(start_pfn, end_pfn); /* * Register fully available low RAM pages with the bootmem allocator. @@ -633,15 +629,15 @@ * We are rounding up the start address of usable memory: */ curr_pfn = PFN_UP(e820.map[i].addr); - if (curr_pfn >= max_low_pfn) + if (curr_pfn >= end_pfn) continue; /* * ... and at the end of the usable range downwards: */ last_pfn = PFN_DOWN(e820.map[i].addr + e820.map[i].size); - if (last_pfn > max_low_pfn) - last_pfn = max_low_pfn; + if (last_pfn > end_pfn) + last_pfn = end_pfn; /* * .. finally, did all the rounding and playing @@ -676,7 +672,12 @@ */ reserve_bootmem(PAGE_SIZE, PAGE_SIZE); #endif - +#ifdef CONFIG_ACPI_SLEEP + /* + * Reserve low memory region for sleep support. + */ + acpi_reserve_bootmem(); +#endif #ifdef CONFIG_X86_LOCAL_APIC /* * Find and reserve possible boot-time SMP configuration: @@ -710,6 +711,15 @@ smp_alloc_memory(); /* AP processor realmode stacks in low memory*/ #endif paging_init(); +#ifdef CONFIG_ACPI_BOOT + /* + * Initialize the ACPI boot-time table parser (gets the RSDP and SDT). + * Must do this after paging_init (due to reliance on fixmap, and thus + * the bootmem allocator) but before get_smp_config (to allow parsing + * of MADT). + */ + acpi_boot_init(*cmdline_p); +#endif #ifdef CONFIG_X86_LOCAL_APIC /* * get boot-time SMP configuration: @@ -757,6 +767,7 @@ request_resource(&ioport_resource, standard_io_resources+i); /* Tell the PCI layer not to allocate too close to the RAM area.. */ + /* ??? move this up on x86-64 */ low_mem_size = ((max_low_pfn << PAGE_SHIFT) + 0xfffff) & ~0xfffff; if (low_mem_size > pci_mem_start) pci_mem_start = low_mem_size; @@ -823,6 +834,15 @@ clear_bit(0*32+31, &c->x86_capability); r = get_model_name(c); + if (!r) { + switch (c->x86) { + case 15: + /* Should distingush Models here, but this is only + a fallback anyways. */ + strcpy(c->x86_model_id, "Hammer"); + break; + } + } display_cacheinfo(c); return r; } @@ -1005,7 +1025,6 @@ static int show_cpuinfo(struct seq_file *m, void *v) { struct cpuinfo_x86 *c = v; - int index = c - cpu_data; /* * These flag bits must match the definitions in <asm/cpufeature.h>. @@ -1025,7 +1044,7 @@ /* AMD-defined */ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "syscall", NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL, NULL, "mmxext", NULL, + NULL, NULL, NULL, NULL, "nx", NULL, "mmxext", NULL, NULL, NULL, NULL, NULL, NULL, "lm", "3dnowext", "3dnow", /* Transmeta-defined */ @@ -1046,15 +1065,15 @@ return 0; #endif - seq_printf(m,"processor\t: %d\n" + seq_printf(m,"processor\t: %u\n" "vendor_id\t: %s\n" "cpu family\t: %d\n" "model\t\t: %d\n" "model name\t: %s\n", - index, + (unsigned)(c-cpu_data), c->x86_vendor_id[0] ? c->x86_vendor_id : "unknown", c->x86, - c->x86_model, + (int)c->x86_model, c->x86_model_id[0] ? c->x86_model_id : "unknown"); if (c->x86_mask || c->cpuid_level >= 0) @@ -1063,7 +1082,7 @@ seq_printf(m, "stepping\t: unknown\n"); if ( test_bit(X86_FEATURE_TSC, &c->x86_capability) ) { - seq_printf(m, "cpu MHz\t\t: %lu.%03lu\n", + seq_printf(m, "cpu MHz\t\t: %u.%03u\n", cpu_khz / 1000, (cpu_khz % 1000)); } |
From: James S. <jsi...@us...> - 2002-04-24 18:56:59
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/video In directory usw-pr-cvs1:/tmp/cvs-serv8328/linux/drivers/video Modified Files: anakinfb.c neofb.c Log Message: Synced to 2.5.9. Note some of the fb changes went into 2.5.9. Yeah :-) Index: anakinfb.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/anakinfb.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- anakinfb.c 16 Apr 2002 17:51:55 -0000 1.1 +++ anakinfb.c 24 Apr 2002 18:56:51 -0000 1.2 @@ -78,10 +78,18 @@ fb_info.fbops = &anakinfb_ops; fb_info.var = anakinfb_var; fb_info.fix = anakinfb_fix; - fb_info.screen_base = ioremap(VGA_START, VGA_SIZE); - if (register_framebuffer(&fb_info) < 0) + if (!(request_mem_region(VGA_START, VGA_SIZE, "vga"))) + return -ENOMEM; + if (!(fb_info.screen_base = ioremap(VGA_START, VGA_SIZE))) { + release_mem_region(VGA_START, VGA_SIZE); + return -EIO; + } + if (register_framebuffer(&fb_info) < 0) { + iounmap(fb_info.screen_base); + release_mem_region(VGA_START, VGA_SIZE); return -EINVAL; + } MOD_INC_USE_COUNT; return 0; Index: neofb.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/video/neofb.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- neofb.c 24 Mar 2002 14:48:54 -0000 1.2 +++ neofb.c 24 Apr 2002 18:56:51 -0000 1.3 @@ -75,10 +75,10 @@ /* --------------------------------------------------------------------- */ -static int disabled = 0; -static int internal = 0; -static int external = 0; -static int nostretch = 0; +static int disabled = 0; +static int internal = 0; +static int external = 0; +static int nostretch = 0; [...3422 lines suppressed...] + DBG("init_module"); - if (disabled) - return -ENXIO; + if (disabled) + return -ENXIO; - neo_init(); + neo_init(); - /* never return failure; user can hotplug card later... */ - return 0; + /* never return failure; user can hotplug card later... */ + return 0; } -#endif /* MODULE */ +#endif /* MODULE */ module_exit(neo_done); |
From: James S. <jsi...@us...> - 2002-04-24 18:56:59
|
Update of /cvsroot/linuxconsole/ruby/linux/arch/x86_64/mm In directory usw-pr-cvs1:/tmp/cvs-serv8328/linux/arch/x86_64/mm Modified Files: fault.c Log Message: Synced to 2.5.9. Note some of the fb changes went into 2.5.9. Yeah :-) Index: fault.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/arch/x86_64/mm/fault.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- fault.c 18 Mar 2002 19:29:09 -0000 1.2 +++ fault.c 24 Apr 2002 18:56:51 -0000 1.3 @@ -2,8 +2,10 @@ * linux/arch/x86-64/mm/fault.c * * Copyright (C) 1995 Linus Torvalds + * Copyright (C) 2001,2002 Andi Kleen, SuSE Labs. */ +#include <linux/config.h> #include <linux/signal.h> #include <linux/sched.h> #include <linux/kernel.h> @@ -18,17 +20,17 @@ #include <linux/interrupt.h> #include <linux/init.h> #include <linux/tty.h> +#include <linux/compiler.h> #include <asm/system.h> #include <asm/uaccess.h> #include <asm/pgalloc.h> #include <asm/hardirq.h> +#include <asm/smp.h> +#include <asm/tlbflush.h> extern void die(const char *,struct pt_regs *,long); -asmlinkage void do_invalid_op(struct pt_regs *, unsigned long); -extern unsigned long idt; - extern spinlock_t console_lock, timerlist_lock; void bust_spinlocks(int yes) @@ -40,7 +42,8 @@ global_irq_lock = 0; /* Many serial drivers do __global_cli() */ #endif } else { - int loglevel_save = console_loglevel; + int loglevel_save = console_loglevel; + oops_in_progress = 0; /* * OK, the message is on the console. Now we call printk() @@ -53,33 +56,34 @@ } } -void do_BUG(const char *file, int line) -{ - bust_spinlocks(1); - printk("kernel BUG at %s:%d!\n", file, line); -} - - void dump_pagetable(unsigned long address) { static char *name[] = { "PML4", "PGD", "PDE", "PTE" }; int i, shift; unsigned long page; - asm("movq %%cr3,%0":"=r" (page)); shift = 9+9+9+12; address &= ~0xFFFF000000000000UL; + asm("movq %%cr3,%0" : "=r" (page)); for (i = 0; i < 4; i++) { - page = ((unsigned long *) __va(page))[(address >> shift) & 0x1FFU]; + unsigned long *padr = (unsigned long *) __va(page); + padr += (address >> shift) & 0x1FFU; + if (__get_user(page, padr)) { + printk("%s: bad %p\n", name[i], padr); + break; + } printk("%s: %016lx ", name[i], page); if ((page & (1 | (1<<7))) != 1) /* Not present or 2MB page */ break; page &= ~0xFFFUL; - shift -= 9; + shift -= (i == 0) ? 12 : 9; } printk("\n"); } +int page_fault_trace; +int exception_trace = 1; + /* * This routine handles page faults. It determines the address, * and the problem, and then passes it off to one of the appropriate @@ -89,6 +93,7 @@ * bit 0 == 0 means no page found, 1 means protection fault * bit 1 == 0 means read, 1 means write * bit 2 == 0 means kernel, 1 means user-mode + * bit 3 == 1 means fault was an instruction fetch */ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long error_code) { @@ -103,15 +108,20 @@ /* get the address */ __asm__("movq %%cr2,%0":"=r" (address)); + if (page_fault_trace) + printk("pagefault rip:%lx rsp:%lx cs:%lu ss:%lu address %lx error %lx\n", + regs->rip,regs->rsp,regs->cs,regs->ss,address,error_code); tsk = current; mm = tsk->mm; info.si_code = SEGV_MAPERR; - if (address >= TASK_SIZE && !(error_code & 5)) + /* 5 => page not present and from supervisor mode */ + if (unlikely(!(error_code & 5) && + ((address >= VMALLOC_START && address <= VMALLOC_END) || + (address >= MODULES_VADDR && address <= MODULES_END)))) goto vmalloc_fault; - /* * If we're in an interrupt or have no user * context, we must not take the fault.. @@ -119,19 +129,10 @@ if (in_interrupt() || !mm) goto no_context; + again: down_read(&mm->mmap_sem); vma = find_vma(mm, address); - -#if 0 - printk("fault at %lx rip:%lx rsp:%lx err:%lx thr:%x ", address,regs->rip,regs->rsp,error_code,tsk->thread.flags); - if (vma) - printk("vma %lx-%lx prot:%lx flags:%lx",vma->vm_start,vma->vm_end, - vma->vm_page_prot,vma->vm_flags); - printk("\n"); -#endif - - if (!vma) goto bad_area; if (vma->vm_start <= address) @@ -167,7 +168,6 @@ goto bad_area; } -survive: /* * If for any reason at all we couldn't handle the fault, * make sure we exit gracefully rather than endlessly redo @@ -200,10 +200,9 @@ /* User mode accesses just cause a SIGSEGV */ if (error_code & 4) { - - printk(KERN_ERR "%.20s[%d] segfaulted rip:%lx rsp:%lx adr:%lx err:%lx\n", - tsk->comm, tsk->pid, - regs->rip, regs->rsp, address, error_code); + printk("%s[%d] segfault at rip:%lx rsp:%lx adr:%lx err:%lx\n", + tsk->comm, tsk->pid, regs->rip, regs->rsp, address, + error_code); tsk->thread.cr2 = address; tsk->thread.error_code = error_code; @@ -221,6 +220,10 @@ /* Are we prepared to handle this kernel fault? */ if ((fixup = search_exception_table(regs->rip)) != 0) { regs->rip = fixup; + if (exception_trace) + printk(KERN_ERR + "%s: fixed kernel exception at %lx address %lx err:%ld\n", + current->comm, regs->rip, address, error_code); return; } @@ -251,8 +254,7 @@ up_read(&mm->mmap_sem); if (current->pid == 1) { yield(); - down_read(&mm->mmap_sem); - goto survive; + goto again; } printk("VM: killing process %s\n", tsk->comm); if (error_code & 4) @@ -278,43 +280,39 @@ /* Kernel mode? Handle exceptions or die */ if (!(error_code & 4)) goto no_context; + return; vmalloc_fault: { + pgd_t *pgd; + pmd_t *pmd; + pte_t *pte; + /* - * Synchronize the kernel space top level page-table - * with the 'reference' page table. - * Currently it only works for first and last 512 GB of - * kernel memory FIXME - * + * x86-64 has the same kernel 3rd level pages for all CPUs. + * But for vmalloc/modules the TLB synchronization works lazily, + * so it can happen that we get a page fault for something + * that is really already in the page table. Just check if it + * is really there and when yes flush the local TLB. */ - level4_t *l4pd = level4_offset_k(address); - int offset = __pgd_offset(address); - pgd_t *pgd, *pgd_k; - pmd_t *pmd, *pmd_k; - - if (! level4_val(*l4pd)) { - printk(KERN_ERR "fatal - no entry in level4_page for %lx\n", - address); - goto bad_area_nosemaphore; - } - pgd = level3_offset_k(l4pd, address); - pgd_k = init_mm.pgd + offset; - - if (!pgd_present(*pgd)) { - if (!pgd_present(*pgd_k)) + pgd = pgd_offset_k(address); + if (pgd != current_pgd_offset_k(address)) + BUG(); + if (!pgd_present(*pgd)) goto bad_area_nosemaphore; - set_pgd(pgd, *pgd_k); - return; - } - pmd = pmd_offset(pgd, address); - pmd_k = pmd_offset(pgd_k, address); - - if (pmd_present(*pmd) || !pmd_present(*pmd_k)) + if (!pmd_present(*pmd)) goto bad_area_nosemaphore; - set_pmd(pmd, *pmd_k); + pte = pte_offset_kernel(pmd, address); + if (!pte_present(*pte)) + goto bad_area_nosemaphore; + + /* Strictly a flush_tlb_all because vmalloc is global, + but this only applies to new global pages so it should + not be needed. vmalloc will likely touch multiple ptes, + so do a full flush instead of a partial one. */ + __flush_tlb(); return; } } |
From: James S. <jsi...@us...> - 2002-04-24 18:56:58
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/char In directory usw-pr-cvs1:/tmp/cvs-serv8328/linux/drivers/char Modified Files: Makefile tty_io.c Log Message: Synced to 2.5.9. Note some of the fb changes went into 2.5.9. Yeah :-) Index: Makefile =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/Makefile,v retrieving revision 1.35 retrieving revision 1.36 diff -u -d -r1.35 -r1.36 --- Makefile 18 Mar 2002 19:29:10 -0000 1.35 +++ Makefile 24 Apr 2002 18:56:51 -0000 1.36 @@ -1,13 +1,6 @@ # # Makefile for the kernel character device drivers. # -# Note! Dependencies are done automagically by 'make dep', which also -# removes any old dependencies. DON'T put your own dependencies here -# unless it's something special (ie not a .c file). -# -# Note 2! The CFLAGS definitions are now inherited from the -# parent makes.. -# # # This file contains the font map for the default (hardware) font @@ -26,8 +19,6 @@ sonypi.o tty_io.o tty_ioctl.o generic_serial.o rtc.o mod-subdirs := ftape drm pcmcia - -list-multi := SERIAL = serial.o Index: tty_io.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/char/tty_io.c,v retrieving revision 1.47 retrieving revision 1.48 diff -u -d -r1.47 -r1.48 --- tty_io.c 16 Apr 2002 17:41:49 -0000 1.47 +++ tty_io.c 24 Apr 2002 18:56:51 -0000 1.48 @@ -1830,6 +1830,9 @@ for_each_task(p) { if ((p->tty == tty) || ((session > 0) && (p->session == session))) { + printk(KERN_NOTICE "SAK: killed process %d" + " (%s): p->session==tty->session\n", + p->pid, p->comm); send_sig(SIGKILL, p, 1); continue; } @@ -1840,6 +1843,9 @@ filp = fcheck_files(p->files, i); if (filp && (filp->f_op == &tty_fops) && (filp->private_data == tty)) { + printk(KERN_NOTICE "SAK: killed process %d" + " (%s): fd#%d opened to the tty\n", + p->pid, p->comm, i); send_sig(SIGKILL, p, 1); break; } |
From: James S. <jsi...@us...> - 2002-04-24 18:56:58
|
Update of /cvsroot/linuxconsole/ruby/linux/arch/x86_64/ia32 In directory usw-pr-cvs1:/tmp/cvs-serv8328/linux/arch/x86_64/ia32 Modified Files: ia32_ioctl.c Log Message: Synced to 2.5.9. Note some of the fb changes went into 2.5.9. Yeah :-) Index: ia32_ioctl.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/linux/arch/x86_64/ia32/ia32_ioctl.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- ia32_ioctl.c 22 Mar 2002 20:13:58 -0000 1.3 +++ ia32_ioctl.c 24 Apr 2002 18:56:51 -0000 1.4 @@ -3,7 +3,7 @@ * * Copyright (C) 1997-2000 Jakub Jelinek (ja...@re...) * Copyright (C) 1998 Eddie C. Dost (ec...@sk...) - * Copyright (C) 2001 Andi Kleen, SuSE Labs + * Copyright (C) 2001,2002 Andi Kleen, SuSE Labs * * These routines maintain argument size conversion between 32bit and 64bit * ioctls. @@ -51,6 +51,10 @@ #include <linux/elevator.h> #include <linux/rtc.h> #include <linux/pci.h> +#include <linux/rtc.h> +#include <linux/module.h> +#include <linux/serial.h> +#include <linux/reiserfs_fs.h> #if defined(CONFIG_BLK_DEV_LVM) || defined(CONFIG_BLK_DEV_LVM_MODULE) /* Ugh. This header really is not clean */ #define min min @@ -1661,7 +1665,7 @@ static int do_fontx_ioctl(unsigned int fd, int cmd, struct consolefontdesc32 *user_cfd, struct file *file) { struct tty_struct *tty = (struct tty_struct *)file->private_data; - struct vc_data *vc = (struct vc_data *) tty->driver_data; + struct vc_data *vc = (struct vc_data *) tty->driver_data; struct consolefontdesc cfdarg; struct console_font_op op; int i, perm; @@ -1718,7 +1722,7 @@ static int do_kdfontop_ioctl(unsigned int fd, unsigned int cmd, struct console_font_op32 *fontop, struct file *file) { struct tty_struct *tty = (struct tty_struct *)file->private_data; - struct vc_data *vc = (struct vc_data *) tty->driver_data; + struct vc_data *vc = (struct vc_data *) tty->driver_data; struct console_font_op op; int perm = vt_check(file), i; @@ -1746,7 +1750,7 @@ static int do_unimap_ioctl(unsigned int fd, unsigned int cmd, struct unimapdesc32 *user_ud, struct file *file) { struct tty_struct *tty = (struct tty_struct *)file->private_data; - struct vc_data *vc = (struct vc_data *) tty->driver_data; + struct vc_data *vc = (struct vc_data *) tty->driver_data; struct unimapdesc32 tmp; int perm = vt_check(file); @@ -1762,7 +1766,6 @@ } return 0; } -#endif /* CONFIG_VT */ static int do_smb_getmountuid(unsigned int fd, unsigned int cmd, unsigned long arg) { @@ -2978,12 +2981,139 @@ return rw_long(fd, AUTOFS_IOC_SETTIMEOUT, arg); } +/* SuSE extension */ +#ifndef TIOCGDEV +#define TIOCGDEV _IOR('T',0x32, unsigned int) +#endif +static int tiocgdev(unsigned fd, unsigned cmd, unsigned int *ptr) +{ + + struct file *file = fget(fd); + struct tty_struct *real_tty; + + if (!fd) + return -EBADF; + if (file->f_op->ioctl != tty_ioctl) + return -EINVAL; + real_tty = (struct tty_struct *)file->private_data; + if (!real_tty) + return -EINVAL; + return put_user(kdev_t_to_nr(real_tty->device), ptr); +} + + +struct raw32_config_request +{ + int raw_minor; + __u64 block_major; + __u64 block_minor; +} __attribute__((packed)); + +static int raw_ioctl(unsigned fd, unsigned cmd, void *ptr) +{ + int ret; + switch (cmd) { + case RAW_SETBIND: + case RAW_GETBIND: { + struct raw_config_request req; + struct raw32_config_request *user_req = ptr; + mm_segment_t oldfs = get_fs(); + + if (get_user(req.raw_minor, &user_req->raw_minor) || + get_user(req.block_major, &user_req->block_major) || + get_user(req.block_minor, &user_req->block_minor)) + return -EFAULT; + set_fs(KERNEL_DS); + ret = sys_ioctl(fd,cmd,(unsigned long)&req); + set_fs(oldfs); + break; + } + default: + ret = sys_ioctl(fd,cmd,(unsigned long)ptr); + break; + } + return ret; +} + +struct serial_struct32 { + int type; + int line; + unsigned int port; + int irq; + int flags; + int xmit_fifo_size; + int custom_divisor; + int baud_base; + unsigned short close_delay; + char io_type; + char reserved_char[1]; + int hub6; + unsigned short closing_wait; /* time to wait before closing */ + unsigned short closing_wait2; /* no longer used... */ + __u32 iomem_base; + unsigned short iomem_reg_shift; + unsigned int port_high; + int reserved[1]; +}; + +static int serial_struct_ioctl(unsigned fd, unsigned cmd, void *ptr) +{ + typedef struct serial_struct SS; + struct serial_struct32 *ss32 = ptr; + int err = 0; + struct serial_struct ss; + mm_segment_t oldseg = get_fs(); + set_fs(KERNEL_DS); + if (cmd == TIOCSSERIAL) { + err = -EFAULT; + if (copy_from_user(&ss, ss32, sizeof(struct serial_struct32))) + goto out; + memmove(&ss.iomem_reg_shift, ((char*)&ss.iomem_base)+4, + sizeof(SS)-offsetof(SS,iomem_reg_shift)); + ss.iomem_base = (void *)((unsigned long)ss.iomem_base & 0xffffffff); + } + if (!err) + err = sys_ioctl(fd,cmd,(unsigned long)(&ss)); + if (cmd == TIOCGSERIAL && err >= 0) { + __u32 base; + if (__copy_to_user(ss32,&ss,offsetof(SS,iomem_base)) || + __copy_to_user(&ss32->iomem_reg_shift, + &ss.iomem_reg_shift, + sizeof(SS) - offsetof(SS, iomem_reg_shift))) + err = -EFAULT; + if (ss.iomem_base > (unsigned char *)0xffffffff) + base = -1; + else + base = (unsigned long)ss.iomem_base; + err |= __put_user(base, &ss32->iomem_base); + } + out: + set_fs(oldseg); + return err; +} + struct ioctl_trans { unsigned long cmd; - unsigned long handler; + int (*handler)(unsigned int, unsigned int, unsigned long, struct file * filp); struct ioctl_trans *next; }; +/* generic function to change a single long put_user to arg to 32bit */ +static int arg2long(unsigned int fd, unsigned int cmd, unsigned long arg) +{ + int ret; + unsigned long val = 0; + mm_segment_t oldseg = get_fs(); + set_fs(KERNEL_DS); + ret = sys_ioctl(fd, cmd, (unsigned long)&val); + set_fs(oldseg); + if (!ret || val) { + if (put_user((int)val, (unsigned int *)arg)) + return -EFAULT; + } + return ret; +} + #define REF_SYMBOL(handler) if (0) (void)handler; #define HANDLE_IOCTL2(cmd,handler) REF_SYMBOL(handler); asm volatile(".quad %c0, " #handler ",0"::"i" (cmd)); #define HANDLE_IOCTL(cmd,handler) HANDLE_IOCTL2(cmd,handler) @@ -2992,7 +3122,7 @@ #define IOCTL_TABLE_END asm volatile("\nioctl_end:"); } IOCTL_TABLE_START -/* List here exlicitly which ioctl's are known to have +/* List here explicitly which ioctl's are known to have * compatable types passed or none at all... */ /* Big T */ @@ -3008,6 +3138,7 @@ COMPATIBLE_IOCTL(TCSETSW) COMPATIBLE_IOCTL(TCSETSF) COMPATIBLE_IOCTL(TIOCLINUX) +HANDLE_IOCTL(TIOCGDEV, tiocgdev) /* Little t */ COMPATIBLE_IOCTL(TIOCGETD) COMPATIBLE_IOCTL(TIOCSETD) @@ -3031,8 +3162,6 @@ COMPATIBLE_IOCTL(TIOCSCTTY) COMPATIBLE_IOCTL(TIOCGPTN) COMPATIBLE_IOCTL(TIOCSPTLCK) -COMPATIBLE_IOCTL(TIOCGSERIAL) -COMPATIBLE_IOCTL(TIOCSSERIAL) COMPATIBLE_IOCTL(TIOCSERGETLSR) COMPATIBLE_IOCTL(FBIOGET_VSCREENINFO) COMPATIBLE_IOCTL(FBIOPUT_VSCREENINFO) @@ -3088,6 +3217,8 @@ COMPATIBLE_IOCTL(BLKROGET) COMPATIBLE_IOCTL(BLKRRPART) COMPATIBLE_IOCTL(BLKFLSBUF) +COMPATIBLE_IOCTL(BLKRASET) +COMPATIBLE_IOCTL(BLKFRASET) COMPATIBLE_IOCTL(BLKSECTSET) COMPATIBLE_IOCTL(BLKSSZGET) @@ -3209,7 +3340,7 @@ COMPATIBLE_IOCTL(RTC_SET_TIME) COMPATIBLE_IOCTL(RTC_WKALM_SET) COMPATIBLE_IOCTL(RTC_WKALM_RD) -COMPATIBLE_IOCTL(RTC_IRQP_READ) +HANDLE_IOCTL(RTC_IRQP_READ,arg2long) COMPATIBLE_IOCTL(RTC_IRQP_SET) COMPATIBLE_IOCTL(RTC_EPOCH_READ) COMPATIBLE_IOCTL(RTC_EPOCH_SET) @@ -3485,9 +3616,6 @@ COMPATIBLE_IOCTL(DEVFSDIOC_SET_EVENT_MASK) COMPATIBLE_IOCTL(DEVFSDIOC_RELEASE_EVENT_QUEUE) COMPATIBLE_IOCTL(DEVFSDIOC_SET_DEBUG_MASK) -/* Raw devices */ -COMPATIBLE_IOCTL(RAW_SETBIND) -COMPATIBLE_IOCTL(RAW_GETBIND) /* SMB ioctls which do not need any translations */ COMPATIBLE_IOCTL(SMB_IOC_NEWCONN) /* Little a */ @@ -3549,6 +3677,18 @@ COMPATIBLE_IOCTL(DRM_IOCTL_UNLOCK) COMPATIBLE_IOCTL(DRM_IOCTL_FINISH) #endif /* DRM */ +#ifdef CONFIG_AUTOFS_FS +COMPATIBLE_IOCTL(AUTOFS_IOC_READY); +COMPATIBLE_IOCTL(AUTOFS_IOC_FAIL); +COMPATIBLE_IOCTL(AUTOFS_IOC_CATATONIC); +COMPATIBLE_IOCTL(AUTOFS_IOC_PROTOVER); +COMPATIBLE_IOCTL(AUTOFS_IOC_SETTIMEOUT); +COMPATIBLE_IOCTL(AUTOFS_IOC_EXPIRE); +#endif +COMPATIBLE_IOCTL(REISERFS_IOC_UNPACK); +/* serial driver */ +HANDLE_IOCTL(TIOCGSERIAL, serial_struct_ioctl); +HANDLE_IOCTL(TIOCSSERIAL, serial_struct_ioctl); /* elevator */ COMPATIBLE_IOCTL(BLKELVGET) COMPATIBLE_IOCTL(BLKELVSET) @@ -3595,6 +3735,8 @@ HANDLE_IOCTL(SIOCETHTOOL, ethtool_ioctl) HANDLE_IOCTL(SIOCADDRT, routing_ioctl) HANDLE_IOCTL(SIOCDELRT, routing_ioctl) +/* Raw devices */ +HANDLE_IOCTL(RAW_SETBIND, raw_ioctl) /* Note SIOCRTMSG is no longer, so this is safe and * the user would have seen just an -EINVAL anyways. */ HANDLE_IOCTL(SIOCRTMSG, ret_einval) HANDLE_IOCTL(SIOCGSTAMP, do_siocgstamp) @@ -3757,14 +3899,14 @@ /* Always call these with kernel lock held! */ + int register_ioctl32_conversion(unsigned int cmd, int (*handler)(unsigned int, unsigned int, unsigned long, struct file *)) { int i; if (!additional_ioctls) { - additional_ioctls = module_map(PAGE_SIZE); + additional_ioctls = (struct ioctl_trans *)get_zeroed_page(GFP_KERNEL); if (!additional_ioctls) return -ENOMEM; - memset(additional_ioctls, 0, PAGE_SIZE); } for (i = 0; i < PAGE_SIZE/sizeof(struct ioctl_trans); i++) if (!additional_ioctls[i].cmd) @@ -3773,13 +3915,15 @@ return -ENOMEM; additional_ioctls[i].cmd = cmd; if (!handler) - additional_ioctls[i].handler = (u32)(long)sys_ioctl; + additional_ioctls[i].handler = + (int (*)(unsigned,unsigned,unsigned long, struct file *))sys_ioctl; else - additional_ioctls[i].handler = (u32)(long)handler; + additional_ioctls[i].handler = handler; ioctl32_insert_translation(&additional_ioctls[i]); return 0; } + int unregister_ioctl32_conversion(unsigned int cmd) { unsigned long hash = ioctl32_hash(cmd); @@ -3805,6 +3949,9 @@ return -EINVAL; } +EXPORT_SYMBOL(register_ioctl32_conversion); +EXPORT_SYMBOL(unregister_ioctl32_conversion); + asmlinkage int sys32_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg) { struct file * filp; @@ -3826,7 +3973,7 @@ while (t && t->cmd != cmd) t = (struct ioctl_trans *)(long)t->next; if (t) { - handler = (void *)(long)t->handler; + handler = t->handler; error = handler(fd, cmd, arg, filp); } else { static int count = 0; |