diff -u --recursive --new-file v1.3.94/linux/CREDITS linux/CREDITS --- v1.3.94/linux/CREDITS Tue Apr 23 13:57:00 1996 +++ linux/CREDITS Tue Apr 23 13:21:53 1996 @@ -410,6 +410,13 @@ E: philipg@onsett.com D: Kernel / timekeeping stuff +N: Dmitry S. Gorodchanin +E: begemot@bgm.rosprint.net +D: RISCom/8 driver, misc kernel fixes. +S: 6/1 M.Koneva bl, apt #125 +S: Poltava 314023 +S: Ukraine + N: Grant Guenther E: grant@torque.net D: Iomega PPA / ZIP driver @@ -555,7 +562,7 @@ S: United Kingdom N: Michael K. Johnson -E: johnsonm@sunsite.unc.edu +E: johnsonm@redhat.com D: The Linux Documentation Project D: Kernel Hackers' Guide D: Procps @@ -1365,10 +1372,3 @@ S: 3078 Sulphur Spring Court S: San Jose, California 95148 S: USA - -N: Dmitry S. Gorodchanin -E: begemot@bgm.rosprint.net -D: RISCom/8 driver, misc kernel fixes. -S: 6/1 M.Koneva bl, apt #125 -S: Poltava 314023 -S: Ukraine diff -u --recursive --new-file v1.3.94/linux/Documentation/Configure.help linux/Documentation/Configure.help --- v1.3.94/linux/Documentation/Configure.help Tue Apr 23 13:57:00 1996 +++ linux/Documentation/Configure.help Tue Apr 23 13:20:20 1996 @@ -16,7 +16,7 @@ # does, only the first occurrence will be used by Configure. The lines # in a help text should be indented two positions. Lines starting with # `#' are ignored. To be nice to menuconfig, limit your lines to 70 -# chars. Use emacs' kfill.el to edit this file or you lose. +# characters. Use emacs' kfill.el to edit this file or you lose. # # If you add a help text to this file, please try to be as gentle as # possible. Don't use unexplained acronyms and generally write for the @@ -24,7 +24,7 @@ # installed Linux and is now recompiling the kernel for the first # time. Tell them what to do if they're unsure. Technical information # should go in a README in the Documentation directory. Mention all -# the relevant READMEs in the help text. +# the relevant READMEs and HOWTOs in the help text. # # All this was shamelessly stolen from several different sources. Many # thanks to all the contributors. Feel free to use these help texts @@ -557,7 +557,9 @@ newer 1.3 kernel or one of the stable 1.2 versions. 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 Documentation/modules.txt. + read Documentation/modules.txt. Saying M or N here is dangerous + because some crucial programs on your system might be in ELF + format. Compile kernel as ELF - if your GCC is ELF-GCC CONFIG_KERNEL_ELF @@ -585,7 +587,8 @@ this older executable format. If you don't know what to answer at this point then answer Y. You may answer M for module support and later load the module when you find a program which needs a.out - format. + format. Saying M or N here is dangerous, because some crucial + programs on your system might be in A.OUT format. Processor type CONFIG_M386 @@ -655,9 +658,12 @@ by itself, together with the user level daemon "kerneld". Note that "kerneld" will also automatically unload all unused modules, so you don't have to use "rmmod" either. - There are some other "kernel callouts" that will be available - later on, such as a user level "beeper" and a generic screen blanker. - The "kerneld" daemon is included in "modules-1.2.8" and later. + kerneld will also provide support for different user-level beeper + and screen blanker programs later on. + The "kerneld" daemon is included in the package "modules-1.2.8" and + later. You will probably want to read the kerneld mini-HOWTO, + available via ftp (user: anonymous) from + sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. If unsure, say Y. ARP daemon support CONFIG_ARPD @@ -1048,10 +1054,20 @@ Bridging (test) CONFIG_BRIDGE - Enables bridge mode support in the box. This allows you to use a Linux - box (suitably configured) as an ethernet bridge including 802.1 spanning - tree support. This is in test. There are a small batch of changes before - final release but it should work nicely. + If you enable this, your Linux box will be able to act as an + ethernet bridge, which means that the different ethernet segments it + is connected to will appear as one ethernet to the + participants. Several such bridges can work together to create even + larger networks of ethernets using a cool spanning tree + algorithm. Note that if your box acts as a bridge, it probably + contains several ethernet devices, but the kernel is not able to + recognize more than one at boot time without help; for details read + the Multiple-Ethernet-mini-HOWTO, available via ftp (user: + anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO/mini. The + Bridging code is still in test. If unsure, say N. +### +### How to use? +### Kernel/User network link driver(ALPHA) CONFIG_NETLINK @@ -1213,19 +1229,29 @@ BusLogic SCSI support CONFIG_SCSI_BUSLOGIC This is support for BusLogic MultiMaster SCSI Host Adaptors. - Consult the documentation in drivers/scsi/README.BusLogic for more - information. BusLogic FlashPoint SCSI Host Adapters are not - supported by this driver. If this driver does not work correctly - without modification, please consult the author. This driver may - also be built as a module, but only a single instance may be loaded. - You might also want to read the SCSI-HOWTO, available via anonymous - ftp from sunsite.unc.edu:/pub/Linux/docs/HOWTO. - + Consult the SCSI-HOWTO, available via anonymous ftp from + sunsite.unc.edu:/pub/Linux/docs/HOWTO and the file + drivers/scsi/README.BusLogic for more information. BusLogic + FlashPoint SCSI Host Adapters are not supported by this driver, but + BusLogic has initiated an upgrade program which allows you to get a + better adaptor for few $$. Read about it in + drivers/scsi/README.FlashPoint. If this driver does not work + correctly without modification, please contact the author. You can + build this driver also as a module ( = code which can be inserted in + and removed from the running kernel whenever you want), but only a + single instance may be loaded. If you want to compile it as a + module, say M here and read Documentation/modules.txt. + DTC3180/3280 SCSI support CONFIG_SCSI_DTC3280 - This is support for DTC 3180/3280 SCSI Host Adaptors. It does not - use IRQ's. It does not support parity on the SCSI bus. - + This is support for DTC 3180/3280 SCSI Host Adaptors. Please read + the SCSI-HOWTO, available via ftp (user: anonymous) at + sunsite.unc.edu:/pub/Linux/docs/HOWTO and the file + drivers/scsi/README.dtc3x80. 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 Documentation/modules.txt. + EATA-DMA (DPT, NEC, ATT, Olivetti for ISA, EISA, PCI) support CONFIG_SCSI_EATA_DMA This is support for the EATA-DMA protocol compliant SCSI Host Adaptors @@ -1328,6 +1354,12 @@ adaptor. Some systems have problems with that speed, so it's safest to say N here. +allow DISCONNECT +CONFIG_SCSI_NCR53C7xx_DISCONNECT +### +### Dunno +### + Always IN2000 SCSI support (test release) CONFIG_SCSI_IN2000 Believe it or not, there is a SCSI host adaptor of that name. It is @@ -1588,6 +1620,14 @@ think you might get a Metricom radio in the future, there is no harm in saying yes to STRIP now, except that it makes the kernel a bit bigger. +WIC (Radio IP bridge) +CONFIG_WIC + Don't know what this is; has something to do with the parallel + port. Say N and that's that. But if you want 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 + Documentation/modules.txt. :-) + Z8530 SCC kiss emulation driver for AX.2 CONFIG_SCC These cards are used to connect your Linux box to an amateur radio @@ -1813,12 +1853,12 @@ 3c505 support CONFIG_ELPLUS Information about this network (ethernet) card can be found in - drivers/net/README.3c505. If you have a card of this type, say Y and - read the Ethernet-HOWTO, available via ftp (user: anonymous) in - sunsite.unc.edu:/pub/Linux/docs/HOWTO. 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 - Documentation/modules.txt as well as + Documentation/networking/3c505.txt. If you have a card of this type, + say Y and read the Ethernet-HOWTO, available via ftp (user: + anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. 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 Documentation/modules.txt as well as Documentation/networking/net-modules.txt. If you plan to use more than one network card under linux, read the Multiple-Ethernet-mini-HOWTO, available from @@ -2199,19 +2239,18 @@ DECchip Tulip (dc21x4x) PCI support CONFIG_DEC_ELCP This driver is developed for the SMC EtherPower series ethernet - cards and also works with the DECchip 21040/21041/21140 - (Tulip series) based other cards. If you have a network card of - this type, say Y and read the Ethernet-HOWTO, available via ftp - (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. More - specific information is contained in - Documentation/networking/tulip.txt. 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 + cards and also works with cards based on the DECchip + 21040/21041/21140 (Tulip series) chips. (If your card is NOT SMC + EtherPower 10/100 PCI (smc9332dst), you can also try the driver from + "DE425, DE434, DE435 support", above.) However, most people with a + network card of this type will say Y here. Do read the + Ethernet-HOWTO, available via ftp (user: anonymous) in + sunsite.unc.edu:/pub/Linux/docs/HOWTO. More specific information is + contained in Documentation/networking/tulip.txt. 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 Documentation/modules.txt as well as Documentation/networking/net-modules.txt. - ****************************************************************** - If your card is NOT SMC EtherPower 10/100 PCI (smc9332dst), - you can try the de4x5.c driver. Digi Intl. RightSwitch support CONFIG_DGRS @@ -2478,14 +2517,13 @@ N.B. options are case sensitive. Read Documentation/cdrom/isp16 for details. - Quota support CONFIG_QUOTA If you say Y here, you will be able to set per user limits for disk usage (also called diskquotas). Currently, it works only for the ext2 filesystem; you need the software available via ftp (user: - anonymous) from - sunsite.unc.edu:/pub/Linux/system/Admin/quota_acct.tar.gz in order to + anonymous) in + ftp.funet.fi:/pub/Linux/People/Linux/subsystems/quota/ in order to use it. Probably this is only useful for multi user systems. If unsure, say N. @@ -3023,7 +3061,7 @@ the CPU becomes idle. (On machines with more than one CPU, this option does nothing.) -Black display +Enable console blanking using APM CONFIG_APM_DISPLAY_BLANK Enable console blanking using the APM. Some laptops can use this to turn off the LCD backlight when the VC screen blanker blanks the @@ -3089,16 +3127,17 @@ Enhanced Real Time Clock Support CONFIG_RTC If you enable this option and create a character special file - /dev/rtc with major number 10 and minor number 135 using mknod - ("man mknod"), you will get access to the real time clock built - into your computer. It can be used to generate signals from as - low as 1Hz up to 8192Hz, and can also be used as a 24 hour alarm. - It reports status information via the file /proc/rtc and its - behaviour is set by various ioctls on /dev/rtc. People running - SMP versions of Linux should enable this option to read and set - the RTC clock in a SMP compatible fashion. If you think you - have a use for such a device (such as periodic data sampling), then - say Y here, and go read the file Documentation/rtc.txt for details. + /dev/rtc with major number 10 and minor number 135 using mknod ("man + mknod"), you will get access to the real time clock built into your + computer. Every PC has such a clock built in. It can be used to + generate signals from as low as 1Hz up to 8192Hz, and can also be + used as a 24 hour alarm. It reports status information via the file + /proc/rtc and its behaviour is set by various ioctls on + /dev/rtc. People running SMP (= multiprocessor) versions of Linux + should enable this option to read and set the RTC clock in a SMP + compatible fashion. If you think you have a use for such a device + (such as periodic data sampling), then say Y here, and go read the + file Documentation/rtc.txt for details. Sound card support CONFIG_SOUND @@ -3148,7 +3187,7 @@ modem emulator. Network devices support autodial, channel-bundling, callback and caller-authentication without having a daemon running. A reduced T.70 protocol is supported with tty's suitable - for German BTX. Currently Cards by Teles and compatibles and ICN are + for German BTX. Currently cards by Teles and compatibles and ICN are supported. On D-Channel, the protocols EDSS1 and 1TR6 are supported. See Documentation/isdn/README for more information. @@ -3212,7 +3251,7 @@ # LocalWords: unc edu docs emu README kB BLK DEV FD Thinkpad fd MFM RLL IDE gz # LocalWords: cdrom harddisk diskless netboot nfs xzvf ATAPI MB harddrives ide # LocalWords: HD harddisks CDROMs IDECD NEC MITSUMI filesystem XT XD PCI bios -# LocalWords: ISA EISA Microchannel VESA BIOSes IPC SYSVIPC ipc Ctrl +# LocalWords: ISA EISA Microchannel VESA BIOSes IPC SYSVIPC ipc Ctrl dmesg hlt # LocalWords: BINFMT Linkable http ac uk jo html GCC Sparc AVANTI CABRIOLET EB # LocalWords: netscape gcc LD CC toplevel MODVERSIONS insmod rmmod modprobe IP # LocalWords: genksyms INET loopback gatewaying ethernet internet PPP ARP Arp @@ -3249,12 +3288,12 @@ # LocalWords: pppd Zilog ZS soundcards SRM bootloader ez mainmenu rarp ipfwadm # LocalWords: RTNETLINK mknod xos MTU lwared Macs mac netatalk macs cs Wolff # LocalWords: dartmouth flowerpt MultiMaster FlashPoint tudelft etherexpress -# LocalWords: ICL EtherTeam ETH IDESCSI TXC SmartRAID SmartCache +# LocalWords: ICL EtherTeam ETH IDESCSI TXC SmartRAID SmartCache httpd sjc dlp # LocalWords: thesphere TwoServers BOOTP DHCP ncpfs BPQETHER BPQ chipsets MG # LocalWords: bsd comp Sparcstation le SunOS ie Gracilis PackeTwin PT pt LU FX # LocalWords: FX TEAC SoundBlaster CR CreativeLabs LCS mS ramdisk IDETAPE cmd # LocalWords: Vertos Genoa Funai hsfs NCP NetWare tgz APM apm ioctls UltraLite -# LocalWords: TravelMate CDT LCD backlight VC RPC Mips DECStation AXP +# LocalWords: TravelMate CDT LCD backlight VC RPC Mips DECStation AXP barlow # LocalWords: PMAX MILO Alphas Multia Tseng linuxelf endian mipsel mips drv HT # LocalWords: KERNELD kerneld callouts AdvanSys advansys diskquotas Admin WDT # LocalWords: wdt hdb hdc bugfix SiS vlb Acculogic CSA DTC dtc Holtek ht QDI @@ -3270,4 +3309,6 @@ # LocalWords: FC DC dc PPA IOMEGA's ppa RNFS FMV Fujitsu ARPD arpd loran layes # LocalWords: FRAD indiana framerelay DLCI DCLIs Sangoma SDLA mrouted sync sec # LocalWords: Starmode Metricom MosquitoNet mosquitonet kbit nfsroot Digiboard -# LocalWords: DIGI Xe Xeve digiboard UMISC touchscreens +# LocalWords: DIGI Xe Xeve digiboard UMISC touchscreens mtu ethernets HBAs MEX +# LocalWords: Shifflett netcom js jshiffle WIC DECchip ELCP EtherPower dst RTC +# LocalWords: rtc SMP diff -u --recursive --new-file v1.3.94/linux/Documentation/devices.txt linux/Documentation/devices.txt --- v1.3.94/linux/Documentation/devices.txt Sun Apr 21 19:21:59 1996 +++ linux/Documentation/devices.txt Tue Apr 23 12:31:46 1996 @@ -9,7 +9,7 @@ is a registry of allocated major device numbers, as well as the recommended /dev directory nodes for these devices. -The lastest version of this list is included with the Linux kernel +The latest version of this list is included with the Linux kernel sources in LaTeX and ASCII form. In case of discrepancy, the LaTeX version is authoritative. diff -u --recursive --new-file v1.3.94/linux/Documentation/isdn/README.pcbit linux/Documentation/isdn/README.pcbit --- v1.3.94/linux/Documentation/isdn/README.pcbit Sun Apr 21 19:21:59 1996 +++ linux/Documentation/isdn/README.pcbit Tue Apr 23 12:31:46 1996 @@ -5,12 +5,12 @@ The PCBIT is a Euro ISDN adapter manufactured in Portugal by Octal and developed in cooperation with Portugal Telecom and Inesc. The driver interfaces with the standard kernel isdn facilities -originaly developed by Fritz Elfert in the isdn4linux project. +originally developed by Fritz Elfert in the isdn4linux project. The common versions of the pcbit board require a firmware that is distributed (and copyrighted) by the manufacturer. To load this -firmware you need "pcbitctl" availiable on the standard isdn4k-utils -package or in the pcbit package availiable in: +firmware you need "pcbitctl" available on the standard isdn4k-utils +package or in the pcbit package available in: ftp://ftp.di.fc.ul.pt/pub/systems/Linux/isdn diff -u --recursive --new-file v1.3.94/linux/Documentation/isdn/syncPPP.FAQ linux/Documentation/isdn/syncPPP.FAQ --- v1.3.94/linux/Documentation/isdn/syncPPP.FAQ Sun Apr 21 19:21:59 1996 +++ linux/Documentation/isdn/syncPPP.FAQ Tue Apr 23 12:31:46 1996 @@ -2,16 +2,16 @@ Q: pppd,ipppd, syncPPP , asyncPPP .. what is that ? what should I use? -A: The pppd is for asynchronous PPP .. asynchron means +A: The pppd is for asynchronous PPP .. asynchronous means here, the framing is character based. (e.g when using ttyI* or tty* devices) The ipppd handles PPP packets coming in HDLC frames (bit based protocol) ... The PPP driver -in isdn4linux pushs all IP packets direct +in isdn4linux pushes all IP packets direct to the network layer and all PPP protocol frames to the /dev/ippp* device. -So, the ipppd is a simple externel network +So, the ipppd is a simple external network protocol handler. If you login into a remote machine using the @@ -23,7 +23,7 @@ syncPPP machine .. use the network device part of isdn4linux with the 'syncppp' encapsulation and make sure, that the ipppd is running and -conneted to at least one /dev/ippp*. Check the +connected to at least one /dev/ippp*. Check the isdn4linux manual on how to configure a network device. Q: when I start the ipppd .. I only get the @@ -42,7 +42,7 @@ Q: when I list the netdevices with ifconfig I see, that my ISDN interface has a HWaddr and IRQ=0 and Base address = 0 -A: The device is a fake ethernetdevice .. ignore IRQ and baseaddr +A: The device is a fake ethernet device .. ignore IRQ and baseaddr You need the HWaddr only for ethernet encapsulation. diff -u --recursive --new-file v1.3.94/linux/Makefile linux/Makefile --- v1.3.94/linux/Makefile Tue Apr 23 13:57:01 1996 +++ linux/Makefile Wed Apr 24 16:40:03 1996 @@ -1,6 +1,6 @@ VERSION = 1 PATCHLEVEL = 3 -SUBLEVEL = 94 +SUBLEVEL = 95 ARCH = i386 diff -u --recursive --new-file v1.3.94/linux/README linux/README --- v1.3.94/linux/README Fri Mar 15 11:01:45 1996 +++ linux/README Wed Apr 24 07:40:36 1996 @@ -139,14 +139,10 @@ COMPILING the kernel: - - make sure you have gcc-2.5.8 or newer available. It seems older gcc + - make sure you have gcc-2.6.3 or newer available. It seems older gcc versions can have problems compiling newer versions of linux. If you upgrade your compiler, remember to get the new binutils package too - (for as/ld/nm and company). Do not use gcc-2.6.0; it has a few serious - bugs. Some problems have been reported occasionally with 2.6.3 as well, - so use that version at your own risk. Specifying "-fno-strength-reduce" - in the CFLAGS of the main Makefile may help to work around a known - bug in gcc. + (for as/ld/nm and company). - do a "make zImage" to create a compressed kernel image. If you want to make a bootdisk (without root filesystem or lilo), insert a floppy diff -u --recursive --new-file v1.3.94/linux/arch/alpha/defconfig linux/arch/alpha/defconfig --- v1.3.94/linux/arch/alpha/defconfig Tue Apr 23 13:57:01 1996 +++ linux/arch/alpha/defconfig Tue Apr 23 16:43:27 1996 @@ -180,6 +180,7 @@ CONFIG_ISO9660_FS=y # CONFIG_HPFS_FS is not set # CONFIG_SYSV_FS is not set +# CONFIG_AFFS_FS is not set # CONFIG_UFS_FS is not set # diff -u --recursive --new-file v1.3.94/linux/arch/alpha/kernel/entry.S linux/arch/alpha/kernel/entry.S --- v1.3.94/linux/arch/alpha/kernel/entry.S Mon Mar 4 11:46:31 1996 +++ linux/arch/alpha/kernel/entry.S Wed Apr 24 16:30:19 1996 @@ -428,13 +428,13 @@ .globl sys_fork .ent sys_fork sys_fork: - br $1,do_switch_stack + bsr $1,do_switch_stack bis $31,SIGCHLD,$16 bis $31,$31,$17 bis $30,$30,$18 lda $27,alpha_clone jsr $26,($27),alpha_clone - br $1,undo_switch_stack + bsr $1,undo_switch_stack ret $31,($26),1 .end sys_fork @@ -442,12 +442,12 @@ .globl sys_clone .ent sys_clone sys_clone: - br $1,do_switch_stack + bsr $1,do_switch_stack /* arg1 and arg2 come from the user */ bis $30,$30,$18 lda $27,alpha_clone jsr $26,($27),alpha_clone - br $1,undo_switch_stack + bsr $1,undo_switch_stack ret $31,($26),1 .end sys_clone @@ -455,9 +455,9 @@ .globl alpha_switch_to .ent alpha_switch_to alpha_switch_to: - br $1,do_switch_stack + bsr $1,do_switch_stack call_pal PAL_swpctx - br $1,undo_switch_stack + bsr $1,undo_switch_stack ret $31,($26),1 .end alpha_switch_to @@ -477,6 +477,13 @@ stq $17,32($30) stq $18,40($30) SAVE_ALL + /* FIXME: optimize */ + lda $1,current_set + ldq $2,0($1) + ldq $3,TASK_FLAGS($2) + and $3,PF_PTRACED,$3 + bne $3,strace + /* end of strace */ lda $1,NR_SYSCALLS($31) lda $2,sys_call_table lda $27,do_entSys @@ -523,6 +530,68 @@ restore_all: RESTORE_ALL rti + + +/* PTRACE syscall handler */ +.align 3 +strace: + /* set up signal stack, call syscall_trace */ + bsr $1,do_switch_stack + lda $27,syscall_trace + jsr $26,($27),syscall_trace + bsr $1,undo_switch_stack + + /* get the system call number and the argments back.. */ + ldq $0,0($30) + ldq $16,SP_OFF+24($30) + ldq $17,SP_OFF+32($30) + ldq $18,SP_OFF+40($30) + ldq $19,72($30) + ldq $20,80($30) + ldq $21,88($30) + + /* get the system call pointer.. */ + lda $1,NR_SYSCALLS($31) + lda $2,sys_call_table + lda $27,do_entSys + cmpult $0,$1,$1 + s8addq $0,$2,$2 + beq $1,1f + ldq $27,0($2) +1: jsr $26,($27),do_entSys + + /* check return.. */ + blt $0,strace_error /* the call failed */ + stq $31,72($30) /* a3=0 => no error */ +strace_success: + stq $0,0($30) /* save return value */ + + bsr $1,do_switch_stack + lda $27,syscall_trace + jsr $26,($27),syscall_trace + bsr $1,undo_switch_stack + br $31,ret_from_sys_call + + .align 3 +strace_error: + ldq $9,0($30) /* old syscall nr (zero if success) */ + beq $9,strace_success + ldq $10,72($30) /* .. and this a3 */ + + subq $31,$0,$0 /* with error in v0 */ + addq $31,1,$1 /* set a3 for errno return */ + stq $0,0($30) + stq $1,72($30) /* a3 for return */ + + bsr $1,do_switch_stack + lda $27,syscall_trace + jsr $26,($27),syscall_trace + bsr $1,undo_switch_stack + + bis $31,$31,$26 /* tell "ret_from_sys_call" that we can restart */ + bis $9,$9,$19 /* .. old syscall nr */ + bis $10,$10,$20 /* .. old a3 */ + br $31,ret_from_sys_call .align 3 handle_bottom_half: diff -u --recursive --new-file v1.3.94/linux/arch/alpha/kernel/ksyms.c linux/arch/alpha/kernel/ksyms.c --- v1.3.94/linux/arch/alpha/kernel/ksyms.c Fri Apr 12 15:51:45 1996 +++ linux/arch/alpha/kernel/ksyms.c Tue Apr 23 12:49:55 1996 @@ -27,6 +27,7 @@ static struct symbol_table arch_symbol_table = { #include /* platform dependent support */ + X(_inb), X(_inw), X(_inl), @@ -47,6 +48,10 @@ X(__remlu), X(__divqu), X(__remqu), + X(insl), + X(insw), + X(outsl), + X(outsw), X(strcat), X(strcmp), X(strcpy), diff -u --recursive --new-file v1.3.94/linux/arch/alpha/lib/Makefile linux/arch/alpha/lib/Makefile --- v1.3.94/linux/arch/alpha/lib/Makefile Fri Dec 22 08:22:05 1995 +++ linux/arch/alpha/lib/Makefile Wed Apr 24 12:57:53 1996 @@ -8,6 +8,9 @@ lib.a: $(OBJS) $(AR) rcs lib.a $(OBJS) +memset.o: memset.S + $(CC) -c -o memset.o memset.S + __divqu.o: divide.S $(CC) -DDIV -c -o __divqu.o divide.S diff -u --recursive --new-file v1.3.94/linux/arch/alpha/lib/memset.S linux/arch/alpha/lib/memset.S --- v1.3.94/linux/arch/alpha/lib/memset.S Thu Jan 1 02:00:00 1970 +++ linux/arch/alpha/lib/memset.S Tue Apr 23 20:49:01 1996 @@ -0,0 +1,106 @@ +/* + * linux/arch/alpha/memset.S + * + * This is an efficient (and small) implementation of the C library "memset()" + * function for the alpha. + * + * (C) Copyright 1996 Linus Torvalds + * + * This routine is "moral-ware": you are free to use it any way you wish, and + * the only obligation I put on you is a moral one: if you make any improvements + * to the routine, please send me your improvements for me to use similarly. + * + * The scheduling comments are according to the EV5 documentation (and done by + * hand, so they might well be incorrect, please do tell me about it..) + */ + + .set noat + .set noreorder +.text + .globl __memset + .globl __constant_c_memset + .ent __memset +.align 5 +__memset: + .frame $30,0,$26,0 + .prologue 0 + + zapnot $17,1,$17 /* E0 */ + sll $17,8,$1 /* E1 (p-c latency, next cycle) */ + bis $17,$1,$17 /* E0 (p-c latency, next cycle) */ + sll $17,16,$1 /* E1 (p-c latency, next cycle) */ + + bis $17,$1,$17 /* E0 (p-c latency, next cycle) */ + sll $17,32,$1 /* E1 (p-c latency, next cycle) */ + bis $17,$1,$17 /* E0 (p-c latency, next cycle) */ + ldq_u $31,0($30) /* .. E1 */ + +.align 5 +__constant_c_memset: + addq $18,$16,$6 /* E0 */ + bis $16,$16,$0 /* .. E1 */ + xor $16,$6,$1 /* E0 */ + ble $18,end /* .. E1 */ + + bic $1,7,$1 /* E0 */ + beq $1,within_one_quad /* .. E1 (note EV5 zero-latency forwarding) */ + and $16,7,$3 /* E0 */ + beq $3,aligned /* .. E1 (note EV5 zero-latency forwarding) */ + + ldq_u $4,0($16) /* E0 */ + bis $16,$16,$5 /* .. E1 */ + insql $17,$16,$2 /* E0 */ + subq $3,8,$3 /* .. E1 */ + + addq $18,$3,$18 /* E0 $18 is new count ($3 is negative) */ + mskql $4,$16,$4 /* .. E1 (and possible load stall) */ + subq $16,$3,$16 /* E0 $16 is new aligned destination */ + bis $2,$4,$1 /* .. E1 */ + + bis $31,$31,$31 /* E0 */ + ldq_u $31,0($30) /* .. E1 */ + stq_u $1,0($5) /* E0 */ + bis $31,$31,$31 /* .. E1 */ + +.align 4 +aligned: + sra $18,3,$3 /* E0 */ + and $18,7,$18 /* .. E1 */ + bis $16,$16,$5 /* E0 */ + beq $3,no_quad /* .. E1 */ + +.align 3 +loop: + stq $17,0($5) /* E0 */ + subq $3,1,$3 /* .. E1 */ + addq $5,8,$5 /* E0 */ + bne $3,loop /* .. E1 */ + +no_quad: + bis $31,$31,$31 /* E0 */ + beq $18,end /* .. E1 */ + ldq $7,0($5) /* E0 */ + mskqh $7,$6,$2 /* .. E1 (and load stall) */ + + insqh $17,$6,$4 /* E0 */ + bis $2,$4,$1 /* .. E1 */ + stq $1,0($5) /* E0 */ + ret $31,($26),1 /* .. E1 */ + +.align 3 +within_one_quad: + ldq_u $1,0($16) /* E0 */ + insql $17,$16,$2 /* E1 */ + mskql $1,$16,$4 /* E0 (after load stall) */ + bis $2,$4,$2 /* E0 */ + + mskql $2,$6,$4 /* E0 */ + mskqh $1,$6,$2 /* .. E1 */ + bis $2,$4,$1 /* E0 */ + stq_u $1,0($16) /* E0 */ + +end: + ret $31,($26),1 /* E1 */ + .end __memset + +.weakext memset, __memset diff -u --recursive --new-file v1.3.94/linux/arch/alpha/lib/memset.c linux/arch/alpha/lib/memset.c --- v1.3.94/linux/arch/alpha/lib/memset.c Fri Dec 22 08:22:05 1995 +++ linux/arch/alpha/lib/memset.c Thu Jan 1 02:00:00 1970 @@ -1,46 +0,0 @@ -/* - * linux/arch/alpha/lib/memset.c - * - * Copyright (C) 1995 Linus Torvalds - */ - -/* - * These are only slightly optimized so far.. - */ - -#include - -inline void * __constant_c_memset(void * s, unsigned long c, long count) -{ - unsigned long xs = (unsigned long) s; - - /* - * the first and last parts could be done with just one - * unaligned load/store, but I don't want to think about it - */ - while (count > 0 && (xs & 7)) { - *(char *) xs = c; - count--; xs++; - } - while (count > 7) { - *(unsigned long *) xs = c; - count -=8; xs += 8; - } - while (count > 0) { - *(char *) xs = c; - count--; xs++; - } - return s; -} - -void * __memset(void * s,char c,size_t count) -{ - __constant_c_memset(s,0x0101010101010101UL * (unsigned char) c, count); - return s; -} - -/* - * gcc-2.7.1 and newer generate calls to memset and memcpy. So we - * need to define that here: - */ -asm (".weakext memset, __memset"); diff -u --recursive --new-file v1.3.94/linux/arch/i386/defconfig linux/arch/i386/defconfig --- v1.3.94/linux/arch/i386/defconfig Tue Apr 23 13:57:01 1996 +++ linux/arch/i386/defconfig Tue Apr 23 13:41:49 1996 @@ -138,6 +138,7 @@ CONFIG_ISO9660_FS=y # CONFIG_HPFS_FS is not set # CONFIG_SYSV_FS is not set +# CONFIG_AFFS_FS is not set # CONFIG_UFS_FS is not set # diff -u --recursive --new-file v1.3.94/linux/arch/m68k/fpsp040/README linux/arch/m68k/fpsp040/README --- v1.3.94/linux/arch/m68k/fpsp040/README Thu Jan 1 02:00:00 1970 +++ linux/arch/m68k/fpsp040/README Wed Apr 24 07:36:50 1996 @@ -0,0 +1,30 @@ + +MOTOROLA MICROPROCESSOR & MEMORY TECHNOLOGY GROUP +M68000 Hi-Performance Microprocessor Division +M68040 Software Package + +M68040 Software Package Copyright (c) 1993, 1994 Motorola Inc. +All rights reserved. + +THE SOFTWARE is provided on an "AS IS" basis and without warranty. +To the maximum extent permitted by applicable law, +MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, +INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A +PARTICULAR PURPOSE and any warranty against infringement with +regard to the SOFTWARE (INCLUDING ANY MODIFIED VERSIONS THEREOF) +and any accompanying written materials. + +To the maximum extent permitted by applicable law, +IN NO EVENT SHALL MOTOROLA BE LIABLE FOR ANY DAMAGES WHATSOEVER +(INCLUDING WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS +PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR +OTHER PECUNIARY LOSS) ARISING OF THE USE OR INABILITY TO USE THE +SOFTWARE. Motorola assumes no responsibility for the maintenance +and support of the SOFTWARE. + +You are hereby granted a copyright license to use, modify, and +distribute the SOFTWARE so long as this entire notice is retained +without alteration in any modified and/or redistributed versions, +and that such modified versions are clearly identified as such. +No licenses are granted by implication, estoppel or otherwise +under any patents or trademarks of Motorola, Inc. diff -u --recursive --new-file v1.3.94/linux/arch/sparc/boot/README linux/arch/sparc/boot/README --- v1.3.94/linux/arch/sparc/boot/README Sun Apr 21 19:21:59 1996 +++ linux/arch/sparc/boot/README Tue Apr 23 12:31:35 1996 @@ -17,5 +17,5 @@ More will come.... Hopefully I can write this such that it will work on almost all SUN -machines in existance. We'll see ;( +machines in existence. We'll see ;( diff -u --recursive --new-file v1.3.94/linux/arch/sparc/kernel/auxio.c linux/arch/sparc/kernel/auxio.c --- v1.3.94/linux/arch/sparc/kernel/auxio.c Sun Apr 21 19:21:59 1996 +++ linux/arch/sparc/kernel/auxio.c Tue Apr 23 12:31:45 1996 @@ -31,7 +31,7 @@ /* Map the register both read and write */ auxio_register = (unsigned char *) sparc_alloc_io(auxregs[0].phys_addr, 0, auxregs[0].reg_size, - "auxilliaryIO", + "auxiliaryIO", auxregs[0].which_io, 0x0); /* Fix the address on sun4m and sun4c. */ if((((unsigned long) auxregs[0].phys_addr) & 3) == 3 || diff -u --recursive --new-file v1.3.94/linux/arch/sparc/kernel/entry.S linux/arch/sparc/kernel/entry.S --- v1.3.94/linux/arch/sparc/kernel/entry.S Sun Apr 21 19:21:59 1996 +++ linux/arch/sparc/kernel/entry.S Tue Apr 23 12:31:35 1996 @@ -413,7 +413,7 @@ LEAVE_IRQ RESTORE_ALL - /* This routine handles illegal isntructions and privileged + /* This routine handles illegal instructions and privileged * instruction attempts from user code. */ .align 4 @@ -728,7 +728,7 @@ ENTER_SYSCALL /* Ugh, we need to clear the IRQ line. This is now - * a very sun4c specific trap hanler... + * a very sun4c specific trap handler... */ sethi %hi(C_LABEL(interrupt_enable)), %l5 ld [%l5 + %lo(C_LABEL(interrupt_enable))], %l5 @@ -847,7 +847,7 @@ be 1f nop - /* Asyncronous fault, why you little ?!#&%@... */ + /* Asynchronous fault, why you little ?!#&%@... */ sethi %hi(0x80000000), %o2 st %o2, [%l5 + 0xc] WRITE_PAUSE diff -u --recursive --new-file v1.3.94/linux/arch/sparc/kernel/etrap.S linux/arch/sparc/kernel/etrap.S --- v1.3.94/linux/arch/sparc/kernel/etrap.S Sun Apr 21 19:22:00 1996 +++ linux/arch/sparc/kernel/etrap.S Tue Apr 23 12:31:35 1996 @@ -65,7 +65,7 @@ * T == Window entered when trap occurred * S == Window we will need to save if (1< (IOBASE_VADDR + IOBASE_LEN)) { - prom_printf("alloc_io: Mapping ouside IOBASE area\n"); + prom_printf("alloc_io: Mapping outside IOBASE area\n"); prom_halt(); } if(check_region ((vaddr | offset), len)) { @@ -84,11 +84,11 @@ return (void *) (base_address | offset); } -/* Does DVMA allocations with PAGE_SIZE granulatity. How this basically +/* Does DVMA allocations with PAGE_SIZE granularity. How this basically * works is that the ESP chip can do DVMA transfers at ANY address with - * certain size and boundry restrictions. But other devices that are + * certain size and boundary restrictions. But other devices that are * attached to it and would like to do DVMA have to set things up in - * a special way, if the DVMA see's a device attached to it transfer data + * a special way, if the DVMA sees a device attached to it transfer data * at addresses above DVMA_VADDR it will grab them, this way it does not * now have to know the peculiarities of where to read the Lance data * from. (for example) diff -u --recursive --new-file v1.3.94/linux/arch/sparc/kernel/irq.c linux/arch/sparc/kernel/irq.c --- v1.3.94/linux/arch/sparc/kernel/irq.c Sun Apr 21 19:22:00 1996 +++ linux/arch/sparc/kernel/irq.c Tue Apr 23 12:31:35 1996 @@ -150,7 +150,7 @@ } if (action->flags & SA_STATIC_ALLOC) { - /* This interrupt is marked as specially allocted + /* This interrupt is marked as specially allocated * so it is a bad idea to free it. */ printk("Attempt to free statically allocated IRQ%d (%s)\n", diff -u --recursive --new-file v1.3.94/linux/arch/sparc/kernel/process.c linux/arch/sparc/kernel/process.c --- v1.3.94/linux/arch/sparc/kernel/process.c Sun Apr 21 19:22:00 1996 +++ linux/arch/sparc/kernel/process.c Tue Apr 23 12:31:45 1996 @@ -215,7 +215,7 @@ * Parent --> %o0 == childs pid, %o1 == 0 * Child --> %o0 == parents pid, %o1 == 1 * - * NOTE: We have a seperate fork kpsr/kwim because + * NOTE: We have a separate fork kpsr/kwim because * the parent could change these values between * sys_fork invocation and when we reach here * if the parent should sleep while trying to diff -u --recursive --new-file v1.3.94/linux/arch/sparc/kernel/sclow.S linux/arch/sparc/kernel/sclow.S --- v1.3.94/linux/arch/sparc/kernel/sclow.S Sun Apr 21 19:22:00 1996 +++ linux/arch/sparc/kernel/sclow.S Tue Apr 23 12:31:45 1996 @@ -1,5 +1,5 @@ /* sclow.S: Low level special syscall handling. - * Basically these are cases where we can completly + * Basically these are cases where we can completely * handle the system call without saving any state * because we know that the process will not sleep. * diff -u --recursive --new-file v1.3.94/linux/arch/sparc/kernel/setup.c linux/arch/sparc/kernel/setup.c --- v1.3.94/linux/arch/sparc/kernel/setup.c Sun Apr 21 19:22:00 1996 +++ linux/arch/sparc/kernel/setup.c Tue Apr 23 12:31:45 1996 @@ -55,7 +55,7 @@ return memory_start; } -/* Typing sync at the prom promptcalls the function pointed to by +/* Typing sync at the prom prompt calls the function pointed to by * romvec->pv_synchook which I set to the following function. * This should sync all filesystems and return, for now it just * prints out pretty messages and returns. diff -u --recursive --new-file v1.3.94/linux/arch/sparc/kernel/smp.c linux/arch/sparc/kernel/smp.c --- v1.3.94/linux/arch/sparc/kernel/smp.c Sun Apr 21 19:22:00 1996 +++ linux/arch/sparc/kernel/smp.c Tue Apr 23 12:31:45 1996 @@ -50,8 +50,8 @@ volatile int cpu_number_map[NR_CPUS]; volatile int cpu_logical_map[NR_CPUS]; -/* The only guarenteed locking primitive available on all Sparc - * processors is 'ldstub [%reg + immediate], %dest_reg' which atomicly +/* The only guaranteed locking primitive available on all Sparc + * processors is 'ldstub [%reg + immediate], %dest_reg' which atomically * places the current byte at the effective address into dest_reg and * places 0xff there afterwards. Pretty lame locking primitive * compared to the Alpha and the intel no? Most Sparcs have 'swap' diff -u --recursive --new-file v1.3.94/linux/arch/sparc/kernel/sparc-stub.c linux/arch/sparc/kernel/sparc-stub.c --- v1.3.94/linux/arch/sparc/kernel/sparc-stub.c Sun Apr 21 19:22:00 1996 +++ linux/arch/sparc/kernel/sparc-stub.c Tue Apr 23 12:31:35 1996 @@ -4,7 +4,7 @@ * Modifications to run under Linux * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) * - * This file origionally came from the gdb sources, and the + * This file originally came from the gdb sources, and the * copyright notices have been retained below. */ @@ -439,7 +439,7 @@ } /* - * This function does all command procesing for interfacing to gdb. It + * This function does all command processing for interfacing to gdb. It * returns 1 if you should skip the instruction at the trap address, 0 * otherwise. */ diff -u --recursive --new-file v1.3.94/linux/arch/sparc/kernel/sun4c_irq.c linux/arch/sparc/kernel/sun4c_irq.c --- v1.3.94/linux/arch/sparc/kernel/sun4c_irq.c Sun Apr 21 19:22:00 1996 +++ linux/arch/sparc/kernel/sun4c_irq.c Tue Apr 23 12:31:45 1996 @@ -1,7 +1,7 @@ /* sun4c_irq.c * arch/sparc/kernel/sun4c_irq.c: * - * djhr: Hacked out of irq.c into a CPU dependant version. + * djhr: Hacked out of irq.c into a CPU dependent version. * * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) * Copyright (C) 1995 Miguel de Icaza (miguel@nuclecu.unam.mx) diff -u --recursive --new-file v1.3.94/linux/arch/sparc/kernel/sun4m_irq.c linux/arch/sparc/kernel/sun4m_irq.c --- v1.3.94/linux/arch/sparc/kernel/sun4m_irq.c Sun Apr 21 19:22:00 1996 +++ linux/arch/sparc/kernel/sun4m_irq.c Tue Apr 23 12:31:45 1996 @@ -1,7 +1,7 @@ /* sun4m_irq.c * arch/sparc/kernel/sun4m_irq.c: * - * djhr: Hacked out of irq.c into a CPU dependant version. + * djhr: Hacked out of irq.c into a CPU dependent version. * * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) * Copyright (C) 1995 Miguel de Icaza (miguel@nuclecu.unam.mx) @@ -307,7 +307,7 @@ if (linux_num_cpus > 1) { /* system wide interrupts go to cpu 0, this should always - * be safe because it is guarenteed to be fitted or OBP doesn't + * be safe because it is guaranteed to be fitted or OBP doesn't * come up * * Not sure, but writing here on SLAVIO systems may puke diff -u --recursive --new-file v1.3.94/linux/arch/sparc/kernel/sunos_ioctl.c linux/arch/sparc/kernel/sunos_ioctl.c --- v1.3.94/linux/arch/sparc/kernel/sunos_ioctl.c Sun Apr 21 19:22:00 1996 +++ linux/arch/sparc/kernel/sunos_ioctl.c Tue Apr 23 12:31:45 1996 @@ -53,7 +53,7 @@ } } - /* Binary compatability is good American knowhow fuckin' up. */ + /* Binary compatibility is good American knowhow fuckin' up. */ if(cmd == TIOCNOTTY) return sys_setsid(); diff -u --recursive --new-file v1.3.94/linux/arch/sparc/kernel/sys_sparc.c linux/arch/sparc/kernel/sys_sparc.c --- v1.3.94/linux/arch/sparc/kernel/sys_sparc.c Sun Apr 21 19:22:00 1996 +++ linux/arch/sparc/kernel/sys_sparc.c Tue Apr 23 12:31:45 1996 @@ -27,7 +27,7 @@ /* * sys_pipe() is the normal C calling standard for creating - * a pipe. It's not the way unix tranditionally does this, though. + * a pipe. It's not the way unix traditionally does this, though. */ asmlinkage int sparc_pipe(struct pt_regs *regs) { diff -u --recursive --new-file v1.3.94/linux/arch/sparc/kernel/sys_sunos.c linux/arch/sparc/kernel/sys_sunos.c --- v1.3.94/linux/arch/sparc/kernel/sys_sunos.c Sun Apr 21 19:22:00 1996 +++ linux/arch/sparc/kernel/sys_sunos.c Tue Apr 23 12:31:45 1996 @@ -1,5 +1,5 @@ /* $Id: sys_sunos.c,v 1.37 1996/04/19 16:52:38 miguel Exp $ - * sys_sunos.c: SunOS specific syscall compatability support. + * sys_sunos.c: SunOS specific syscall compatibility support. * * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) * Copyright (C) 1995 Miguel de Icaza (miguel@nuclecu.unam.mx) @@ -193,7 +193,7 @@ } /* XXX Completely undocumented, and completely magic... - * XXX I belive it is to increase the size of the stack by + * XXX I believe it is to increase the size of the stack by * XXX argument 'increment' and return the new end of stack * XXX area. Wheee... */ @@ -262,7 +262,7 @@ * low-bit is one == Page is currently residing in core * All other bits are undefined within the character so there... * Also, if you try to get stats on an area outside of the user vm area - * *or* the passed base address is not aligned on a page boundry you + * *or* the passed base address is not aligned on a page boundary you * get an error. */ asmlinkage int sunos_mincore(unsigned long addr, unsigned long len, char *array) @@ -301,7 +301,7 @@ } /* This just wants the soft limit (ie. rlim_cur element) of the RLIMIT_NOFILE - * resource limit and is for backwards compatability with older sunos + * resource limit and is for backwards compatibility with older sunos * revs. */ asmlinkage long sunos_getdtablesize(void) @@ -413,7 +413,7 @@ return cnt - buf.count; } -/* Old sunos getdirentries, severely broken compatability stuff here. */ +/* Old sunos getdirentries, severely broken compatibility stuff here. */ struct sunos_direntry { unsigned long d_ino; unsigned short d_reclen; @@ -701,7 +701,7 @@ return error; /* Ok, here comes the fun part: Linux's nfs mount needs a * socket connection to the server, but SunOS mount does not - * requiere this, so we use the information on the destination + * require this, so we use the information on the destination * address to create a socket and bind it to a reserved * port on this system */ diff -u --recursive --new-file v1.3.94/linux/arch/sparc/kernel/systbls.S linux/arch/sparc/kernel/systbls.S --- v1.3.94/linux/arch/sparc/kernel/systbls.S Sun Apr 21 19:22:01 1996 +++ linux/arch/sparc/kernel/systbls.S Tue Apr 23 12:31:45 1996 @@ -1,5 +1,5 @@ /* $Id: systbls.S,v 1.38 1996/04/20 08:43:26 davem Exp $ - * systbls.S: System call entry point tables for OS compatability. + * systbls.S: System call entry point tables for OS compatibility. * The native Linux system call table lives here also. * * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) diff -u --recursive --new-file v1.3.94/linux/arch/sparc/kernel/wuf.S linux/arch/sparc/kernel/wuf.S --- v1.3.94/linux/arch/sparc/kernel/wuf.S Sun Apr 21 19:22:01 1996 +++ linux/arch/sparc/kernel/wuf.S Tue Apr 23 12:31:45 1996 @@ -234,7 +234,7 @@ * check routines in wof.S, these routines are free to use * any of the local registers they want to as this window * does not belong to anyone at this point, however the - * outs and ins are still verbotten as they are part of + * outs and ins are still verboten as they are part of * 'someone elses' window possibly. */ @@ -345,7 +345,7 @@ be fwin_user_finish_up nop - /* Did I ever tell you about my window labotomy? + /* Did I ever tell you about my window lobotomy? * anyways... fwin_user_stack_is_bolixed expects * to be in window 'W' so make it happy or else * we watchdog badly. diff -u --recursive --new-file v1.3.94/linux/arch/sparc/lib/strlen.S linux/arch/sparc/lib/strlen.S --- v1.3.94/linux/arch/sparc/lib/strlen.S Sun Apr 21 19:22:01 1996 +++ linux/arch/sparc/lib/strlen.S Tue Apr 23 12:31:45 1996 @@ -42,7 +42,7 @@ sethi %hi(LO_MAGIC),%g3 or %g3,%lo(LO_MAGIC),%o2 next_word: - ld [%o0],%g2 ! no dependancies + ld [%o0],%g2 ! no dependencies next_word_preloaded: sub %g2,%o2,%g2 ! lots of locks here andcc %g2,%o3,%g0 ! and I dont like it... diff -u --recursive --new-file v1.3.94/linux/arch/sparc/mm/fault.c linux/arch/sparc/mm/fault.c --- v1.3.94/linux/arch/sparc/mm/fault.c Sun Apr 21 19:22:01 1996 +++ linux/arch/sparc/mm/fault.c Tue Apr 23 12:31:45 1996 @@ -86,7 +86,7 @@ sp_banks[i].base_addr = 0xdeadbeef; sp_banks[i].num_bytes = 0; - /* Now mask all bank sizes on a page boundry, it is all we can + /* Now mask all bank sizes on a page boundary, it is all we can * use anyways. */ for(i=0; sp_banks[i].num_bytes != 0; i++) diff -u --recursive --new-file v1.3.94/linux/arch/sparc/mm/generic.c linux/arch/sparc/mm/generic.c --- v1.3.94/linux/arch/sparc/mm/generic.c Sun Apr 21 19:22:01 1996 +++ linux/arch/sparc/mm/generic.c Tue Apr 23 12:31:46 1996 @@ -1,4 +1,4 @@ -/* generic.c: Generic Sparc mm routines that are not dependant upon +/* generic.c: Generic Sparc mm routines that are not dependent upon * MMU type but are Sparc specific. * * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu) diff -u --recursive --new-file v1.3.94/linux/arch/sparc/mm/init.c linux/arch/sparc/mm/init.c --- v1.3.94/linux/arch/sparc/mm/init.c Sun Apr 21 19:22:01 1996 +++ linux/arch/sparc/mm/init.c Tue Apr 23 12:31:45 1996 @@ -131,7 +131,7 @@ }; /* Initialize the protection map with non-constant values - * MMU dependant values. + * MMU dependent values. */ protection_map[0] = PAGE_NONE; protection_map[1] = PAGE_READONLY; diff -u --recursive --new-file v1.3.94/linux/arch/sparc/mm/srmmu.c linux/arch/sparc/mm/srmmu.c --- v1.3.94/linux/arch/sparc/mm/srmmu.c Sun Apr 21 19:22:01 1996 +++ linux/arch/sparc/mm/srmmu.c Tue Apr 23 12:31:45 1996 @@ -483,7 +483,7 @@ ptep = srmmu_pte_offset(pmdp, virt_addr); tmp = (physaddr >> 4) | SRMMU_ET_PTE; - /* I need to test whether this is consistant over all + /* I need to test whether this is consistent over all * sun4m's. The bus_type represents the upper 4 bits of * 36-bit physical address on the I/O space lines... */ @@ -614,7 +614,7 @@ /* TLB flushes seem to upset the tsunami sometimes, I can't figure out * what the hell is going on. All I see is a tlb flush (page or whole, - * there is no consistant pattern) and then total local variable corruption + * there is no consistent pattern) and then total local variable corruption * in the procedure who called us after return. Usually triggerable * by "cool" programs like crashme and bonnie. I played around a bit * and adding a bunch of forced nops seems to make the problems all @@ -1695,7 +1695,7 @@ start += PAGE_SIZE; tmp = (srmmu_hwprobe(start) & SRMMU_PTE_PMASK) << 4; - /* Never a cross bank boundry, thank you. */ + /* Never a cross bank boundary, thank you. */ if(tmp != last_page + PAGE_SIZE) break; last_page = tmp; @@ -2114,7 +2114,7 @@ mreg |= (SWIFT_IE | SWIFT_DE); /* I & D caches on */ /* The Swift branch folding logic is completely broken. At - * trap time, if things are just right, if can mistakedly + * trap time, if things are just right, if can mistakenly * think that a trap is coming from kernel mode when in fact * it is coming from user mode (it mis-executes the branch in * the trap code). So you see things like crashme completely diff -u --recursive --new-file v1.3.94/linux/arch/sparc/mm/sun4c.c linux/arch/sparc/mm/sun4c.c --- v1.3.94/linux/arch/sparc/mm/sun4c.c Sun Apr 21 19:22:01 1996 +++ linux/arch/sparc/mm/sun4c.c Tue Apr 23 12:31:46 1996 @@ -495,7 +495,7 @@ } /* Using this method to free up mmu entries eliminates a lot of - * potention races since we have a kernel that incurs tlb + * potential races since we have a kernel that incurs tlb * replacement faults. There may be performance penalties. */ static inline struct sun4c_mmu_entry *sun4c_user_strategy(void) @@ -580,8 +580,8 @@ /* READ THIS: If you put any diagnostic printing code in any of the kernel * fault handling code you will lose badly. This is the most * delicate piece of code in the entire kernel, atomicity of - * kernel tlb replacement must be guarenteed. This is why we - * have seperate user and kernel allocation rings to alleviate + * kernel tlb replacement must be guaranteed. This is why we + * have separate user and kernel allocation rings to alleviate * as many bad interactions as possible. * * XXX Someday make this into a fast in-window trap handler to avoid @@ -1035,7 +1035,7 @@ int octx; struct mm_struct *mm = vma->vm_mm; - /* Sun4c has no seperate I/D caches so cannot optimize for non + /* Sun4c has no separate I/D caches so cannot optimize for non * text page flushes. */ #ifndef __SMP__ diff -u --recursive --new-file v1.3.94/linux/arch/sparc/prom/memory.c linux/arch/sparc/prom/memory.c --- v1.3.94/linux/arch/sparc/prom/memory.c Sun Apr 21 19:22:01 1996 +++ linux/arch/sparc/prom/memory.c Tue Apr 23 12:31:46 1996 @@ -10,12 +10,12 @@ #include #include -/* This routine, for consistancy, returns the ram parameters in the - * V0 prom memory descriptor format. I choose this format becuase I +/* This routine, for consistency, returns the ram parameters in the + * V0 prom memory descriptor format. I choose this format because I * think it was the easiest to work with. I feel the religious * arguments now... ;) Also, I return the linked lists sorted to - * prevent paging_init() upset stomache as I have not yet written - * the pepto-bismal kernel module yet. + * prevent paging_init() upset stomach as I have not yet written + * the pepto-bismol kernel module yet. */ struct linux_prom_registers prom_reg_memlist[64]; diff -u --recursive --new-file v1.3.94/linux/arch/sparc/prom/palloc.c linux/arch/sparc/prom/palloc.c --- v1.3.94/linux/arch/sparc/prom/palloc.c Sun Apr 21 19:22:02 1996 +++ linux/arch/sparc/prom/palloc.c Tue Apr 23 12:31:46 1996 @@ -18,7 +18,7 @@ /* Allocate a chunk of memory of size 'num_bytes' giving a suggestion * of virtual_hint as the preferred virtual base address of this chunk. - * There are no guarentees that you will get the allocation, or that + * There are no guarantees that you will get the allocation, or that * the prom will abide by your "hint". So check your return value. */ char * diff -u --recursive --new-file v1.3.94/linux/drivers/block/ide-tape.c linux/drivers/block/ide-tape.c --- v1.3.94/linux/drivers/block/ide-tape.c Fri Apr 12 15:51:50 1996 +++ linux/drivers/block/ide-tape.c Tue Apr 23 12:42:38 1996 @@ -1,5 +1,5 @@ /* - * linux/drivers/block/ide-tape.c Version 1.3 - ALPHA Feb 9, 1996 + * linux/drivers/block/ide-tape.c Version 1.5 - ALPHA Apr 12, 1996 * * Copyright (C) 1995, 1996 Gadi Oxman * @@ -181,6 +181,9 @@ * block device interface. For more info, read the * comments in triton.c. * Ver 1.4 Mar 13 96 Fixed serialize support. + * Ver 1.5 Apr 12 96 Fixed shared interface operation, broken in 1.3.85. + * Fixed pipelined read mode inefficiency. + * Fixed nasty null dereferencing bug. * * We are currently in an *alpha* stage. The driver is not complete and not * much tested. I would strongly suggest to: @@ -1244,7 +1247,8 @@ tape->request_status=0; tape->chrdev_direction=idetape_direction_none; tape->reset_issued=0; - + tape->pc=&(tape->pc_stack [0]); + #if IDETAPE_PIPELINE tape->max_number_of_stages=IDETAPE_MIN_PIPELINE_STAGES; printk ("ide-tape: Operating in pipelined (fast and tricky) operation mode.\n"); @@ -3154,7 +3158,6 @@ } #endif /* IDETAPE_DEBUG_BUGS */ - run_task_queue(&tq_disk); rq->sem=&sem; down (&sem); } @@ -3213,7 +3216,7 @@ rq.sector = tape->block_address; rq.nr_sectors = rq.current_nr_sectors = blocks; - if (tape->current_number_of_stages < 0.5*tape->max_number_of_stages) { + if (tape->active_data_request != NULL || tape->current_number_of_stages <= 0.25*tape->max_number_of_stages) { new_stage=idetape_kmalloc_stage (drive); while (new_stage != NULL) { new_stage->rq=rq; diff -u --recursive --new-file v1.3.94/linux/drivers/block/ide.c linux/drivers/block/ide.c --- v1.3.94/linux/drivers/block/ide.c Sun Apr 21 12:39:00 1996 +++ linux/drivers/block/ide.c Tue Apr 23 12:42:38 1996 @@ -225,6 +225,8 @@ * fix cli() problem in try_to_identify() * Version 5.36 fixes to optional PCMCIA support * Version 5.37 don't use DMA when "noautotune" is specified + * Version 5.37a (go) fix shared irq probing (was broken in kernel 1.3.72) + * call unplug_device() from ide_do_drive_cmd() * * Some additional driver compile-time options are in ide.h * @@ -1737,6 +1739,7 @@ rq->rq_dev = MKDEV(major,(drive->select.b.unit)<sem = &sem; + unplug_device(bdev); save_flags(flags); cli(); @@ -1762,10 +1765,8 @@ rq->next = cur_rq->next; cur_rq->next = rq; } - if (action == ide_wait && rq->rq_status != RQ_INACTIVE) { - run_task_queue(&tq_disk); + if (action == ide_wait && rq->rq_status != RQ_INACTIVE) down(&sem); /* wait for it to be serviced */ - } restore_flags(flags); return rq->errors ? -EIO : 0; /* return -EIO if errors */ } @@ -2504,6 +2505,56 @@ } /* + * We query CMOS about hard disks : it could be that we have a SCSI/ESDI/etc + * controller that is BIOS compatible with ST-506, and thus showing up in our + * BIOS table, but not register compatible, and therefore not present in CMOS. + * + * Furthermore, we will assume that our ST-506 drives are the primary + * drives in the system -- the ones reflected as drive 1 or 2. The first + * drive is stored in the high nibble of CMOS byte 0x12, the second in the low + * nibble. This will be either a 4 bit drive type or 0xf indicating use byte + * 0x19 for an 8 bit type, drive 1, 0x1a for drive 2 in CMOS. A non-zero value + * means we have an AT controller hard disk for that drive. + * + * Of course, there is no guarantee that either drive is actually on the + * "primary" IDE interface, but we don't bother trying to sort that out here. + * If a drive is not actually on the primary interface, then these parameters + * will be ignored. This results in the user having to supply the logical + * drive geometry as a boot parameter for each drive not on the primary i/f. + * + * The only "perfect" way to handle this would be to modify the setup.[cS] code + * to do BIOS calls Int13h/Fn08h and Int13h/Fn48h to get all of the drive info + * for us during initialization. I have the necessary docs -- any takers? -ml + */ +static void probe_cmos_for_drives (ide_hwif_t *hwif) +{ +#ifdef __i386__ + extern struct drive_info_struct drive_info; + byte cmos_disks, *BIOS = (byte *) &drive_info; + int unit; + +#ifdef CONFIG_BLK_DEV_PROMISE + if (hwif->is_promise2) + return; +#endif /* CONFIG_BLK_DEV_PROMISE */ + outb_p(0x12,0x70); /* specify CMOS address 0x12 */ + cmos_disks = inb_p(0x71); /* read the data from 0x12 */ + /* Extract drive geometry from CMOS+BIOS if not already setup */ + for (unit = 0; unit < MAX_DRIVES; ++unit) { + ide_drive_t *drive = &hwif->drives[unit]; + if ((cmos_disks & (0xf0 >> (unit*4))) && !drive->present) { + drive->cyl = drive->bios_cyl = *(unsigned short *)BIOS; + drive->head = drive->bios_head = *(BIOS+2); + drive->sect = drive->bios_sect = *(BIOS+14); + drive->ctl = *(BIOS+8); + drive->present = 1; + } + BIOS += 16; + } +#endif +} + +/* * This routine only knows how to look for drive units 0 and 1 * on an interface, so any setting of MAX_DRIVES > 2 won't work here. */ @@ -2511,6 +2562,10 @@ { unsigned int unit; + if (hwif->noprobe) + return; + if (hwif->io_base == HD_DATA) + probe_cmos_for_drives (hwif); #if CONFIG_BLK_DEV_PROMISE if (!hwif->is_promise2 && (check_region(hwif->io_base,8) || check_region(hwif->ctl_port,1))) { @@ -2924,56 +2979,6 @@ return 1; } -/* - * We query CMOS about hard disks : it could be that we have a SCSI/ESDI/etc - * controller that is BIOS compatible with ST-506, and thus showing up in our - * BIOS table, but not register compatible, and therefore not present in CMOS. - * - * Furthermore, we will assume that our ST-506 drives are the primary - * drives in the system -- the ones reflected as drive 1 or 2. The first - * drive is stored in the high nibble of CMOS byte 0x12, the second in the low - * nibble. This will be either a 4 bit drive type or 0xf indicating use byte - * 0x19 for an 8 bit type, drive 1, 0x1a for drive 2 in CMOS. A non-zero value - * means we have an AT controller hard disk for that drive. - * - * Of course, there is no guarantee that either drive is actually on the - * "primary" IDE interface, but we don't bother trying to sort that out here. - * If a drive is not actually on the primary interface, then these parameters - * will be ignored. This results in the user having to supply the logical - * drive geometry as a boot parameter for each drive not on the primary i/f. - * - * The only "perfect" way to handle this would be to modify the setup.[cS] code - * to do BIOS calls Int13h/Fn08h and Int13h/Fn48h to get all of the drive info - * for us during initialization. I have the necessary docs -- any takers? -ml - */ - -static void probe_cmos_for_drives (ide_hwif_t *hwif) -{ -#ifdef __i386__ - extern struct drive_info_struct drive_info; - byte cmos_disks, *BIOS = (byte *) &drive_info; - int unit; - -#ifdef CONFIG_BLK_DEV_PROMISE - if (hwif->is_promise2) - return; -#endif /* CONFIG_BLK_DEV_PROMISE */ - outb_p(0x12,0x70); /* specify CMOS address 0x12 */ - cmos_disks = inb_p(0x71); /* read the data from 0x12 */ - /* Extract drive geometry from CMOS+BIOS if not already setup */ - for (unit = 0; unit < MAX_DRIVES; ++unit) { - ide_drive_t *drive = &hwif->drives[unit]; - if ((cmos_disks & (0xf0 >> (unit*4))) && !drive->present) { - drive->cyl = drive->bios_cyl = *(unsigned short *)BIOS; - drive->head = drive->bios_head = *(BIOS+2); - drive->sect = drive->bios_sect = *(BIOS+14); - drive->ctl = *(BIOS+8); - drive->present = 1; - } - BIOS += 16; - } -#endif -} /* * This routine sets up the irq for an ide interface, and creates a new @@ -3153,15 +3158,8 @@ ide_hwif_t *hwif = &ide_hwifs[h]; void (*rfn)(void); - if (hwif->noprobe) + if (!hwif->present) return 0; - else { - if (hwif->io_base == HD_DATA) - probe_cmos_for_drives (hwif); - probe_hwif (hwif); - if (!hwif->present) - return 0; - } if (!hwif->irq) { if (!(hwif->irq = default_irqs[h])) { printk("%s: DISABLED, NO IRQ\n", hwif->name); @@ -3222,6 +3220,8 @@ * Probe for drives in the usual way.. CMOS/BIOS, then poke at ports */ for (index = 0; index < MAX_HWIFS; ++index) + probe_hwif (&ide_hwifs[index]); + for (index = 0; index < MAX_HWIFS; ++index) hwif_init (index); #ifdef CONFIG_BLK_DEV_IDETAPE @@ -3250,6 +3250,7 @@ hwif->ctl_port = ctl_port; hwif->irq = irq; hwif->noprobe = 0; + probe_hwif(hwif); if (!hwif_init(index)) break; for (i = 0; i < hwif->gd->nr_real; i++) diff -u --recursive --new-file v1.3.94/linux/drivers/block/ll_rw_blk.c linux/drivers/block/ll_rw_blk.c --- v1.3.94/linux/drivers/block/ll_rw_blk.c Sun Apr 21 19:22:02 1996 +++ linux/drivers/block/ll_rw_blk.c Tue Apr 23 12:42:38 1996 @@ -84,16 +84,19 @@ /* * remove the plug and let it rip.. */ -static void unplug_device(void * data) +void unplug_device(void * data) { struct blk_dev_struct * dev = (struct blk_dev_struct *) data; unsigned long flags; save_flags(flags); cli(); - dev->current_request = dev->plug.next; - dev->plug.next = NULL; - (dev->request_fn)(); + if (dev->current_request == &dev->plug) { + dev->current_request = dev->plug.next; + dev->plug.next = NULL; + if (dev->current_request) + (dev->request_fn)(); + } restore_flags(flags); } diff -u --recursive --new-file v1.3.94/linux/drivers/block/loop.c linux/drivers/block/loop.c --- v1.3.94/linux/drivers/block/loop.c Sun Mar 24 20:07:00 1996 +++ linux/drivers/block/loop.c Tue Apr 23 09:25:35 1996 @@ -20,6 +20,8 @@ #include #include +#include + #ifdef DES_AVAILABLE #include "des.h" #endif diff -u --recursive --new-file v1.3.94/linux/drivers/char/ChangeLog linux/drivers/char/ChangeLog --- v1.3.94/linux/drivers/char/ChangeLog Sun Apr 21 12:39:00 1996 +++ linux/drivers/char/ChangeLog Wed Apr 24 09:13:04 1996 @@ -1,3 +1,18 @@ +Tue Apr 23 22:56:07 1996 + + * tty_io.c (init_dev): Change return code when user attempts to + open master pty which is already open from EAGAIN to EIO, + to match with BSD expectations. EIO is more correct + anyway, since EAGAIN implies that retrying will be + successful --- which it might be.... Eventually!! + + * pty.c (pty_open, pty_close): Fix wait loop so that we don't + busy loop while waiting for the master side to open. + Fix tty opening/closing logic. TTY_SLAVE_CLOSED was + renamed to TTY_OTHER_CLOSED, so that the name is more + descriptive. Also fixed code so that the tty flag + actually works correctly now.... + Mon Apr 1 10:22:01 1996 * serial.c (rs_close): Cleaned up modularization changes. diff -u --recursive --new-file v1.3.94/linux/drivers/char/README.stallion linux/drivers/char/README.stallion --- v1.3.94/linux/drivers/char/README.stallion Fri Apr 19 10:07:58 1996 +++ linux/drivers/char/README.stallion Wed Apr 24 12:48:04 1996 @@ -2,8 +2,8 @@ Stallion Multiport Serial Drivers --------------------------------- -Version: 1.0.8 -Date: 25MAR96 +Version: 1.1.3 +Date: 23APR96 Author: Greg Ungerer (gerg@stallion.oz.au) @@ -26,9 +26,9 @@ The following ftp sites (and their mirrors) definitely have the stallion driver utility package: ftp.stallion.com, tsx-11.mit.edu, sunsite.unc.edu. -ftp.stallion.com:/drivers/ata5/Linux/stallion-1.1.0.tar.gz -tsx-11.mit.edu:/pub/linux/BETA/serial/stallion/stallion-1.1.0.tar.gz -sunsite.unc.edu:/pub/Linux/kernel/patches/serial/stallion-1.1.0.tar.gz +ftp.stallion.com:/drivers/ata5/Linux/stallion-1.1.2.tar.gz +tsx-11.mit.edu:/pub/linux/BETA/serial/stallion/stallion-1.1.2.tar.gz +sunsite.unc.edu:/pub/Linux/kernel/patches/serial/stallion-1.1.2.tar.gz If you are using the EasyIO or EasyConnection 8/32 boards then you don't need this package. Although it does have a handy script to create the @@ -128,48 +128,10 @@ ONboard/E can be programmed for memory addresses up to 4Gb (the EISA bus addressing limit). -The istallion intelligent driver does offer support for these higher memory -addresses with a couple of limitations. The higher memory support can only -be used in the loadable module form of the driver, since the kernel memory -management routines it relies on can not be run from the drivers static -kernel init routine. - -By default, support for these higher memory addresses is not compiled into -the driver. This is because it relies on kernel functions that are not -normally exported as part of the Linux loadable module system. - -To add the appropriate symbols into the kernel export code you need to: - -1. cd /usr/src/linux/kernel - (assuming your Linux kernel code is in /usr/src/linux) -2. vi ksyms.c - - find the line that reads - X(vfree), - - after this line insert the following line - X(remap_page_range), - - save and exit -3. cd .. -4. build a new kernel (usually just make) - -This will export the "remap_page_range" function for loadable modules -which is required for the higher memory support code. - -Finally you need to enable the code in the istallion driver. To do this -edit the istallion.c file and search for the symbol STLI_HIMEMORY. It is -near the top of the file in a line that looks like: - -#define STLI_HIMEMORY 0 - -Change the "0" to a "1". This enables the high memory support code in -the driver. You will then need to rebuild the module or rebuild the -kernel to incorporate the change. You will also need to modify -the board resource configuration information to use a higher memory -address. - -Once these changes are in place the driver will work as it did before. -Note that the physical memory address range is software programmed on the -EasyConnection 8/64-EI and ONboards, but must be set via DIP switches on -the original Stallion boards. +The higher than 1Mb memory addresses are fully supported by this driver. +Just enter the address as you normally would for a lower than 1Mb address +(in the drivers board configuration structure). + 2.3 TROUBLE SHOOTING @@ -304,7 +266,7 @@ and gets them well out of the way. The ports of the EasyIO-8M board do not have DCD or DTR signals. So these -ports cannot be used as real modem devices. Generally when using these +ports cannot be used as real modem devices. Generally, when using these ports you should only use the cueX devices. The driver utility package contains a couple of very useful programs. One diff -u --recursive --new-file v1.3.94/linux/drivers/char/cyclades.c linux/drivers/char/cyclades.c --- v1.3.94/linux/drivers/char/cyclades.c Sun Apr 21 12:39:01 1996 +++ linux/drivers/char/cyclades.c Wed Apr 24 07:33:36 1996 @@ -2784,7 +2784,7 @@ cy_serial_driver.magic = TTY_DRIVER_MAGIC; cy_serial_driver.name = "ttyC"; cy_serial_driver.major = CYCLADES_MAJOR; - cy_serial_driver.minor_start = 32; + cy_serial_driver.minor_start = 0; cy_serial_driver.num = NR_PORTS; cy_serial_driver.type = TTY_DRIVER_TYPE_SERIAL; cy_serial_driver.subtype = SERIAL_TYPE_NORMAL; diff -u --recursive --new-file v1.3.94/linux/drivers/char/istallion.c linux/drivers/char/istallion.c --- v1.3.94/linux/drivers/char/istallion.c Fri Apr 19 10:07:58 1996 +++ linux/drivers/char/istallion.c Wed Apr 24 12:48:04 1996 @@ -125,24 +125,6 @@ static int stli_nrbrds = sizeof(stli_brdconf) / sizeof(stlconf_t); /* - * Code support is offered for boards to use the above 1Mb memory - * ranges for those boards which support this (supported on the ONboard - * and ECP-EI hardware). The following switch should be enabled. The only - * catch is that the kernel functions required to do this are not - * normally exported symbols, so you will have to do some extra work - * for this to be used in the loadable module form of the driver. - * Unfortunately this doesn't work either if you linked the driver into - * the kernel, since the memory management code is not set up early - * enough (before our initialization routine is run). - */ -#define STLI_HIMEMORY 0 - -#if STLI_HIMEMORY -#include -#include -#endif - -/* * There is some experimental EISA board detection code in this driver. * By default it is disabled, but for those that want to try it out, * then set the define below to be 1. @@ -175,7 +157,7 @@ * all the local structures required by a serial tty driver. */ static char *stli_drvname = "Stallion Intelligent Multiport Serial Driver"; -static char *stli_drvversion = "1.1.1"; +static char *stli_drvversion = "1.1.3"; static char *stli_serialname = "ttyE"; static char *stli_calloutname = "cue"; @@ -310,19 +292,14 @@ * the 1Gb, 2Gb and 3Gb areas as well... */ static unsigned long stli_eisamemprobeaddrs[] = { - 0xc0000, 0xd0000, 0xe0000, 0xf0000, + 0xc0000, 0xd0000, 0xe0000, 0xf0000, 0x80000000, 0x80010000, 0x80020000, 0x80030000, 0x40000000, 0x40010000, 0x40020000, 0x40030000, 0xc0000000, 0xc0010000, 0xc0020000, 0xc0030000, 0xff000000, 0xff010000, 0xff020000, 0xff030000, }; -#if STLI_HIMEMORY static int stli_eisamempsize = sizeof(stli_eisamemprobeaddrs) / sizeof(unsigned long); -#else -static int stli_eisamempsize = 4; -#endif - int stli_eisaprobe = STLI_EISAPROBE; /*****************************************************************************/ @@ -407,11 +384,8 @@ #define ONB_ATADDRMASK 0xff0000 #define ONB_ATADDRSHFT 16 -#if STLI_HIMEMORY -#define ONB_HIMEMENAB 0x02 -#else -#define ONB_HIMEMENAB 0 -#endif +#define ONB_MEMENABLO 0 +#define ONB_MEMENABHI 0x02 /* * Important defines for the EISA class of ONboard board. @@ -627,10 +601,6 @@ static stliport_t *stli_getport(int brdnr, int panelnr, int portnr); -#if STLI_HIMEMORY -static void *stli_mapbrdmem(unsigned long physaddr, unsigned int size); -#endif - /*****************************************************************************/ /* @@ -750,10 +720,8 @@ } } -#if STLI_HIMEMORY - if (((unsigned long) brdp->membase) >= 0x100000) + if (brdp->memaddr >= 0x100000) vfree(brdp->membase); -#endif if ((brdp->brdtype == BRD_ECP) || (brdp->brdtype == BRD_ECPE) || (brdp->brdtype == BRD_ECPMC)) release_region(brdp->iobase, ECP_IOSIZE); else @@ -3083,7 +3051,7 @@ #if DEBUG printk("stli_onbenable(brdp=%x)\n", (int) brdp); #endif - outb((ONB_ATENABLE | ONB_HIMEMENAB), (brdp->iobase + ONB_ATCONFR)); + outb((brdp->enabval | ONB_ATENABLE), (brdp->iobase + ONB_ATCONFR)); } /*****************************************************************************/ @@ -3093,7 +3061,7 @@ #if DEBUG printk("stli_onbdisable(brdp=%x)\n", (int) brdp); #endif - outb(ONB_ATDISABLE, (brdp->iobase + ONB_ATCONFR)); + outb((brdp->enabval | ONB_ATDISABLE), (brdp->iobase + ONB_ATCONFR)); } /*****************************************************************************/ @@ -3346,40 +3314,6 @@ /*****************************************************************************/ -#if STLI_HIMEMORY - -#define PAGE_IOMEM __pgprot(_PAGE_PRESENT | _PAGE_RW | _PAGE_DIRTY | _PAGE_ACCESSED | _PAGE_PCD) - -/* - * To support shared memory addresses outside of the lower 1 Mb region - * we will need to pull some tricks with memory management to map the - * higher range into kernel virtual address space... Radical stuff... - */ - -static void *stli_mapbrdmem(unsigned long physaddr, unsigned int size) -{ - void *virtaddr; - int rc; - -#if DEBUG - printk("stli_mapbrdmem(physaddr=%x,size=%x)\n", (int) physaddr, size); -#endif - - if ((virtaddr = vmalloc(size)) == (char *) NULL) { - printk("STALLION: failed to allocate virtual address space, size=%x\n", size); - return((void *) NULL); - } - if ((rc = remap_page_range((TASK_SIZE + ((unsigned long) virtaddr)), physaddr, size, PAGE_IOMEM))) { - printk("STALLION: failed to map physical address=%x, errno=%d\n", (int) physaddr, rc); - return((void *) NULL); - } - return(virtaddr); -} - -#endif - -/*****************************************************************************/ - /* * Try to find an ECP board and initialize it. This handles only ECP * board types. @@ -3459,13 +3393,11 @@ */ EBRDINIT(brdp); -#if STLI_HIMEMORY if (brdp->memaddr > 0x100000) { - brdp->membase = stli_mapbrdmem(brdp->memaddr, brdp->memsize); + brdp->membase = vremap(brdp->memaddr, brdp->memsize); if (brdp->membase == (void *) NULL) return(-ENOMEM); } -#endif /* * Now that all specific code is set up, enable the shared memory and @@ -3558,6 +3490,10 @@ brdp->getmemptr = stli_onbgetmemptr; brdp->intr = stli_ecpintr; brdp->reset = stli_onbreset; + if (brdp->memaddr > 0x100000) + brdp->enabval = ONB_MEMENABHI; + else + brdp->enabval = ONB_MEMENABLO; break; case BRD_ONBOARDE: @@ -3613,13 +3549,11 @@ */ EBRDINIT(brdp); -#if STLI_HIMEMORY if (brdp->memaddr > 0x100000) { - brdp->membase = stli_mapbrdmem(brdp->memaddr, brdp->memsize); + brdp->membase = vremap(brdp->memaddr, brdp->memsize); if (brdp->membase == (void *) NULL) return(-ENOMEM); } -#endif /* * Now that all specific code is set up, enable the shared memory and @@ -3880,13 +3814,11 @@ for (i = 0; (i < stli_eisamempsize); i++) { brdp->memaddr = stli_eisamemprobeaddrs[i]; brdp->membase = (void *) brdp->memaddr; -#if STLI_HIMEMORY if (brdp->memaddr > 0x100000) { - brdp->membase = stli_mapbrdmem(brdp->memaddr, brdp->memsize); + brdp->membase = vremap(brdp->memaddr, brdp->memsize); if (brdp->membase == (void *) NULL) continue; } -#endif if (brdp->brdtype == BRD_ECPE) { ecpsigp = (cdkecpsig_t *) stli_ecpeigetmemptr(brdp, CDK_SIGADDR, __LINE__); memcpy(&ecpsig, ecpsigp, sizeof(cdkecpsig_t)); @@ -3899,10 +3831,8 @@ (onbsig.magic2 == ONB_MAGIC2) && (onbsig.magic3 == ONB_MAGIC3)) foundit = 1; } -#if STLI_HIMEMORY if (brdp->memaddr >= 0x100000) vfree(brdp->membase); -#endif if (foundit) break; } @@ -4292,8 +4222,12 @@ if (brdp == (stlibrd_t *) NULL) return(-ENODEV); - if ((rc = stli_cmdwait(brdp, portp, A_GETSTATS, &stli_cdkstats, sizeof(asystats_t), 1)) < 0) - return(rc); + if (brdp->state & BST_STARTED) { + if ((rc = stli_cmdwait(brdp, portp, A_GETSTATS, &stli_cdkstats, sizeof(asystats_t), 1)) < 0) + return(rc); + } else { + memset(&stli_cdkstats, 0, sizeof(asystats_t)); + } memset(&stli_comstats, 0, sizeof(comstats_t)); stli_comstats.brd = portp->brdnr; @@ -4364,8 +4298,10 @@ if (brdp == (stlibrd_t *) NULL) return(-ENODEV); - if ((rc = stli_cmdwait(brdp, portp, A_CLEARSTATS, 0, 0, 0)) < 0) - return(rc); + if (brdp->state & BST_STARTED) { + if ((rc = stli_cmdwait(brdp, portp, A_CLEARSTATS, 0, 0, 0)) < 0) + return(rc); + } memset(&stli_comstats, 0, sizeof(comstats_t)); stli_comstats.brd = portp->brdnr; @@ -4426,14 +4362,57 @@ static int stli_memioctl(struct inode *ip, struct file *fp, unsigned int cmd, unsigned long arg) { stlibrd_t *brdp; - int brdnr, rc; + int brdnr, rc, done; #if DEBUG printk("stli_memioctl(ip=%x,fp=%x,cmd=%x,arg=%x)\n", (int) ip, (int) fp, cmd, (int) arg); #endif +/* + * First up handle the board independent ioctls. + */ + done = 0; + rc = 0; + + switch (cmd) { + case COM_GETPORTSTATS: + if ((rc = verify_area(VERIFY_WRITE, (void *) arg, sizeof(comstats_t))) == 0) + rc = stli_getportstats((stliport_t *) NULL, (comstats_t *) arg); + done++; + break; + case COM_CLRPORTSTATS: + if ((rc = verify_area(VERIFY_WRITE, (void *) arg, sizeof(comstats_t))) == 0) + rc = stli_clrportstats((stliport_t *) NULL, (comstats_t *) arg); + done++; + break; + case COM_GETBRDSTATS: + if ((rc = verify_area(VERIFY_WRITE, (void *) arg, sizeof(combrd_t))) == 0) + rc = stli_getbrdstats((combrd_t *) arg); + done++; + break; + case COM_READPORT: + if ((rc = verify_area(VERIFY_WRITE, (void *) arg, sizeof(stliport_t))) == 0) + rc = stli_getportstruct(arg); + done++; + break; + case COM_READBOARD: + if ((rc = verify_area(VERIFY_WRITE, (void *) arg, sizeof(stlibrd_t))) == 0) + rc = stli_getbrdstruct(arg); + done++; + break; + default: + break; + } + + if (done) + return(rc); + +/* + * Now handle the board specific ioctls. These all depend on the + * minor number of the device they were called from. + */ brdnr = MINOR(ip->i_rdev); - if (brdnr >= stli_nrbrds) + if (brdnr >= STL_MAXBRDS) return(-ENODEV); brdp = stli_brds[brdnr]; if (brdp == (stlibrd_t *) NULL) @@ -4441,8 +4420,6 @@ if (brdp->state == 0) return(-ENODEV); - rc = 0; - switch (cmd) { case STL_BINTR: EBRDINTR(brdp); @@ -4460,26 +4437,6 @@ if (brdp->reenable != NULL) (* brdp->reenable)(brdp); } - break; - case COM_GETPORTSTATS: - if ((rc = verify_area(VERIFY_WRITE, (void *) arg, sizeof(comstats_t))) == 0) - rc = stli_getportstats((stliport_t *) NULL, (comstats_t *) arg); - break; - case COM_CLRPORTSTATS: - if ((rc = verify_area(VERIFY_WRITE, (void *) arg, sizeof(comstats_t))) == 0) - rc = stli_clrportstats((stliport_t *) NULL, (comstats_t *) arg); - break; - case COM_GETBRDSTATS: - if ((rc = verify_area(VERIFY_WRITE, (void *) arg, sizeof(combrd_t))) == 0) - rc = stli_getbrdstats((combrd_t *) arg); - break; - case COM_READPORT: - if ((rc = verify_area(VERIFY_WRITE, (void *) arg, sizeof(stliport_t))) == 0) - rc = stli_getportstruct(arg); - break; - case COM_READBOARD: - if ((rc = verify_area(VERIFY_WRITE, (void *) arg, sizeof(stlibrd_t))) == 0) - rc = stli_getbrdstruct(arg); break; default: rc = -ENOIOCTLCMD; diff -u --recursive --new-file v1.3.94/linux/drivers/char/misc.c linux/drivers/char/misc.c --- v1.3.94/linux/drivers/char/misc.c Fri Apr 19 10:07:58 1996 +++ linux/drivers/char/misc.c Tue Apr 23 12:28:22 1996 @@ -188,7 +188,7 @@ #ifdef CONFIG_PROC_FS proc_register_dynamic(&proc_root, &(struct proc_dir_entry) { 0, 4, "misc", - S_IRUGO, 1, 0, 0, + S_IFREG | S_IRUGO, 1, 0, 0, 0, NULL /* ops -- default to array */, &proc_misc_read /* get_info */, }); diff -u --recursive --new-file v1.3.94/linux/drivers/char/n_tty.c linux/drivers/char/n_tty.c --- v1.3.94/linux/drivers/char/n_tty.c Sat Oct 28 15:19:02 1995 +++ linux/drivers/char/n_tty.c Wed Apr 24 09:13:04 1996 @@ -826,7 +826,7 @@ tty->minimum_to_wake = (minimum - (b - buf)); if (!input_available_p(tty, 0)) { - if (tty->flags & (1 << TTY_SLAVE_CLOSED)) { + if (tty->flags & (1 << TTY_OTHER_CLOSED)) { retval = -EIO; break; } @@ -985,7 +985,7 @@ case SEL_EX: if (tty->packet && tty->link->ctrl_status) return 1; - if (tty->flags & (1 << TTY_SLAVE_CLOSED)) + if (tty->flags & (1 << TTY_OTHER_CLOSED)) return 1; if (tty_hung_up_p(file)) return 1; diff -u --recursive --new-file v1.3.94/linux/drivers/char/pty.c linux/drivers/char/pty.c --- v1.3.94/linux/drivers/char/pty.c Sat Mar 23 18:04:50 1996 +++ linux/drivers/char/pty.c Wed Apr 24 09:13:04 1996 @@ -78,12 +78,10 @@ return; wake_up_interruptible(&tty->link->read_wait); wake_up_interruptible(&tty->link->write_wait); + set_bit(TTY_OTHER_CLOSED, &tty->link->flags); if (tty->driver.subtype == PTY_TYPE_MASTER) { tty_hangup(tty->link); - set_bit(TTY_SLAVE_CLOSED, &tty->flags); - } else { - start_tty(tty); - set_bit(TTY_SLAVE_CLOSED, &tty->link->flags); + set_bit(TTY_OTHER_CLOSED, &tty->flags); } } @@ -183,6 +181,8 @@ int pty_open(struct tty_struct *tty, struct file * filp) { + struct wait_queue wait = { current, NULL }; + int retval; int line; struct pty_struct *pty; @@ -204,18 +204,36 @@ free_page(page); } - if (tty->driver.subtype == PTY_TYPE_SLAVE) - clear_bit(TTY_SLAVE_CLOSED, &tty->link->flags); + clear_bit(TTY_OTHER_CLOSED, &tty->link->flags); wake_up_interruptible(&pty->open_wait); set_bit(TTY_THROTTLED, &tty->flags); if (filp->f_flags & O_NDELAY) return 0; - while (test_bit(TTY_SLAVE_CLOSED, &tty->link->flags) && - !(current->signal & ~current->blocked)) - interruptible_sleep_on(&pty->open_wait); - if (!tty->link->count) - return -ERESTARTSYS; - return 0; + /* + * If we're opening the master pty, just return. If we're + * trying to open the slave pty, then we have to wait for the + * master pty to open. + */ + if (tty->driver.subtype == PTY_TYPE_MASTER) + return 0; + add_wait_queue(&pty->open_wait, &wait); + retval = 0; + while (1) { + if (current->signal & ~current->blocked) { + retval = -ERESTARTSYS; + break; + } + /* + * Block until the master is open... + */ + if (tty->link->count && + !test_bit(TTY_OTHER_CLOSED, &tty->flags)) + break; + schedule(); + } + current->state = TASK_RUNNING; + remove_wait_queue(&pty->open_wait, &wait); + return retval; } int pty_init(void) diff -u --recursive --new-file v1.3.94/linux/drivers/char/stallion.c linux/drivers/char/stallion.c --- v1.3.94/linux/drivers/char/stallion.c Fri Apr 19 10:07:58 1996 +++ linux/drivers/char/stallion.c Wed Apr 24 12:48:04 1996 @@ -140,7 +140,7 @@ * all the local structures required by a serial tty driver. */ static char *stl_drvname = "Stallion Multiport Serial Driver"; -static char *stl_drvversion = "1.1.1"; +static char *stl_drvversion = "1.1.3"; static char *stl_serialname = "ttyE"; static char *stl_calloutname = "cue"; @@ -3065,20 +3065,15 @@ static int stl_memioctl(struct inode *ip, struct file *fp, unsigned int cmd, unsigned long arg) { - stlbrd_t *brdp; - int brdnr, rc; + int brdnr, rc; #if DEBUG printk("stl_memioctl(ip=%x,fp=%x,cmd=%x,arg=%x)\n", (int) ip, (int) fp, cmd, (int) arg); #endif brdnr = MINOR(ip->i_rdev); - if (brdnr >= stl_nrbrds) - return(-ENODEV); - brdp = stl_brds[brdnr]; - if (brdp == (stlbrd_t *) NULL) + if (brdnr >= STL_MAXBRDS) return(-ENODEV); - rc = 0; switch (cmd) { diff -u --recursive --new-file v1.3.94/linux/drivers/char/suncons.c linux/drivers/char/suncons.c --- v1.3.94/linux/drivers/char/suncons.c Sun Apr 21 19:22:06 1996 +++ linux/drivers/char/suncons.c Tue Apr 23 12:31:34 1996 @@ -25,7 +25,7 @@ * * We try to make everything a power of two if possible to * speed up the bit blit. Doing multiplies, divides, and - * remainer routines end up calling software library routines + * remainder routines end up calling software library routines * since not all Sparcs have the hardware to do it. * * TODO: @@ -38,7 +38,7 @@ */ -/* Define thie one if you are debugging something in X, it will not disable the console output */ +/* Define this one if you are debugging something in X, it will not disable the console output */ /* #define DEBUGGING_X */ /* See also: sparc/keyboard.c: CODING_NEW_DRIVER */ @@ -87,7 +87,7 @@ /* Based upon what the PROM tells us, we can figure out where * the console is currently located. The situation can be either - * of the following two scenerios: + * of the following two scenarios: * * 1) Console i/o is done over the serial line, ttya or ttyb * 2) Console output on frame buffer (video card) and input @@ -115,7 +115,7 @@ static int x_margin, y_margin; /* the x and y margins */ static int bytes_per_row; /* bytes used by one screen line (of 16 scan lines) */ -/* Functions used by the SPARC dependant console code +/* Functions used by the SPARC dependent console code * to perform the restore_palette function. */ static void (*restore_palette)(void); @@ -142,10 +142,10 @@ /* First for MONO displays. */ #define SCREEN_WIDTH 1152 /* Screen width in pixels */ #define SCREEN_HEIGHT 900 /* Screen height in pixels */ -#define CHARS_PER_LINE 144 /* Make this imperical for speed */ +#define CHARS_PER_LINE 144 /* Make this empirical for speed */ #define NICE_Y_MARGIN 18 /* We skip 18 y-pixels at top/bottom */ #define NICE_X_MARGIN 8 /* We skip 64 x-pixels at left/right */ -#define FBUF_TOP_SKIP 2592 /* Imperical, (CHARS_PER_LINE * NICE_Y_MARGIN) */ +#define FBUF_TOP_SKIP 2592 /* Empirical, (CHARS_PER_LINE * NICE_Y_MARGIN) */ #define CHAR_HEIGHT 16 #define ONE_ROW 2304 /* CHARS_PER_LINE * CHAR_HEIGHT */ @@ -220,7 +220,7 @@ /* The idea is the following: * we only use the colors in the range 0..15, and we only * setup the palette on that range, so we better keep the - * pixel inverion using those colors, that's why we have + * pixel inversion using those colors, that's why we have * those constants below. */ inline static void @@ -1076,7 +1076,7 @@ bt->color_map = *i++; } -/* The cg3 is pressumed to emulate a cg4, I guess older programs will want that */ +/* The cg3 is presumed to emulate a cg4, I guess older programs will want that */ /* addresses above 0x4000000 are for cg3, below that it's cg4 emulation */ static int cg3_mmap (struct inode *inode, struct file *file, struct vm_area_struct *vma, long base, void *xx) @@ -1428,7 +1428,7 @@ return 0; /* success */ } -/* video init code, called from withing the SBUS bus scanner at +/* video init code, called from within the SBUS bus scanner at * boot time. */ void diff -u --recursive --new-file v1.3.94/linux/drivers/char/sunmouse.c linux/drivers/char/sunmouse.c --- v1.3.94/linux/drivers/char/sunmouse.c Sun Apr 21 19:22:06 1996 +++ linux/drivers/char/sunmouse.c Tue Apr 23 12:31:34 1996 @@ -7,7 +7,7 @@ * Johan Myreen. * * Dec/19/95 Added SunOS mouse ioctls - miguel. - * Jan/5/96 Added VUID support, sigio supprot - miguel. + * Jan/5/96 Added VUID support, sigio support - miguel. * Mar/5/96 Added proper mouse stream support - miguel. */ @@ -200,7 +200,7 @@ printk("DY2<%d>", mvalue); #endif sunmouse.delta_y += mvalue; - sunmouse.byte = 69; /* Some rediculious value */ + sunmouse.byte = 69; /* Some ridiculous value */ break; case 69: /* Until we get the (0x80 -> 0x87) value we aren't diff -u --recursive --new-file v1.3.94/linux/drivers/char/tty_io.c linux/drivers/char/tty_io.c --- v1.3.94/linux/drivers/char/tty_io.c Tue Apr 23 13:57:09 1996 +++ linux/drivers/char/tty_io.c Wed Apr 24 09:13:04 1996 @@ -818,7 +818,7 @@ ltp_loc = &driver->termios_locked[idx]; repeat: - retval = -EAGAIN; + retval = -EIO; if (driver->type == TTY_DRIVER_TYPE_PTY && driver->subtype == PTY_TYPE_MASTER && *tty_loc && (*tty_loc)->count) diff -u --recursive --new-file v1.3.94/linux/drivers/isdn/pcbit/callbacks.c linux/drivers/isdn/pcbit/callbacks.c --- v1.3.94/linux/drivers/isdn/pcbit/callbacks.c Sun Apr 21 19:22:07 1996 +++ linux/drivers/isdn/pcbit/callbacks.c Tue Apr 23 12:31:35 1996 @@ -1,7 +1,7 @@ /* * Copyright (C) 1996 Universidade de Lisboa * - * Writen by Pedro Roque Marques (roque@di.fc.ul.pt) + * Written by Pedro Roque Marques (roque@di.fc.ul.pt) * * This software may be used and distributed according to the terms of * the GNU Public License, incorporated herein by reference. @@ -125,8 +125,8 @@ /* - * Disconnect received (actualy RELEASE COMPLETE) - * This means we where not hable to establish connection with remote + * Disconnect received (actually RELEASE COMPLETE) + * This means we were not able to establish connection with remote * Inform the big boss above */ void cb_out_3(struct pcbit_dev * dev, struct pcbit_chan* chan, @@ -142,7 +142,7 @@ /* - * Incomming call received + * Incoming call received * inform user */ @@ -195,7 +195,7 @@ } /* - * user has replyed + * user has replied * open the channel * send CONNECT message CONNECT_ACTIVE_REQ in CAPI */ @@ -278,7 +278,7 @@ /* - * User HANGUP on active/call proceding state + * User HANGUP on active/call proceeding state * send disc.req */ void cb_disc_2(struct pcbit_dev * dev, struct pcbit_chan* chan, @@ -344,7 +344,7 @@ } /* - * Inform User that the B-channel is availiable + * Inform User that the B-channel is available */ void cb_open(struct pcbit_dev * dev, struct pcbit_chan* chan, struct callb_data *data) diff -u --recursive --new-file v1.3.94/linux/drivers/isdn/pcbit/callbacks.h linux/drivers/isdn/pcbit/callbacks.h --- v1.3.94/linux/drivers/isdn/pcbit/callbacks.h Sun Apr 21 19:22:07 1996 +++ linux/drivers/isdn/pcbit/callbacks.h Tue Apr 23 12:31:35 1996 @@ -1,7 +1,7 @@ /* * Copyright (C) 1996 Universidade de Lisboa * - * Writen by Pedro Roque Marques (roque@di.fc.ul.pt) + * Written by Pedro Roque Marques (roque@di.fc.ul.pt) * * This software may be used and distributed according to the terms of * the GNU Public License, incorporated herein by reference. diff -u --recursive --new-file v1.3.94/linux/drivers/isdn/pcbit/capi.c linux/drivers/isdn/pcbit/capi.c --- v1.3.94/linux/drivers/isdn/pcbit/capi.c Sun Apr 21 19:22:07 1996 +++ linux/drivers/isdn/pcbit/capi.c Tue Apr 23 12:31:35 1996 @@ -1,7 +1,7 @@ /* * Copyright (C) 1996 Universidade de Lisboa * - * Writen by Pedro Roque Marques (roque@di.fc.ul.pt) + * Written by Pedro Roque Marques (roque@di.fc.ul.pt) * * This software may be used and distributed according to the terms of * the GNU Public License, incorporated herein by reference. @@ -90,12 +90,12 @@ *((ushort*) skb_put(*skb, 2)) = AppInfoMask; - /* Bearer Capbility - Mandatory*/ + /* Bearer Capability - Mandatory*/ *(skb_put(*skb, 1)) = 2; /* BC0.Length */ *(skb_put(*skb, 1)) = 0x88; /* BC0.Octect3 - Digital Information */ *(skb_put(*skb, 1)) = 0x90; /* BC0.Octect4 - */ - /* Bearer Capbility - Optional*/ + /* Bearer Capability - Optional*/ *(skb_put(*skb, 1)) = 0; /* BC1.Length = 0 */ *(skb_put(*skb, 1)) = 1; /* ChannelID.Length = 1 */ @@ -414,7 +414,7 @@ skb_pull(skb, CIlen + 1); /* Calling Party Number */ - /* An "aditional service" as far as Portugal Telecom is concerned */ + /* An "additional service" as far as Portugal Telecom is concerned */ len = skb->data[0]; @@ -504,7 +504,7 @@ skb_pull(skb, 1); /* FIX ME */ - /* This is actualy a firmware bug */ + /* This is actually a firmware bug */ if (!*complete) { printk(KERN_DEBUG "complete=%02x\n", *complete); diff -u --recursive --new-file v1.3.94/linux/drivers/isdn/pcbit/capi.h linux/drivers/isdn/pcbit/capi.h --- v1.3.94/linux/drivers/isdn/pcbit/capi.h Sun Apr 21 19:22:07 1996 +++ linux/drivers/isdn/pcbit/capi.h Tue Apr 23 12:31:35 1996 @@ -1,7 +1,7 @@ /* * Copyright (C) 1996 Universidade de Lisboa * - * Writen by Pedro Roque Marques (roque@di.fc.ul.pt) + * Written by Pedro Roque Marques (roque@di.fc.ul.pt) * * This software may be used and distributed according to the terms of * the GNU Public License, incorporated herein by reference. diff -u --recursive --new-file v1.3.94/linux/drivers/isdn/pcbit/drv.c linux/drivers/isdn/pcbit/drv.c --- v1.3.94/linux/drivers/isdn/pcbit/drv.c Sun Apr 21 19:22:07 1996 +++ linux/drivers/isdn/pcbit/drv.c Tue Apr 23 12:31:35 1996 @@ -1,7 +1,7 @@ /* * Copyright (C) 1996 Universidade de Lisboa * - * Writen by Pedro Roque Marques (roque@di.fc.ul.pt) + * Written by Pedro Roque Marques (roque@di.fc.ul.pt) * * This software may be used and distributed according to the terms of * the GNU Public License, incorporated herein by reference. @@ -251,7 +251,7 @@ pcbit_fsm_event(dev, chan, EV_USR_SETUP_RESP, NULL); break; case ISDN_CMD_ACCEPTB: - printk("ISDN_CMD_ACCEPTB - not realy needed\n"); + printk("ISDN_CMD_ACCEPTB - not really needed\n"); break; case ISDN_CMD_HANGUP: pcbit_fsm_event(dev, chan, EV_USR_RELEASE_REQ, NULL); @@ -354,7 +354,7 @@ { #ifdef DEBUG_QUEUE printk(KERN_DEBUG - "pcbit: %d packets allready in queue - write fails\n", + "pcbit: %d packets already in queue - write fails\n", chan->queued); #endif /* @@ -768,7 +768,7 @@ if (stat_count < 0) stat_count = STATBUF_LEN - stat_st + stat_end; - /* FIXME: should we sleep and wait for more cockies ? */ + /* FIXME: should we sleep and wait for more cookies ? */ if (len > stat_count) len = stat_count; @@ -1025,7 +1025,7 @@ dev->unack_seq = 0; break; default: - printk("error: unkown ioctl\n"); + printk("error: unknown ioctl\n"); break; }; return 0; diff -u --recursive --new-file v1.3.94/linux/drivers/isdn/pcbit/edss1.c linux/drivers/isdn/pcbit/edss1.c --- v1.3.94/linux/drivers/isdn/pcbit/edss1.c Sun Apr 21 19:22:07 1996 +++ linux/drivers/isdn/pcbit/edss1.c Tue Apr 23 12:31:35 1996 @@ -1,7 +1,7 @@ /* * Copyright (C) 1996 Universidade de Lisboa * - * Writen by Pedro Roque Marques (roque@di.fc.ul.pt) + * Written by Pedro Roque Marques (roque@di.fc.ul.pt) * * This software may be used and distributed according to the terms of * the GNU Public License, incorporated herein by reference. @@ -105,7 +105,7 @@ {0x1b,"Destination out of order"}, {0x1c,"Invalid number format (address incomplete)"}, {0x1d,"Facility rejected"}, - {0x1e,"Response to Status enuiry"}, + {0x1e,"Response to Status enquiry"}, {0x1f,"Normal, unspecified"}, {0x22,"No circuit/channel available"}, {0x26,"Network out of order"}, @@ -121,7 +121,7 @@ {0x32,"Requested facility not subscribed"}, {0x35,"Outgoing calls barred within CUG"}, {0x37,"Incoming calls barred within CUG"}, - {0x39,"Bearer capability not auhorized"}, + {0x39,"Bearer capability not authorized"}, {0x3a,"Bearer capability not presently available"}, {0x3e,"Inconsistency in designated outgoing access information and subscriber class"}, {0x3f,"Service or option not available, unspecified"}, @@ -166,10 +166,10 @@ {EV_USR_RELEASE_REQ, "CC->L3: Release Request"}, {EV_NET_SETUP, "NET->TE: setup "}, - {EV_NET_CALL_PROC, "NET->TE: call proceding"}, - {EV_NET_SETUP_ACK, "NET->TE: setup acknowlegde (more info needed)"}, + {EV_NET_CALL_PROC, "NET->TE: call proceeding"}, + {EV_NET_SETUP_ACK, "NET->TE: setup acknowledge (more info needed)"}, {EV_NET_CONN, "NET->TE: connect"}, - {EV_NET_CONN_ACK, "NET->TE: connect aknowlegde"}, + {EV_NET_CONN_ACK, "NET->TE: connect acknowledge"}, {EV_NET_DISC, "NET->TE: disconnect indication"}, {EV_NET_RELEASE, "NET->TE: release"}, {EV_NET_RELEASE_COMP, "NET->TE: release complete"}, @@ -217,7 +217,7 @@ {ST_CALL_PROC, ST_NULL, EV_NET_DISC, cb_disc_1}, {ST_CALL_PROC, ST_DISC_REQ, EV_USR_RELEASE_REQ, cb_disc_2}, - /* Incomming */ + /* Incoming */ {ST_NULL, ST_CALL_PRES, EV_NET_SETUP, NULL}, {ST_CALL_PRES, ST_INCM_PROC, EV_USR_PROCED_REQ, cb_in_1}, @@ -270,7 +270,7 @@ dev = chan2dev(chan); if (dev == NULL) { - printk(KERN_WARNING "pcbit: timer for unkown device\n"); + printk(KERN_WARNING "pcbit: timer for unknown device\n"); return; } diff -u --recursive --new-file v1.3.94/linux/drivers/isdn/pcbit/edss1.h linux/drivers/isdn/pcbit/edss1.h --- v1.3.94/linux/drivers/isdn/pcbit/edss1.h Sun Apr 21 19:22:07 1996 +++ linux/drivers/isdn/pcbit/edss1.h Tue Apr 23 12:31:35 1996 @@ -1,7 +1,7 @@ /* * Copyright (C) 1996 Universidade de Lisboa * - * Writen by Pedro Roque Marques (roque@di.fc.ul.pt) + * Written by Pedro Roque Marques (roque@di.fc.ul.pt) * * This software may be used and distributed according to the terms of * the GNU Public License, incorporated herein by reference. @@ -19,11 +19,11 @@ #define ST_NULL 0 #define ST_CALL_INIT 1 /* Call initiated */ #define ST_OVER_SEND 2 /* Overlap sending - Requests More Info 4 call */ -#define ST_CALL_PROC 3 /* Call Procceding */ +#define ST_CALL_PROC 3 /* Call Proceeding */ #define ST_CALL_DELV 4 #define ST_CALL_PRES 6 /* Call Present - Received CONN.IND */ #define ST_CALL_RECV 7 /* Alerting sent */ -#define ST_CONN_REQ 8 /* Answered - wainting 4 CONN.CONF */ +#define ST_CONN_REQ 8 /* Answered - waiting 4 CONN.CONF */ #define ST_INCM_PROC 9 #define ST_ACTIVE 10 #define ST_DISC_REQ 11 diff -u --recursive --new-file v1.3.94/linux/drivers/isdn/pcbit/layer2.c linux/drivers/isdn/pcbit/layer2.c --- v1.3.94/linux/drivers/isdn/pcbit/layer2.c Sun Apr 21 19:22:07 1996 +++ linux/drivers/isdn/pcbit/layer2.c Tue Apr 23 12:31:35 1996 @@ -1,7 +1,7 @@ /* * Copyright (C) 1996 Universidade de Lisboa * - * Writen by Pedro Roque Marques (roque@di.fc.ul.pt) + * Written by Pedro Roque Marques (roque@di.fc.ul.pt) * * This software may be used and distributed according to the terms of * the GNU Public License, incorporated herein by reference. @@ -288,7 +288,7 @@ frame->copied += cp_len; } - /* bookeeping */ + /* bookkeeping */ dev->free -= flen; pcbit_tx_update(dev, flen); @@ -461,18 +461,18 @@ return; } - /* miminum frame read */ + /* minimum frame read */ frame->skb = dev_alloc_skb(frame->hdr_len + frame->dt_len + ((frame->hdr_len + 15) & ~15)); if (!frame->skb) { - printk(KERN_DEBUG "pcbit_receive: out of memmory\n"); + printk(KERN_DEBUG "pcbit_receive: out of memory\n"); kfree(frame); return; } - /* 16 byte aligment for IP */ + /* 16 byte alignment for IP */ if (frame->dt_len) skb_reserve(frame->skb, (frame->hdr_len + 15) & ~15); @@ -485,7 +485,7 @@ if (!(frame = dev->read_frame)) { printk("Type 1 frame and no frame queued\n"); #if 1 - /* usualy after an error: toss frame */ + /* usually after an error: toss frame */ dev->readptr += tt; if (dev->readptr > dev->sh_mem + BANK2 + BANKLEN) dev->readptr -= BANKLEN; @@ -533,7 +533,7 @@ /* * The board sends 0 sized frames * They are TDATA_CONFs that get messed up somehow - * gotta send a fake acknowledment to the upper layer somehow + * gotta send a fake acknowledgment to the upper layer somehow */ static __inline__ void pcbit_fake_conf(struct pcbit_dev *dev, struct pcbit_chan * chan) diff -u --recursive --new-file v1.3.94/linux/drivers/isdn/pcbit/layer2.h linux/drivers/isdn/pcbit/layer2.h --- v1.3.94/linux/drivers/isdn/pcbit/layer2.h Sun Apr 21 19:22:07 1996 +++ linux/drivers/isdn/pcbit/layer2.h Tue Apr 23 12:31:35 1996 @@ -1,7 +1,7 @@ /* * Copyright (C) 1996 Universidade de Lisboa * - * Writen by Pedro Roque Marques (roque@di.fc.ul.pt) + * Written by Pedro Roque Marques (roque@di.fc.ul.pt) * * This software may be used and distributed according to the terms of * the GNU Public License, incorporated herein by reference. diff -u --recursive --new-file v1.3.94/linux/drivers/isdn/pcbit/module.c linux/drivers/isdn/pcbit/module.c --- v1.3.94/linux/drivers/isdn/pcbit/module.c Sun Apr 21 19:22:07 1996 +++ linux/drivers/isdn/pcbit/module.c Tue Apr 23 12:31:35 1996 @@ -1,7 +1,7 @@ /* * Copyright (C) 1996 Universidade de Lisboa * - * Writen by Pedro Roque Marques (roque@di.fc.ul.pt) + * Written by Pedro Roque Marques (roque@di.fc.ul.pt) * * This software may be used and distributed according to the terms of * the GNU Public License, incorporated herein by reference. diff -u --recursive --new-file v1.3.94/linux/drivers/isdn/pcbit/pcbit.h linux/drivers/isdn/pcbit/pcbit.h --- v1.3.94/linux/drivers/isdn/pcbit/pcbit.h Sun Apr 21 19:22:07 1996 +++ linux/drivers/isdn/pcbit/pcbit.h Tue Apr 23 12:31:35 1996 @@ -1,7 +1,7 @@ /* * Copyright (C) 1996 Universidade de Lisboa * - * Writen by Pedro Roque Marques (roque@di.fc.ul.pt) + * Written by Pedro Roque Marques (roque@di.fc.ul.pt) * * This software may be used and distributed according to the terms of * the GNU Public License, incorporated herein by reference. @@ -24,7 +24,7 @@ struct pcbit_chan { unsigned short id; unsigned short callref; /* Call Reference */ - unsigned char proto; /* layer2protol */ + unsigned char proto; /* layer2protocol */ unsigned char queued; /* unacked data messages */ unsigned char layer2link; /* used in TData */ unsigned char snum; /* used in TData */ diff -u --recursive --new-file v1.3.94/linux/drivers/isdn/teles/isdnl3.c linux/drivers/isdn/teles/isdnl3.c --- v1.3.94/linux/drivers/isdn/teles/isdnl3.c Sun Apr 21 19:22:07 1996 +++ linux/drivers/isdn/teles/isdnl3.c Tue Apr 23 12:31:35 1996 @@ -293,7 +293,7 @@ if (bcfound) { if (st->pa->info != 7) { - printk(KERN_WARNING "non-dgital call: %s -> %s\n", + printk(KERN_WARNING "non-digital call: %s -> %s\n", st->pa->calling, st->pa->called); } diff -u --recursive --new-file v1.3.94/linux/drivers/net/depca.c linux/drivers/net/depca.c --- v1.3.94/linux/drivers/net/depca.c Fri Apr 12 15:51:55 1996 +++ linux/drivers/net/depca.c Tue Apr 23 09:22:01 1996 @@ -200,11 +200,12 @@ Both above from a suggestion by . Add new multicasting code. + 0.421 22-Apr-96 Fix alloc_device() bug ========================================================================= */ -static const char *version = "depca.c:v0.42 95/12/27 davies@wanton.lkg.dec.com\n"; +static const char *version = "depca.c:v0.421 96/4/22 davies@wanton.lkg.dec.com\n"; #include @@ -1336,7 +1337,7 @@ ** and initialize it (name, I/O address, next device (NULL) and ** initialisation probe routine). */ - dev->name = (char *)(dev + sizeof(struct device)); + dev->name = (char *)(dev + 1); if (num_eth > 9999) { sprintf(dev->name,"eth????"); /* New device name */ } else { @@ -1375,7 +1376,7 @@ ** and initialize it (name, I/O address, next device (NULL) and ** initialisation probe routine). */ - tmp->name = (char *)(tmp + sizeof(struct device)); + tmp->name = (char *)(tmp + 1); if (num_eth > 9999) { sprintf(tmp->name,"eth????"); /* New device name */ } else { diff -u --recursive --new-file v1.3.94/linux/drivers/net/ewrk3.c linux/drivers/net/ewrk3.c --- v1.3.94/linux/drivers/net/ewrk3.c Wed Mar 6 15:04:20 1996 +++ linux/drivers/net/ewrk3.c Tue Apr 23 09:22:01 1996 @@ -132,11 +132,12 @@ Add new multicasting code. 0.41 20-Jan-96 Fix IRQ set up problem reported by . + 0.42 22-Apr-96 Fix alloc_device() bug ========================================================================= */ -static const char *version = "ewrk3.c:v0.41 96/1/20 davies@wanton.lkg.dec.com\n"; +static const char *version = "ewrk3.c:v0.42 96/4/22 davies@wanton.lkg.dec.com\n"; #include @@ -1415,7 +1416,7 @@ ** and initialize it (name, I/O address, next device (NULL) and ** initialisation probe routine). */ - dev->name = (char *)(dev + sizeof(struct device)); + dev->name = (char *)(dev + 1); if (num_eth > 9999) { sprintf(dev->name,"eth????"); /* New device name */ } else { @@ -1454,7 +1455,7 @@ ** and initialize it (name, I/O address, next device (NULL) and ** initialisation probe routine). */ - tmp->name = (char *)(tmp + sizeof(struct device)); + tmp->name = (char *)(tmp + 1); if (num_eth > 9999) { sprintf(tmp->name,"eth????"); /* New device name */ } else { diff -u --recursive --new-file v1.3.94/linux/drivers/net/ppp.c linux/drivers/net/ppp.c --- v1.3.94/linux/drivers/net/ppp.c Fri Apr 12 15:51:56 1996 +++ linux/drivers/net/ppp.c Wed Apr 24 09:13:04 1996 @@ -2613,7 +2613,7 @@ */ case SEL_EX: /* Is this a pty link and the remote disconnected? */ - if (tty->flags & (1 << TTY_SLAVE_CLOSED)) + if (tty->flags & (1 << TTY_OTHER_CLOSED)) break; /* Is this a local link and the modem disconnected? */ diff -u --recursive --new-file v1.3.94/linux/drivers/sbus/dvma.c linux/drivers/sbus/dvma.c --- v1.3.94/linux/drivers/sbus/dvma.c Sun Apr 21 19:22:10 1996 +++ linux/drivers/sbus/dvma.c Tue Apr 23 12:31:35 1996 @@ -78,7 +78,7 @@ dma->SBus_dev->reg_addrs[0].which_io, 0x0); dma->node = dma->SBus_dev->prom_node; - dma->running=0; /* No tranfers going on as of yet */ + dma->running=0; /* No transfers going on as of yet */ dma->allocated=0; /* No one has allocated us yet */ switch((dma->regs->cond_reg)&DMA_DEVICE_ID) { case DMA_VERS0: diff -u --recursive --new-file v1.3.94/linux/drivers/scsi/esp.h linux/drivers/scsi/esp.h --- v1.3.94/linux/drivers/scsi/esp.h Sun Apr 21 19:22:11 1996 +++ linux/drivers/scsi/esp.h Tue Apr 23 12:31:34 1996 @@ -246,7 +246,7 @@ /* The status register can be masked with ESP_STAT_PMASK and compared * with the following values to determine the current phase the ESP - * (at least thinks it) is in. For our pusposes we also add our own + * (at least thinks it) is in. For our purposes we also add our own * software 'done' bit for our phase management engine. */ #define ESP_DOP (0) /* Data Out */ diff -u --recursive --new-file v1.3.94/linux/drivers/scsi/scsi.c linux/drivers/scsi/scsi.c --- v1.3.94/linux/drivers/scsi/scsi.c Sun Apr 21 12:39:02 1996 +++ linux/drivers/scsi/scsi.c Wed Apr 24 12:47:02 1996 @@ -23,6 +23,10 @@ * Added request_module("scsi_hostadapter") for kerneld: * (Put an "alias scsi_hostadapter your_hostadapter" in /etc/conf.modules) * Bjorn Ekwall + * + * Major improvements to the timeout, abort, and reset processing, + * as well as performance modifications for large queue depths by + * Leonard N. Zubkoff */ /* @@ -2122,12 +2126,12 @@ */ if( temp & SCSI_RESET_BUS_RESET ) { - SCpnt1 = host->host_queue; - while(SCpnt1) { - if( SCpnt->request.rq_status != RQ_INACTIVE - && SCpnt1 != SCpnt) - scsi_request_sense (SCpnt); - SCpnt1 = SCpnt1->next; + SCpnt1 = host->host_queue; + while(SCpnt1) { + if (SCpnt1->request.rq_status != RQ_INACTIVE + && SCpnt1 != SCpnt) + scsi_request_sense (SCpnt1); + SCpnt1 = SCpnt1->next; } } return 0; diff -u --recursive --new-file v1.3.94/linux/drivers/scsi/st.c linux/drivers/scsi/st.c --- v1.3.94/linux/drivers/scsi/st.c Tue Apr 23 13:57:10 1996 +++ linux/drivers/scsi/st.c Wed Apr 24 12:48:52 1996 @@ -11,7 +11,7 @@ Copyright 1992 - 1996 Kai Makisara email Kai.Makisara@metla.fi - Last modified: Sun Apr 21 22:03:50 1996 by root@kai.makisara.fi + Last modified: Wed Apr 24 09:53:23 1996 by root@kai.makisara.fi Some small formal changes - aeb, 950809 */ @@ -1230,9 +1230,28 @@ (STp->buffer)->buffer_bytes = bytes - transfer; } else { - printk(KERN_NOTICE "st%d: Incorrect block size.\n", dev); SCpnt->request.rq_status = RQ_INACTIVE; /* Mark as not busy */ - return (-EIO); + if (transfer == blks) { /* We did not get anything, signal error */ + printk(KERN_NOTICE "st%d: Incorrect block size.\n", dev); + if (STp->drv_block >= 0) + STp->drv_block += blks - transfer + 1; + st_int_ioctl(inode, filp, MTBSR, 1); + return (-EIO); + } + /* We have some data, deliver it */ + (STp->buffer)->buffer_bytes = (blks - transfer) * STp->block_size; +#if DEBUG + if (debugging) + printk(ST_DEB_MSG "st%d: ILI but enough data received %d %d.\n", + dev, count - total, (STp->buffer)->buffer_bytes); +#endif + if (count - total > (STp->buffer)->buffer_bytes) + count = total + (STp->buffer)->buffer_bytes; + if (STp->drv_block >= 0) + STp->drv_block += 1; + if (st_int_ioctl(inode, filp, MTBSR, 1)) + return (-EIO); + SCpnt = NULL; } } else if (SCpnt->sense_buffer[2] & 0x40) { diff -u --recursive --new-file v1.3.94/linux/drivers/sound/ad1848.c linux/drivers/sound/ad1848.c --- v1.3.94/linux/drivers/sound/ad1848.c Fri Apr 12 15:52:02 1996 +++ linux/drivers/sound/ad1848.c Tue Apr 23 09:12:30 1996 @@ -390,7 +390,7 @@ if (mix_devices[dev][RIGHT_CHN].nbits == 0) /* Mono control */ right = left; - retvol = left | (left << 8); + retvol = left | (right << 8); /* Scale volumes */ left = mix_cvt[left]; diff -u --recursive --new-file v1.3.94/linux/fs/buffer.c linux/fs/buffer.c --- v1.3.94/linux/fs/buffer.c Wed Apr 17 09:06:32 1996 +++ linux/fs/buffer.c Wed Apr 24 15:09:21 1996 @@ -721,17 +721,11 @@ /* Too bad, that was not enough. Try a little harder to grow some. */ - if (nr_free_pages > min_free_pages + 5) { - if (grow_buffers(GFP_BUFFER, size)) { - needed -= PAGE_SIZE; - goto repeat0; - }; + if (grow_buffers(GFP_ATOMIC, size)) { + needed -= PAGE_SIZE; + goto repeat0; } - - /* and repeat until we find something good */ - if (!grow_buffers(GFP_ATOMIC, size)) - wakeup_bdflush(1); - needed -= PAGE_SIZE; + wakeup_bdflush(1); goto repeat0; } diff -u --recursive --new-file v1.3.94/linux/fs/ext2/super.c linux/fs/ext2/super.c --- v1.3.94/linux/fs/ext2/super.c Mon Feb 26 08:38:08 1996 +++ linux/fs/ext2/super.c Tue Apr 23 14:08:55 1996 @@ -651,7 +651,7 @@ /* * Allow the "check" option to be passed as a remount option. */ - set_opt (new_mount_opt, CHECK_NORMAL); + new_mount_opt = EXT2_MOUNT_CHECK_NORMAL; if (!parse_options (data, &tmp, &resuid, &resgid, &new_mount_opt)) return -EINVAL; diff -u --recursive --new-file v1.3.94/linux/fs/locks.c linux/fs/locks.c --- v1.3.94/linux/fs/locks.c Mon Apr 15 12:20:21 1996 +++ linux/fs/locks.c Wed Apr 24 16:34:06 1996 @@ -68,6 +68,9 @@ * see if system call should be rejected. Ref. HP-UX/SunOS/Solaris Reference * Manual, Section 2. * Andy Walker (andy@lysaker.kvaerner.no), April 09, 1996. + * + * Tidied up block list handling. + * Andy Walker (andy@lysaker.kvaerner.no), April 24, 1996. */ #include @@ -105,10 +108,10 @@ static struct file_lock *file_lock_table = NULL; /* Free lock not inserted in any queue */ -static inline void locks_free_lock(struct file_lock **fl) +static inline void locks_free_lock(struct file_lock *fl) { - kfree(*fl); - *fl = NULL; /* Just in case */ + kfree(fl); + return; } /* Add lock fl to the blocked list pointed to by block. @@ -125,34 +128,33 @@ * so they are inlined now. -- Dmitry Gorodchanin 02/09/96. */ -static inline void locks_insert_block(struct file_lock **block, +static inline void locks_insert_block(struct file_lock *bfl, struct file_lock *fl) { - struct file_lock *bfl; - - while ((bfl = *block) != NULL) { - block = &bfl->fl_block; + while (bfl->fl_block != NULL) { + bfl = bfl->fl_block; } - *block = fl; + bfl->fl_block = fl; fl->fl_block = NULL; return; } -static inline void locks_delete_block(struct file_lock **block, +static inline void locks_delete_block(struct file_lock *bfl, struct file_lock *fl) { - struct file_lock *bfl; + struct file_lock *tfl; - while ((bfl = *block) != NULL) { - if (bfl == fl) { - *block = fl->fl_block; + while ((tfl = bfl->fl_block) != NULL) { + if (tfl == fl) { + bfl->fl_block = fl->fl_block; fl->fl_block = NULL; return; } - block = &bfl->fl_block; + bfl = tfl; } + return; } /* flock() system call entry point. Apply a FLOCK style lock to @@ -271,6 +273,9 @@ break; case F_SHLCK : case F_EXLCK : + printk(KERN_WARNING + "fcntl_setlk() called by process %d with broken flock() emulation\n", + current->pid); if (!(filp->f_mode & 3)) return (-EBADF); break; @@ -612,10 +617,10 @@ * instead of locks_delete_lock() * Dmitry Gorodchanin 09/02/96. */ - locks_free_lock(&new_fl); + locks_free_lock(new_fl); return (-ERESTARTSYS); } - locks_insert_block(&fl->fl_block, new_fl); + locks_insert_block(fl, new_fl); interruptible_sleep_on(&new_fl->fl_wait); wake_up(&new_fl->fl_wait); if (current->signal & ~current->blocked) { @@ -626,14 +631,14 @@ * Dmitry Gorodchanin 09/02/96. */ - locks_delete_block(&fl->fl_block, new_fl); - locks_free_lock(&new_fl); + locks_delete_block(fl, new_fl); + locks_free_lock(new_fl); return (-ERESTARTSYS); } goto repeat; } - locks_free_lock(&new_fl); + locks_free_lock(new_fl); return (-EAGAIN); } locks_insert_lock(&filp->f_inode->i_flock, new_fl); @@ -874,9 +879,8 @@ if (pfl != NULL) pfl->fl_nextlink = nfl; - else { + else file_lock_table = nfl; - } while ((nfl = fl->fl_block) != NULL) { fl->fl_block = nfl->fl_block; diff -u --recursive --new-file v1.3.94/linux/fs/pipe.c linux/fs/pipe.c --- v1.3.94/linux/fs/pipe.c Sun Mar 31 00:13:18 1996 +++ linux/fs/pipe.c Tue Apr 23 16:02:24 1996 @@ -423,6 +423,7 @@ break; if (j < 2) { iput(inode); + iput(inode); if (j) f[0]->f_count--; return -ENFILE; @@ -434,6 +435,7 @@ j++; } if (j<2) { + iput(inode); iput(inode); f[0]->f_count--; f[1]->f_count--; diff -u --recursive --new-file v1.3.94/linux/fs/ufs/ufs_super.c linux/fs/ufs/ufs_super.c --- v1.3.94/linux/fs/ufs/ufs_super.c Tue Apr 23 13:57:11 1996 +++ linux/fs/ufs/ufs_super.c Tue Apr 23 09:25:57 1996 @@ -16,6 +16,8 @@ #include #include +#include + struct super_block * ufs_read_super(struct super_block * sb, void * data, int silent); void ufs_put_super (struct super_block * sb); void ufs_statfs(struct super_block * sb, struct statfs * buf, int bufsize); diff -u --recursive --new-file v1.3.94/linux/fs/ufs/ufs_symlink.c linux/fs/ufs/ufs_symlink.c --- v1.3.94/linux/fs/ufs/ufs_symlink.c Tue Apr 23 13:57:11 1996 +++ linux/fs/ufs/ufs_symlink.c Tue Apr 23 09:26:55 1996 @@ -13,6 +13,8 @@ #include #include +#include + static int ufs_readlink(struct inode * inode, char * buffer, int buflen) { @@ -39,7 +41,7 @@ if (inode->i_sb->u.ufs_sb.s_flags &(UFS_DEBUG|UFS_DEBUG_LINKS)) { printk("ufs_readlink: bmap got %lu for ino %lu\n", block, inode->i_ino); -} + } bh = bread(inode->i_dev, block, BLOCK_SIZE); if (!bh) { iput (inode); diff -u --recursive --new-file v1.3.94/linux/include/asm-alpha/io.h linux/include/asm-alpha/io.h --- v1.3.94/linux/include/asm-alpha/io.h Fri Apr 12 15:52:05 1996 +++ linux/include/asm-alpha/io.h Tue Apr 23 12:47:26 1996 @@ -5,6 +5,10 @@ #include +/* We don't use IO slowdowns on the alpha, but.. */ +#define __SLOW_DOWN_IO do { } while (0) +#define SLOW_DOWN_IO do { } while (0) + /* * The hae (hardware address extension) register is used to * access high IO addresses. To avoid doing an external cycle @@ -134,25 +138,12 @@ #ifndef inl_p # define inl_p inl #endif + #ifndef outb_p # define outb_p outb #endif #ifndef outw_p # define outw_p outw -#endif -#ifndef outl_p -# define outl_p outl -#endif - -#ifndef inw_p -# define inw_p inw -#endif -#ifndef outw_p -# define outw_p outw -#endif - -#ifndef inl_p -# define inl_p inl #endif #ifndef outl_p # define outl_p outl diff -u --recursive --new-file v1.3.94/linux/include/asm-i386/pgtable.h linux/include/asm-i386/pgtable.h --- v1.3.94/linux/include/asm-i386/pgtable.h Tue Apr 23 13:57:12 1996 +++ linux/include/asm-i386/pgtable.h Tue Apr 23 13:41:25 1996 @@ -40,7 +40,7 @@ */ #define __flush_tlb() \ -__asm__ __volatile__("movl %%cr3,%%eax\n\tmovl %%eax,%%cr3": : :"ax") +do { unsigned long tmpreg; __asm__ __volatile__("movl %%cr3,%0\n\tmovl %0,%%cr3":"=r" (tmpreg) : :"memory"); } while (0) #ifdef CONFIG_M386 #define __flush_tlb_one(addr) flush_tlb() @@ -290,7 +290,7 @@ do { \ (tsk)->tss.cr3 = (unsigned long) (pgdir); \ if ((tsk) == current) \ - __asm__ __volatile__("movl %0,%%cr3": :"a" (pgdir)); \ + __asm__ __volatile__("movl %0,%%cr3": :"r" (pgdir)); \ } while (0) extern inline int pte_none(pte_t pte) { return !pte_val(pte); } diff -u --recursive --new-file v1.3.94/linux/include/asm-sparc/asi.h linux/include/asm-sparc/asi.h --- v1.3.94/linux/include/asm-sparc/asi.h Sun Apr 21 19:22:12 1996 +++ linux/include/asm-sparc/asi.h Tue Apr 23 12:31:34 1996 @@ -101,7 +101,7 @@ #define ASI_M_IC_FLCLEAR 0x36 #define ASI_M_DC_FLCLEAR 0x37 -#define ASI_M_DCDR 0x39 /* Data Cache Diagnostics Registerl rw, ss */ +#define ASI_M_DCDR 0x39 /* Data Cache Diagnostics Register rw, ss */ #define ASI_M_ACTION 0x4c /* Breakpoint Action Register (GNU/Viking) */ diff -u --recursive --new-file v1.3.94/linux/include/asm-sparc/auxio.h linux/include/asm-sparc/auxio.h --- v1.3.94/linux/include/asm-sparc/auxio.h Sun Apr 21 19:22:12 1996 +++ linux/include/asm-sparc/auxio.h Tue Apr 23 12:31:34 1996 @@ -1,5 +1,5 @@ /* $Id: auxio.h,v 1.10 1996/01/03 03:52:58 davem Exp $ - * auxio.h: Definitons and code for the Auxiliary I/O register. + * auxio.h: Definitions and code for the Auxiliary I/O register. * * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) */ diff -u --recursive --new-file v1.3.94/linux/include/asm-sparc/bsderrno.h linux/include/asm-sparc/bsderrno.h --- v1.3.94/linux/include/asm-sparc/bsderrno.h Sun Apr 21 19:22:12 1996 +++ linux/include/asm-sparc/bsderrno.h Tue Apr 23 12:31:34 1996 @@ -1,5 +1,5 @@ /* $Id: bsderrno.h,v 1.2 1995/11/25 02:31:17 davem Exp $ - * bsderrno.h: Error numbers for NetBSD binary compatability + * bsderrno.h: Error numbers for NetBSD binary compatibility * * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) */ diff -u --recursive --new-file v1.3.94/linux/include/asm-sparc/cache.h linux/include/asm-sparc/cache.h --- v1.3.94/linux/include/asm-sparc/cache.h Sun Apr 21 19:22:12 1996 +++ linux/include/asm-sparc/cache.h Tue Apr 23 12:31:34 1996 @@ -14,7 +14,7 @@ * alternate address space. The IDC bit must be off in the ICCR on * HyperSparcs for these accesses to work. The code below does not do * any checking, the caller must do so. These routines are for - * diagnostics only, but coule end up being useful. Use with care. + * diagnostics only, but could end up being useful. Use with care. * Also, you are asking for trouble if you execute these in one of the * three instructions following a %asr/%psr access or modification. */ diff -u --recursive --new-file v1.3.94/linux/include/asm-sparc/cypress.h linux/include/asm-sparc/cypress.h --- v1.3.94/linux/include/asm-sparc/cypress.h Sun Apr 21 19:22:12 1996 +++ linux/include/asm-sparc/cypress.h Tue Apr 23 12:31:34 1996 @@ -24,7 +24,7 @@ * BM: Boot Mode -- 0 = not in boot mode, 1 = in boot mode * C: Cacheable -- Indicates whether accesses are cacheable while * the MMU is off. 0=no 1=yes - * MR: MemoryReflection -- Indicates whether the bus attacted to the + * MR: MemoryReflection -- Indicates whether the bus attached to the * MBus supports memory reflection. 0=no 1=yes (605 only) * CM: CacheMode -- Indicates whether the cache is operating in write * through or copy-back mode. 0=write-through 1=copy-back diff -u --recursive --new-file v1.3.94/linux/include/asm-sparc/dma.h linux/include/asm-sparc/dma.h --- v1.3.94/linux/include/asm-sparc/dma.h Sun Apr 21 19:22:12 1996 +++ linux/include/asm-sparc/dma.h Tue Apr 23 12:31:34 1996 @@ -96,7 +96,7 @@ #define DMA_RST_ENET DMA_RST_SCSI /* Reset the ENET controller */ #define DMA_ST_WRITE 0x00000100 /* write from device to memory */ #define DMA_ENABLE 0x00000200 /* Fire up DMA, handle requests */ -#define DMA_PEND_READ 0x00000400 /* DMA_VERS1/0/PLUS Pendind Read */ +#define DMA_PEND_READ 0x00000400 /* DMA_VERS1/0/PLUS Pending Read */ #define DMA_DSBL_RD_DRN 0x00001000 /* No EC drain on slave reads */ #define DMA_BCNT_ENAB 0x00002000 /* If on, use the byte counter */ #define DMA_TERM_CNTR 0x00004000 /* Terminal counter */ diff -u --recursive --new-file v1.3.94/linux/include/asm-sparc/ecc.h linux/include/asm-sparc/ecc.h --- v1.3.94/linux/include/asm-sparc/ecc.h Sun Apr 21 19:22:12 1996 +++ linux/include/asm-sparc/ecc.h Tue Apr 23 12:31:34 1996 @@ -101,7 +101,7 @@ * 31-18 17 16 15-8 7-4 3 2 1 0 * * C2E: A C2 graphics error occurred. 0=no 1=yes (SS10 only) - * MULT: Multiple errors occurres ;-O 0=no 1=prom_panic(yes) + * MULT: Multiple errors occurred ;-O 0=no 1=prom_panic(yes) * SYNDROME: Controller is mentally unstable. * DWORD: * UNC: Uncorrectable error. 0=no 1=yes diff -u --recursive --new-file v1.3.94/linux/include/asm-sparc/fbio.h linux/include/asm-sparc/fbio.h --- v1.3.94/linux/include/asm-sparc/fbio.h Sun Apr 21 19:22:12 1996 +++ linux/include/asm-sparc/fbio.h Tue Apr 23 12:31:34 1996 @@ -72,7 +72,7 @@ int emu_types[FB_ATTR_NEMUTYPES]; /* supported emulations */ }; #define FBIOSATTR _IOW('F', 5, struct fbgattr) /* Unsupported: */ -#define FBIOGATTR _IOR('F', 6, struct fbgattr) /* supporoted */ +#define FBIOGATTR _IOR('F', 6, struct fbgattr) /* supported */ #define FBIOSVIDEO _IOW('F', 7, int) #define FBIOGVIDEO _IOR('F', 8, int) diff -u --recursive --new-file v1.3.94/linux/include/asm-sparc/floppy.h linux/include/asm-sparc/floppy.h --- v1.3.94/linux/include/asm-sparc/floppy.h Sun Apr 21 19:22:12 1996 +++ linux/include/asm-sparc/floppy.h Tue Apr 23 12:31:34 1996 @@ -93,7 +93,7 @@ #define N_FDC 1 #define N_DRIVE 8 -/* No 64k boundry crossing problems on the Sparc. */ +/* No 64k boundary crossing problems on the Sparc. */ #define CROSS_64KB(a,s) (0) /* Routines unique to each controller type on a Sun. */ diff -u --recursive --new-file v1.3.94/linux/include/asm-sparc/head.h linux/include/asm-sparc/head.h --- v1.3.94/linux/include/asm-sparc/head.h Sun Apr 21 19:22:12 1996 +++ linux/include/asm-sparc/head.h Tue Apr 23 12:31:34 1996 @@ -8,7 +8,7 @@ #define SRMMU_L1_KBASE_OFFSET ((KERNBASE>>24)<<2) /* Used in boot remapping. */ #define INTS_ENAB 0x01 /* entry.S uses this. */ -#define NCPUS 4 /* Architectual limit of sun4m. */ +#define NCPUS 4 /* Architectural limit of sun4m. */ #define SUN4_PROM_VECTOR 0xFFE81000 /* To safely die on a SUN4 */ #define SUN4_PRINTF 0x84 /* Offset into SUN4_PROM_VECTOR */ @@ -82,7 +82,7 @@ /* NMI's (Non Maskable Interrupts) are special, you can't keep them * from coming in, and basically if you get one, the shows over. ;( - * On the sun4c they are usually asyncronous memory errors, on the + * On the sun4c they are usually asynchronous memory errors, on the * the sun4m they could be either due to mem errors or a software * initiated interrupt from the prom/kern on an SMP box saying "I * command you to do CPU tricks, read your mailbox for more info." diff -u --recursive --new-file v1.3.94/linux/include/asm-sparc/irq.h linux/include/asm-sparc/irq.h --- v1.3.94/linux/include/asm-sparc/irq.h Sun Apr 21 19:22:12 1996 +++ linux/include/asm-sparc/irq.h Tue Apr 23 12:31:34 1996 @@ -15,7 +15,7 @@ /* Dave Redman (djhr@tadpole.co.uk) * changed these to function pointers.. it saves cycles and will allow - * the irq dependancies to be split into different files at a later date + * the irq dependencies to be split into different files at a later date * sun4c_irq.c, sun4m_irq.c etc so we could reduce the kernel size. */ extern void (*disable_irq)(unsigned int); diff -u --recursive --new-file v1.3.94/linux/include/asm-sparc/mbus.h linux/include/asm-sparc/mbus.h --- v1.3.94/linux/include/asm-sparc/mbus.h Sun Apr 21 19:22:12 1996 +++ linux/include/asm-sparc/mbus.h Tue Apr 23 12:31:34 1996 @@ -45,7 +45,7 @@ extern unsigned int hwbug_bitmask; /* First the module type values. To find out which you have, just load - * the mmu control register from ASI_M_MMUREG alternate adress space and + * the mmu control register from ASI_M_MMUREG alternate address space and * shift the value right 28 bits. */ /* IMPL field means the company which produced the chip. */ diff -u --recursive --new-file v1.3.94/linux/include/asm-sparc/memreg.h linux/include/asm-sparc/memreg.h --- v1.3.94/linux/include/asm-sparc/memreg.h Sun Apr 21 19:22:12 1996 +++ linux/include/asm-sparc/memreg.h Tue Apr 23 12:31:34 1996 @@ -16,7 +16,7 @@ #define SUN4C_SYNC_SIZE 0x0002 /* bad access size? whuz this? */ #define SUN4C_SYNC_PARITY 0x0008 /* bad ram chips caused a parity error */ #define SUN4C_SYNC_SBUS 0x0010 /* the SBUS had some problems... */ -#define SUN4C_SYNC_NOMEM 0x0020 /* translation to non-existant ram */ +#define SUN4C_SYNC_NOMEM 0x0020 /* translation to non-existent ram */ #define SUN4C_SYNC_PROT 0x0040 /* access violated pte protections */ #define SUN4C_SYNC_NPRESENT 0x0080 /* pte said that page was not present */ #define SUN4C_SYNC_BADWRITE 0x8000 /* while writing something went bogus */ diff -u --recursive --new-file v1.3.94/linux/include/asm-sparc/mman.h linux/include/asm-sparc/mman.h --- v1.3.94/linux/include/asm-sparc/mman.h Sun Apr 21 19:22:12 1996 +++ linux/include/asm-sparc/mman.h Tue Apr 23 12:31:34 1996 @@ -18,7 +18,7 @@ #define MAP_NORESERVE 0x40 /* don't reserve swap pages */ #define MAP_INHERIT 0x80 /* SunOS doesn't do this, but... */ #define MAP_LOCKED 0x100 /* lock the mapping */ -#define _MAP_NEW 0x80000000 /* Binary compatability is fun... */ +#define _MAP_NEW 0x80000000 /* Binary compatibility is fun... */ #define MAP_GROWSDOWN 0x0100 /* stack-like segment */ #define MAP_DENYWRITE 0x0800 /* ETXTBSY */ diff -u --recursive --new-file v1.3.94/linux/include/asm-sparc/mostek.h linux/include/asm-sparc/mostek.h --- v1.3.94/linux/include/asm-sparc/mostek.h Sun Apr 21 19:22:12 1996 +++ linux/include/asm-sparc/mostek.h Tue Apr 23 12:31:34 1996 @@ -29,7 +29,7 @@ /* Control register values. */ #define MSTK_CREG_WRITE 0x80 /* Must set this before placing values. */ #define MSTK_CREG_READ 0x40 /* Stop the clock, I want to fetch values. */ -#define MSTK_CREG_SIGN 0x20 /* Grrr... whats this??? */ +#define MSTK_CREG_SIGN 0x20 /* Grrr... what's this??? */ #define MSTK_YR_ZERO 1968 /* If year reg has zero, it is 1968 */ #define MSTK_CVT_YEAR(yr) ((yr) + MSTK_YR_ZERO) diff -u --recursive --new-file v1.3.94/linux/include/asm-sparc/mpmbox.h linux/include/asm-sparc/mpmbox.h --- v1.3.94/linux/include/asm-sparc/mpmbox.h Sun Apr 21 19:22:12 1996 +++ linux/include/asm-sparc/mpmbox.h Tue Apr 23 12:31:34 1996 @@ -38,7 +38,7 @@ */ #define MAILBOX_BPT_SPIN 0xfd -/* Oh geese, some other nitwit got a damn watchdog reset. The partys +/* Oh geese, some other nitwit got a damn watchdog reset. The party's * over so go call prom_stopcpu(). */ #define MAILBOX_WDOG_STOP 0xfe diff -u --recursive --new-file v1.3.94/linux/include/asm-sparc/mxcc.h linux/include/asm-sparc/mxcc.h --- v1.3.94/linux/include/asm-sparc/mxcc.h Sun Apr 21 19:22:12 1996 +++ linux/include/asm-sparc/mxcc.h Tue Apr 23 12:31:34 1996 @@ -51,7 +51,7 @@ * 31 30 29 28 27 26 25 24-15 14-7 6 5-3 2-0 * * ME: Multiple Errors have occurred - * CE: Cache consistancy Error + * CE: Cache consistency Error * PEW: Parity Error during a Write operation * PEE: Parity Error involving the External cache * ASE: ASynchronous Error diff -u --recursive --new-file v1.3.94/linux/include/asm-sparc/oplib.h linux/include/asm-sparc/oplib.h --- v1.3.94/linux/include/asm-sparc/oplib.h Sun Apr 21 19:22:12 1996 +++ linux/include/asm-sparc/oplib.h Tue Apr 23 12:31:34 1996 @@ -15,7 +15,7 @@ /* Enumeration to describe the prom major version we have detected. */ enum prom_major_version { - PROM_V0, /* Origional sun4c V0 prom */ + PROM_V0, /* Original sun4c V0 prom */ PROM_V2, /* sun4c and early sun4m V2 prom */ PROM_V3, /* sun4m and later, up to sun4d/sun4e machines V3 */ PROM_P1275, /* IEEE compliant ISA based Sun PROM, only sun4u */ @@ -84,7 +84,7 @@ * entries. One for the total amount of physical ram on the machine, one * for the amount of physical ram available, and one describing the virtual * areas which are allocated by the prom. So, in a sense the physical - * available is a calculation of the total physical minus the physcial mapped + * available is a calculation of the total physical minus the physical mapped * by the prom with virtual mappings. * * These lists are returned pre-sorted, this should make your life easier diff -u --recursive --new-file v1.3.94/linux/include/asm-sparc/pconf.h linux/include/asm-sparc/pconf.h --- v1.3.94/linux/include/asm-sparc/pconf.h Sun Apr 21 19:22:12 1996 +++ linux/include/asm-sparc/pconf.h Tue Apr 23 12:31:34 1996 @@ -1,6 +1,6 @@ /* $Id: pconf.h,v 1.2 1995/11/25 02:32:20 davem Exp $ * pconf.h: pathconf() and fpathconf() defines for SunOS - * system call compatability. + * system call compatibility. * * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) */ @@ -13,7 +13,7 @@ #define _PCONF_LINK 1 /* Max number of links to an object */ #define _PCONF_CANON 2 /* TTY input buffer line size */ -#define _PCONF_INPUT 3 /* Biggest packet a tty can inbibe at once */ +#define _PCONF_INPUT 3 /* Biggest packet a tty can imbibe at once */ #define _PCONF_NAME 4 /* Filename length max */ #define _PCONF_PATH 5 /* Max size of a pathname */ #define _PCONF_PIPE 6 /* Buffer size for a pipe */ diff -u --recursive --new-file v1.3.94/linux/include/asm-sparc/pgtsrmmu.h linux/include/asm-sparc/pgtsrmmu.h --- v1.3.94/linux/include/asm-sparc/pgtsrmmu.h Sun Apr 21 19:22:12 1996 +++ linux/include/asm-sparc/pgtsrmmu.h Tue Apr 23 12:31:34 1996 @@ -165,7 +165,7 @@ return retval; } -/* This is guarenteed on all SRMMU's. */ +/* This is guaranteed on all SRMMU's. */ extern inline void srmmu_flush_whole_tlb(void) { __asm__ __volatile__("sta %%g0, [%0] %1\n\t": : diff -u --recursive --new-file v1.3.94/linux/include/asm-sparc/signal.h linux/include/asm-sparc/signal.h --- v1.3.94/linux/include/asm-sparc/signal.h Sun Apr 21 19:22:12 1996 +++ linux/include/asm-sparc/signal.h Tue Apr 23 12:31:34 1996 @@ -123,7 +123,7 @@ * * DJHR * SA_STATIC_ALLOC is used for the SPARC system to indicate that this - * interupt handler's irq structure should be statically allocated + * interrupt handler's irq structure should be statically allocated * by the request_irq routine. * The alternative is that arch/sparc/kernel/irq.c has carnal knowledge * of interrupt usage and that sucks. Also without a flag like this diff -u --recursive --new-file v1.3.94/linux/include/asm-sparc/smp.h linux/include/asm-sparc/smp.h --- v1.3.94/linux/include/asm-sparc/smp.h Tue Apr 23 13:57:13 1996 +++ linux/include/asm-sparc/smp.h Tue Apr 23 12:31:34 1996 @@ -143,7 +143,7 @@ #define MSG_CAPTURE 0x0004 /* Park a processor. */ #define MSG_CROSS_CALL 0x0005 /* run func on cpus */ -/* Imperical PROM processor mailbox constants. If the per-cpu mailbox +/* Empirical PROM processor mailbox constants. If the per-cpu mailbox * contains something other than one of these then the ipi is from * Linux's active_kernel_processor. This facility exists so that * the boot monitor can capture all the other cpus when one catches diff -u --recursive --new-file v1.3.94/linux/include/asm-sparc/solerrno.h linux/include/asm-sparc/solerrno.h --- v1.3.94/linux/include/asm-sparc/solerrno.h Sun Apr 21 19:22:12 1996 +++ linux/include/asm-sparc/solerrno.h Tue Apr 23 12:31:34 1996 @@ -1,5 +1,5 @@ /* $Id: solerrno.h,v 1.4 1996/03/23 02:40:09 davem Exp $ - * solerrno.h: Solaris error return codes for compatability. + * solerrno.h: Solaris error return codes for compatibility. * * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) */ @@ -41,7 +41,7 @@ #define SOL_EPIPE 32 /* Call a plumber */ #define SOL_EDOM 33 /* Argument was out of fct domain */ #define SOL_ERANGE 34 /* Could not represent math result */ -#define SOL_ENOMSG 35 /* Message of req type doesnt exist */ +#define SOL_ENOMSG 35 /* Message of req type doesn't exist */ #define SOL_EIDRM 36 /* Identifier has been removed */ #define SOL_ECHRNG 37 /* Req channel number out of range */ #define SOL_EL2NSYNC 38 /* Could not sync at run level 2 */ diff -u --recursive --new-file v1.3.94/linux/include/asm-sparc/traps.h linux/include/asm-sparc/traps.h --- v1.3.94/linux/include/asm-sparc/traps.h Sun Apr 21 19:22:15 1996 +++ linux/include/asm-sparc/traps.h Tue Apr 23 12:31:34 1996 @@ -67,7 +67,7 @@ /* First, hardware traps. */ #define SP_TRAP_TFLT 0x1 /* Text fault */ #define SP_TRAP_II 0x2 /* Illegal Instruction */ -#define SP_TRAP_PI 0x3 /* Priviledged Instruction */ +#define SP_TRAP_PI 0x3 /* Privileged Instruction */ #define SP_TRAP_FPD 0x4 /* Floating Point Disabled */ #define SP_TRAP_WOVF 0x5 /* Window Overflow */ #define SP_TRAP_WUNF 0x6 /* Window Underflow */ diff -u --recursive --new-file v1.3.94/linux/include/asm-sparc/unistd.h linux/include/asm-sparc/unistd.h --- v1.3.94/linux/include/asm-sparc/unistd.h Sun Apr 21 19:22:15 1996 +++ linux/include/asm-sparc/unistd.h Tue Apr 23 12:31:34 1996 @@ -11,7 +11,7 @@ * * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) * - * SunOS compatability based upon preliminary work which is: + * SunOS compatibility based upon preliminary work which is: * * Copyright (C) 1995 Adrian M. Rodriguez (adrian@remus.rutgers.edu) */ diff -u --recursive --new-file v1.3.94/linux/include/asm-sparc/vac-ops.h linux/include/asm-sparc/vac-ops.h --- v1.3.94/linux/include/asm-sparc/vac-ops.h Sun Apr 21 19:22:15 1996 +++ linux/include/asm-sparc/vac-ops.h Tue Apr 23 12:31:34 1996 @@ -67,7 +67,7 @@ /* The indexing of cache lines creates a problem. Because the line * field of a virtual address extends past the page offset within * the virtual address it is possible to have what are called - * 'bad aliases' which will create inconsistancies. So we must make + * 'bad aliases' which will create inconsistencies. So we must make * sure that within a context that if a physical page is mapped * more than once, that 'extra' line bits are the same. If this is * not the case, and thus is a 'bad alias' we must turn off the diff -u --recursive --new-file v1.3.94/linux/include/asm-sparc/vaddrs.h linux/include/asm-sparc/vaddrs.h --- v1.3.94/linux/include/asm-sparc/vaddrs.h Sun Apr 21 19:22:15 1996 +++ linux/include/asm-sparc/vaddrs.h Tue Apr 23 12:31:34 1996 @@ -23,7 +23,7 @@ #define DVMA_LEN 0x00040000 /* Size of the DVMA address space */ #define DVMA_END 0xfff40000 -/* IOMMU Mapping area, must be on a 16MB boundry! Note this +/* IOMMU Mapping area, must be on a 16MB boundary! Note this * doesn't count the DVMA areas, the prom lives between the * iommu mapping area (for scsi transfer buffers) and the * dvma upper range (for lance packet ring buffers). diff -u --recursive --new-file v1.3.94/linux/include/asm-sparc/viking.h linux/include/asm-sparc/viking.h --- v1.3.94/linux/include/asm-sparc/viking.h Sun Apr 21 19:22:15 1996 +++ linux/include/asm-sparc/viking.h Tue Apr 23 12:31:34 1996 @@ -36,7 +36,7 @@ * SP: SnooP Enable -- 0 = bus snooping off, 1 = bus snooping on * * This enables snooping on the GNU/Viking bus. This must be on - * for the hardware cache consistancy mechanisms of the GNU/Viking + * for the hardware cache consistency mechanisms of the GNU/Viking * to work at all. On non-mxcc GNU/Viking modules the split I/D * caches will snoop regardless of whether they are enabled, this * takes care of the case where the I or D or both caches are turned diff -u --recursive --new-file v1.3.94/linux/include/linux/blkdev.h linux/include/linux/blkdev.h --- v1.3.94/linux/include/linux/blkdev.h Sun Apr 21 19:22:16 1996 +++ linux/include/linux/blkdev.h Wed Apr 24 16:21:40 1996 @@ -49,6 +49,7 @@ extern struct blk_dev_struct blk_dev[MAX_BLKDEV]; extern struct wait_queue * wait_for_request; extern void resetup_one_dev(struct gendisk *dev, int drive); +extern void unplug_device(void * data); /* md needs this function to remap requests */ extern int md_map (int minor, kdev_t *rdev, unsigned long *rsector, unsigned long size); diff -u --recursive --new-file v1.3.94/linux/include/linux/fs.h linux/include/linux/fs.h --- v1.3.94/linux/include/linux/fs.h Tue Apr 23 13:57:13 1996 +++ linux/include/linux/fs.h Wed Apr 24 16:21:40 1996 @@ -224,6 +224,7 @@ #include #include #include +#include #include /* @@ -312,6 +313,7 @@ struct nfs_inode_info nfs_i; struct xiafs_inode_info xiafs_i; struct sysv_inode_info sysv_i; + struct affs_inode_info affs_i; struct ufs_inode_info ufs_i; struct socket socket_i; void * generic_ip; @@ -402,6 +404,7 @@ #include #include #include +#include #include struct super_block { @@ -430,6 +433,7 @@ struct nfs_sb_info nfs_sb; struct xiafs_sb_info xiafs_sb; struct sysv_sb_info sysv_sb; + struct affs_sb_info affs_sb; struct ufs_sb_info ufs_sb; void *generic_sbp; } u; diff -u --recursive --new-file v1.3.94/linux/include/linux/istallion.h linux/include/linux/istallion.h --- v1.3.94/linux/include/linux/istallion.h Fri Apr 19 10:08:02 1996 +++ linux/include/linux/istallion.h Wed Apr 24 12:48:04 1996 @@ -108,6 +108,7 @@ int hostoffset; int slaveoffset; int bitsize; + int enabval; int panels[STL_MAXPANELS]; int panelids[STL_MAXPANELS]; void (*init)(struct stlibrd *brdp); diff -u --recursive --new-file v1.3.94/linux/include/linux/net.h linux/include/linux/net.h --- v1.3.94/linux/include/linux/net.h Mon Mar 25 08:58:22 1996 +++ linux/include/linux/net.h Tue Apr 23 13:10:39 1996 @@ -22,9 +22,6 @@ #include #include - -#define NSOCKETS 2000 /* Dynamic, this is MAX LIMIT */ -#define NSOCKETS_UNIX 128 /* unix domain static limit */ #define NPROTO 16 /* should be enough for now.. */ diff -u --recursive --new-file v1.3.94/linux/include/linux/tty.h linux/include/linux/tty.h --- v1.3.94/linux/include/linux/tty.h Tue Apr 23 13:57:14 1996 +++ linux/include/linux/tty.h Wed Apr 24 16:21:40 1996 @@ -261,7 +261,7 @@ */ #define TTY_THROTTLED 0 #define TTY_IO_ERROR 1 -#define TTY_SLAVE_CLOSED 2 +#define TTY_OTHER_CLOSED 2 #define TTY_EXCLUSIVE 3 #define TTY_DEBUG 4 #define TTY_DO_WRITE_WAKEUP 5 diff -u --recursive --new-file v1.3.94/linux/kernel/exit.c linux/kernel/exit.c --- v1.3.94/linux/kernel/exit.c Tue Apr 23 13:57:14 1996 +++ linux/kernel/exit.c Tue Apr 23 13:54:32 1996 @@ -433,18 +433,19 @@ struct mm_struct * mm = current->mm; /* Set us up to use the kernel mm state */ - flush_cache_mm(mm); - flush_tlb_mm(mm); - init_mm.count++; - current->mm = &init_mm; - current->swappable = 0; - SET_PAGE_DIR(current, swapper_pg_dir); + if (mm != &init_mm) { + flush_cache_mm(mm); + flush_tlb_mm(mm); + current->mm = &init_mm; + current->swappable = 0; + SET_PAGE_DIR(current, swapper_pg_dir); - /* free the old state - not used any more */ - if (!--mm->count) { - exit_mmap(mm); - free_page_tables(mm); - kfree(mm); + /* free the old state - not used any more */ + if (!--mm->count) { + exit_mmap(mm); + free_page_tables(mm); + kfree(mm); + } } } diff -u --recursive --new-file v1.3.94/linux/kernel/sched.c linux/kernel/sched.c --- v1.3.94/linux/kernel/sched.c Tue Apr 23 13:57:14 1996 +++ linux/kernel/sched.c Tue Apr 23 11:23:26 1996 @@ -546,40 +546,20 @@ int del_timer(struct timer_list * timer) { - unsigned long flags; -#if SLOW_BUT_DEBUGGING_TIMERS - struct timer_list * p; - - p = &timer_head; - save_flags(flags); - cli(); - while ((p = p->next) != &timer_head) { - if (p == timer) { - timer->next->prev = timer->prev; - timer->prev->next = timer->next; + int ret = 0; + if (timer->next) { + unsigned long flags; + struct timer_list * next; + save_flags(flags); + cli(); + if ((next = timer->next) != NULL) { + (next->prev = timer->prev)->next = next; timer->next = timer->prev = NULL; - restore_flags(flags); - return 1; + ret = 1; } + restore_flags(flags); } - if (timer->next || timer->prev) - printk("del_timer() called from %p with timer not initialized\n", - __builtin_return_address(0)); - restore_flags(flags); - return 0; -#else - struct timer_list * next; - int ret = 0; - save_flags(flags); - cli(); - if ((next = timer->next) != NULL) { - (next->prev = timer->prev)->next = next; - timer->next = timer->prev = NULL; - ret = 1; - } - restore_flags(flags); return ret; -#endif } static inline void run_timer_list(void) diff -u --recursive --new-file v1.3.94/linux/lib/string.c linux/lib/string.c --- v1.3.94/linux/lib/string.c Fri Aug 11 09:26:58 1995 +++ linux/lib/string.c Tue Apr 23 13:24:52 1996 @@ -112,6 +112,18 @@ } #endif +#ifndef __HAVE_ARCH_STRRCHR +char * strrchr(const char * s, int c) +{ + const char *p = s + strlen(s); + do { + if (*p == (char)c) + return (char *)p; + } while (--p >= s); + return NULL; +} +#endif + #ifndef __HAVE_ARCH_STRLEN size_t strlen(const char * s) { diff -u --recursive --new-file v1.3.94/linux/mm/filemap.c linux/mm/filemap.c --- v1.3.94/linux/mm/filemap.c Tue Apr 23 13:57:14 1996 +++ linux/mm/filemap.c Wed Apr 24 15:01:47 1996 @@ -686,8 +686,11 @@ */ read_page: error = inode->i_op->readpage(inode, page); - if (!error) - goto found_page; + if (!error) { + if (!PageError(page)) + goto found_page; + error = -EIO; + } free_page(addr); break; } diff -u --recursive --new-file v1.3.94/linux/net/ipv4/ip_output.c linux/net/ipv4/ip_output.c --- v1.3.94/linux/net/ipv4/ip_output.c Sun Apr 21 19:22:17 1996 +++ linux/net/ipv4/ip_output.c Wed Apr 24 13:00:04 1996 @@ -642,9 +642,10 @@ * choice RAW frames within 20 bytes of maximum size(rare) to the long path */ - length += sizeof(struct iphdr); - if (!sk->ip_hdrincl && opt) - length += opt->optlen; + if (!sk->ip_hdrincl) { + length += sizeof(struct iphdr); + if(opt) length += opt->optlen; + } if(length <= dev->mtu && !MULTICAST(daddr) && daddr!=0xFFFFFFFF && daddr!=dev->pa_brdaddr) { @@ -708,7 +709,7 @@ getfrag(frag,saddr,((char *)iph)+iph->ihl*4,0, length-iph->ihl*4); } else - getfrag(frag,saddr,(void *)iph,0,length-20); + getfrag(frag,saddr,(void *)iph,0,length); dev_unlock_list(); #ifdef CONFIG_FIREWALL if(call_out_firewall(PF_INET, skb->dev, iph)< FW_ACCEPT)