From: Aivils S. <ai...@us...> - 2003-10-02 09:32:27
|
Update of /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/char In directory sc8-pr-cvs1:/tmp/cvs-serv30336/ruby-2.6/drivers/char Modified Files: Kconfig Makefile keyboard.c n_tty.c sysrq.c tty_io.c vc_screen.c vt.c vt_ioctl.c Log Message: sync to 2.6.0-test6 Index: Kconfig =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/char/Kconfig,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Kconfig 11 Aug 2003 16:26:46 -0000 1.1 +++ Kconfig 2 Oct 2003 09:32:18 -0000 1.2 @@ -6,7 +6,7 @@ config VT bool "Virtual terminal" if EMBEDDED - requires INPUT=y + select INPUT default y ---help--- If you say Y here, you will get support for terminal devices with @@ -36,11 +36,11 @@ shiny Linux system :-) config VT_BDSM - bool "ISO6429 bidirectional support" - depends on VT - ---help--- - If you say yes you will get support for the ability to type left to - right or right to left. + bool "ISO6429 bidirectional support" + depends on VT + ---help--- + If you say yes you will get support for the ability to type left to + right or right to left. config VT_CONSOLE bool "Support for console on virtual terminal" if EMBEDDED @@ -87,7 +87,7 @@ config COMPUTONE tristate "Computone IntelliPort Plus serial support" - depends on SERIAL_NONSTANDARD + depends on SERIAL_NONSTANDARD && BROKEN_ON_SMP ---help--- This driver supports the entire family of Intelliport II/Plus controllers with the exception of the MicroChannel controllers and @@ -97,10 +97,8 @@ order to become a dial-in server. If you have a card like that, say Y here and read <file:Documentation/computone.txt>. - If you want to compile this as a module ( = code which can be - inserted in and removed from the running kernel whenever you want), - say M here and read <file:Documentation/modules.txt>. You will get - two modules called ip2 and ip2main. + To compile this driver as modules, choose M here: the + modules will be called ip2 and ip2main. config ROCKETPORT tristate "Comtrol RocketPort support" @@ -111,16 +109,15 @@ modems. For information about the RocketPort/RocketModem boards and this driver read <file:Documentation/rocket.txt>. - If you want to compile this driver as a module, say M here and read - <file:Documentation/modules.txt>. The module will be called - rocket. + To compile this driver as a module, choose M here: the + module will be called rocket. If you want to compile this driver into the kernel, say Y here. If you don't have a Comtrol RocketPort/RocketModem card installed, say N. config CYCLADES tristate "Cyclades async mux support" - depends on SERIAL_NONSTANDARD + depends on SERIAL_NONSTANDARD && BROKEN_ON_SMP ---help--- This is a driver for a card that gives you many serial ports. You would need something like this to connect more than two modems to @@ -131,10 +128,8 @@ As of 1.3.9x kernels, this driver's minor numbers start at 0 instead of 32. - If you want to compile this as a module ( = code which can be - inserted in and removed from the running kernel whenever you want), - say M here and read <file:Documentation/modules.txt>. The module - will be called cyclades. + To compile this driver as a module, choose M here: the + module will be called cyclades. If you haven't heard about it, it's safe to say N. @@ -152,7 +147,7 @@ config DIGIEPCA tristate "Digiboard Intelligent Async Support" - depends on SERIAL_NONSTANDARD + depends on SERIAL_NONSTANDARD && BROKEN_ON_SMP ---help--- This is a driver for Digi International's Xx, Xeve, and Xem series of cards which provide multiple serial ports. You would need @@ -166,12 +161,12 @@ "Digiboard PC/Xx Support" below. You should (and can) only select one of the two drivers. - If you want to compile this driver as a module, say M here and read - <file:Documentation/modules.txt>. The module will be called epca. + To compile this driver as a module, choose M here: the + module will be called epca. config DIGI tristate "Digiboard PC/Xx Support" - depends on SERIAL_NONSTANDARD && DIGIEPCA=n + depends on SERIAL_NONSTANDARD && DIGIEPCA=n && BROKEN_ON_SMP help This is a driver for the Digiboard PC/Xe, PC/Xi, and PC/Xeve cards that give you many serial ports. You would need something like this @@ -179,36 +174,34 @@ order to become a dial-in server. If you have a card like that, say Y here and read the file <file:Documentation/digiboard.txt>. - If you want to compile this driver as a module, say M here and read - <file:Documentation/modules.txt>. The module will be called pcxx. + To compile this driver as a module, choose M here: the + module will be called pcxx. config ESPSERIAL tristate "Hayes ESP serial port support" - depends on SERIAL_NONSTANDARD && ISA + depends on SERIAL_NONSTANDARD && ISA && BROKEN_ON_SMP help This is a driver which supports Hayes ESP serial ports. Both single port cards and multiport cards are supported. Make sure to read <file:Documentation/hayes-esp.txt>. - To compile this driver as a module ( = code which can be inserted in - and removed from the running kernel whenever you want), say M here - and read <file:Documentation/modules.txt>. The module will be - called esp. If unsure, say N. + To compile this driver as a module, choose M here: the + module will be called esp. + + If unsure, say N. config MOXA_INTELLIO tristate "Moxa Intellio support" - depends on SERIAL_NONSTANDARD + depends on SERIAL_NONSTANDARD && BROKEN_ON_SMP help Say Y here if you have a Moxa Intellio multiport serial card. - This driver can also be built as a module ( = code which can be - inserted in and removed from the running kernel whenever you want). - The module will be called moxa. If you want to do that, say M - here. + To compile this driver as a module, choose M here: the + module will be called moxa. config MOXA_SMARTIO tristate "Moxa SmartIO support" - depends on SERIAL_NONSTANDARD + depends on SERIAL_NONSTANDARD && BROKEN_ON_SMP help Say Y here if you have a Moxa SmartIO multiport serial card. @@ -219,14 +212,12 @@ config ISI tristate "Multi-Tech multiport card support (EXPERIMENTAL)" - depends on SERIAL_NONSTANDARD && EXPERIMENTAL && m + depends on SERIAL_NONSTANDARD && EXPERIMENTAL && BROKEN_ON_SMP && m help This is a driver for the Multi-Tech cards which provide several serial ports. The driver is experimental and can currently only be - built as a module ( = code which can be inserted in and removed from - the running kernel whenever you want). Please read - <file:Documentation/modules.txt>. The module will be called - isicom. + built as a module. The module will be called isicom. + If you want to do that, choose M here. config SYNCLINK tristate "Microgate SyncLink card support" @@ -269,7 +260,7 @@ config RISCOM8 tristate "SDL RISCom/8 card support" - depends on SERIAL_NONSTANDARD + depends on SERIAL_NONSTANDARD && BROKEN_ON_SMP help This is a driver for the SDL Communications RISCom/8 multiport card, which gives you many serial ports. You would need something like @@ -282,7 +273,7 @@ config SPECIALIX tristate "Specialix IO8+ card support" - depends on SERIAL_NONSTANDARD + depends on SERIAL_NONSTANDARD && BROKEN_ON_SMP help This is a driver for the Specialix IO8+ multiport card (both the ISA and the PCI version) which gives you many serial ports. You @@ -306,7 +297,7 @@ config SX tristate "Specialix SX (and SI) card support" - depends on SERIAL_NONSTANDARD + depends on SERIAL_NONSTANDARD && BROKEN_ON_SMP help This is a driver for the SX and SI multiport serial cards. Please read the file <file:Documentation/sx.txt> for details. @@ -317,7 +308,7 @@ config RIO tristate "Specialix RIO system support" - depends on SERIAL_NONSTANDARD + depends on SERIAL_NONSTANDARD && BROKEN_ON_SMP help This is a driver for the Specialix RIO, a smart serial card which drives an outboard box that can support up to 128 ports. Product @@ -346,33 +337,29 @@ config STALLION tristate "Stallion EasyIO or EC8/32 support" - depends on STALDRV + depends on STALDRV && BROKEN_ON_SMP help If you have an EasyIO or EasyConnection 8/32 multiport Stallion card, then this is for you; say Y. Make sure to read <file:Documentation/stallion.txt>. - If you want to compile this as a module ( = code which can be - inserted in and removed from the running kernel whenever you want), - say M here and read <file:Documentation/modules.txt>. The module - will be called stallion. + To compile this driver as a module, choose M here: the + module will be called stallion. config ISTALLION tristate "Stallion EC8/64, ONboard, Brumby support" - depends on STALDRV + depends on STALDRV && BROKEN_ON_SMP help If you have an EasyConnection 8/64, ONboard, Brumby or Stallion serial multiport card, say Y here. Make sure to read <file:Documentation/stallion.txt>. - To compile it as a module ( = code which can be inserted in and - removed from the running kernel whenever you want), say M here and - read <file:Documentation/modules.txt>. The module will be called - istallion. + To compile this driver as a module, choose M here: the + module will be called istallion. config SERIAL_TX3912 bool "TMPTX3912/PR31700 serial port support" - depends on SERIAL_NONSTANDARD && MIPS + depends on SERIAL_NONSTANDARD && MIPS && BROKEN_ON_SMP help The TX3912 is a Toshiba RISC processor based o the MIPS 3900 core; see <http://www.toshiba.com/taec/components/Generic/risc/tx3912.htm>. @@ -432,7 +419,7 @@ config A2232 tristate "Commodore A2232 serial support (EXPERIMENTAL)" - depends on EXPERIMENTAL && ZORRO + depends on EXPERIMENTAL && ZORRO && BROKEN_ON_SMP ---help--- This option supports the 2232 7-port serial card shipped with the Amiga 2000 and other Zorro-bus machines, dating from 1989. At @@ -444,8 +431,7 @@ This driver can be built as a module; but then "generic_serial" will also be built as a module. This has to be loaded before - "ser_a2232". If you want to do this, answer M here and read - "<file:Documentation/modules.txt>". + "ser_a2232". If you want to do this, answer M here. source "drivers/serial/Kconfig" @@ -503,10 +489,9 @@ It is possible to share one parallel port among several devices (e.g. printer and ZIP drive) and it is safe to compile the - corresponding drivers into the kernel. If you want to compile this - driver as a module however ( = code which can be inserted in and - removed from the running kernel whenever you want), say M here and - read <file:Documentation/modules.txt> and + corresponding drivers into the kernel. + + To compile this driver as a module, choose M here and read <file:Documentation/parport.txt>. The module will be called lp. If you have several parallel ports, you can specify which ports to @@ -548,10 +533,8 @@ It is safe to say N to this -- it is not needed for normal printing or parallel port CD-ROM/disk support. - This support is also available as a module. If you want to compile - it as a module, say M here and read - <file:Documentation/modules.txt>. The module will be called - ppdev. + To compile this driver as a module, choose M here: the + module will be called ppdev. If unsure, say N. @@ -568,10 +551,8 @@ to use this precise link cable (depending on the permissions on the device nodes, though). - This code is also available as a module ( = code which can be - inserted in and removed from the running kernel whenever you want). - The module will be called tipar. If you want to compile it as a - module, say M here and read Documentation/modules.txt. + To compile this driver as a module, choose M here: the + module will be called tipar. If you don't know what a parallel link cable is or what a Texas Instruments graphing calculator is, then you probably don't need this @@ -619,21 +600,18 @@ you will have to say Y here and also to the specific driver for your mouse below. - This code is also available as a module ( = code which can be - inserted in and removed from the running kernel whenever you want). - The module will be called busmouse. If you want to compile it as a - module, say M here and read <file:Documentation/modules.txt>. + To compile this driver as a module, choose M here: the + module will be called busmouse. endmenu config QIC02_TAPE tristate "QIC-02 tape support" help - If you have a non-SCSI tape drive like that, say Y. Or, if you want - to compile this driver as a module ( = code which can be inserted in - and removed from the running kernel whenever you want), say M here - and read <file:Documentation/modules.txt>. The module will be called - tpqic02. + If you have a non-SCSI tape drive like that, say Y. + + To compile this driver as a module, choose M here: the + module will be called tpqic02. config QIC02_DYNCONF bool "Do you want runtime configuration for QIC-02" @@ -694,11 +672,8 @@ button; it will still execute a hard reset if the button is held down for longer than approximately five seconds. - This driver is also available as a module ( = code which can be - inserted in and removed from the running kernel whenever you want). - If you want to compile it as a module, say M here and read - <file:Documentation/modules.txt>. The module will be called - nwbutton. + To compile this driver as a module, choose M here: the + module will be called nwbutton. Most people will answer Y to this question and "Reboot Using Button" below to be able to initiate a system shutdown from the button. @@ -725,10 +700,8 @@ flash contents can render your computer unbootable. On no account allow random users access to this device. :-) - This driver is also available as a module ( = code which can be - inserted in and removed from the running kernel whenever you want). - The module will be called nwflash. If you want to compile it as a - module, say M here and read <file:Documentation/modules.txt>. + To compile this driver as a module, choose M here: the + module will be called nwflash. If you're not sure, say N. @@ -742,10 +715,8 @@ Provides a character driver, used to read() entropy data. - To compile this driver as a module ( = code which can be inserted in - and removed from the running kernel whenever you want), say M here - and read <file:Documentation/modules.txt>. The module will be called - hw_random. + To compile this driver as a module, choose M here: the + module will be called hw_random. If unsure, say N. @@ -771,10 +742,8 @@ On Atari machines, /dev/nvram is always configured and does not need to be selected. - This driver is also available as a module ( = code which can be - inserted in and removed from the running kernel whenever you want). - The module will be called nvram. If you want to compile it as a - module, say M here and read <file:Documentation/modules.txt>. + To compile this driver as a module, choose M here: the + module will be called nvram. config RTC tristate "Enhanced Real Time Clock Support" @@ -799,10 +768,8 @@ sampling), then say Y here, and read <file:Documentation/rtc.txt> for details. - This driver is also available as a module ( = code which can be - inserted in and removed from the running kernel whenever you want). - The module is called rtc. If you want to compile it as a module, - say M here and read <file:Documentation/modules.txt>. + To compile this driver as a module, choose M here: the + module will be called rtc. config GEN_RTC tristate "Generic /dev/rtc emulation" @@ -819,12 +786,9 @@ for RTC_UIE which is required by some programs and may improve precision in some cases. - This driver is also available as a module ( = code which can be - inserted in and removed from the running kernel whenever you want). - The module is called genrtc. If you want to compile it as a module, - say M here and read <file:Documentation/modules.txt>. To load the - module automatically add 'alias char-major-10-135 genrtc' to your - /etc/modules.conf + To compile this driver as a module, choose M here: the + module will be called genrtc. To load the module automatically + add 'alias char-major-10-135 genrtc' to your /etc/modules.conf config GEN_RTC_X bool "Extended RTC operation" @@ -861,10 +825,10 @@ help This driver is for the DoubleTalk PC, a speech synthesizer manufactured by RC Systems (<http://www.rcsys.com/>). It is also - called the `internal DoubleTalk'. If you want to compile this as a - module ( = code which can be inserted in and removed from the - running kernel whenever you want), say M here and read - <file:Documentation/modules.txt>. The module will be called dtlk. + called the `internal DoubleTalk'. + + To compile this driver as a module, choose M here: the + module will be called dtlk. config R3964 tristate "Siemens R3964 line discipline" @@ -873,10 +837,8 @@ Siemens R3964 packet protocol. Unless you are dealing with special hardware like PLCs, you are unlikely to need this. - To compile this driver as a module ( = code which can be inserted in - and removed from the running kernel whenever you want), say M here - and read <file:Documentation/modules.txt>. The module will be called - n_r3964. + To compile this driver as a module, choose M here: the + module will be called n_r3964. If unsure, say N. @@ -889,10 +851,8 @@ <http://www.applicom-int.com/>, or by email from David Woodhouse <dw...@in...>. - To compile this driver as a module ( = code which can be inserted in - and removed from the running kernel whenever you want), say M here - and read <file:Documentation/modules.txt>. The module will be called - applicom. + To compile this driver as a module, choose M here: the + module will be called applicom. If unsure, say N. @@ -906,16 +866,15 @@ If you have one of those laptops, read <file:Documentation/sonypi.txt>, and say Y or M here. - If you want to compile the driver as a module ( = code which can be - inserted in and removed from the running kernel whenever you want), - say M here and read <file:Documentation/modules.txt>. The module - will be called sonypi. + To compile this driver as a module, choose M here: the + module will be called sonypi. menu "Ftape, the floppy tape device driver" config FTAPE tristate "Ftape (QIC-80/Travan) support" + depends on BROKEN_ON_SMP ---help--- If you have a tape drive that is connected to your floppy controller, say Y here. @@ -937,9 +896,7 @@ please read the file <file:drivers/char/ftape/README.PCI>. The ftape kernel driver is also available as a runtime loadable - module ( = code which can be inserted in and removed from the - running kernel whenever you want). If you want to compile it as a - module, say M here and read <file:Documentation/modules.txt>. The + module. To compile this driver as a module, choose M here: the module will be called ftape. Note that the Ftape-HOWTO is out of date (sorry) and documents the @@ -965,6 +922,7 @@ config MWAVE tristate "ACP Modem (Mwave) support" depends on X86 + select SERIAL_8250 ---help--- The ACP modem (Mwave) for Linux is a WinModem. It is composed of a kernel driver and a user level application. Together these components @@ -984,10 +942,8 @@ If you own one of the above IBM Thinkpads which has the Mwave chipset in it, say Y. - This driver is also available as a module ( = code which can be - inserted in and removed from the running kernel whenever you want). - The module will be called mwave. If you want to compile it as - a module, say M here and read Documentation/modules.txt. + To compile this driver as a module, choose M here: the + module will be called mwave. config SCx200_GPIO tristate "NatSemi SCx200 GPIO Support" @@ -1007,6 +963,7 @@ config HANGCHECK_TIMER tristate "Hangcheck timer" + depends on X86_64 || X86 help The hangcheck-timer module detects when the system has gone out to lunch past a certain margin. It can reboot the system Index: Makefile =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/char/Makefile,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- Makefile 16 Sep 2003 06:54:41 -0000 1.2 +++ Makefile 2 Oct 2003 09:32:18 -0000 1.3 @@ -7,40 +7,41 @@ # FONTMAPFILE = cp437.uni -obj-y += mem.o tty_io.o n_tty.o tty_ioctl.o pty.o misc.o random.o +obj-y += mem.o random.o tty_io.o n_tty.o tty_ioctl.o pty.o misc.o -obj-$(CONFIG_VT) += vt_ioctl.o decvte.o vc_screen.o consolemap.o consolemap_deftbl.o selection.o keyboard.o vt_proc.o -obj-$(CONFIG_HW_CONSOLE) += vt.o defkeymap.o -obj-$(CONFIG_MAGIC_SYSRQ) += sysrq.o -obj-$(CONFIG_ATARI_DSP56K) += dsp56k.o -obj-$(CONFIG_ROCKETPORT) += rocket.o -obj-$(CONFIG_MOXA_SMARTIO) += mxser.o -obj-$(CONFIG_MOXA_INTELLIO) += moxa.o -obj-$(CONFIG_DIGI) += pcxx.o -obj-$(CONFIG_DIGIEPCA) += epca.o -obj-$(CONFIG_CYCLADES) += cyclades.o -obj-$(CONFIG_STALLION) += stallion.o -obj-$(CONFIG_ISTALLION) += istallion.o -obj-$(CONFIG_COMPUTONE) += ip2.o ip2main.o -obj-$(CONFIG_RISCOM8) += riscom8.o -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_VT) += vt_ioctl.o decvte.o vc_screen.o consolemap.o \ + consolemap_deftbl.o selection.o keyboard.o vt_proc.o +obj-$(CONFIG_HW_CONSOLE) += vt.o defkeymap.o +obj-$(CONFIG_MAGIC_SYSRQ) += sysrq.o +obj-$(CONFIG_ESPSERIAL) += esp.o +obj-$(CONFIG_MVME147_SCC) += generic_serial.o vme_scc.o +obj-$(CONFIG_MVME162_SCC) += generic_serial.o vme_scc.o +obj-$(CONFIG_BVME6000_SCC) += generic_serial.o vme_scc.o +obj-$(CONFIG_SERIAL_TX3912) += generic_serial.o serial_tx3912.o +obj-$(CONFIG_ROCKETPORT) += rocket.o +obj-$(CONFIG_SERIAL167) += serial167.o +obj-$(CONFIG_CYCLADES) += cyclades.o +obj-$(CONFIG_STALLION) += stallion.o +obj-$(CONFIG_ISTALLION) += istallion.o +obj-$(CONFIG_DIGI) += pcxx.o +obj-$(CONFIG_DIGIEPCA) += epca.o +obj-$(CONFIG_SPECIALIX) += specialix.o +obj-$(CONFIG_MOXA_INTELLIO) += moxa.o +obj-$(CONFIG_A2232) += ser_a2232.o generic_serial.o +obj-$(CONFIG_ATARI_DSP56K) += dsp56k.o +obj-$(CONFIG_MOXA_SMARTIO) += mxser.o +obj-$(CONFIG_COMPUTONE) += ip2.o ip2main.o +obj-$(CONFIG_RISCOM8) += riscom8.o +obj-$(CONFIG_ISI) += isicom.o +obj-$(CONFIG_SYNCLINK) += synclink.o +obj-$(CONFIG_SYNCLINKMP) += synclinkmp.o +obj-$(CONFIG_N_HDLC) += n_hdlc.o obj-$(CONFIG_AMIGA_BUILTIN_SERIAL) += amiserial.o -obj-$(CONFIG_A2232) += ser_a2232.o generic_serial.o -obj-$(CONFIG_SX) += sx.o generic_serial.o -obj-$(CONFIG_RIO) += rio/ generic_serial.o -obj-$(CONFIG_SH_SCI) += sh-sci.o generic_serial.o -obj-$(CONFIG_SERIAL167) += serial167.o -obj-$(CONFIG_MVME147_SCC) += generic_serial.o vme_scc.o -obj-$(CONFIG_MVME162_SCC) += generic_serial.o vme_scc.o -obj-$(CONFIG_BVME6000_SCC) += generic_serial.o vme_scc.o -obj-$(CONFIG_SERIAL_TX3912) += generic_serial.o serial_tx3912.o -obj-$(CONFIG_HVC_CONSOLE) += hvc_console.o -obj-$(CONFIG_RAW_DRIVER) += raw.o +obj-$(CONFIG_SX) += sx.o generic_serial.o +obj-$(CONFIG_RIO) += rio/ generic_serial.o +obj-$(CONFIG_SH_SCI) += sh-sci.o generic_serial.o +obj-$(CONFIG_HVC_CONSOLE) += hvc_console.o +obj-$(CONFIG_RAW_DRIVER) += raw.o obj-$(CONFIG_PRINTER) += lp.o obj-$(CONFIG_TIPAR) += tipar.o Index: keyboard.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/char/keyboard.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- keyboard.c 29 Sep 2003 08:50:56 -0000 1.4 +++ keyboard.c 2 Oct 2003 09:32:18 -0000 1.5 @@ -154,7 +154,7 @@ INPUT_KEYCODE(dev, scancode) = keycode; for (i = 0; i < dev->keycodemax; i++) - if (INPUT_KEYCODE(dev, scancode) == oldkey) + if (keycode == oldkey) break; if (i == dev->keycodemax) clear_bit(oldkey, dev->keybit); @@ -205,14 +205,6 @@ /* * Setting the keyboard rate. */ -static inline unsigned int ms_to_jiffies(unsigned int ms) -{ - unsigned int j; - - j = (ms * HZ + 500) / 1000; - return (j > 0) ? j : 1; -} - int kbd_rate(struct input_handle *handle, struct kbd_repeat *rep) { struct input_dev *dev = handle->dev; @@ -220,11 +212,11 @@ if (test_bit(EV_REP, dev->evbit)) { if (rep->delay > 0) - dev->rep[REP_DELAY] = ms_to_jiffies(rep->delay); + input_event(dev, EV_REP, REP_DELAY, rep->delay); if (rep->period > 0) - dev->rep[REP_PERIOD] = ms_to_jiffies(rep->period); - d = dev->rep[REP_DELAY] * 1000 / HZ; - p = dev->rep[REP_PERIOD] * 1000 / HZ; + input_event(dev, EV_REP, REP_PERIOD, rep->period); + d = dev->rep[REP_DELAY]; + p = dev->rep[REP_PERIOD]; } rep->delay = d; rep->period = p; @@ -607,9 +599,12 @@ static void k_fn(struct vc_data *vc, unsigned char value, char up_flag) { + unsigned v; + if (up_flag) return; - if (value < ARRAY_SIZE(func_table)) { + v = value; + if (v < ARRAY_SIZE(func_table)) { if (func_table[value]) puts_queue(vc, func_table[value]); } else Index: n_tty.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/char/n_tty.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- n_tty.c 11 Aug 2003 16:26:46 -0000 1.1 +++ n_tty.c 2 Oct 2003 09:32:18 -0000 1.2 @@ -40,6 +40,7 @@ #include <linux/tty.h> #include <linux/timer.h> #include <linux/ctype.h> +#include <linux/kd.h> #include <linux/mm.h> #include <linux/string.h> #include <linux/slab.h> @@ -49,8 +50,6 @@ #include <asm/system.h> #include <asm/bitops.h> -#define IS_SYSCONS_DEV(dev) (kdev_val(dev) == __mkdev(TTYAUX_MAJOR,1)) - /* number of characters left in xmit buffer before select has we have room */ #define WAKEUP_CHARS 256 @@ -949,6 +948,8 @@ return retval; } +extern ssize_t redirected_tty_write(struct file *,const char *,size_t,loff_t *); + static ssize_t read_chan(struct tty_struct *tty, struct file *file, unsigned char *buf, size_t nr) { @@ -973,15 +974,14 @@ /* NOTE: not yet done after every sleep pending a thorough check of the logic of this change. -- jlc */ /* don't stop on /dev/console */ - if (!IS_SYSCONS_DEV(file->f_dentry->d_inode->i_rdev) && - current->tty == tty) { + if (file->f_op->write != redirected_tty_write && current->tty == tty) { if (tty->pgrp <= 0) printk("read_chan: tty->pgrp <= 0!\n"); - else if (current->pgrp != tty->pgrp) { + else if (process_group(current) != tty->pgrp) { if (is_ignored(SIGTTIN) || - is_orphaned_pgrp(current->pgrp)) + is_orphaned_pgrp(process_group(current))) return -EIO; - kill_pg(current->pgrp, SIGTTIN, 1); + kill_pg(process_group(current), SIGTTIN, 1); return -ERESTARTSYS; } } @@ -1065,7 +1065,7 @@ set_bit(TTY_DONT_FLIP, &tty->flags); continue; } - set_current_state(TASK_RUNNING); + current->state = TASK_RUNNING; /* Deal with packet mode. */ if (tty->packet && b == buf) { @@ -1144,7 +1144,7 @@ if (!waitqueue_active(&tty->read_wait)) tty->minimum_to_wake = minimum; - set_current_state(TASK_RUNNING); + current->state = TASK_RUNNING; size = b - buf; if (size) { retval = size; @@ -1165,8 +1165,7 @@ ssize_t retval = 0; /* Job control check -- must be done at start (POSIX.1 7.1.1.4). */ - if (L_TOSTOP(tty) && - !IS_SYSCONS_DEV(file->f_dentry->d_inode->i_rdev)) { + if (L_TOSTOP(tty) && file->f_op->write != redirected_tty_write) { retval = tty_check_change(tty); if (retval) return retval; @@ -1221,7 +1220,7 @@ schedule(); } break_out: - set_current_state(TASK_RUNNING); + current->state = TASK_RUNNING; remove_wait_queue(&tty->write_wait, &wait); return (b - buf) ? b - buf : retval; } Index: sysrq.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/char/sysrq.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- sysrq.c 11 Aug 2003 16:26:46 -0000 1.1 +++ sysrq.c 2 Oct 2003 09:32:18 -0000 1.2 @@ -36,8 +36,6 @@ #include <asm/ptrace.h> -extern struct list_head super_blocks; - /* Whether we react on sysrq keys or just ignore them */ int sysrq_enabled = 1; Index: tty_io.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/char/tty_io.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- tty_io.c 29 Sep 2003 08:50:56 -0000 1.2 +++ tty_io.c 2 Oct 2003 09:32:18 -0000 1.3 @@ -100,11 +100,6 @@ #include <linux/kmod.h> -#define IS_CONSOLE_DEV(dev) (kdev_val(dev) == __mkdev(TTY_MAJOR,0)) -#define IS_TTY_DEV(dev) (kdev_val(dev) == __mkdev(TTYAUX_MAJOR,0)) -#define IS_SYSCONS_DEV(dev) (kdev_val(dev) == __mkdev(TTYAUX_MAJOR,1)) -#define IS_PTMX_DEV(dev) (kdev_val(dev) == __mkdev(TTYAUX_MAJOR,2)) - #undef TTY_DEBUG_HANGUP #define TTY_PARANOIA_CHECK 1 @@ -133,18 +128,14 @@ static ssize_t tty_read(struct file *, char *, size_t, loff_t *); static ssize_t tty_write(struct file *, const char *, size_t, loff_t *); +ssize_t redirected_tty_write(struct file *, const char *, size_t, loff_t *); static unsigned int tty_poll(struct file *, poll_table *); static int tty_open(struct inode *, struct file *); static int tty_release(struct inode *, struct file *); int tty_ioctl(struct inode * inode, struct file * file, unsigned int cmd, unsigned long arg); static int tty_fasync(int fd, struct file * filp, int on); -extern int vme_scc_init (void); -extern int serial167_init(void); -extern int rs_8xx_init(void); -extern void tub3270_init(void); extern void rs_360_init(void); -extern void tx3912_rs_init(void); static struct tty_struct *alloc_tty_struct(void) { @@ -174,21 +165,20 @@ EXPORT_SYMBOL(tty_name); -inline int tty_paranoia_check(struct tty_struct *tty, kdev_t device, +inline int tty_paranoia_check(struct tty_struct *tty, struct inode *inode, const char *routine) { #ifdef TTY_PARANOIA_CHECK - static const char badmagic[] = KERN_WARNING - "Warning: bad magic number for tty struct (%s) in %s\n"; - static const char badtty[] = KERN_WARNING - "Warning: null TTY for (%s) in %s\n"; - if (!tty) { - printk(badtty, cdevname(device), routine); + printk(KERN_WARNING + "null TTY for (%d:%d) in %s\n", + imajor(inode), iminor(inode), routine); return 1; } if (tty->magic != TTY_MAGIC) { - printk(badmagic, cdevname(device), routine); + printk(KERN_WARNING + "bad magic number for tty struct (%d:%d) in %s\n", + imajor(inode), iminor(inode), routine); return 1; } #endif @@ -327,13 +317,13 @@ printk(KERN_WARNING "tty_check_change: tty->pgrp <= 0!\n"); return 0; } - if (current->pgrp == tty->pgrp) + if (process_group(current) == tty->pgrp) return 0; if (is_ignored(SIGTTOU)) return 0; - if (is_orphaned_pgrp(current->pgrp)) + if (is_orphaned_pgrp(process_group(current))) return -EIO; - (void) kill_pg(current->pgrp,SIGTTOU,1); + (void) kill_pg(process_group(current), SIGTTOU, 1); return -ERESTARTSYS; } @@ -380,6 +370,17 @@ .fasync = tty_fasync, }; +static struct file_operations console_fops = { + .llseek = no_llseek, + .read = tty_read, + .write = redirected_tty_write, + .poll = tty_poll, + .ioctl = tty_ioctl, + .open = tty_open, + .release = tty_release, + .fasync = tty_fasync, +}; + static struct file_operations hung_up_tty_fops = { .llseek = no_llseek, .read = hung_up_tty_read, @@ -423,11 +424,9 @@ check_tty_count(tty, "do_tty_hangup"); file_list_lock(); list_for_each_entry(filp, &tty->tty_files, f_list) { - if (IS_SYSCONS_DEV(filp->f_dentry->d_inode->i_rdev)) { + if (filp->f_op->write == redirected_tty_write) cons_filp = filp; - continue; - } - if (filp->f_op != &tty_fops) + if (filp->f_op->write != tty_write) continue; closecount++; tty_fasync(-1, filp, 0); /* can't block */ @@ -642,27 +641,11 @@ tty = (struct tty_struct *)file->private_data; inode = file->f_dentry->d_inode; - if (tty_paranoia_check(tty, inode->i_rdev, "tty_read")) + if (tty_paranoia_check(tty, inode, "tty_read")) return -EIO; if (!tty || (test_bit(TTY_IO_ERROR, &tty->flags))) return -EIO; - /* This check not only needs to be done before reading, but also - whenever read_chan() gets woken up after sleeping, so I've - moved it to there. This should only be done for the N_TTY - line discipline, anyway. Same goes for write_chan(). -- jlc. */ -#if 0 - if (!IS_SYSCONS_DEV(inode->i_rdev) && /* don't stop on /dev/console */ - (tty->pgrp > 0) && - (current->tty == tty) && - (tty->pgrp != current->pgrp)) - if (is_ignored(SIGTTIN) || is_orphaned_pgrp(current->pgrp)) - return -EIO; - else { - (void) kill_pg(current->pgrp, SIGTTIN, 1); - return -ERESTARTSYS; - } -#endif lock_kernel(); if (tty->ldisc.read) i = (tty->ldisc.read)(tty,file,buf,count); @@ -727,37 +710,15 @@ static ssize_t tty_write(struct file * file, const char * buf, size_t count, loff_t *ppos) { - int is_console; struct tty_struct * tty; struct inode *inode = file->f_dentry->d_inode; - /* - * For now, we redirect writes from /dev/console. - */ - is_console = IS_SYSCONS_DEV(inode->i_rdev); /* Can't seek (pwrite) on ttys. */ if (ppos != &file->f_pos) return -ESPIPE; - if (is_console) { - struct file *p = NULL; - - spin_lock(&redirect_lock); - if (redirect) { - get_file(redirect); - p = redirect; - } - spin_unlock(&redirect_lock); - - if (p) { - ssize_t res = vfs_write(p, buf, count, &p->f_pos); - fput(p); - return res; - } - } - tty = (struct tty_struct *)file->private_data; - if (tty_paranoia_check(tty, inode->i_rdev, "tty_write")) + if (tty_paranoia_check(tty, inode, "tty_write")) return -EIO; if (!tty || !tty->driver->write || (test_bit(TTY_IO_ERROR, &tty->flags))) return -EIO; @@ -767,6 +728,31 @@ (const unsigned char *)buf, count); } +ssize_t redirected_tty_write(struct file * file, const char * buf, size_t count, + loff_t *ppos) +{ + struct file *p = NULL; + + spin_lock(&redirect_lock); + if (redirect) { + get_file(redirect); + p = redirect; + } + spin_unlock(&redirect_lock); + + if (p) { + ssize_t res; + /* Can't seek (pwrite) on ttys. */ + if (ppos != &file->f_pos) + return -ESPIPE; + res = vfs_write(p, buf, count, &p->f_pos); + fput(p); + return res; + } + + return tty_write(file, buf, count, ppos); +} + /* Semaphore to protect creating and releasing a tty */ static DECLARE_MUTEX(tty_sem); @@ -832,7 +818,6 @@ if(!tty) goto fail_no_mem; initialize_tty_struct(tty); - tty->device = MKDEV(driver->major, driver->minor_start) + idx; tty->driver = driver; tty->index = idx; tty_line_name(driver, idx, tty->name); @@ -860,8 +845,6 @@ if (!o_tty) goto free_mem_out; initialize_tty_struct(o_tty); - o_tty->device = MKDEV(driver->other->major, - driver->other->minor_start) + idx; o_tty->driver = driver->other; o_tty->index = idx; tty_line_name(driver->other, idx, o_tty->name); @@ -1017,7 +1000,7 @@ o_tty->magic = 0; o_tty->driver->refcount--; file_list_lock(); - list_del(&o_tty->tty_files); + list_del_init(&o_tty->tty_files); file_list_unlock(); free_tty_struct(o_tty); } @@ -1031,7 +1014,7 @@ tty->magic = 0; tty->driver->refcount--; file_list_lock(); - list_del(&tty->tty_files); + list_del_init(&tty->tty_files); file_list_unlock(); module_put(tty->driver->owner); free_tty_struct(tty); @@ -1053,7 +1036,7 @@ char buf[64]; tty = (struct tty_struct *)filp->private_data; - if (tty_paranoia_check(tty, filp->f_dentry->d_inode->i_rdev, "release_dev")) + if (tty_paranoia_check(tty, filp->f_dentry->d_inode, "release_dev")) return; check_tty_count(tty, "release_dev"); @@ -1301,14 +1284,11 @@ int noctty, retval; struct tty_driver *driver; int index; - kdev_t device; - unsigned short saved_flags; - - saved_flags = filp->f_flags; + dev_t device = inode->i_rdev; + unsigned short saved_flags = filp->f_flags; retry_open: noctty = filp->f_flags & O_NOCTTY; - device = inode->i_rdev; - if (IS_TTY_DEV(device)) { + if (device == MKDEV(TTYAUX_MAJOR,0)) { if (!current->tty) return -ENXIO; driver = current->tty->driver; @@ -1318,21 +1298,21 @@ goto got_driver; } #ifdef CONFIG_VT - if (IS_CONSOLE_DEV(device)) { - struct vc_data *vc; - extern struct tty_driver *console_driver; - if (!current->tty) - return -ENXIO; - driver = console_driver; - vc = (struct vc_data *)current->tty->driver_data; - if (!vc) - return -ENXIO; - index = vc->display_fg->fg_console->vc_num; - noctty = 1; - goto got_driver; + if (device == MKDEV(TTY_MAJOR,0)) { + struct vc_data *vc; + extern struct tty_driver *console_driver; + if (!current->tty) + return -ENXIO; + driver = console_driver; + vc = (struct vc_data *)current->tty->driver_data; + if (!vc) + return -ENXIO; + index = vc->display_fg->fg_console->vc_num; + noctty = 1; + goto got_driver; } -#endif - if (IS_SYSCONS_DEV(device)) { +#endif + if (device == MKDEV(TTYAUX_MAJOR,1)) { struct console *c = console_drivers; for (c = console_drivers; c; c = c->next) { if (!c->device) @@ -1348,7 +1328,7 @@ return -ENODEV; } - if (IS_PTMX_DEV(device)) { + if (device == MKDEV(TTYAUX_MAJOR,2)) { #ifdef CONFIG_UNIX98_PTYS /* find a device that is not in use. */ retval = -1; @@ -1365,7 +1345,7 @@ return -ENODEV; #endif /* CONFIG_UNIX_98_PTYS */ } else { - driver = get_tty_driver(kdev_t_to_nr(device), &index); + driver = get_tty_driver(device, &index); if (!driver) return -ENODEV; got_driver: @@ -1407,7 +1387,8 @@ /* * Need to reset f_op in case a hangup happened. */ - filp->f_op = &tty_fops; + if (filp->f_op == &hung_up_tty_fops) + filp->f_op = &tty_fops; goto retry_open; } if (!noctty && @@ -1419,7 +1400,7 @@ task_unlock(current); current->tty_old_pgrp = 0; tty->session = current->session; - tty->pgrp = current->pgrp; + tty->pgrp = process_group(current); } return 0; } @@ -1438,7 +1419,7 @@ struct tty_struct * tty; tty = (struct tty_struct *)filp->private_data; - if (tty_paranoia_check(tty, filp->f_dentry->d_inode->i_rdev, "tty_poll")) + if (tty_paranoia_check(tty, filp->f_dentry->d_inode, "tty_poll")) return 0; if (tty->ldisc.poll) @@ -1452,7 +1433,7 @@ int retval; tty = (struct tty_struct *)filp->private_data; - if (tty_paranoia_check(tty, filp->f_dentry->d_inode->i_rdev, "tty_fasync")) + if (tty_paranoia_check(tty, filp->f_dentry->d_inode, "tty_fasync")) return 0; retval = fasync_helper(fd, filp, on, &tty->fasync); @@ -1503,7 +1484,6 @@ #ifdef CONFIG_VT if (tty->driver->type == TTY_DRIVER_TYPE_CONSOLE) { struct vc_data *vc = (struct vc_data *) tty->driver_data; - if (!vc || vc_resize(vc, tmp_ws.ws_col, tmp_ws.ws_row)) return -ENXIO; } @@ -1517,9 +1497,9 @@ return 0; } -static int tioccons(struct inode *inode, struct file *file) +static int tioccons(struct file *file) { - if (IS_SYSCONS_DEV(inode->i_rdev)) { + if (file->f_op->write == redirected_tty_write) { struct file *f; if (!capable(CAP_SYS_ADMIN)) return -EPERM; @@ -1594,7 +1574,7 @@ task_unlock(current); current->tty_old_pgrp = 0; tty->session = current->session; - tty->pgrp = current->pgrp; + tty->pgrp = process_group(current); return 0; } @@ -1726,7 +1706,7 @@ int retval; tty = (struct tty_struct *)file->private_data; - if (tty_paranoia_check(tty, inode->i_rdev, "tty_ioctl")) + if (tty_paranoia_check(tty, inode, "tty_ioctl")) return -EINVAL; real_tty = tty; @@ -1786,7 +1766,7 @@ case TIOCSWINSZ: return tiocswinsz(tty, real_tty, (struct winsize *) arg); case TIOCCONS: - return real_tty!=tty ? -EINVAL : tioccons(inode, file); + return real_tty!=tty ? -EINVAL : tioccons(file); case FIONBIO: return fionbio(file, (int *) arg); case TIOCEXCL: @@ -1917,8 +1897,10 @@ spin_lock(&p->files->file_lock); for (i=0; i < p->files->max_fds; i++) { filp = fcheck_files(p->files, i); - if (filp && (filp->f_op == &tty_fops) && - (filp->private_data == tty)) { + if (!filp) + continue; + if (filp->f_op->read == tty_read && + filp->private_data == tty) { printk(KERN_NOTICE "SAK: killed process %d" " (%s): fd#%d opened to the tty\n", p->pid, p->comm, i); @@ -2139,7 +2121,7 @@ kfree(tty_dev); } -void tty_remove_class_device(dev_t dev) +static void tty_remove_class_device(dev_t dev) { struct tty_dev *tty_dev = NULL; struct list_head *tmp; @@ -2148,19 +2130,15 @@ spin_lock(&tty_dev_list_lock); list_for_each (tmp, &tty_dev_list) { tty_dev = list_entry(tmp, struct tty_dev, node); - if ((MAJOR(tty_dev->dev) == MAJOR(dev)) && - (MINOR(tty_dev->dev) == MINOR(dev))) { + if (tty_dev->dev == dev) { + list_del(&tty_dev->node); found = 1; break; } } - if (found) { - list_del(&tty_dev->node); - spin_unlock(&tty_dev_list_lock); + spin_unlock(&tty_dev_list_lock); + if (found) class_device_unregister(&tty_dev->class_dev); - } else { - spin_unlock(&tty_dev_list_lock); - } } /** @@ -2416,6 +2394,10 @@ } } +#ifdef CONFIG_VT +extern int vty_init(void); +#endif + static int __init tty_class_init(void) { return class_register(&tty_class); @@ -2429,13 +2411,13 @@ #endif #ifdef CONFIG_VT static struct cdev vc0_cdev; -#endif +#endif /* * Ok, now we can initialize the rest of the tty devices and can count * on memory allocations, interrupts etc.. */ -void __init tty_init(void) +static int __init tty_init(void) { strcpy(tty_cdev.kobj.name, "dev.tty"); cdev_init(&tty_cdev, &tty_fops); @@ -2446,7 +2428,7 @@ tty_add_class_device ("tty", MKDEV(TTYAUX_MAJOR, 0), NULL); strcpy(console_cdev.kobj.name, "dev.console"); - cdev_init(&console_cdev, &tty_fops); + cdev_init(&console_cdev, &console_fops); if (cdev_add(&console_cdev, MKDEV(TTYAUX_MAJOR, 1), 1) || register_chrdev_region(MKDEV(TTYAUX_MAJOR, 1), 1, "/dev/console") < 0) panic("Couldn't register /dev/console driver\n"); @@ -2467,60 +2449,16 @@ #endif #ifdef CONFIG_VT - strcpy(vc0_cdev.kobj.name, "dev.vc0"); - cdev_init(&vc0_cdev, &tty_fops); - if (cdev_add(&vc0_cdev, MKDEV(TTY_MAJOR, 0), 1) || - register_chrdev_region(MKDEV(TTY_MAJOR, 0), 1, "/dev/vc/0") < 0) - panic("Couldn't register /dev/tty0 driver\n"); - devfs_mk_cdev(MKDEV(TTY_MAJOR, 0), S_IFCHR|S_IRUSR|S_IWUSR, "vc/0"); - tty_add_class_device ("tty0", MKDEV(TTY_MAJOR, 0), NULL); + strcpy(vc0_cdev.kobj.name, "dev.vc0"); + cdev_init(&vc0_cdev, &console_fops); + if (cdev_add(&vc0_cdev, MKDEV(TTY_MAJOR, 0), 1) || + register_chrdev_region(MKDEV(TTY_MAJOR, 0), 1, "/dev/vc/0") < 0) + panic("Couldn't register /dev/tty0 driver\n"); + devfs_mk_cdev(MKDEV(TTY_MAJOR, 0), S_IFCHR|S_IRUSR|S_IWUSR, "vc/0"); + tty_add_class_device ("tty0", MKDEV(TTY_MAJOR, 0), NULL); vty_init(); #endif -#ifdef CONFIG_ESPSERIAL /* init ESP before rs, so rs doesn't see the port */ - espserial_init(); -#endif -#if defined(CONFIG_MVME162_SCC) || defined(CONFIG_BVME6000_SCC) || defined(CONFIG_MVME147_SCC) - vme_scc_init(); -#endif -#ifdef CONFIG_SERIAL_TX3912 - tx3912_rs_init(); -#endif -#ifdef CONFIG_ROCKETPORT - rp_init(); -#endif -#ifdef CONFIG_SERIAL167 - serial167_init(); -#endif -#ifdef CONFIG_CYCLADES - cy_init(); -#endif -#ifdef CONFIG_STALLION - stl_init(); -#endif -#ifdef CONFIG_ISTALLION - stli_init(); -#endif -#ifdef CONFIG_DIGI - pcxe_init(); -#endif -#ifdef CONFIG_DIGIEPCA - pc_init(); -#endif -#ifdef CONFIG_SPECIALIX - specialix_init(); -#endif -#if (defined(CONFIG_8xx) || defined(CONFIG_8260)) - rs_8xx_init(); -#endif /* CONFIG_8xx */ - pty_init(); -#ifdef CONFIG_MOXA_INTELLIO - moxa_init(); -#endif -#ifdef CONFIG_TN3270 - tub3270_init(); -#endif -#ifdef CONFIG_A2232 - a2232board_init(); -#endif + return 0; } +module_init(tty_init); Index: vc_screen.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/char/vc_screen.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- vc_screen.c 12 Sep 2003 08:33:21 -0000 1.2 +++ vc_screen.c 2 Oct 2003 09:32:18 -0000 1.3 @@ -81,7 +81,7 @@ static int vcs_size(struct inode *inode) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); int currcons = minor & 127; struct vc_data *vc; int size; @@ -137,7 +137,7 @@ vcs_read(struct file *file, char *buf, size_t count, loff_t *ppos) { struct inode *inode = file->f_dentry->d_inode; - unsigned int currcons = minor(inode->i_rdev); + unsigned int currcons = iminor(inode); struct vc_data *vc; long pos = *ppos; long viewed, attr, read; @@ -308,7 +308,7 @@ vcs_write(struct file *file, const char *buf, size_t count, loff_t *ppos) { struct inode *inode = file->f_dentry->d_inode; - unsigned int currcons = minor(inode->i_rdev); + unsigned int currcons = iminor(inode); struct vc_data *vc; long pos = *ppos; long viewed, attr, size, written; @@ -493,7 +493,7 @@ static int vcs_open(struct inode *inode, struct file *filp) { - unsigned int currcons = minor(inode->i_rdev) & 127; + unsigned int currcons = iminor(inode) & 127; if (currcons && !find_vc(currcons)) return -ENXIO; Index: vt.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/char/vt.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- vt.c 29 Sep 2003 08:57:39 -0000 1.5 +++ vt.c 2 Oct 2003 09:32:18 -0000 1.6 @@ -95,7 +95,6 @@ #include <linux/timer.h> #include <linux/interrupt.h> #include <linux/config.h> -#include <linux/version.h> #include <linux/workqueue.h> #include <linux/bootmem.h> #include <linux/pm.h> Index: vt_ioctl.c =================================================================== RCS file: /cvsroot/linuxconsole/ruby/ruby-2.6/drivers/char/vt_ioctl.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- vt_ioctl.c 29 Sep 2003 08:50:56 -0000 1.3 +++ vt_ioctl.c 2 Oct 2003 09:32:18 -0000 1.4 @@ -110,8 +110,6 @@ if (copy_from_user(&tmp, user_kbe, sizeof(struct kbentry))) return -EFAULT; - if (i >= NR_KEYS || s >= MAX_NR_KEYMAPS) - return -EINVAL; switch (cmd) { case KDGKBENT: @@ -230,10 +228,6 @@ goto reterr; } kbs->kb_string[sizeof(kbs->kb_string) - 1] = '\0'; - if (kbs->kb_func >= MAX_NR_FUNC) { - ret = -EINVAL; - goto reterr; - } i = kbs->kb_func; switch (cmd) { |