diff -u --recursive --new-file v1.3.86/linux/CHANGES linux/CHANGES --- v1.3.86/linux/CHANGES Tue Aug 9 09:32:59 1994 +++ linux/CHANGES Thu Jan 1 02:00:00 1970 @@ -1,143 +0,0 @@ -CHANGES since 0.99 patchlevel 15: - - - removed all the bugs, of course. - - networking fixes. - - more changes than I really wanted.. - -CHANGES since 0.99 patchlevel 14: - - - too many to count, really. Besides, I've lost my notes. - -CHANGES since 0.99 patchlevel 13: - - - new kernel source layout: drivers separated - - lots of networking bugs fixed, and new network card drivers (Alan Cox, - Donald Becker &co) - - sound driver added to the default source distribution (Hannu - Savolainen) - - updated SCSI driver code (Eric Youngdale, Drew Eckhardt &co) - - readonly OS/2 filesystem support (HPFS) added (Chris Smith) - - NTP support (Philip Gladstone, Torsten Duwe, ??) - - fixed 16MB swap-area limit - - lots of minor cleanups, bugfixes etc. - -CHANGES since 0.99 patchlevel 12 and earlier: - - - the bad memory management one-liner bug in pl12 is naturally fixed. - - compiled with plain C by default instead of C++ - - ELF binary support (Eric Youngdale) - - Quickport mouse support (and some changes to the PS/2 mouse driver) - by Johan Myreen and co) - - core file name change ("core" -> "core.xxxx" where xxxx is the name - of the program that dumped code). Idea from ???. Also, core-files - now correctly truncate any existing core file before being written. - - some mmap() fixes: better error returns, and handling of non-fixed - maps for /dev/mem etc. - - one kludgy way to fix the wrong arp packets that have plagued net-2d - (resulting in arp packets that had the first four bytes of the - ethernet address as the IP address). - - I fixed the mount-point handling of 'rename()' and 'unlink()/rmdir()' - so that they should now work and/or give appropriate error messages. - An early version of this patch was already sent to the KERNEL - channel, which fixed the rename problem but not a similar bug with - unlink. - - packet mode fixes by Charles Hedrick. Sadly, these are likely to - break old telnet/rlogin binaries, but it had to be done in order to - communicate correctly with the rest of the world. - - FPU emulator patches from Bill Metzenthen. The fprem1 insn should be - correct now (not that anybody seems to have seen the incorrect - behaviour..) - - a few fixes for SCSI (Drew and Eric) - - signal.c changes to handle multiple segments (for Wine) correctly. - - updated drivers from Donald Becker: 3c509 and AT1500 drivers, but - also some other drivers have been edited, and some networking fixes. - -CHANGES since 0.99 patchlevel 11 and earlier: - - - The memory manager cleanup has continued, and seems to be mostly - ready, as proven by the ease of adding mmap() over NFS with the new - routines. So yes, the pl12 kernel will demand-load your binaries - over NFS, sharing code and clean data, as well as running shared - libraries over NFS. Memory management by Eric and me, while the NFS - mmap code was written by Jon Tombs, - - - ** IMPORTANT **: The keyboard driver has been enhanced even further, - and almost everything is completely re-mappable. This means that - there is a new version of 'loadkeys' and 'dumpkeys' that you must use - with this kernel or you'll have problems. The default keyboard is - still the US mapping, but if you want to create your own mappings - you'll have to load them with the new binaries. Get the 'kbd.tar.gz' - archive from the same place you get the kernel. - - The new keymappings allow things like function key string changes, - remapping of the control keys, and freedom to remap any of the normal - keyboard functions: including special features like rebooting, - console switching etc. The keyboard remapping code has been done - mostly by Risto Kankkunen (Risto.Kankkunen@Helsinki.FI). - - - updated network drivers by Donald Becker - - - updated serial drivers - tytso@Athena.mit.edu - - - updated 387 emulation (Bill Metzenthen). The updated emulator code - has more exact trigonometric functions and improved exception - handling. It now behaves very much like a real 486, with only small - changes (greater accuracy, slightly different denormal NaN handling - etc - hard to detect the differences even if you are looking for - them). - - - network timer fixes by Florian La Roche (much cleaned up net/inet/timer.c - and some bad race-conditions fixed). - - - Scsi code updates by Eric Youngdale and others - - - Sony CDU-31A CDROM driver by Corey Minyard added to the standard - kernel distribution. - - - The Mitsumi CDROM driver is now part of the standard kernel. Driver - by Martin Harriss with patches by stud11@cc4.kuleuven.ac.be (yes, he - probably has a real name, but no, I haven't found it) and Jon Tombs. - - - various other minor patches (preliminary ldt support etc) - -NOTABLE changes since patchlevel 10 or earlier: - - - The memory manager has been cleaned up substantially, and mmap() - works for MAP_PRIVATE. MAP_SHARED is still not supported for - anything else than /dev/mem, but even so it actually is usable for a - lot of applications. The shared library routines have been rewritten - to use mmap() instead of the old hardcoded behaviour. - - - The kernel is now compiled with C++ instead of plain C. Very few - actual C++ features are used, but even so C++ allows for more - type-checking and type-safe linkage. - - - The filesystem routines have been cleaned up for multiple block - sizes. None of the filesystems use it yet, but people are working on - it. - - - named pipes and normal pipes should hopefully have the right select() - semantics in the presence/absence of writers. - - - QIC-02 tape driver by Hennus Bergman - - - selection patches in the default kernel - - - fixed a bug in the pty code which led to busy waiting in some - circumstances instead of sleeping. - - - Compressed SLIP support (Charles Hedrick). See net/inet/CONFIG - - - the 'clear_bit()' function was changed to return the previous setting - of the bit instead of the old "error-code". This makes use of the - bit operations more logical. - - - udelay() function for short delays (busy-waiting) added. Used - currently only by the QIC driver. - - - fork() and scheduler changes to make task switches happen only from - kernel mode to kernel mode. Cleaner and more portable than the old - code which counted on being able to task-switch directly into user - mode. - - - debugging malloc code. diff -u --recursive --new-file v1.3.86/linux/CREDITS linux/CREDITS --- v1.3.86/linux/CREDITS Mon Apr 8 19:01:40 1996 +++ linux/CREDITS Fri Apr 12 09:49:28 1996 @@ -939,7 +939,7 @@ N: Bernhard Kaindl E: bartelt@computerhaus.at D: Author of a menu based configuration tool, kmenu, which -D: is the precedessor of 'make menuconfig' and 'make xconfig'. +D: is the predecessor of 'make menuconfig' and 'make xconfig'. S: Tallak 95 S: 8103 Rein S: Austria diff -u --recursive --new-file v1.3.86/linux/Documentation/BUG-HUNTING linux/Documentation/BUG-HUNTING --- v1.3.86/linux/Documentation/BUG-HUNTING Sun Mar 10 09:28:55 1996 +++ linux/Documentation/BUG-HUNTING Fri Apr 12 09:49:28 1996 @@ -5,7 +5,7 @@ You need: - . A reproducable bug - it has to happen predictably (sorry) + . A reproducible bug - it has to happen predictably (sorry) . All the kernel tar files from a revision that worked to the revision that doesn't diff -u --recursive --new-file v1.3.86/linux/Documentation/Changes linux/Documentation/Changes --- v1.3.86/linux/Documentation/Changes Thu Jan 1 02:00:00 1970 +++ linux/Documentation/Changes Fri Apr 12 09:59:04 1996 @@ -0,0 +1,300 @@ + +LINUX_UPTODATE - "Keep your Linux system up to date". + +For comments, fixed, etc write to +Alessandro Sigala + +Last updated: 11 Apr 1996. + +This short document describe what you need and where to get +most of the new stuff for your Linux box (intended for systems that have +already upgraded to ELF binaries). + +The ftp site mainly used in this document is sunsite.unc.edu. + +The current releases of the linux software are: +Linux Kernel 1.3.xx :-) +Kernel modules 1.3.57 +PPP daemon 2.2.0e +Binutils 2.6.0.12 +Dynamic linker (ld.so) 1.7.14 +Linux C Library 5.3.9 +Linux C++ Library 2.7.1.4 +Termcap 2.0.7 +GNU CC 2.7.2 +Procps 0.99a + +What do you really need to upgrade for using the latest 1.3.x kernel: +- Modules 1.3.57 for using the kernel modules +- Procps 0.99a for using free, ps, pstree, top and friends +- PPP 2.2.0e for using pppd, pppstats, pppon, etc + +This document may also be useful to answer the questions like: + +* Q: 'free' displays some strange lines + A: upgrade the procps package + +* Q: 'pppd' displays "the PPP protocol is not available" + A: upgrade the PPP package + +... and so :) + +---------------------------------------------------------------------------- + +** NOTES + +- Take a look at the documentation that come with every package + before doing anything! + +- All the installation operation must be done as root. + +- If you want to use the latest GCC release (2.7.2) you must upgrade + your C Library, the C++ Library, the dynamic linker and the binutils. + +- After installed any new library, run the program `ldconfig' to update + the dynamic linker cache (you may also need to modify the file + /etc/ld.so.conf). + +---------------------------------------------------------------------------- + +* The dynamic linker. + +Get the file ld.so-1.7.14.tar.gz and unpack into a directory. You should +have no problem installing this package, simply cd into the package +directory and type `make install'. + +---------------------------------------------------------------------------- + +* The Linux C Library. + +*** NOTE: read the release.libc-5.3.9 file before installing the + libraries! + +Get the libc-5.3.9.bin.tar.gz file and unpack into the root directory + +i.e. into the root directory type: + + tar xvfz libc-5.3.9.bin.tar.gz + +you also need to make the symbolic links to the new library into the /lib +directory + +i.e. into the /lib directory type: + + rm -f libc.so.5 + sln libc.so.5.3.9 libc.so.5 + rm -f libm.so.5 + sln libm.so.5.0.5 libm.so.5 + +*** Note 1: + + + +The structure DIR, defined in sysdeps/linux/dirstream.h, was changed in +release 5.2.0. If you upgrade from release 5.1.4 or earlier to release +5.2.0 or later, you must reboot after installing the new libraries. + +*** Note 2: + +You must patch and recompile your GNU 'make' utility! + + + +A dirent bug, which erroneously defined d->reclen to d->namlen if USE_GNU +was defined, has been fixed. Unfortunately, some GNU packages depend on +this bug. GNU make 3.xx is one of them. A patch is included here. + +here the patch: +RCS file: /home/cvs/gnu/make/dir.c,v +retrieving revision 1.1.1.1 +diff -c -r1.1.1.1 dir.c +*** 1.1.1.1 1995/06/25 03:27:16 +--- dir.c 1995/06/25 03:55:22 +*************** +*** 20,26 **** + + #if defined (POSIX) || defined (HAVE_DIRENT_H) || defined (__GNU_LIBRARY__) + #include +! #ifndef __GNU_LIBRARY__ + #define D_NAMLEN(d) strlen((d)->d_name) + #else /* GNU C library. */ + #define D_NAMLEN(d) ((d)->d_namlen) +--- 20,26 ---- + + #if defined (POSIX) || defined (HAVE_DIRENT_H) || defined (__GNU_LIBRARY__) + #include +! #ifndef __BAD_GNU_LIBRARY__ + #define D_NAMLEN(d) strlen((d)->d_name) + #else /* GNU C library. */ + #define D_NAMLEN(d) ((d)->d_namlen) +=================================================================== +RCS file: /home/cvs/gnu/make/glob/glob.c,v +retrieving revision 1.1.1.1 +diff -c -r1.1.1.1 glob.c +*** 1.1.1.1 1995/06/25 03:27:18 +--- glob/glob.c 1995/06/25 03:56:01 +*************** +*** 64,70 **** + + #if defined (POSIX) || defined (HAVE_DIRENT_H) || defined (__GNU_LIBRARY__) + #include +! #ifndef __GNU_LIBRARY__ + #define D_NAMLEN(d) strlen((d)->d_name) + #else /* GNU C library. */ + #define D_NAMLEN(d) ((d)->d_namlen) +--- 64,70 ---- + + #if defined (POSIX) || defined (HAVE_DIRENT_H) || defined (__GNU_LIBRARY__) + #include +! #ifndef __BAD_GNU_LIBRARY__ + #define D_NAMLEN(d) strlen((d)->d_name) + #else /* GNU C library. */ + #define D_NAMLEN(d) ((d)->d_namlen) + +---------------------------------------------------------------------------- + +* The Linux C++ Library. + +*** NOTE: read the release.libg++-2.7.1.4 file before installing the + libraries! + +Get the libg++-2.7.1.4.bin.tar.gz file and unpack into the root directory + +i.e. into the root directory type: + + tar xvfz libg++-2.7.1.4.bin.tar.gz + +*** NOTE: + +You may have troubles with the binaries linked with the old 2.6 libraries +(for example: umssync), dumping core or doing strange stuff. +To resolve the problems you need to recompile the sources of the binaries. + +---------------------------------------------------------------------------- + +* The binutils. + +*** NOTE: read the release.binutils-2.6.0.12 file before installing the + libraries! + +Get the binutils-2.6.0.12.bin.tar.gz file and unpack it into the root +directory + +i.e. into the root directory type: + + tar xvfz binutils-2.6.0.12.bin.tar.gz + +*** NOTE: + + + +If you don't need the cross assemblers/linkers for m68k-linux, +m68k-linuxaout, sparc-sun-solaris2, sparc-sun-sunos4.1 nor alpha-linux, +please do + +1. su root +2. cd /usr +3. rm -rf m68k-linux m68k-linuxaout sparc-sun-solaris2 sparc-sun-sunos4.1 alpha-linux + +---------------------------------------------------------------------------- + +* The GNU CC compiler. + +** NOTE: read the release.gcc-2.7.2 file before installing the package! + +Get the gcc-2.7.2.bin.tar.gz file and unpack it into the root +directory + +i.e. into the root directory type: + + tar xvfz gcc-2.7.2.bin.tar.gz + +You may want to remove the old compiler. Simply cd into the +/usr/lib/gcc-lib/i486-linux and remove the old compiler directory tree. + +---------------------------------------------------------------------------- + +* The termcap library. + +*** NOTE: read first the documentation that come with the package! + +Get the file termcap-2.0.7.tar.gz and unpack into a directory. You should +have no problem installing this package, simply cd into the package +directory and type `make' then `make install'. + +*** NOTE: + + + +The linux entry in the new termcap is larger than 1024 chars. +But your application may only have a 1024 byte buffer. You may see + +tgetent: warning: termcap entry too long + +message when you run it in the Linux console. You can pass NULL to +tgetent () to let termcap malloc the buffer. elm and zsh are two +applications I know which use termcap and have this problem. + +---------------------------------------------------------------------------- + +* The kernel modudes utilities. + +*** NOTE: read first the documentation that come with the package! + +Get the file modules-1.3.57.tar.gz and unpack into a directory. You should +have no problem installing this package, simply cd into the package +directory and type `make' then `make install'. + +---------------------------------------------------------------------------- + +* The PPP daemon utilities. + +*** NOTE: read first the documentation that come with the package! + +Get the file ppp-2.2.0e.tar.gz and unpack into a directory. You should +have no problem installing this package, simply cd into the package +directory and type `make' then `make install'. + +---------------------------------------------------------------------------- + +* The procps utilities. + +*** NOTE: read first the documentation that come with the package! + +Get the file procps-0.99a.tar.gz and unpack into a directory. You should +have no problem installing this package, simply cd into the package +directory and type `make' then `make install'. + +---------------------------------------------------------------------------- + +This is where you can find all that is described in this document. + +### sunsite.unc.edu:/pub/Linux/GCC + +binutils-2.6.0.12.bin.tar.gz Binutils 2.6.0.12 (as,ld etc) +gcc-2.7.2.bin.tar.gz GNU CC 2.7.2 (ELF and a.out) +ld.so-1.7.14.tar.gz The dynamic linker +libc-5.3.9.bin.tar.gz The C library +libg++-2.7.1.4.bin.tar.gz The C++ library +termcap-2.0.7.tar.gz Termcap 2.0.7 +release.binutils-2.6.0.12 +release.gcc-2.7.2 +release.libc-5.3.9 info (contains the patch for 'make') +release.libg++-2.7.1.4 + +### sunsite.unc.edu:/pub/Linux/kernel + +modules-1.3.57.tar.gz Utils the kernel modules + +### sunsite.unc.edu:/pub/Linux/system/Network/serial + +ppp-2.2.0e.tar.gz The pppd daemon and utils for PPP + +### sunsite.unc.edu:/pub/Linux/system/Status/ps + +procps-0.99a.tgz ps, pstree, free, etc + +---------------------------------------------------------------------------- + +For comments, fixed, etc write to +Alessandro Sigala diff -u --recursive --new-file v1.3.86/linux/Documentation/Configure.help linux/Documentation/Configure.help --- v1.3.86/linux/Documentation/Configure.help Wed Apr 10 17:02:23 1996 +++ linux/Documentation/Configure.help Fri Apr 12 09:49:29 1996 @@ -314,7 +314,7 @@ have access to a machine on the Internet that has one of the programs lynx, netscape or Mosaic). -Support for Olivetty M700 +Support for Olivetti M700 CONFIG_OLIVETTI_M700 This is a machine with a R4000 100 MHz CPU. To compile a Linux kernel that runs on these, say Y here. For details about Linux @@ -504,7 +504,7 @@ PCI bridge optimization (experimental) CONFIG_PCI_OPTIMIZE This can improve access times for some hardware devices under - certain BIOSes if your computer uses a PCI bussystem. This is + certain BIOSes if your computer uses a PCI bus system. This is recommended; say Y. Intel 430FX (Triton) chipset DMA support @@ -1865,7 +1865,7 @@ Other ISA cards CONFIG_NET_ISA If your network (ethernet) card hasn't been mentioned yet and its - bussystem (that's the way the components of the card talk to each + bus system (that's the way the components of the card talk to each other) is ISA (as opposed to EISA, VLB or PCI), say Y. Make sure you know the name of your card. Read the Ethernet-HOWTO, available via ftp (user: anonymous) in sunsite.unc.edu:/pub/Linux/docs/HOWTO. If @@ -3131,7 +3131,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 bussystem IPC SYSVIPC ipc Ctrl +# LocalWords: ISA EISA Microchannel VESA BIOSes IPC SYSVIPC ipc Ctrl # 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 @@ -3173,7 +3173,7 @@ # 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 Olivetty DECStation AXP +# LocalWords: TravelMate CDT LCD backlight VC RPC Mips DECStation AXP # 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 diff -u --recursive --new-file v1.3.86/linux/Documentation/SMP.txt linux/Documentation/SMP.txt --- v1.3.86/linux/Documentation/SMP.txt Tue Dec 26 06:03:00 1995 +++ linux/Documentation/SMP.txt Fri Apr 12 09:49:29 1996 @@ -11,7 +11,7 @@ o Fix scheduler decisions to reschedule. Per cpu reschedule ? o Clean up message pass. o Test for B stepping processors. -o Clean up processor specific/independant split. +o Clean up processor specific/independent split. o Document it all. [PARTLY DONE] o Halt other CPU's on reset/panic doesn't always work. o Dont waste page at 4K - dont need it now.(watch the GDT code). diff -u --recursive --new-file v1.3.86/linux/Documentation/cdrom/aztcd linux/Documentation/cdrom/aztcd --- v1.3.86/linux/Documentation/cdrom/aztcd Tue Apr 2 13:32:18 1996 +++ linux/Documentation/cdrom/aztcd Fri Apr 12 09:49:29 1996 @@ -58,7 +58,7 @@ in directory /dev. To mount a CD-ROM, your kernel needs to have the ISO9660- filesystem support included. -PLEASE NOTE: aztcd.c has been developped in parallel to the linux kernel, +PLEASE NOTE: aztcd.c has been developed in parallel to the linux kernel, which had and is having many major and minor changes which are not backward compatible. Quite definitely aztcd.c version 1.80 and newer will NOT work in kernels older than 1.3.33. So please always use the most recent version @@ -110,7 +110,7 @@ Users of other drives should read chapter OTHER DRIVES of this file. You also can configure that address by kernel boot parameter aztcd=... - There are some other points, which may be configured, e.g. auto-eject the - CD when umounting a drive, tray locking etc., see aztcd.h for details. + CD when unmounting a drive, tray locking etc., see aztcd.h for details. - Build a new kernel, configure it for 'Aztech/Orchid/Okano/Wearnes support' (if you want aztcd to be part of the kernel). Do not configure it for 'Aztech... support', if you want to use aztcd as a run time loadable module. @@ -176,7 +176,7 @@ Linux. Support for the CDROM-interface of SoundWave32-soundcards is directly implemented in the AZTECH driver. Please edit /usr/src/linux/include/aztdc.h, -uncomment line '#define AZT_SW32' and set the appropiate value for +uncomment line '#define AZT_SW32' and set the appropriate value for AZT_BASE_ADDR and AZT_SW32_BASE_ADDR. This support was tested with an Orchid CDS-3110 connected to a SoundWave32. If you want your soundcard to be supported, find out, how it needs to be diff -u --recursive --new-file v1.3.86/linux/Documentation/cdrom/cdu31a linux/Documentation/cdrom/cdu31a --- v1.3.86/linux/Documentation/cdrom/cdu31a Sat Oct 28 17:26:24 1995 +++ linux/Documentation/cdrom/cdu31a Fri Apr 12 09:49:29 1996 @@ -120,7 +120,7 @@ cdu31a=,[,PAS] The base address needs to have "0x" in front of it, since it is in -hex. For instanc, to configure a drive at address 320 on interrupt 5, +hex. For instance, to configure a drive at address 320 on interrupt 5, use the following: cdu31a=0x320,5 diff -u --recursive --new-file v1.3.86/linux/Documentation/cdrom/cm206 linux/Documentation/cdrom/cm206 --- v1.3.86/linux/Documentation/cdrom/cm206 Wed Jul 19 10:15:42 1995 +++ linux/Documentation/cdrom/cm206 Fri Apr 12 09:49:29 1996 @@ -12,11 +12,11 @@ Features as of version 0.28 --------------------------- -- Full speed stransfer rate (300 kB/s). +- Full speed transfer rate (300 kB/s). - Minimum kernel memory usage for buffering (less than 3 kB). - Multisession support. - Tray locking. -- Statistcics of driver accessible to the user. +- Statistics of driver accessible to the user. - Module support. - Auto-probing of adapter card's base port and irq line, also configurable at boot time or module load time. diff -u --recursive --new-file v1.3.86/linux/Documentation/cdrom/isp16 linux/Documentation/cdrom/isp16 --- v1.3.86/linux/Documentation/cdrom/isp16 Tue Feb 13 10:30:24 1996 +++ linux/Documentation/cdrom/isp16 Fri Apr 12 09:49:29 1996 @@ -9,7 +9,7 @@ in both the sjcd and optcd cdrom driver. Drives supported by these drivers came packed with Media Magic's multi media kit, which also included the ISP16 card. The idea (thanks Leo Spiekman) -to move it from thes drivers into a separate module and moreover, not to +to move it from these drivers into a separate module and moreover, not to rely on the MAD16 sound driver, are as follows: -duplication of code in the kernel is a waste of resources and should be avoided; @@ -24,7 +24,7 @@ OPTi 82C929 chip. The interface on these cards should work with any cdrom attached to the card, which is 'electrically' compatible with Sanyo/Panasonic, Sony or Mitsumi non-ide drives. However, the -command sets for any propriatary drives may differ +command sets for any proprietary drives may differ (and hence may not be supported in the kernel) from these four types. For a fact I know the interface works and the way of configuration as described in this documentation works in combination with the @@ -46,7 +46,7 @@ of some command line options on the 'LILO boot:' prompt. At boot time press Alt or Shift while the LILO prompt is written on the screen and enter any kernel options. Alternatively these options may be used in -the apropriate section in /etc/lilo.conf. Adding 'append=""' +the appropriate section in /etc/lilo.conf. Adding 'append=""' will do the trick as well. The syntax of 'cmd_line_options' is @@ -68,7 +68,7 @@ the drive will be used in 'polling' mode. The values 5 and 7 for irq should be avoided in order to avoid any conflicts with optional sound card configuration. -The syntax of the command line does not allow the specifiaction of +The syntax of the command line does not allow the specification of irq when there's nothing specified for the base address and no specification of dma when there is no specification of irq. The value 'nosip16' for drive_type, which may be used as the first diff -u --recursive --new-file v1.3.86/linux/Documentation/cdrom/sjcd linux/Documentation/cdrom/sjcd --- v1.3.86/linux/Documentation/cdrom/sjcd Tue Feb 13 10:30:24 1996 +++ linux/Documentation/cdrom/sjcd Fri Apr 12 09:49:29 1996 @@ -10,13 +10,13 @@ This file is meant as a tips & tricks edge for the usage of the SANYO CDR-H94A cdrom drive. It will grow as the questions arise. ;-) -For info on configuring the ISP16 sound card look at Documetation/cdrom/isp16. +For info on configuring the ISP16 sound card look at Documentation/cdrom/isp16. -The driver should work with any of the Panasonic, Sony or Mitsum style +The driver should work with any of the Panasonic, Sony or Mitsumi style CDROM interface. The cdrom interface on Media Magic's soft configurable sound card ISP16, which used to be included in the driver, is now supported in a separate module. -This initilisation module will probably also work with other interfaces +This initialisation module will probably also work with other interfaces based on an OPTi 82C928 or 82C929 chip (like MAD16 and Mozart): see the documentation Documentation/cdrom/isp16. @@ -31,7 +31,7 @@ base address 0x340 no irq no dma -(Acctulay the CDR-H94A doesn't know how to use irq and dma.) +(Actually the CDR-H94A doesn't know how to use irq and dma.) As of version 1.2, setting base address at boot time is supported through the use of command line options: type at the "boot:" prompt: linux sjcd= @@ -41,7 +41,7 @@ If you're building a kernel yourself you can set your default base i/o address with SJCD_BASE_ADDR in include/linux/sjcd.h. -The sjcd driver supports beng loaded as a module. The following +The sjcd driver supports being loaded as a module. The following command will set the base i/o address on the fly (assuming you have installed the module in an appropriate place). insmod sjcd.o sjcd_base= diff -u --recursive --new-file v1.3.86/linux/Documentation/devices.tex linux/Documentation/devices.tex --- v1.3.86/linux/Documentation/devices.tex Tue Apr 2 13:32:18 1996 +++ linux/Documentation/devices.tex Fri Apr 12 09:49:29 1996 @@ -42,7 +42,7 @@ % \title{{\bf Linux Allocated Devices}} \author{Maintained by H. Peter Anvin $<$hpa@zytor.com$>$} -\date{Last revised: April 1, 1996} +\date{Last revised: April 10, 1996} \maketitle % \noindent @@ -149,7 +149,9 @@ \major{37}{}{char }{IDE tape} \major{ }{}{block}{Zorro II ramdisk} \major{38}{}{char }{Myricom PCI Myrinet board} +\major{ }{}{block}{Reserved for Linux/AP+} \major{39}{}{char }{ML-16P experimental I/O board} +\major{ }{}{block}{Reserved for Linux/AP+} \major{40}{}{char }{Matrox Meteor frame grabber} \major{41}{}{char }{Yet Another Micro Monitor} \major{42}{}{}{Demo/sample use} @@ -158,13 +160,11 @@ \major{45}{}{char }{isdn4linux ISDN BRI driver} \major{46}{}{char }{Comtrol Rocketport serial card} \major{47}{}{char }{Comtrol Rocketport serial card -- alternate devices} -\major{48}{}{char }{Matter replicator} -\major{49}{--59}{}{Unallocated} +\major{48}{--59}{}{Unallocated} \major{60}{--63}{}{Local/experimental use} \major{64}{--119}{}{Unallocated} \major{120}{--127}{}{Local/experimental use} -\major{128}{--223}{}{Unallocated} -\major{224}{--239}{}{SEE NOTE} +\major{128}{--239}{}{Unallocated} \major{240}{--254}{}{Local/experimental use} \major{255}{}{}{Reserved} \end{devicelist} @@ -193,10 +193,12 @@ \minor{0}{/dev/ram0}{First RAM disk} \minordots \minor{7}{/dev/ram7}{Eighth RAM disk} + \minor{250}{/dev/initrd}{Initial RAM disk} \end{devicelist} \noindent -Earlier kernels had /dev/ramdisk (1, 1) here. +Earlier kernels had {\file /dev/ramdisk} (1, 1) here. {\file /dev/initrd} +refers to a RAM disk which was preloaded by the boot loader. \begin{devicelist} \major{2}{}{char}{Pseudo-TTY masters} @@ -406,19 +408,21 @@ \minor{4}{/dev/amigamouse}{Amiga mouse (68k/Amiga)} \minor{5}{/dev/atarimouse}{Atari mouse} \minor{6}{/dev/sunmouse}{Sun mouse} + \minor{7}{/dev/amigamouse1}{Second Amiga mouse} \minor{128}{/dev/beep}{Fancy beep device} \minor{129}{/dev/modreq}{Kernel module load request} \minor{130}{/dev/watchdog}{Watchdog timer port} \minor{131}{/dev/temperature}{Machine internal temperature} \minor{132}{/dev/hwtrap}{Hardware fault trap} \minor{133}{/dev/exttrp}{External device trap} - \minor{134}{/dev/apm_bios}{Advanced Power Management BIOS} + \minor{134}{/dev/apm\_bios}{Advanced Power Management BIOS} + \minor{135}{/dev/rtc}{Real Time Clock} \end{devicelist} \noindent The loopback devices are used to mount filesystems not associated with block devices. The binding to the loopback devices is usually handled -by mount(8). +by {\bf mount}(8). \begin{devicelist} \major{11}{}{char }{Raw keyboard device} @@ -509,8 +513,12 @@ \begin{devicelist} \major{15}{}{char }{Joystick} - \minor{0}{/dev/js0}{First joystick} - \minor{1}{/dev/js1}{Second joystick} + \minor{0}{/dev/js0}{First analog joystick} + \minor{1}{/dev/js1}{Second analog joystick} + \minordots + \minor{128}{/dev/djs0}{First digital joystick} + \minor{129}{/dev/djs1}{Second digital joystick} + \minordots \\ \major{ }{}{block}{Sony CDU-31A/CDU-33A CD-ROM} \minor{0}{/dev/sonycd}{Sony CDU-31A CD-ROM} @@ -900,6 +908,10 @@ networking device. \begin{devicelist} +\major{ }{}{block}{Reserved for Linux/AP+} +\end{devicelist} + +\begin{devicelist} \major{39}{}{char }{ML-16P experimental I/O board} \minor{0}{/dev/ml16pa-a0}{First card, first analog channel} \minor{1}{/dev/ml16pa-a1}{First card, second analog channel} @@ -918,6 +930,8 @@ \minor{50}{/dev/ml16pb-c1}{Second card, second counter/timer} \minor{51}{/dev/ml16pb-c2}{Second card, third counter/timer} \minordots +\\ +\major{ }{}{block}{Reserved for Linux/AP+} \end{devicelist} \begin{devicelist} @@ -935,7 +949,7 @@ \end{devicelist} \noindent -This number is indended for use in sample code, as well as a general +This number is intended for use in sample code, as well as a general ``example'' device number. It should never be used for a device driver that is being distributed; either obtain an official number or use the local/experimental range. The sudden addition or removal of a @@ -982,15 +996,7 @@ \end{devicelist} \begin{devicelist} -\major{48}{}{char }{Matter replicator} - \minor{0}{/dev/replicator}{Matter replicator} -\end{devicelist} - -\noindent -See RFC 1437 for the data format accepted by this device. - -\begin{devicelist} -\major{49}{--59}{}{Unallocated} +\major{48}{--59}{}{Unallocated} \end{devicelist} \begin{devicelist} @@ -1010,17 +1016,9 @@ \end{devicelist} \begin{devicelist} -\major{128}{--223}{}{Unallocated} -\end{devicelist} - -\begin{devicelist} -\major{224}{--239}{}{SEE NOTE} +\major{128}{--239}{}{Unallocated} \end{devicelist} -\noindent -This range is no longer a local/experimental range, since the feedback -I received was all in favour of realignment. - \begin{devicelist} \major{240}{--254}{}{Local/experimental use} \end{devicelist} @@ -1060,7 +1058,7 @@ \begin{nodelist} \link{/dev/core}{/proc/kcore}{symbolic}{Backward compatibility} -\link{/dev/ramdisk}{ram1}{symbolic}{Backward compatibility} +\link{/dev/ramdisk}{ram0}{symbolic}{Backward compatibility} \link{/dev/scd?}{sr?}{hard}{Alternate name for CD-ROMs} %\link{/dev/fd?H*}{fd?D*}{hard}{Compatible floppy formats} %\link{/dev/fd?E*}{fd?D*}{hard}{Compatible floppy formats} diff -u --recursive --new-file v1.3.86/linux/Documentation/devices.txt linux/Documentation/devices.txt --- v1.3.86/linux/Documentation/devices.txt Tue Apr 2 13:32:18 1996 +++ linux/Documentation/devices.txt Fri Apr 12 09:49:29 1996 @@ -2,14 +2,14 @@ Maintained by H. Peter Anvin - Last revised: April 1, 1996 + Last revised: April 10, 1996 This list is the successor to Rick Miller's Linux Device List, which he stopped maintaining when he got busy with other things in 1993. It 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. @@ -48,14 +48,17 @@ 0 = /dev/ram0 First RAM disk ... 7 = /dev/ram7 Eighth RAM disk + 250 = /dev/initrd Initial RAM disk Older kernels had /dev/ramdisk (1, 1) here. + /dev/initrd refers to a RAM disk which was preloaded + by the boot loader. 2 char Pseudo-TTY masters 0 = /dev/ptyp0 First PTY master 1 = /dev/ptyp1 Second PTY master ... - 256 = /dev/ptyef 256th PTY master + 255 = /dev/ptyef 256th PTY master Pseudo-tty's are named as follows: * Masters are "pty", slaves are "tty"; @@ -109,7 +112,7 @@ (2) Autodetectable format in a Double Density (720K) drive only (3) Autodetectable format in a High Density (1440K) drive only - NOTE: THe letter in the device name (d, q, h or u) + NOTE: The letter in the device name (d, q, h or u) signifies the type of drive: 5.25" Double Density (d), 5.25" Quad Density (q), 5.25" High Density (h) or 3.5" (any model, u). The use of the capital letters D, H @@ -231,6 +234,7 @@ 4 = /dev/amigamouse Amiga mouse (68k/Amiga) 5 = /dev/atarimouse Atari mouse 6 = /dev/sunmouse Sun mouse + 7 = /dev/amigamouse1 Second Amiga mouse 128 = /dev/beep Fancy beep device 129 = /dev/modreq Kernel module load request 130 = /dev/watchdog Watchdog timer port @@ -238,6 +242,7 @@ 132 = /dev/hwtrap Hardware fault trap 133 = /dev/exttrp External device trap 134 = /dev/apm_bios Advanced Power Management BIOS + 135 = /dev/rtc Real Time Clock 11 char Raw keyboard device 0 = /dev/kbd Raw keyboard device @@ -308,8 +313,12 @@ (see major number 3). 15 char Joystick - 0 = /dev/js0 First joystick - 1 = /dev/js1 Second joystick + 0 = /dev/js0 First analog joystick + 1 = /dev/js1 Second analog joystick + ... + 128 = /dev/djs0 First digital joystick + 129 = /dev/djs1 Second digital joystick + ... block Sony CDU-31A/CDU-33A CD-ROM 0 = /dev/sonycd Sony CDU-31a CD-ROM @@ -468,7 +477,7 @@ ... 63 = /dev/fb1user7 - The universal frame buffer device is currenly only + The universal frame buffer device is currently only supported on Linux/68k and Linux/SPARC. The plain device accesses the frame buffer at current resolution (Linux/68k calls this device "current", @@ -627,16 +636,18 @@ 50 = /dev/ml16pb-c1 Second card, second counter/timer 51 = /dev/ml16pb-c2 Second card, third counter/timer ... + block Reserved for Linux/AP+ - 40 Matrox Meteor frame grabber + 40 char Matrox Meteor frame grabber 0 = /dev/mmetfgrab Matrox Meteor frame grabber + block Reserved for Linux/AP+ - 41 Yet Another Micro Monitor + 41 char Yet Another Micro Monitor 0 = /dev/yamm Yet Another Micro Monitor 42 Demo/sample use - This number is indended for use in sample code, as + This number is intended for use in sample code, as well as a general "example" device number. It should never be used for a device driver that is being distributed; either obtain an official number or use @@ -673,12 +684,7 @@ 1 = /dev/cur1 Callout device corresponding to ttyR1 ... - 48 char Matter replicator - 0 = /dev/replicator Matter replicator - - See RFC 1437 for the data format accepted by this device. - - 49-59 UNALLOCATED + 48-59 UNALLOCATED 60-63 LOCAL/EXPERIMENTAL USE Allocated for local/experimental use. For devices not @@ -689,12 +695,7 @@ 120-127 LOCAL/EXPERIMENTAL USE -128-223 UNALLOCATED - -224-239 SEE NOTE - This range is no longer allocated to - local/experimental use, since the feedback I received - was all in favour of realignment. +128-239 UNALLOCATED 240-254 LOCAL/EXPERIMENTAL USE @@ -730,7 +731,7 @@ It is recommended that these links exist on all systems: /dev/core /proc/kcore symbolic Backward compatibility -/dev/ramdisk ram1 symbolic Backward compatibility +/dev/ramdisk ram0 symbolic Backward compatibility /dev/scd? sr? hard Alternate SCSI CD-ROM name @@ -752,7 +753,7 @@ /dev/modem should not be used for a modem which supports dialin as well as dialout, as it tends to cause lock file problems. If it -exists, /dev/modem shold point to the appropriate dialout (alternate) +exists, /dev/modem should point to the appropriate dialout (alternate) device. For SCSI devices, /dev/tape and /dev/cdrom should point to the diff -u --recursive --new-file v1.3.86/linux/Documentation/digiboard.txt linux/Documentation/digiboard.txt --- v1.3.86/linux/Documentation/digiboard.txt Mon Apr 8 19:01:41 1996 +++ linux/Documentation/digiboard.txt Fri Apr 12 09:49:29 1996 @@ -14,7 +14,7 @@ Use them and you will not have to worry about configuring anything. -You can configure the driver via lilo. HAve look at the end of this +You can configure the driver via lilo. Have a look at the end of this message. The default settings vanish as soon as you give a digi= commandline. You can give multiple digi= commandline parameters to define multiple boards. @@ -87,7 +87,7 @@ Changes v1.5.5: The ability to use the kernel's command line to pass in the configuration for -boards. Using LILO's APPEND command, a string of comma seperated identifiers +boards. Using LILO's APPEND command, a string of comma separated identifiers or integers can be used. The 6 values in order are: Enable/Disable this card, diff -u --recursive --new-file v1.3.86/linux/Documentation/filesystems/smbfs.txt linux/Documentation/filesystems/smbfs.txt --- v1.3.86/linux/Documentation/filesystems/smbfs.txt Wed Apr 3 16:06:54 1996 +++ linux/Documentation/filesystems/smbfs.txt Fri Apr 12 09:49:29 1996 @@ -4,7 +4,7 @@ Andrew Tridgell that turns any unix host into a file server for DOS or Windows clients. See ftp://nimbus.anu.edu.au/pub/tridge/samba/ for this interesting program suite and lots of more information on SMB and -NetBIOS over TCP/IP. There you also find explanation for conceps like +NetBIOS over TCP/IP. There you also find explanation for concepts like netbios name or share. To use smbfs, you need a special mount program, which can be found in diff -u --recursive --new-file v1.3.86/linux/Documentation/filesystems/vfat.txt linux/Documentation/filesystems/vfat.txt --- v1.3.86/linux/Documentation/filesystems/vfat.txt Sat Mar 9 15:41:12 1996 +++ linux/Documentation/filesystems/vfat.txt Fri Apr 12 09:49:29 1996 @@ -72,7 +72,7 @@ This tests quite a few parts of the vfat filesystem and additional tests for new features or untested features would be appreciated. -NOTES ON THE STRUCTURE OF THE VFAT FILESYTEM +NOTES ON THE STRUCTURE OF THE VFAT FILESYSTEM ---------------------------------------------------------------------- (This documentation was provided by Galen C. Hunt and lightly annotated by Gordon Chaffee). @@ -196,7 +196,7 @@ character takes two bytes. -NOTES ON UNICODE TRANSLATION IN VFAT FILESYTEM +NOTES ON UNICODE TRANSLATION IN VFAT FILESYSTEM ---------------------------------------------------------------------- (Information provided by Steve Searle ) diff -u --recursive --new-file v1.3.86/linux/Documentation/initrd.txt linux/Documentation/initrd.txt --- v1.3.86/linux/Documentation/initrd.txt Sat Mar 9 13:31:44 1996 +++ linux/Documentation/initrd.txt Fri Apr 12 09:49:29 1996 @@ -259,7 +259,7 @@ Last not least, CDrom distributors may use it for better installation from CD, either using a LILO boot floppy and bootstrapping a bigger ramdisk via initrd from CD, or using LOADLIN to directly load the ramdisk from CD -without need of floppys. +without need of floppies. Since initrd is a fairly generic mechanism, it is likely that additional uses will be found. @@ -282,5 +282,5 @@ ftp://lrcftp.epfl.ch/pub/people/almesber/lilo/lilo.18dev3.tar.gz A very simple example for building an image for initrd, also including -the programm 'freeramdisk', can be found on +the program 'freeramdisk', can be found on ftp://elserv.ffm.fgan.de/pub/linux/loadlin-1.6/initrd-example.tgz diff -u --recursive --new-file v1.3.86/linux/Documentation/isdn/INTERFACE linux/Documentation/isdn/INTERFACE --- v1.3.86/linux/Documentation/isdn/INTERFACE Mon Feb 26 11:58:03 1996 +++ linux/Documentation/isdn/INTERFACE Fri Apr 12 09:49:29 1996 @@ -1,5 +1,5 @@ -Description of the Interface between Linklevel an Harwarelevel +Description of the Interface between Linklevel and Hardwarelevel of isdn4linux: @@ -10,7 +10,7 @@ register_isdn() with a pointer to that struct. Prior to that, it has to preset some of the fields of isdn_if. The LL sets the rest of the fields. All further communication is done via callbacks using - the funtion-pointers defined in isdn_if. + the function-pointers defined in isdn_if. ATTENTION, CHANGES since version 0.6 are marked with "***CHANGE0.6"! ATTENTION, CHANGES since version 0.7 are marked with "***CHANGE0.7"! @@ -114,7 +114,7 @@ int (*writebuf)(int, int, u_char*, int, int); - This field has to be preset by the HL-driver. The given funtion will + This field has to be preset by the HL-driver. The given function will be called by the LL for delivering data to be send via B-Channel. Parameter: @@ -150,7 +150,7 @@ oversized packets etc.) NOTE on writebuf and writebuf_skb: - The HL-driver may initialize one of the field's to NULL, in which case + The HL-driver may initialize one of the fields to NULL, in which case the LL will call the non-NULL function only. int (*writecmd)(u_char*, int, int); @@ -160,7 +160,7 @@ to the card) The data-format is hardware-specific. This function is intended for debugging only. It is not necessary for normal operation and never will be called by the tty-emulation- or network-code. If - this functin is not supported, the driver has to set NULL here. + this function is not supported, the driver has to set NULL here. Parameter: u_char* pointer to data. @@ -176,11 +176,11 @@ int (*readstat)(u_char*, int, int); This field has to be preset by the HL-driver. The given function will be - called to perform read-requests on /dev/isdnctrl (i.e. reading repies + called to perform read-requests on /dev/isdnctrl (i.e. reading replies from the card) The data-format is hardware-specific. This function is intended for debugging only. It is not necessary for normal operation and never will be called by the tty-emulation- or network-code. If - this functin is not supported, the driver has to set NULL here. + this function is not supported, the driver has to set NULL here. Parameter: u_char* pointer to data. @@ -201,16 +201,16 @@ status-info of /dev/isdninfo. Furthermore it is used as Id for binding net-interfaces to a specific channel. If a string of length zero is given, upon return, isdn4linux will replace it by a generic name. (line0, - line1 etc.) It is recommended, to make this string configurabele during + line1 etc.) It is recommended to make this string configurable during module-load-time. (copy a global variable to this string.) For doing that, modules 1.2.8 or newer are necessary. 2. Description of the commands, a HL-driver has to support: - All commands will be performed by calling the funtion command() described + All commands will be performed by calling the function command() described above from within the LL. The field command of the struct-parameter will contain the desired command, the field driver always is set to the - apropriate driver-Id. + appropriate driver-Id. Until now, the following commands are defined: @@ -218,10 +218,10 @@ ISDN_CMD_IOCTL: This command is intended for performing ioctl-calls for configuring - hardware or similar purposes (setting port-adresses, loading firmware + hardware or similar purposes (setting port-addresses, loading firmware etc.) For this purpose, in the LL all ioctl-calls with an argument >= ISDN_IOCTL_DRVIOCTL (0x100) will be handed transparently to this - function after substracting 0x100 and placing the result in arg. + function after subtracting 0x100 and placing the result in arg. Example: If a userlevel-program calls ioctl(0x101,...) the function gets called with the field command set to 1. @@ -313,7 +313,7 @@ num = ASCII-String, containing the desired EAZ's/MSN's (comma-separated). If an empty String is given, the HL-driver should respond to ALL incoming calls, - regardless of the destination-adress. + regardless of the destination-address. ***CHANGE0.6: New since this version the "empty-string"-feature. ISDN_CMD_GETEAZ: (currently unused) @@ -433,7 +433,7 @@ All status-changes are signaled via calling the previously described function statcallb(). The field command of the struct isdn_cmd has - to be set by the HL-driver with the apropriate Status-Id (event-number). + to be set by the HL-driver with the appropriate Status-Id (event-number). The field arg has to be set to the channel-number (locally to the driver, starting with 0) to which this event applies. (Exception: STAVAIL-event) @@ -487,7 +487,7 @@ ISDN_STAT_DCONN: - With this call, the HL-driver signals the successful establishement of + With this call, the HL-driver signals the successful establishment of a D-Channel-connection. (Response to ISDN_CMD_ACCEPTD or ISDN_CMD_DIAL) Parameter: @@ -498,9 +498,9 @@ ISDN_STAT_BCONN: - With this call, the HL-driver signals the successful establishement of + With this call, the HL-driver signals the successful establishment of a B-Channel-connection. (Response to ISDN_CMD_ACCEPTB or because the - remote-station has initiated establishement) + remote-station has initiated establishment) Parameter: driver = driver-Id diff -u --recursive --new-file v1.3.86/linux/Documentation/isdn/README linux/Documentation/isdn/README --- v1.3.86/linux/Documentation/isdn/README Mon Feb 26 11:58:03 1996 +++ linux/Documentation/isdn/README Fri Apr 12 09:49:29 1996 @@ -270,7 +270,7 @@ ATTENTION: Due to limited hardware-capabilities, there is no way to check the - existence of a card. Therefore you need to be shure your card's setup + existence of a card. Therefore you need to be sure your card's setup is correct. Also there are bugs in the printed manual of some newer 16.3 cards. The manual tells the port has to be 0x180. THIS IS WRONG!! 0xd80 is the correct value! Have a look to the kernel-syslog. With @@ -317,7 +317,7 @@ m0,i0,p0,d0 ... mn,in,pn,dn have the same meanings like the parameters described for the kernel- - version above. Watchout: different + version above. Watch out: different sequence! 3.2.2 ICN driver. @@ -369,8 +369,8 @@ the card must be appended to the command line. -> The two LEDs at the back cover of the card (ICN-2B: 4 LEDs) must be - blinking intermittingly now. If a connection is up, the corresponding - led lits continuously. + blinking intermittently now. If a connection is up, the corresponding + led is lit continuously. b) If you only intend to use ttys, you are nearly ready now. diff -u --recursive --new-file v1.3.86/linux/Documentation/isdn/README.icn linux/Documentation/isdn/README.icn --- v1.3.86/linux/Documentation/isdn/README.icn Mon Feb 26 11:58:03 1996 +++ linux/Documentation/isdn/README.icn Fri Apr 12 09:49:29 1996 @@ -11,7 +11,7 @@ The card communicates with the PC by two interfaces: - 1. A range of 4 successive port-addresses, whos base address can be + 1. A range of 4 successive port-addresses, whose base address can be configured with the switches. 2. A memory window with 16KB-256KB size, which can be setup in 16k steps over the whole range of 16MB. Isdn4linux only uses a 16k window. @@ -27,7 +27,7 @@ (0 = switch closed, 1 = switch open) - S3 S2 S1 Basie-address + S3 S2 S1 Base-address 0 0 0 0x300 0 0 1 0x310 0 1 0 0x320 (Default for isdn4linux) @@ -41,7 +41,7 @@ (0 = switch closed, 1 = switch open) - S1 S2 S3 S4 Basis-Adresse + S1 S2 S3 S4 Base-Address 0 0 0 0 0x300 0 0 0 1 0x310 0 0 1 0 0x320 (Default for isdn4linux) diff -u --recursive --new-file v1.3.86/linux/Documentation/isdn/README.syncppp linux/Documentation/isdn/README.syncppp --- v1.3.86/linux/Documentation/isdn/README.syncppp Mon Feb 26 11:58:03 1996 +++ linux/Documentation/isdn/README.syncppp Fri Apr 12 09:49:29 1996 @@ -9,7 +9,7 @@ Compiling isdn4linux with sync PPP: ----------------------------------- To compile isdn4linux with the sync PPP part, you have -to answer the apropriate question when doing a "make config" +to answer the appropriate question when doing a "make config" Don't forget to load the slhc.o module before the isdn.o module, if VJ-compression support is not compiled into your kernel. @@ -17,7 +17,7 @@ Using isdn4linux with sync PPP: ------------------------------- Sync PPP is just another encapsulation for isdn4linux. The -name to enable sync PPP encapsualtion is 'syncppp' .. e.g: +name to enable sync PPP encapsulation is 'syncppp' .. e.g: isdn/isdnctrl encap ippp0 syncppp @@ -32,7 +32,7 @@ all devices at once. If you want to use two PPP connections at the same time, you have to connect the ipppd to two devices .. and so on. -I've implemented one additonal option for the ipppd: +I've implemented one additional option for the ipppd: 'useifip' will get (if set to not 0.0.0.0) the IP address for the negotiation from the attached network-interface. You must disable BSD-compression, this implementation can't diff -u --recursive --new-file v1.3.86/linux/Documentation/mandatory.txt linux/Documentation/mandatory.txt --- v1.3.86/linux/Documentation/mandatory.txt Wed Apr 10 17:02:23 1996 +++ linux/Documentation/mandatory.txt Fri Apr 12 09:49:29 1996 @@ -69,7 +69,7 @@ Originally I wrote (about SunOS): "For one thing, calls to open() for a file fail with EAGAIN if another process holds a mandatory lock on the file. However, processes already - holding open file descriptors can carry on using them. Wierd!" + holding open file descriptors can carry on using them. Weird!" Well, all my reference systems do it, so I decided to go with the flow. My gut feeling is that only calls to open() and creat() with O_TRUNC should be @@ -147,6 +147,6 @@ Not even root can override a mandatory lock, so runaway process can wreak havoc if they lock crucial files. The way around it is to change the file -permissions (remove the setgid bit) before trying to read or wite to it. +permissions (remove the setgid bit) before trying to read or write to it. Of course, that might be a bit tricky if the system is hung :-( diff -u --recursive --new-file v1.3.86/linux/Documentation/networking/3c505.txt linux/Documentation/networking/3c505.txt --- v1.3.86/linux/Documentation/networking/3c505.txt Thu Jan 1 02:00:00 1970 +++ linux/Documentation/networking/3c505.txt Fri Apr 12 09:41:58 1996 @@ -0,0 +1,33 @@ +The 3Com Etherlink Plus (3c505) driver. + +This driver now uses DMA. There is currently no support for PIO operation. +The default DMA channel is 6, and is set at compile time. + +If no base address is given at boot time, the driver will autoprobe +ports 0x300, 0x280 and 0x310 (in that order). If no IRQ is given, the driver +will try to probe for it. + +The driver can be used as a loadable module. See net-modules.txt for details +of the parameters it can take. + +At the moment, the driver probably won't work with old (revision 2) hardware. + +There is one compile-time setting in the CONFIG file: +ELP_DEBUG + The driver debug level. It's probably best to leave it at 0 most of the time. + If you are having trouble, setting it to 1 may give you more information. + Any higher setting is too verbose for most purposes. + +To do: + Support for old boards + Make DMA configurable at run time + Improve probe/setup code + Test multicast and promiscuous operation + +Authors: + The driver is mainly written by Craig Southeren, email + . + Parts of the driver (adapting the driver to 1.1.4+ kernels, + IRQ/address detection, some changes) and this README by + Juha Laiho . + DMA mode, more fixes, etc, by Philip Blundell diff -u --recursive --new-file v1.3.86/linux/Documentation/networking/arcnet-hardware.txt linux/Documentation/networking/arcnet-hardware.txt --- v1.3.86/linux/Documentation/networking/arcnet-hardware.txt Thu Feb 15 09:21:21 1996 +++ linux/Documentation/networking/arcnet-hardware.txt Fri Apr 12 09:49:29 1996 @@ -167,7 +167,7 @@ T - T connector But that is not all! The two types can be connected together. According to -the official documentation the only way of conecting them is using an active +the official documentation the only way of connecting them is using an active hub: A------T------T------TR @@ -201,7 +201,7 @@ | | S------T----H---S | S S B R S -A basicaly different cabling scheme is used with Twisted Pair cabling. Each +A basically different cabling scheme is used with Twisted Pair cabling. Each of the TP cards has two RJ (phone-cord style) connectors. The cards are then daisy-chained together using a cable connecting every two neighboring cards. The ends are terminated with RJ 93 Ohm terminators which plug into @@ -258,7 +258,7 @@ your card has additional ones, which is possible, please tell me.) This should not be the same as any other device on your system. According to a doc I got from Novell, MS Windows prefers values of 0x300 or more, - eating netconnections on my system (at least) otherwise. My guess is + eating net connections on my system (at least) otherwise. My guess is this may be because, if your card is at 0x2E0, probing for a serial port at 0x2E8 will reset the card and probably mess things up royally. - Avery's favourite: 0x300. @@ -426,7 +426,7 @@ About the jumpers: On my PC130 there is one more jumper, located near the cable-connector and it's for changing to star or bus topology; closed: star - open: bus - On the PC500 are some more jumper-pins, one block labled with RX,PDN,TXI + On the PC500 are some more jumper-pins, one block labeled with RX,PDN,TXI and another with ALE,LA17,LA18,LA19 these are undocumented.. [...more parts deleted...] @@ -619,7 +619,7 @@ ---------------------------- The first three switches in switch group S1 are used to select one -of eight possible I/O Base addresses using the followig table +of eight possible I/O Base addresses using the following table Switch | Hex I/O @@ -627,7 +627,7 @@ -------|-------- 0 0 0 | 260 0 0 1 | 290 - 0 1 0 | 2E0 (Manufactor's default) + 0 1 0 | 2E0 (Manufacturer's default) 0 1 1 | 2F0 1 0 0 | 300 1 0 1 | 350 @@ -721,7 +721,7 @@ -------|------------------- ---------|------------------- on | normal activity flash/on | data transfer blink | reconfiguration off | no data transfer; - off | defectiv board or | incorect memory or + off | defective board or | incorrect memory or | node ID is zero | I/O address @@ -820,7 +820,7 @@ The eight switches in group SW3 are used to set the node ID. Each node attached to the network must have an unique node ID which must be -diffrent from 0. +different from 0. Switch 1 serves as the least significant bit (LSB). The node ID is the sum of the values of all switches set to "1" @@ -860,7 +860,7 @@ ---------------------------- The first six switches in switch group SW1 are used to select one -of 32 possible I/O Base addresses using the followig table +of 32 possible I/O Base addresses using the following table Switch | Hex I/O 6 5 4 3 2 1 | Address @@ -879,7 +879,7 @@ 0 1 1 0 1 1 | 2B0 0 1 1 1 0 0 | 2C0 0 1 1 1 0 1 | 2D0 - 0 1 1 1 1 0 | 2E0 (Manufactor's default) + 0 1 1 1 1 0 | 2E0 (Manufacturer's default) 0 1 1 1 1 1 | 2F0 1 1 0 0 0 0 | 300 1 1 0 0 0 1 | 310 @@ -948,7 +948,7 @@ -------|------------------- ---------|------------------- on | normal activity flash/on | data transfer blink | reconfiguration off | no data transfer; - off | defectiv board or | incorect memory or + off | defective board or | incorrect memory or | node ID is zero | I/O address @@ -1036,7 +1036,7 @@ JP0: If closed, internal termination on (default open) JP1: IRQ Jumpers JP2: Boot-ROM enabled if closed -JP3: Jumpers for respsonse timeout +JP3: Jumpers for response timeout U3: Boot-ROM Socket @@ -1068,10 +1068,10 @@ 111 3e0-3ef -DIP Switches 1-5 of SW2 encode the RAM and ROM Adress Range: +DIP Switches 1-5 of SW2 encode the RAM and ROM Address Range: Switches Ram Rom -12345 Adress Range Address Range +12345 Address Range Address Range 00000 C:0000-C:07ff C:2000-C:3fff 10000 C:0800-C:0fff 01000 C:1000-C:17ff @@ -1336,7 +1336,7 @@ ------------------- The eight switches in SW2 are used to set the node ID. Each node attached -to the network must have an unique node ID which must be diffrent from 0. +to the network must have an unique node ID which must be different from 0. Switch 1 (ID0) serves as the least significant bit (LSB). The node ID is the sum of the values of all switches set to "1" @@ -1376,7 +1376,7 @@ ---------------------------- The last three switches in switch block SW1 are used to select one -of eight possible I/O Base addresses using the followig table +of eight possible I/O Base addresses using the following table Switch | Hex I/O @@ -1384,7 +1384,7 @@ ------------|-------- ON ON ON | 260 OFF ON ON | 290 - ON OFF ON | 2E0 (Manufactor's default) + ON OFF ON | 2E0 (Manufacturer's default) OFF OFF ON | 2F0 ON ON OFF | 300 OFF ON OFF | 350 @@ -1406,7 +1406,7 @@ ON ON ON ON ON | C0000 | C2000 ON ON OFF ON ON | C4000 | C6000 ON ON ON OFF ON | CC000 | CE000 - ON ON OFF OFF ON | D0000 | D2000 (Manufactor's default) + ON ON OFF OFF ON | D0000 | D2000 (Manufacturer's default) ON ON ON ON OFF | D4000 | D6000 ON ON OFF ON OFF | D8000 | DA000 ON ON ON OFF OFF | DC000 | DE000 @@ -1417,7 +1417,7 @@ Note: Since the switches 1 and 2 are always set to ON it may be possible that they can be used to add an offset of 2K, 4K or 6K to the base address, but this feature is not documented in the manual and I - haven't testet it yet. + haven't tested it yet. Setting the Interrupt Line @@ -1546,7 +1546,7 @@ ------------------- The eight switches in SW2 are used to set the node ID. Each node attached -to the network must have an unique node ID which must be diffrent from 0. +to the network must have an unique node ID which must be different from 0. Switch 1 (ID0) serves as the least significant bit (LSB). The node ID is the sum of the values of all switches set to "1" @@ -1586,14 +1586,14 @@ ---------------------------- The first six switches in switch block SW1 are used to select the I/O Base -address using the followig table: +address using the following table: Switch | Hex I/O 1 2 3 4 5 6 | Address ------------------------|-------- OFF ON ON OFF OFF ON | 260 OFF ON OFF ON ON OFF | 290 - OFF ON OFF OFF OFF ON | 2E0 (Manufactor's default) + OFF ON OFF OFF OFF ON | 2E0 (Manufacturer's default) OFF ON OFF OFF OFF OFF | 2F0 OFF OFF ON ON ON ON | 300 OFF OFF ON OFF ON OFF | 350 @@ -1642,9 +1642,9 @@ 13 | 2 (=9) Default! Note: - Do not use JP11=IRQ6, it may conflict with your Floppy Disk - Controler + Controller - Use JP3=IRQ14 only, if you don't have an IDE-, MFM-, or RLL- - Hard Disk, it may conflict with their controlers + Hard Disk, it may conflict with their controllers Setting the Timeout Parameters @@ -1836,7 +1836,7 @@ ---------------------------- The switches 1 to 6 of switch block SW1 are used to select one -of 32 possible I/O Base addresses using the followig tables +of 32 possible I/O Base addresses using the following tables | Hex Switch | Value @@ -1876,7 +1876,7 @@ Setting the Interrupt Line -------------------------- -Jumpers 1-5 of the jumper block J1 controll the IRQ level. ON means +Jumpers 1-5 of the jumper block J1 control the IRQ level. ON means shorted, OFF means open. Jumper | IRQ @@ -1906,7 +1906,7 @@ - from Vojtech Pavlik This is another SMC 90C65 based arcnet card. I couldn't identify the -manufacturer, but it might be DataPoint, becsuse the card has the +manufacturer, but it might be DataPoint, because the card has the original arcNet logo in its upper right corner. _______________________________________________________ @@ -1975,7 +1975,7 @@ ---------------------------- The last three switches in switch block SW1 are used to select one -of eight possible I/O Base addresses using the followig table +of eight possible I/O Base addresses using the following table Switch | Hex I/O @@ -2005,7 +2005,7 @@ ON ON ON ON ON | C0000 | C2000 ON ON OFF ON ON | C4000 | C6000 ON ON ON OFF ON | CC000 | CE000 - ON ON OFF OFF ON | D0000 | D2000 (Manufacturerr's default) + ON ON OFF OFF ON | D0000 | D2000 (Manufacturer's default) ON ON ON ON OFF | D4000 | D6000 ON ON OFF ON OFF | D8000 | DA000 ON ON ON OFF OFF | DC000 | DE000 @@ -2383,7 +2383,7 @@ =================== I have named this ARCnet card "NONAME", since there is no name of any -manufactor on the Installation manual nor on the shipping box. The only +manufacturer on the Installation manual nor on the shipping box. The only hint to the existence of a manufacturer at all is written in copper, it is "Made in Taiwan" @@ -2428,7 +2428,7 @@ ROM ROM Enable Select CN RG62 Coax Connector STAR| BUS | T/P Three fields for placing a sign (colored circle) - indicating the topologie of the card + indicating the topology of the card Setting one of the switches to Off means "1", On means "0". @@ -2438,7 +2438,7 @@ The eight switches in group SW1 are used to set the node ID. Each node attached to the network must have an unique node ID which -must be diffrent from 0. +must be different from 0. Switch 8 serves as the least significant bit (LSB). The node ID is the sum of the values of all switches set to "1" @@ -2478,14 +2478,14 @@ ---------------------------- The first three switches in switch group SW2 are used to select one -of eight possible I/O Base addresses using the followig table +of eight possible I/O Base addresses using the following table Switch | Hex I/O 1 2 3 | Address ------------|-------- ON ON ON | 260 ON ON OFF | 290 - ON OFF ON | 2E0 (Manufactor's default) + ON OFF ON | 2E0 (Manufacturer's default) ON OFF OFF | 2F0 OFF ON ON | 300 OFF ON OFF | 350 @@ -2520,7 +2520,7 @@ 0 1 0 1 0 | CD000 | CE000 0 1 0 1 1 | CD800 | CE000 | | - 0 1 1 0 0 | D0000 | D2000 (Manufactor's default) + 0 1 1 0 0 | D0000 | D2000 (Manufacturer's default) 0 1 1 0 1 | D0800 | D2000 0 1 1 1 0 | D1000 | D2000 0 1 1 1 1 | D1800 | D2000 @@ -2553,7 +2553,7 @@ ------------------------------------- To select a hardware interrupt level set one (only one!) of the jumpers -IRQ2, IRQ3, IRQ4, IRQ5 or IRQ7. The Manufactor's default is IRQ2. +IRQ2, IRQ3, IRQ4, IRQ5 or IRQ7. The manufacturer's default is IRQ2. Setting the Timeouts @@ -2580,7 +2580,7 @@ of a 16-Bit Coax / Twisted Pair Card. This description is incomplete, because there are missing two pages in the manual booklet. (The table of contents reports pages ... 2-9, 2-11, 2-12, 3-1, ... but inside -the booklet there is a diffrent way of counting ... 2-9, 2-10, A-1, +the booklet there is a different way of counting ... 2-9, 2-10, A-1, (empty page), 3-1, ..., 3-18, A-1 (again), A-2) Also the picture of the board layout is not as good as the picture of 8-Bit card, because there isn't any letter like "SW1" written to the @@ -2627,7 +2627,7 @@ The eight switches in group SW2 are used to set the node ID. Each node attached to the network must have an unique node ID which -must be diffrent from 0. +must be different from 0. Switch 8 serves as the least significant bit (LSB). The node ID is the sum of the values of all switches set to "1" @@ -2667,14 +2667,14 @@ ---------------------------- The first three switches in switch group SW1 are used to select one -of eight possible I/O Base addresses using the followig table +of eight possible I/O Base addresses using the following table Switch | Hex I/O 3 2 1 | Address ------------|-------- ON ON ON | 260 ON ON OFF | 290 - ON OFF ON | 2E0 (Manufactor's default) + ON OFF ON | 2E0 (Manufacturer's default) ON OFF OFF | 2F0 OFF ON ON | 300 OFF ON OFF | 350 @@ -2709,7 +2709,7 @@ 0 1 0 1 0 | CD000 | CE000 0 1 0 1 1 | CD800 | CE000 | | - 0 1 1 0 0 | D0000 | D2000 (Manufactor's default) + 0 1 1 0 0 | D0000 | D2000 (Manufacturer's default) 0 1 1 0 1 | D0800 | D2000 0 1 1 1 0 | D1000 | D2000 0 1 1 1 1 | D1800 | D2000 @@ -2847,7 +2847,7 @@ ---------------------------- The last three switches in switch block SW1 are used to select one -of eight possible I/O Base addresses using the followig table +of eight possible I/O Base addresses using the following table Switch | Hex I/O @@ -2855,7 +2855,7 @@ ------------|-------- ON ON ON | 260 OFF ON ON | 290 - ON OFF ON | 2E0 (Manufactor's default) + ON OFF ON | 2E0 (Manufacturer's default) OFF OFF ON | 2F0 ON ON OFF | 300 OFF ON OFF | 350 @@ -2877,7 +2877,7 @@ ON ON ON ON ON | C0000 | C2000 ON ON OFF ON ON | C4000 | C6000 ON ON ON OFF ON | CC000 | CE000 - ON ON OFF OFF ON | D0000 | D2000 (Manufactor's default) + ON ON OFF OFF ON | D0000 | D2000 (Manufacturer's default) ON ON ON ON OFF | D4000 | D6000 ON ON OFF ON OFF | D8000 | DA000 ON ON ON OFF OFF | DC000 | DE000 @@ -2885,12 +2885,12 @@ *) To enable the Boot ROM set the jumper 8 of jumper block SW3 to position ON. -The jumpers 1 and 2 probably add 0x0800, 0x1000 and 0x1800 to RAM addres. +The jumpers 1 and 2 probably add 0x0800, 0x1000 and 0x1800 to RAM adders. Setting the Interrupt Line -------------------------- -Jumpers 1-5 of the jumper block SW3 controll the IRQ level. +Jumpers 1-5 of the jumper block SW3 control the IRQ level. Jumper | IRQ 1 2 3 4 5 | @@ -3023,7 +3023,7 @@ The eight switches in group SW3 are used to set the node ID. Each node attached to the network must have an unique node ID which -must be diffrent from 0. +must be different from 0. Switch 1 serves as the least significant bit (LSB). switches in the DOWN position are OFF (0) and in the UP position are ON (1) diff -u --recursive --new-file v1.3.86/linux/Documentation/networking/framerelay.txt linux/Documentation/networking/framerelay.txt --- v1.3.86/linux/Documentation/networking/framerelay.txt Sun Mar 31 00:13:16 1996 +++ linux/Documentation/networking/framerelay.txt Fri Apr 12 09:49:29 1996 @@ -5,7 +5,7 @@ the Virtual Connections (VC) assigned to you. Each DLCI is a point-to-point link between your machine and a remote one. -As such, a seperate device is needed to accomodate the routing. Within the +As such, a separate device is needed to accommodate the routing. Within the net-tools archives is 'dlcicfg'. This program will communicate with the base "DLCI" device, and create new net devices named 'dlci00', 'dlci01'... The configuration script will ask you how many DLCI's you need, as well as diff -u --recursive --new-file v1.3.86/linux/Documentation/networking/net-modules.txt linux/Documentation/networking/net-modules.txt --- v1.3.86/linux/Documentation/networking/net-modules.txt Mon Apr 8 19:01:41 1996 +++ linux/Documentation/networking/net-modules.txt Fri Apr 12 09:49:29 1996 @@ -16,16 +16,16 @@ driver developer can use, others should not confuse themselves.) In many cases it is highly preferred that insmod:ing is done - ONLY with defining an explicite address for the card, AND BY + ONLY with defining an explicit address for the card, AND BY NOT USING AUTO-PROBING! - Now most cards have some explicitely defined base address, they + Now most cards have some explicitly defined base address, they are compiled with (to avoid auto-probing, among other things). If that compiled value does not match your actual configuration, do use "io=0xXXX" -parameter for the insmod, and give there a value matching your environment. - If you are adventureous, you can ask the driver to autoprobe + If you are adventurous, you can ask the driver to autoprobe by using "io=0" parameter, however it is potentially dangerous thing to do in a live system. (If you don't know where the card is located, you can try autoprobing, and after possible @@ -50,7 +50,7 @@ insmod 3c503.o io=0x280,0x300,0x330,0x350 xcvr=0,1,0,1 The above would have the one module controlling four 3c503 cards, with card 2 -and 4 using external transcievers. The "insmod" manual describes the usage +and 4 using external transceivers. The "insmod" manual describes the usage of comma separated value lists. It is *STRONGLY RECOMMENDED* that you supply "io=" instead of autoprobing. diff -u --recursive --new-file v1.3.86/linux/Documentation/networking/tcp.txt linux/Documentation/networking/tcp.txt --- v1.3.86/linux/Documentation/networking/tcp.txt Tue Jun 6 11:22:26 1995 +++ linux/Documentation/networking/tcp.txt Fri Apr 12 09:49:29 1996 @@ -29,7 +29,7 @@ checksum in the copy. When a write is done we try to clear any pending events and piggy back them. -If the window is full we queue full sized frames. On the firs timeout in +If the window is full we queue full sized frames. On the first timeout in zero window we split this. On a timer we walk the retransmit list to send any retransmits, update the diff -u --recursive --new-file v1.3.86/linux/Documentation/networking/z8530drv.txt linux/Documentation/networking/z8530drv.txt --- v1.3.86/linux/Documentation/networking/z8530drv.txt Tue Dec 19 07:09:00 1995 +++ linux/Documentation/networking/z8530drv.txt Fri Apr 12 09:49:29 1996 @@ -88,7 +88,7 @@ option 0 # option to set via sfr -chip - this is just a delimiter to make sccinit a bit simplier to +chip - this is just a delimiter to make sccinit a bit simpler to program. A parameter has no effect. data_a - the address of the data port A of this Z8530 (needed) @@ -256,7 +256,7 @@ # rxbuffers 8 # number of rx buffers allocated # (option, default is 4) -txbuffers 16 # number of tx buffers allocatd +txbuffers 16 # number of tx buffers allocated # (option, default is 16) bufsize 384 # size of buffers. Note that this must include # the AX.25 header, not only the data field! @@ -281,11 +281,11 @@ The order WITHIN these sections is unimportant. The order OF these sections IS important. The MODEM parameters are set with the first -recognized KISS paramer... +recognized KISS parameter... Please note that you can initialize the board only once after boot. -You can change all paramters but "mode" and "clock" later with the -Sccparam program or through KISS. Just to avoid securety holes... +You can change all parameters but "mode" and "clock" later with the +Sccparam program or through KISS. Just to avoid security holes... (1) this divider is usually mounted on the SCC-PBC (PA0HZP) or not present at all (BayCom). It feeds back the output of the DPLL @@ -512,7 +512,7 @@ Example: sccparam /dev/scc2 4 full: - The full-duplex mode switch. This can be one of the folowing + The full-duplex mode switch. This can be one of the following values: 0: The interface will operate in CSMA mode (the normal @@ -568,7 +568,7 @@ maxdefer This is the maximum time (in seconds) to wait for a free channel to send. When this timer expires the transmitter will be keyed - IMMEDIATLY. If you love to get trouble with other users you + IMMEDIATELY. If you love to get trouble with other users you should set this to a very low value ;-) Example: sccparam /dev/scc0 maxdefer 240 # 2 minutes @@ -658,14 +658,14 @@ - a high interrupt load -- a high load of the maching --- running X, Xmorph, XV and Povray, +- a high load of the machine --- running X, Xmorph, XV and Povray, while compiling the kernel... hmm ... even with 32 MB RAM ... ;-) - NET's speed itself. Kernel panics: please read to /linux/README and find out if it -really occured within the scc driver. +really occurred within the scc driver. If you can't solve a problem, send me @@ -784,7 +784,7 @@ Many thanks to Linus Torvalds and Alan Cox for including the driver -in the LinuX standard distribution and their support. +in the Linux standard distribution and their support. Joerg Reuter ampr-net: dl1bke@db0pra.ampr.org AX-25 : DL1BKE @ DB0ACH.#NRW.DEU.EU diff -u --recursive --new-file v1.3.86/linux/Documentation/nfsroot.txt linux/Documentation/nfsroot.txt --- v1.3.86/linux/Documentation/nfsroot.txt Tue Apr 2 13:32:18 1996 +++ linux/Documentation/nfsroot.txt Fri Apr 12 09:49:29 1996 @@ -21,7 +21,7 @@ In order to use nfsroot you have to select support for NFS during kernel configuration. Note that NFS cannot be loaded as a module -in this case. The configuration script will then ask you wether +in this case. The configuration script will then ask you whether you want to use nfsroot, and if yes what kind of auto configuration system you want to use. Selecting both BOOTP and RARP is safe. @@ -61,7 +61,7 @@ replaced by the ASCII-representation of the client's IP address. - Standard NFS options. All options are seperated by commas. + Standard NFS options. All options are separated by commas. If the options field is not given, the following defaults will be used: port = as given by server portmap daemon @@ -95,7 +95,7 @@ replies from the specified server are accepted. To use different RARP and NFS server, specify your RARP server here (or leave it blank), and specify your NFS server in - the nfsroot paremeter (see above). If this entry is blank + the nfsroot parameter (see above). If this entry is blank the address of the server is used which answered the RARP or BOOTP request. diff -u --recursive --new-file v1.3.86/linux/Documentation/smp.ez linux/Documentation/smp.ez --- v1.3.86/linux/Documentation/smp.ez Tue Oct 10 15:45:25 1995 +++ linux/Documentation/smp.ez Fri Apr 12 09:49:29 1996 @@ -37,7 +37,7 @@ The Intel pentium processors have a wide variety of inbuilt facilities for supporting multiprocessing, including hardware cache coherency, built in interprocessor interrupt handling and a set of atomic test and set, -exchange and similar operations. The cache coherency in paticular makes the +exchange and similar operations. The cache coherency in particular makes the operating systems job far easier. @@ -88,8 +88,8 @@ Such a choice is however poor for performance. In the longer term it is -neccessary to move to finer grained parallelism in order to get the best -system performance. This can be done heirarchically by gradually refining +necessary to move to finer grained parallelism in order to get the best +system performance. This can be done hierarchically by gradually refining the locks to cover smaller areas. With the current kernel highly CPU bound process sets perform well but I/O bound task sets can easily degenerate to near single processor performance levels. This refinement will be needed to @@ -100,7 +100,7 @@ }} The kernel changes are split into generic SMP support changes and -architecture specific changes neccessary to accomodate each different +architecture specific changes necessary to accommodate each different processor type Linux is ported to. @@ -147,7 +147,7 @@ }}}which does any final setup and then spins the processor while the boot up processor forks off enough idle threads for each processor. This is -neccessary because the scheduler assumes there is always something to run. +necessary because the scheduler assumes there is always something to run. Having generated these threads and forked init the architecture specific \ @@ -191,7 +191,7 @@ The fork system call is modified to generate multiple processes with a process id of zero until the SMP kernel starts up properly. This is -neccessary because process number 1 must be init, and it is desirable that +necessary because process number 1 must be init, and it is desirable that all the system threads are process 0. \ @@ -199,7 +199,7 @@ The final area within the scheduling of processes that does cause problems is the fact the uniprocessor kernel hard codes tests for the idle threads as task[0] and the init process as task[1]. Because there are multiple idle -threads it is neccessary to replace these with tests that the process id is +threads it is necessary to replace these with tests that the process id is 0 and a search for process ID 1, respectively. \subheading{ @@ -208,7 +208,7 @@ } The memory management core of the existing Linux system functions adequately within the multiprocessor framework providing the locking is -used. Certain processor specific areas do need changing, in paticular +used. Certain processor specific areas do need changing, in particular invalidate() must invalidate the TLB's of all processors before it returns. @@ -275,7 +275,7 @@ In the initialisation done by the first processor the arch/i386/mm/init code is modified to scan the low page, top page and BIOS for intel MP -signature blocks. This is neccessary because the MP signature blocks must +signature blocks. This is necessary because the MP signature blocks must be read and processed before the kernel is allowed to allocate and destroy the page at the top of low memory. Having established the number of processors it reserves a set of pages to provide a stack come boot up area @@ -315,7 +315,7 @@ The architecture specific code implements the smp_processor_id() function -by querying the APIC logical identity register. Because the APIC isnt +by querying the APIC logical identity register. Because the APIC isn't mapped into the kernel address space at boot, the initial value returned is rigged by setting the APIC base pointer to point at a suitable constant. Once the system starts doing the SMP setup (in smp_boot_cpus()), the APIC @@ -326,7 +326,7 @@ Message passing is accomplished using a pair of IPI's on interrupt 13 (unused by the 80486 FPU's in SMP mode) and interrupt 16. Two are used in -order to seperate messages that cannot be processed until the receiver +order to separate messages that cannot be processed until the receiver obtains the kernel spinlock from messages that can be processed immediately. In effect IRQ 13 is a fast IRQ handler that does not obtain the locks, and cannot cause a reschedule, while IRQ 16 is a slow IRQ that @@ -376,9 +376,9 @@ as an emulation of the traditional PC interrupt controllers when the machine boots (so that an Intel MP machine boots one CPU and PC compatible). The kernel has all the relevant locks but does not yet -reprogram the 82489 to deliver interrupts to arbitary processors as it +reprogram the 82489 to deliver interrupts to arbitrary processors as it should. This requires further modification of the standard Linux interrupt -handling code, and is paticularly messy as the interrupt handler behaviour +handling code, and is particularly messy as the interrupt handler behaviour has to change as soon as the 82489 is switched into SMP mode. diff -u --recursive --new-file v1.3.86/linux/Documentation/smp.tex linux/Documentation/smp.tex --- v1.3.86/linux/Documentation/smp.tex Fri Feb 9 16:59:04 1996 +++ linux/Documentation/smp.tex Fri Apr 12 09:49:29 1996 @@ -37,7 +37,7 @@ The Intel pentium processors have a wide variety of inbuilt facilities for supporting multiprocessing, including hardware cache coherency, built in interprocessor interrupt handling and a set of atomic test and set, -exchange and similar operations. The cache coherency in paticular makes the +exchange and similar operations. The cache coherency in particular makes the operating systems job far easier. The specification defines a detailed configuration structure in ROM that @@ -82,8 +82,8 @@ and only the processor holding the lock may handle an interrupt. Such a choice is however poor for performance. In the longer term it is -neccessary to move to finer grained parallelisn in order to get the best -system performance. This can be done heirarchically by gradually refining +necessary to move to finer grained parallelism in order to get the best +system performance. This can be done hierarchically by gradually refining the locks to cover smaller areas. With the current kernel highly CPU bound process sets perform well but I/O bound task sets can easily degenerate to near single processor performance levels. This refinement will be needed to @@ -91,7 +91,7 @@ \subsection{Changes To The Portable Kernel Components} The kernel changes are split into generic SMP support changes and -architecture specific changes neccessary to accomodate each different +architecture specific changes necessary to accommodate each different processor type Linux is ported to. @@ -129,7 +129,7 @@ which does any final setup and then spins the processor while the boot up processor forks off enough idle threads for each processor. This is -neccessary because the scheduler assumes there is always something to run. +necessary because the scheduler assumes there is always something to run. Having generated these threads and forked init the architecture specific {\tt \bf void smp\_commence(void)} @@ -162,19 +162,19 @@ The fork system call is modified to generate multiple processes with a process id of zero until the SMP kernel starts up properly. This is -neccessary because process number 1 must be init, and it is desirable that +necessary because process number 1 must be init, and it is desirable that all the system threads are process 0. The final area within the scheduling of processes that does cause problems is the fact the uniprocessor kernel hard codes tests for the idle threads as task[0] and the init process as task[1]. Because there are multiple idle -threads it is neccessary to replace these with tests that the process id is +threads it is necessary to replace these with tests that the process id is 0 and a search for process ID 1, respectively. \subsubsection{Memory Management} The memory management core of the existing Linux system functions adequately within the multiprocessor framework providing the locking is -used. Certain processor specific areas do need changing, in paticular +used. Certain processor specific areas do need changing, in particular invalidate() must invalidate the TLB's of all processors before it returns. @@ -224,7 +224,7 @@ In the initialisation done by the first processor the arch/i386/mm/init code is modified to scan the low page, top page and BIOS for intel MP -signature blocks. This is neccessary because the MP signature blocks must +signature blocks. This is necessary because the MP signature blocks must be read and processed before the kernel is allowed to allocate and destroy the page at the top of low memory. Having established the number of processors it reserves a set of pages to provide a stack come boot up area @@ -257,7 +257,7 @@ \subsubsection{Message Handling and Support Code} The architecture specific code implements the smp\_processor\_id() function -by querying the APIC logical identity register. Because the APIC isnt +by querying the APIC logical identity register. Because the APIC isn't mapped into the kernel address space at boot, the initial value returned is rigged by setting the APIC base pointer to point at a suitable constant. Once the system starts doing the SMP setup (in smp\_boot\_cpus()), the APIC @@ -267,7 +267,7 @@ Message passing is accomplished using a pair of IPI's on interrupt 13 (unused by the 80486 FPU's in SMP mode) and interrupt 16. Two are used in -order to seperate messages that cannot be processed until the receiver +order to separate messages that cannot be processed until the receiver obtains the kernel spinlock from messages that can be processed immediately. In effect IRQ 13 is a fast IRQ handler that does not obtain the locks, and cannot cause a reschedule, while IRQ 16 is a slow IRQ that @@ -312,9 +312,9 @@ as an emulation of the traditional PC interrupt controllers when the machine boots (so that an Intel MP machine boots one CPU and PC compatible). The kernel has all the relevant locks but does not yet -reprogram the 82489 to deliver interrupts to arbitary processors as it +reprogram the 82489 to deliver interrupts to arbitrary processors as it should. This requires further modification of the standard Linux interrupt -handling code, and is paticularly messy as the interrupt handler behaviour +handling code, and is particularly messy as the interrupt handler behaviour has to change as soon as the 82489 is switched into SMP mode. diff -u --recursive --new-file v1.3.86/linux/Documentation/svga.txt linux/Documentation/svga.txt --- v1.3.86/linux/Documentation/svga.txt Wed Apr 10 17:02:23 1996 +++ linux/Documentation/svga.txt Fri Apr 12 09:49:29 1996 @@ -12,7 +12,7 @@ IF YOU USE THIS FEATURE, I'LL BE MUCH PLEASED IF YOU SEND ME A MAIL DESCRIBING YOUR EXPERIENCE WITH IT. BUG REPORTS ARE ALSO WELCOME. - The video mode to be used is selected by a kernel paramater which can be + The video mode to be used is selected by a kernel parameter which can be specified in the kernel Makefile (the SVGA_MODE=... line) or by the "vga=..." option of LILO or by the "vidmode" utility (present in standard Linux utility packages). You can use the following settings of this parameter: @@ -83,7 +83,7 @@ finally SVGA modes for the auto-detected adapter. If you enter "scan" instead of item number / mode ID, the program will try -to scan your video modes in a slightly aggresive, but much more accurate way. +to scan your video modes in a slightly aggressive, but much more accurate way. This should reveal all video modes supported by your BIOS. During this process, the screen will flash wildly and strange things will appear. If you are afraid this could damage your monitor, don't use this functions. After scanning, the diff -u --recursive --new-file v1.3.86/linux/MAINTAINERS linux/MAINTAINERS --- v1.3.86/linux/MAINTAINERS Mon Apr 8 19:01:41 1996 +++ linux/MAINTAINERS Fri Apr 12 09:49:29 1996 @@ -10,7 +10,7 @@ 2. Try and release a few ALPHA test versions to the net. Announce them onto the kernel channel and await results. This is especially important for device drivers because often thats the only way you will find things -like the fact version 3 firmware needs a magic fix you didnt know about, or +like the fact version 3 firmware needs a magic fix you didn't know about, or some clown changed the chips on a board and not its name (Don't laugh look at the SMC etherpower for that). @@ -29,7 +29,7 @@ PLEASE try and include any credit lines you want added with the patch. It avoids people being missed off by mistake and makes it easier to know who wants adding and who doesn't. - PLEASE Document known bugs. If it doesnt work for everything or + PLEASE Document known bugs. If it doesn't work for everything or does something very odd once a month document it. 6. Make sure you have the right to send any changes you make. If you @@ -72,6 +72,12 @@ L: linux-net@vger.rutgers.edu S: Maintained +3C505 NETWORK DRIVER +P: Philip Blundell +M: phil@tazenda.demon.co.uk +L: linux-net@vger.rutgers.edu +S: Maintained + APM DRIVER P: Rik Faith & Stephen Rothwell M: faith@cs.unc.edu, Stephen.Rothwell@canb.auug.org.au @@ -87,7 +93,7 @@ AX.25 NETWORK LAYER P: Jon Naylor M: jsn@cs.nott.ac.uk -L: linux-hams@vger.rutges.edu +L: linux-hams@vger.rutgers.edu S: Maintained BUSLOGIC SCSI DRIVER @@ -160,7 +166,7 @@ NETROM NETWORK LAYER P: Jon Naylor M: jsn@cs.nott.ac.uk -L: linux-hams@vger.rutges.edu +L: linux-hams@vger.rutgers.edu S: Maintained NETWORKING [GENERAL]: diff -u --recursive --new-file v1.3.86/linux/Makefile linux/Makefile --- v1.3.86/linux/Makefile Wed Apr 10 17:02:23 1996 +++ linux/Makefile Wed Apr 10 20:35:47 1996 @@ -1,6 +1,6 @@ VERSION = 1 PATCHLEVEL = 3 -SUBLEVEL = 86 +SUBLEVEL = 87 ARCH = i386 diff -u --recursive --new-file v1.3.86/linux/arch/alpha/kernel/bios32.c linux/arch/alpha/kernel/bios32.c --- v1.3.86/linux/arch/alpha/kernel/bios32.c Fri Apr 5 13:35:27 1996 +++ linux/arch/alpha/kernel/bios32.c Fri Apr 12 09:49:29 1996 @@ -457,7 +457,7 @@ * adheres to the PCI-PCI bridge specification. This says that the interrupts on * the other side of a bridge are swizzled in the following manner: * - * Dev Interrupt Interupt + * Dev Interrupt Interrupt * Pin on Pin on * Device Connector * diff -u --recursive --new-file v1.3.86/linux/arch/alpha/kernel/irq.c linux/arch/alpha/kernel/irq.c --- v1.3.86/linux/arch/alpha/kernel/irq.c Sat Mar 16 13:52:12 1996 +++ linux/arch/alpha/kernel/irq.c Fri Apr 12 09:49:29 1996 @@ -387,7 +387,7 @@ /* * It seems to me that the probability of two or more *device* - * interrupts occuring at almost exactly the same time is + * interrupts occurring at almost exactly the same time is * pretty low. So why pay the price of checking for * additional interrupts here if the common case can be * handled so much easier? diff -u --recursive --new-file v1.3.86/linux/arch/alpha/kernel/ksyms.c linux/arch/alpha/kernel/ksyms.c --- v1.3.86/linux/arch/alpha/kernel/ksyms.c Tue Apr 2 13:32:19 1996 +++ linux/arch/alpha/kernel/ksyms.c Fri Apr 12 09:49:29 1996 @@ -64,7 +64,7 @@ X(__constant_c_memset), /* * The following are special because they're not called - * explictly (the C compiler or assembler generates them in + * explicitly (the C compiler or assembler generates them in * response to division operations). Fortunately, their * interface isn't gonna change any time soon now, so it's OK * to leave it out of version control. diff -u --recursive --new-file v1.3.86/linux/arch/alpha/kernel/osf_sys.c linux/arch/alpha/kernel/osf_sys.c --- v1.3.86/linux/arch/alpha/kernel/osf_sys.c Sat Feb 17 09:19:37 1996 +++ linux/arch/alpha/kernel/osf_sys.c Fri Apr 12 09:49:30 1996 @@ -75,7 +75,7 @@ struct osf_dirent_callback * buf = (struct osf_dirent_callback *) __buf; int reclen = ROUND_UP(NAME_OFFSET(dirent) + namlen + 1); - buf->error = -EINVAL; /* unly used if we fail */ + buf->error = -EINVAL; /* only used if we fail */ if (reclen > buf->count) return -EINVAL; if (buf->basep) { @@ -304,7 +304,7 @@ /* * We can't actually handle ufs yet, so we translate UFS mounts to - * ext2fs mounts... I wouldn't mind a USF filesystem, but the UFS + * ext2fs mounts... I wouldn't mind a UFS filesystem, but the UFS * layout is so braindead it's a major headache doing it.. */ static int osf_ufs_mount(char * dirname, struct ufs_args * args, int flags) diff -u --recursive --new-file v1.3.86/linux/arch/alpha/kernel/setup.c linux/arch/alpha/kernel/setup.c --- v1.3.86/linux/arch/alpha/kernel/setup.c Tue Apr 2 13:32:19 1996 +++ linux/arch/alpha/kernel/setup.c Fri Apr 12 09:49:30 1996 @@ -132,7 +132,7 @@ /* Hack for Jensen... since we're restricted to 8 or 16 * chars for boot flags depending on the boot mode, * we need some shorthand. This should do for - * installation. Later we'll add other abbreviaitions + * installation. Later we'll add other abbreviations * as well... */ if(strcmp(COMMAND_LINE, "INSTALL") == 0) { diff -u --recursive --new-file v1.3.86/linux/arch/alpha/math-emu/fp-emul.c linux/arch/alpha/math-emu/fp-emul.c --- v1.3.86/linux/arch/alpha/math-emu/fp-emul.c Sun Mar 24 12:09:35 1996 +++ linux/arch/alpha/math-emu/fp-emul.c Fri Apr 12 09:49:30 1996 @@ -335,7 +335,7 @@ * * Branches, jumps, TRAPBs, EXCBs and calls to PALcode all * bound the trap shadow, so we need not look any further than - * up to the first occurance of such an instruction. + * up to the first occurrence of such an instruction. */ while (write_mask) { insn = get_user((__u32*)(trigger_pc)); diff -u --recursive --new-file v1.3.86/linux/arch/alpha/math-emu/fp-emul.h linux/arch/alpha/math-emu/fp-emul.h --- v1.3.86/linux/arch/alpha/math-emu/fp-emul.h Fri Dec 22 08:22:05 1995 +++ linux/arch/alpha/math-emu/fp-emul.h Fri Apr 12 09:49:30 1996 @@ -4,7 +4,7 @@ * the instruction encodings except that 0x03 signifies dynamic * rounding mode in that case. */ -#define ROUND_CHOP 0x00 /* chopped (aka round twards zero) */ +#define ROUND_CHOP 0x00 /* chopped (aka round towards zero) */ #define ROUND_NINF 0x01 /* round towards negative infinity */ #define ROUND_NEAR 0x02 /* round towards nearest number */ #define ROUND_PINF 0x03 /* round towards positive infinity */ diff -u --recursive --new-file v1.3.86/linux/arch/alpha/math-emu/ieee-math.c linux/arch/alpha/math-emu/ieee-math.c --- v1.3.86/linux/arch/alpha/math-emu/ieee-math.c Sun Mar 24 12:09:35 1996 +++ linux/arch/alpha/math-emu/ieee-math.c Fri Apr 12 09:49:30 1996 @@ -10,9 +10,9 @@ * GNU General Public License. */ /* - * The orginal code did not have any comments. I have created many + * The original code did not have any comments. I have created many * comments as I fix the bugs in the code. My comments are based on - * my observation and interpretation of the code. If the orginal + * my observation and interpretation of the code. If the original * author would have spend a few minutes to comment the code, we would * never had a problem of misinterpretation. -HA * diff -u --recursive --new-file v1.3.86/linux/arch/i386/boot/video.S linux/arch/i386/boot/video.S --- v1.3.86/linux/arch/i386/boot/video.S Wed Apr 10 17:02:23 1996 +++ linux/arch/i386/boot/video.S Fri Apr 12 09:49:30 1996 @@ -619,7 +619,7 @@ set_80x60: call set_80x30 ! Set 480 scans call set_8pt ! And 8-pt font - mov ax,#0xdf12 ! VGA vertial display end + mov ax,#0xdf12 ! VGA vertical display end mov [force_size],#0x503c jmp setvde diff -u --recursive --new-file v1.3.86/linux/arch/i386/kernel/irq.c linux/arch/i386/kernel/irq.c --- v1.3.86/linux/arch/i386/kernel/irq.c Wed Apr 3 16:06:55 1996 +++ linux/arch/i386/kernel/irq.c Fri Apr 12 09:49:30 1996 @@ -541,7 +541,7 @@ for (i = 0; i < 16 ; i++) set_intr_gate(0x20+i,bad_interrupt[i]); /* This bit is a hack because we don't send timer messages to all processors yet */ - /* It has to here .. it doesnt work if you put it down the bottom - assembler explodes 8) */ + /* It has to be here .. it doesn't work if you put it down the bottom - assembler explodes 8) */ #ifdef __SMP__ set_intr_gate(0x20+i, interrupt[i]); /* IRQ '16' - IPI for rescheduling */ #endif diff -u --recursive --new-file v1.3.86/linux/arch/i386/kernel/process.c linux/arch/i386/kernel/process.c --- v1.3.86/linux/arch/i386/kernel/process.c Wed Apr 3 16:06:55 1996 +++ linux/arch/i386/kernel/process.c Fri Apr 12 09:49:30 1996 @@ -65,7 +65,7 @@ is an error calling the idle routine, we should hlt if possible. We need to check need_resched again because an interrupt - may have occured in apm_do_idle(). */ + may have occurred in apm_do_idle(). */ start_bh_atomic(); if (!apm_do_idle() && !need_resched) __asm__("hlt"); diff -u --recursive --new-file v1.3.86/linux/arch/i386/kernel/smp.c linux/arch/i386/kernel/smp.c --- v1.3.86/linux/arch/i386/kernel/smp.c Wed Apr 3 16:06:55 1996 +++ linux/arch/i386/kernel/smp.c Fri Apr 12 09:49:30 1996 @@ -37,7 +37,7 @@ #include /* - * Why isnt this somewhere standard ?? + * Why isn't this somewhere standard ?? */ extern __inline int max(int a,int b) @@ -699,10 +699,10 @@ kernel_stacks[i]=stack; install_trampoline(stack); - printk("Booting processor %d stack %p: ",i,stack); /* So we set whats up */ + printk("Booting processor %d stack %p: ",i,stack); /* So we set what's up */ /* - * This gunge runs the startup process for + * This grunge runs the startup process for * the targeted processor. */ diff -u --recursive --new-file v1.3.86/linux/arch/i386/kernel/sys_i386.c linux/arch/i386/kernel/sys_i386.c --- v1.3.86/linux/arch/i386/kernel/sys_i386.c Mon Oct 30 10:30:17 1995 +++ linux/arch/i386/kernel/sys_i386.c Fri Apr 12 09:49:30 1996 @@ -19,7 +19,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 sys_pipe(unsigned long * fildes) { diff -u --recursive --new-file v1.3.86/linux/arch/i386/kernel/traps.c linux/arch/i386/kernel/traps.c --- v1.3.86/linux/arch/i386/kernel/traps.c Wed Apr 3 16:06:55 1996 +++ linux/arch/i386/kernel/traps.c Fri Apr 12 09:49:30 1996 @@ -296,7 +296,7 @@ * we simply have to do the restore each context switch and * set the flag. switch_to() will always save the state in * case we swap processors. We also don't use the coprocessor - * timer - IRQ 13 mode isnt used with SMP machines (thank god). + * timer - IRQ 13 mode isn't used with SMP machines (thank god). * * If this actually works it will be a miracle however */ diff -u --recursive --new-file v1.3.86/linux/arch/i386/mm/init.c linux/arch/i386/mm/init.c --- v1.3.86/linux/arch/i386/mm/init.c Wed Apr 10 17:02:23 1996 +++ linux/arch/i386/mm/init.c Thu Apr 11 14:52:00 1996 @@ -84,7 +84,7 @@ i = high_memory >> PAGE_SHIFT; while (i-- > 0) { total++; - if (mem_map[i].reserved) + if (PageReserved(mem_map+i)) reserved++; else if (!mem_map[i].count) free++; @@ -235,18 +235,18 @@ * controller as well.. */ while (start_low_mem < 0x9f000) { - mem_map[MAP_NR(start_low_mem)].reserved = 0; + clear_bit(PG_reserved, &mem_map[MAP_NR(start_low_mem)].flags); start_low_mem += PAGE_SIZE; } while (start_mem < high_memory) { - mem_map[MAP_NR(start_mem)].reserved = 0; + clear_bit(PG_reserved, &mem_map[MAP_NR(start_mem)].flags); start_mem += PAGE_SIZE; } for (tmp = 0 ; tmp < high_memory ; tmp += PAGE_SIZE) { if (tmp >= MAX_DMA_ADDRESS) - mem_map[MAP_NR(tmp)].dma = 0; - if (mem_map[MAP_NR(tmp)].reserved) { + clear_bit(PG_DMA, &mem_map[MAP_NR(tmp)].flags); + if (PageReserved(mem_map+MAP_NR(tmp))) { if (tmp >= 0xA0000 && tmp < 0x100000) reservedpages++; else if (tmp < (unsigned long) &_etext) @@ -292,7 +292,7 @@ val->freeram = nr_free_pages << PAGE_SHIFT; val->bufferram = buffermem; while (i-- > 0) { - if (mem_map[i].reserved) + if (PageReserved(mem_map+i)) continue; val->totalram++; if (!mem_map[i].count) diff -u --recursive --new-file v1.3.86/linux/arch/mips/boot/Makefile linux/arch/mips/boot/Makefile --- v1.3.86/linux/arch/mips/boot/Makefile Wed Dec 13 12:39:42 1995 +++ linux/arch/mips/boot/Makefile Fri Apr 12 09:49:30 1996 @@ -22,8 +22,8 @@ DROP_SECTIONS = .reginfo .mdebug # -# The new options of binutils 2.6 help to shrink object files alot. -# This is especially usefull for booting from floppy. Though we +# The new options of binutils 2.6 help to shrink object files a lot. +# This is especially useful for booting from floppy. Though we # don't yet require everyone to have binutils 2.6 installed. # OBJDUMP_VERSION = $(word 4,$(shell $(OBJDUMP) --version)) diff -u --recursive --new-file v1.3.86/linux/arch/mips/config.in linux/arch/mips/config.in --- v1.3.86/linux/arch/mips/config.in Thu Feb 8 05:41:50 1996 +++ linux/arch/mips/config.in Fri Apr 12 09:49:30 1996 @@ -13,7 +13,7 @@ bool 'Support for Deskstation Tyne' CONFIG_DESKSTATION_TYNE bool 'Support for Mips Magnum 3000' CONFIG_MIPS_MAGNUM_3000 bool 'Support for Mips Magnum 4000' CONFIG_MIPS_MAGNUM_4000 -bool 'Support for Olivetty M700' CONFIG_OLIVETTI_M700 +bool 'Support for Olivetti M700' CONFIG_OLIVETTI_M700 if [ "$CONFIG_ACER_PICA_61" = "y" -o \ "$CONFIG_MIPS_MAGNUM_4000" = "y" -o \ "$CONFIG_OLIVETTI_M700" = "y" ]; then diff -u --recursive --new-file v1.3.86/linux/arch/mips/kernel/entry.S linux/arch/mips/kernel/entry.S --- v1.3.86/linux/arch/mips/kernel/entry.S Wed Dec 13 12:39:43 1995 +++ linux/arch/mips/kernel/entry.S Fri Apr 12 09:49:30 1996 @@ -11,7 +11,7 @@ /* * entry.S contains the system-call and fault low-level handling routines. * This also contains the timer-interrupt handler, as well as all interrupts - * and faults that can result in a task-switch. The ISA dependend TLB + * and faults that can result in a task-switch. The ISA dependent TLB * code is in arch/mips/kernel/.S */ #include @@ -109,7 +109,7 @@ .set at /* - * Beware: interrupt, fast_interrupt and bad_interrupt have unusal + * Beware: interrupt, fast_interrupt and bad_interrupt have unusual * calling conventions to speedup the mess. * * t1 - interrupt number diff -u --recursive --new-file v1.3.86/linux/arch/mips/kernel/gdb-stub.c linux/arch/mips/kernel/gdb-stub.c --- v1.3.86/linux/arch/mips/kernel/gdb-stub.c Wed Dec 13 12:39:43 1995 +++ linux/arch/mips/kernel/gdb-stub.c Fri Apr 12 09:49:30 1996 @@ -407,7 +407,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.86/linux/arch/mips/kernel/head.S linux/arch/mips/kernel/head.S --- v1.3.86/linux/arch/mips/kernel/head.S Wed Dec 13 12:39:43 1995 +++ linux/arch/mips/kernel/head.S Fri Apr 12 09:49:30 1996 @@ -115,14 +115,14 @@ .set noreorder NESTED(kernel_entry, 16, sp) /* - * The followin two symbols are used for kernel profiling. + * The following two symbols are used for kernel profiling. */ EXPORT(stext) EXPORT(_stext) #ifdef CONF_DISABLE_KSEG0_CACHING /* - * Disable all caching for KSEG0. This option is usefull + * Disable all caching for KSEG0. This option is useful * when cache trouble with drivers is suspected */ mfc0 t0,CP0_CONFIG @@ -142,7 +142,7 @@ /* * Initialize low level part of memory management - * First flush the TLB to make shure that we don't get a + * First flush the TLB to make sure that we don't get a * TLB shutdown during wire_mappings. */ jal tlbflush diff -u --recursive --new-file v1.3.86/linux/arch/mips/kernel/jazzdma.c linux/arch/mips/kernel/jazzdma.c --- v1.3.86/linux/arch/mips/kernel/jazzdma.c Wed Dec 13 12:39:43 1995 +++ linux/arch/mips/kernel/jazzdma.c Fri Apr 12 09:49:30 1996 @@ -4,7 +4,7 @@ * Mips Jazz DMA controller support * (C) 1995 Andreas Busse * - * NOTE: Some of the argument checkings could be removed when + * NOTE: Some of the argument checking could be removed when * things have settled down. Also, instead of returning 0xffffffff * on failure of vdma_alloc() one could leave page #0 unused * and return the more usual NULL pointer as logical address. diff -u --recursive --new-file v1.3.86/linux/arch/mips/kernel/r4xx0.S linux/arch/mips/kernel/r4xx0.S --- v1.3.86/linux/arch/mips/kernel/r4xx0.S Wed Dec 13 12:39:44 1995 +++ linux/arch/mips/kernel/r4xx0.S Fri Apr 12 09:49:30 1996 @@ -9,7 +9,7 @@ * now we especially support the R10000 by not invalidating entries out of * the TLB before calling the C handlers. * - * This code is evil magic. Read appendix f (coprozessor 0 hazards) of + * This code is evil magic. Read appendix f (coprocessor 0 hazards) of * all R4xx0 manuals and think about that MIPS means "Microprocessor without * Interlocked Pipeline Stages" before you even think about changing this code! */ @@ -141,7 +141,7 @@ * There are two possible causes for an invalid (tlbl) * exception: * 1) pages with present bit set but the valid bit clear - * 2) nonexistant pages + * 2) nonexistent pages * Case one needs fast handling, therefore don't save * registers yet. * @@ -768,7 +768,7 @@ * * MIPS doesn't need any external MMU info: the kernel page tables contain * all the necessary information. We use this hook though to load the - * TLB as early as possible with uptodate information avoiding unecessary + * TLB as early as possible with uptodate information avoiding unnecessary * exceptions. * * Parameters: a0 - struct vm_area_struct *vma (ignored) @@ -778,7 +778,7 @@ .set noreorder LEAF(update_mmu_cache) /* - * Step 1: Wipe out old TLB information. Not shure if + * Step 1: Wipe out old TLB information. Not sure if * we really need that step; call it paranoia ... * In order to do that we need to disable interrupts. */ diff -u --recursive --new-file v1.3.86/linux/arch/mips/kernel/syscall.c linux/arch/mips/kernel/syscall.c --- v1.3.86/linux/arch/mips/kernel/syscall.c Wed Dec 13 12:39:44 1995 +++ linux/arch/mips/kernel/syscall.c Fri Apr 12 09:49:30 1996 @@ -165,7 +165,7 @@ if (narg > 4) { /* - * Verify that we can savely get the additional parameters + * Verify that we can safely get the additional parameters * from the user stack. Of course I could read the params * from unaligned addresses ... Consider this a programming * course caliber .45. diff -u --recursive --new-file v1.3.86/linux/arch/mips/lib/checksum.c linux/arch/mips/lib/checksum.c --- v1.3.86/linux/arch/mips/lib/checksum.c Wed Dec 13 12:39:44 1995 +++ linux/arch/mips/lib/checksum.c Fri Apr 12 09:49:30 1996 @@ -28,7 +28,7 @@ /* * The GCC generated code for handling carry bits makes - * it strongly desireable to do this in assembler! + * it strongly desirable to do this in assembler! */ __asm__(" .set noreorder diff -u --recursive --new-file v1.3.86/linux/arch/mips/mm/init.c linux/arch/mips/mm/init.c --- v1.3.86/linux/arch/mips/mm/init.c Thu Jan 4 07:50:59 1996 +++ linux/arch/mips/mm/init.c Fri Apr 12 09:49:30 1996 @@ -169,7 +169,7 @@ /* * The page copied most is the COW empty_zero_page. Since we * know it's contents we can avoid the writeback reading of - * the page. Speeds up the standard case alot. + * the page. Speeds up the standard case a lot. */ __zeropage(to); } diff -u --recursive --new-file v1.3.86/linux/arch/ppc/kernel/head.S linux/arch/ppc/kernel/head.S --- v1.3.86/linux/arch/ppc/kernel/head.S Sat Dec 30 15:48:22 1995 +++ linux/arch/ppc/kernel/head.S Fri Apr 12 09:49:30 1996 @@ -1289,7 +1289,7 @@ * This routine switches between two different tasks. The process * state of one is saved on it's kernel stack. Then the state * of the other is restored from it's kernel stack. The memory - * management hardware is updated to the second processes's state. + * management hardware is updated to the second process's state. * Finally, we can return to the second process, via the 'return'. * * Note: there are two ways to get to the "going out" portion diff -u --recursive --new-file v1.3.86/linux/arch/ppc/kernel/ppc_machine.h.isin.processor.h linux/arch/ppc/kernel/ppc_machine.h.isin.processor.h --- v1.3.86/linux/arch/ppc/kernel/ppc_machine.h.isin.processor.h Sun May 28 14:36:15 1995 +++ linux/arch/ppc/kernel/ppc_machine.h.isin.processor.h Fri Apr 12 09:49:30 1996 @@ -10,7 +10,7 @@ #define MSR_TGPR (1<<17) /* TLB Update registers in use */ #define MSR_ILE (1<<16) /* Interrupt Little-Endian enable */ #define MSR_EE (1<<15) /* External Interrupt enable */ -#define MSR_PR (1<<14) /* Supervisor/User privelege */ +#define MSR_PR (1<<14) /* Supervisor/User privilege */ #define MSR_FP (1<<13) /* Floating Point enable */ #define MSR_ME (1<<12) /* Machine Check enable */ #define MSR_FE0 (1<<11) /* Floating Exception mode 0 */ diff -u --recursive --new-file v1.3.86/linux/arch/ppc/kernel/raw_printf.c linux/arch/ppc/kernel/raw_printf.c --- v1.3.86/linux/arch/ppc/kernel/raw_printf.c Sat Dec 30 15:48:22 1995 +++ linux/arch/ppc/kernel/raw_printf.c Fri Apr 12 09:49:30 1996 @@ -470,7 +470,7 @@ EBRACEQ /* saw ESC[= */ } state; /* command parser state */ int cx; /* the first escape seq argument */ - int cy; /* the second escap seq argument */ + int cy; /* the second escape seq argument */ int *accp; /* pointer to the current processed argument */ int row; /* current column */ int so; /* standout mode */ diff -u --recursive --new-file v1.3.86/linux/arch/ppc/kernel/traps.c linux/arch/ppc/kernel/traps.c --- v1.3.86/linux/arch/ppc/kernel/traps.c Sat Dec 30 15:48:22 1995 +++ linux/arch/ppc/kernel/traps.c Fri Apr 12 09:49:30 1996 @@ -2,7 +2,7 @@ * linux/arch/ppc/kernel/traps.c * * Copyright (C) 1995 Gary Thomas - * Adapted for PowerPC by Gary THomas + * Adapted for PowerPC by Gary Thomas */ /* diff -u --recursive --new-file v1.3.86/linux/arch/ppc/mm/fault.c linux/arch/ppc/mm/fault.c --- v1.3.86/linux/arch/ppc/mm/fault.c Sat Dec 30 15:48:22 1995 +++ linux/arch/ppc/mm/fault.c Fri Apr 12 09:49:30 1996 @@ -216,7 +216,7 @@ } if (vma->vm_end - address > current->rlim[RLIMIT_STACK].rlim_cur) { - printk("stack2: vma->vm_end-addres %x rlim %x\n", vma->vm_end - address, + printk("stack2: vma->vm_end-address %x rlim %x\n", vma->vm_end - address, current->rlim[RLIMIT_STACK].rlim_cur); printk("stack2: vm_end %x address = %x\n", vma->vm_end,address); printk("stack2: gpr[1]=%x ip = %x; current=%x[%d]; mm=%x; mmap=%x; address = %x error_code = %x\n",regs->gpr[1],regs->nip, current,current->pid,current->mm,current->mm->mmap, address, error_code); diff -u --recursive --new-file v1.3.86/linux/arch/ppc/mm/init.c linux/arch/ppc/mm/init.c --- v1.3.86/linux/arch/ppc/mm/init.c Thu Jan 4 07:50:59 1996 +++ linux/arch/ppc/mm/init.c Fri Apr 12 09:49:30 1996 @@ -23,7 +23,7 @@ /* made this a static array since alpha and intel aren't. thomas made it a dynamic array and had to add lots of stuff to other parts - of linux to make sure the pages were contigous and such. the static array + of linux to make sure the pages were contiguous and such. the static array seems much easier making it 8k for now. will change later. -- Cort diff -u --recursive --new-file v1.3.86/linux/arch/sparc/boot/README linux/arch/sparc/boot/README --- v1.3.86/linux/arch/sparc/boot/README Tue Nov 21 12:23:20 1995 +++ linux/arch/sparc/boot/README Fri Apr 12 09:49:30 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.86/linux/arch/sparc/boot/bare.S linux/arch/sparc/boot/bare.S --- v1.3.86/linux/arch/sparc/boot/bare.S Mon Mar 4 08:49:53 1996 +++ linux/arch/sparc/boot/bare.S Fri Apr 12 09:49:30 1996 @@ -144,7 +144,7 @@ bl bzero_bss_loop nop - call C_LABEL(init_me) ! Fun with imperical constants and prom + call C_LABEL(init_me) ! Fun with empirical constants and prom nop /* Dump back into the prom */ diff -u --recursive --new-file v1.3.86/linux/arch/sparc/boot/empirical.h linux/arch/sparc/boot/empirical.h --- v1.3.86/linux/arch/sparc/boot/empirical.h Thu Jan 1 02:00:00 1970 +++ linux/arch/sparc/boot/empirical.h Fri Apr 12 09:51:07 1996 @@ -0,0 +1,8 @@ +/* $Id: empirical.h,v 1.2 1995/11/25 00:57:42 davem Exp $ + * empirical.h: Nasty hacks.... + * + * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) + */ + +#define DEF_BOGO 25 + diff -u --recursive --new-file v1.3.86/linux/arch/sparc/boot/imperical.h linux/arch/sparc/boot/imperical.h --- v1.3.86/linux/arch/sparc/boot/imperical.h Sat Nov 25 02:57:44 1995 +++ linux/arch/sparc/boot/imperical.h Thu Jan 1 02:00:00 1970 @@ -1,8 +0,0 @@ -/* $Id: imperical.h,v 1.2 1995/11/25 00:57:42 davem Exp $ - * imperical.h: Nasty hacks.... - * - * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) - */ - -#define DEF_BOGO 25 - diff -u --recursive --new-file v1.3.86/linux/arch/sparc/boot/init_me.c linux/arch/sparc/boot/init_me.c --- v1.3.86/linux/arch/sparc/boot/init_me.c Sat Nov 25 02:57:45 1995 +++ linux/arch/sparc/boot/init_me.c Fri Apr 12 09:51:24 1996 @@ -1,5 +1,5 @@ /* $Id: init_me.c,v 1.2 1995/11/25 00:57:44 davem Exp $ - * init_me.c: Initialize imperical constants and gather some info from + * init_me.c: Initialize empirical constants and gather some info from * the boot prom. * * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) @@ -9,9 +9,9 @@ #include #include -#include "imperical.h" /* Don't ask... */ +#include "empirical.h" /* Don't ask... */ -#define DEBUG_INIT_ME /* Tell me whats goin on */ +#define DEBUG_INIT_ME /* Tell me what's goin on */ unsigned int nwindows; /* Set in bare.S */ unsigned int nwindowsm1; diff -u --recursive --new-file v1.3.86/linux/arch/sparc/kernel/auxio.c linux/arch/sparc/kernel/auxio.c --- v1.3.86/linux/arch/sparc/kernel/auxio.c Mon Mar 4 08:49:54 1996 +++ linux/arch/sparc/kernel/auxio.c Fri Apr 12 09:49:31 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.86/linux/arch/sparc/kernel/entry.S linux/arch/sparc/kernel/entry.S --- v1.3.86/linux/arch/sparc/kernel/entry.S Mon Mar 4 08:49:54 1996 +++ linux/arch/sparc/kernel/entry.S Fri Apr 12 09:49:31 1996 @@ -370,7 +370,7 @@ RESTORE_ALL - /* This routine handles illegal isntructions and privileged + /* This routine handles illegal instructions and privileged * instruction attempts from user code. */ .align 4 @@ -652,7 +652,7 @@ SAVE_ALL /* 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 diff -u --recursive --new-file v1.3.86/linux/arch/sparc/kernel/etrap.S linux/arch/sparc/kernel/etrap.S --- v1.3.86/linux/arch/sparc/kernel/etrap.S Mon Mar 4 08:49:55 1996 +++ linux/arch/sparc/kernel/etrap.S Fri Apr 12 09:49:31 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.86/linux/arch/sparc/kernel/probe.c linux/arch/sparc/kernel/probe.c --- v1.3.86/linux/arch/sparc/kernel/probe.c Mon Mar 4 08:49:55 1996 +++ linux/arch/sparc/kernel/probe.c Fri Apr 12 09:49:31 1996 @@ -380,7 +380,7 @@ } } -/* Probe and map in the Auxiliaary I/O register */ +/* Probe and map in the Auxiliary I/O register */ void probe_auxio(void) { @@ -402,7 +402,7 @@ prom_apply_obio_ranges(auxregs, 0x1); /* Map the register both read and write */ sparc_alloc_io(auxregs[0].phys_addr, (void *) AUXIO_VADDR, - auxregs[0].reg_size, "auxilliaryIO", auxregs[0].which_io, 0x0); + auxregs[0].reg_size, "auxiliaryIO", auxregs[0].which_io, 0x0); } extern unsigned long probe_memory(void); diff -u --recursive --new-file v1.3.86/linux/arch/sparc/kernel/process.c linux/arch/sparc/kernel/process.c --- v1.3.86/linux/arch/sparc/kernel/process.c Mon Mar 4 08:49:55 1996 +++ linux/arch/sparc/kernel/process.c Fri Apr 12 09:49:31 1996 @@ -144,7 +144,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.86/linux/arch/sparc/kernel/sclow.S linux/arch/sparc/kernel/sclow.S --- v1.3.86/linux/arch/sparc/kernel/sclow.S Mon Mar 4 08:49:55 1996 +++ linux/arch/sparc/kernel/sclow.S Fri Apr 12 09:49:31 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.86/linux/arch/sparc/kernel/setup.c linux/arch/sparc/kernel/setup.c --- v1.3.86/linux/arch/sparc/kernel/setup.c Mon Mar 4 08:49:56 1996 +++ linux/arch/sparc/kernel/setup.c Fri Apr 12 09:49:31 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.86/linux/arch/sparc/kernel/smp.c linux/arch/sparc/kernel/smp.c --- v1.3.86/linux/arch/sparc/kernel/smp.c Mon Mar 4 08:49:56 1996 +++ linux/arch/sparc/kernel/smp.c Fri Apr 12 09:49:31 1996 @@ -14,12 +14,12 @@ static volatile int smp_commenced = 0; -/* The only guarenteed locking primitive available on all Sparc - * processors is 'ldstub [%addr_reg + imm], %dest_reg' which atomicly +/* The only guaranteed locking primitive available on all Sparc + * processors is 'ldstub [%addr_reg + imm], %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' - * instruction which is muct better... + * instruction which is much better... */ klock_t kernel_lock; diff -u --recursive --new-file v1.3.86/linux/arch/sparc/kernel/sparc-stub.c linux/arch/sparc/kernel/sparc-stub.c --- v1.3.86/linux/arch/sparc/kernel/sparc-stub.c Mon Mar 4 08:49:56 1996 +++ linux/arch/sparc/kernel/sparc-stub.c Fri Apr 12 09:49:31 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. */ @@ -430,7 +430,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.86/linux/arch/sparc/kernel/sunos_ioctl.c linux/arch/sparc/kernel/sunos_ioctl.c --- v1.3.86/linux/arch/sparc/kernel/sunos_ioctl.c Mon Mar 4 08:49:56 1996 +++ linux/arch/sparc/kernel/sunos_ioctl.c Fri Apr 12 09:49:31 1996 @@ -52,7 +52,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.86/linux/arch/sparc/kernel/sys_sparc.c linux/arch/sparc/kernel/sys_sparc.c --- v1.3.86/linux/arch/sparc/kernel/sys_sparc.c Mon Mar 4 08:49:56 1996 +++ linux/arch/sparc/kernel/sys_sparc.c Fri Apr 12 09:49:31 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 void sparc_pipe(struct pt_regs *regs) { diff -u --recursive --new-file v1.3.86/linux/arch/sparc/kernel/sys_sunos.c linux/arch/sparc/kernel/sys_sunos.c --- v1.3.86/linux/arch/sparc/kernel/sys_sunos.c Mon Mar 4 08:49:56 1996 +++ linux/arch/sparc/kernel/sys_sunos.c Fri Apr 12 09:49:31 1996 @@ -1,5 +1,5 @@ /* $Id: sys_sunos.c,v 1.33 1996/03/01 07:16:00 davem 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) @@ -180,7 +180,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... */ @@ -249,7 +249,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) @@ -288,7 +288,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) @@ -400,7 +400,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; @@ -688,7 +688,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.86/linux/arch/sparc/kernel/systbls.S linux/arch/sparc/kernel/systbls.S --- v1.3.86/linux/arch/sparc/kernel/systbls.S Mon Mar 4 08:49:56 1996 +++ linux/arch/sparc/kernel/systbls.S Fri Apr 12 09:49:31 1996 @@ -1,5 +1,5 @@ /* $Id: systbls.S,v 1.29 1996/03/01 07:16:02 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.86/linux/arch/sparc/kernel/time.c linux/arch/sparc/kernel/time.c --- v1.3.86/linux/arch/sparc/kernel/time.c Mon Mar 4 08:49:56 1996 +++ linux/arch/sparc/kernel/time.c Fri Apr 12 09:49:31 1996 @@ -171,7 +171,7 @@ master_l10_limit = &(sun4c_timers->timer_limit10); master_l10_counter = &(sun4c_timers->cur_count10); } else { - /* XXX FIx this SHIT... UP and MP sun4m configurations + /* XXX Fix this SHIT... UP and MP sun4m configurations * XXX have completely different layouts for the counter * XXX registers. AIEEE!!! */ diff -u --recursive --new-file v1.3.86/linux/arch/sparc/kernel/wuf.S linux/arch/sparc/kernel/wuf.S --- v1.3.86/linux/arch/sparc/kernel/wuf.S Mon Mar 4 08:49:57 1996 +++ linux/arch/sparc/kernel/wuf.S Fri Apr 12 09:49:31 1996 @@ -230,7 +230,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. */ @@ -341,7 +341,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.86/linux/arch/sparc/mm/init.c linux/arch/sparc/mm/init.c --- v1.3.86/linux/arch/sparc/mm/init.c Mon Mar 4 08:49:57 1996 +++ linux/arch/sparc/mm/init.c Fri Apr 12 09:49:31 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.86/linux/arch/sparc/mm/srmmu.c linux/arch/sparc/mm/srmmu.c --- v1.3.86/linux/arch/sparc/mm/srmmu.c Thu Mar 14 09:20:05 1996 +++ linux/arch/sparc/mm/srmmu.c Fri Apr 12 09:49:31 1996 @@ -721,7 +721,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... */ @@ -1278,7 +1278,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 * thing that a trap is coming from kernel mode when in fact * it is coming from user mode (it misexecutes the branch in * the trap code). So you see things like crashme completely diff -u --recursive --new-file v1.3.86/linux/arch/sparc/mm/sun4c.c linux/arch/sparc/mm/sun4c.c --- v1.3.86/linux/arch/sparc/mm/sun4c.c Mon Mar 4 08:49:58 1996 +++ linux/arch/sparc/mm/sun4c.c Fri Apr 12 09:49:31 1996 @@ -482,7 +482,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) @@ -567,8 +567,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 diff -u --recursive --new-file v1.3.86/linux/arch/sparc/prom/memory.c linux/arch/sparc/prom/memory.c --- v1.3.86/linux/arch/sparc/prom/memory.c Sat Nov 25 03:00:04 1995 +++ linux/arch/sparc/prom/memory.c Fri Apr 12 09:49:31 1996 @@ -8,12 +8,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.86/linux/arch/sparc/prom/palloc.c linux/arch/sparc/prom/palloc.c --- v1.3.86/linux/arch/sparc/prom/palloc.c Sat Nov 25 03:00:10 1995 +++ linux/arch/sparc/prom/palloc.c Fri Apr 12 09:49:31 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.86/linux/drivers/block/Config.in linux/drivers/block/Config.in --- v1.3.86/linux/drivers/block/Config.in Sat Mar 16 13:52:13 1996 +++ linux/drivers/block/Config.in Fri Apr 12 09:49:31 1996 @@ -13,7 +13,7 @@ bool ' Use old disk-only driver on primary interface' CONFIG_BLK_DEV_HD_IDE bool ' Include IDE/ATAPI CDROM support' CONFIG_BLK_DEV_IDECD bool ' Include IDE/ATAPI TAPE support' CONFIG_BLK_DEV_IDETAPE - bool ' Support removeable IDE interfaces (PCMCIA)' CONFIG_BLK_DEV_IDE_PCMCIA + bool ' Support removable IDE interfaces (PCMCIA)' CONFIG_BLK_DEV_IDE_PCMCIA bool ' CMD640 chipset bugfix/support' CONFIG_BLK_DEV_CMD640 if [ "$CONFIG_PCI" = "y" ]; then bool ' RZ1000 chipset bugfix/support' CONFIG_BLK_DEV_RZ1000 diff -u --recursive --new-file v1.3.86/linux/drivers/block/README.ide linux/drivers/block/README.ide --- v1.3.86/linux/drivers/block/README.ide Thu Mar 28 17:34:33 1996 +++ linux/drivers/block/README.ide Fri Apr 12 09:49:31 1996 @@ -43,7 +43,7 @@ NEW! - experimental support for various IDE chipsets - use appropriate kernel command line option from list below NEW! - support for drives with a stuck WRERR_STAT bit -NEW! - support for removeable devices, including door lock/unlock +NEW! - support for removable devices, including door lock/unlock NEW! - transparent support for DiskManager 6.0x and "Dynamic Disk Overlay" - works with Linux fdisk, LILO, loadlin, bootln, etc.. NEW! - mostly transparent support for EZ-Drive disk translation software @@ -536,7 +536,7 @@ Estimating raw driver speed: 16 MB in 2.51 seconds = 6.37 MB/sec > Not sure I was much help to you, but I'm glad to hear you got it -> working--and pretty impressivly at that. :-) +> working--and pretty impressively at that. :-) Mmm, well, about that... I've found that my Connor drive (/dev/hda) is pretty fast when I have my system configured like this. I'm still not diff -u --recursive --new-file v1.3.86/linux/drivers/block/cmd640.c linux/drivers/block/cmd640.c --- v1.3.86/linux/drivers/block/cmd640.c Thu Mar 28 17:34:33 1996 +++ linux/drivers/block/cmd640.c Fri Apr 12 09:49:31 1996 @@ -31,7 +31,7 @@ * from ioctl call. New drives added to black list. * * Version 0.06 More code cleanup. Readahead is enabled only for - * detected hard drives, not included in readahed + * detected hard drives, not included in readahead * black list. * * Version 0.07 Changed to more conservative drive tuning policy. @@ -498,7 +498,7 @@ if (mode) b &= ~mask; /* Enable readahead for specific drive */ else - b |= mask; /* Disable readahed for specific drive */ + b |= mask; /* Disable readahead for specific drive */ put_cmd640_reg(port, b); } diff -u --recursive --new-file v1.3.86/linux/drivers/block/floppy.c linux/drivers/block/floppy.c --- v1.3.86/linux/drivers/block/floppy.c Mon Apr 8 19:01:42 1996 +++ linux/drivers/block/floppy.c Fri Apr 12 09:49:32 1996 @@ -92,7 +92,7 @@ */ /* - * 1995/10/18 -- Ralf Baechle -- Portability cleanup; move machine dependend + * 1995/10/18 -- Ralf Baechle -- Portability cleanup; move machine dependent * features to asm/floppy.h. */ @@ -2793,7 +2793,7 @@ ECALL(verify_area(VERIFY_WRITE,param,size)); fd_cacheflush(address, size); /* is this necessary ??? */ - /* Ralf: Yes; only the l2 cache is completly chipset + /* Ralf: Yes; only the l2 cache is completely chipset controlled */ memcpy_tofs(param,(void *) address, size); return 0; @@ -3270,7 +3270,7 @@ LOCK_FDC(drive,1); /* do the actual eject. Fails on - * non-Sparc archtitectures */ + * non-Sparc architectures */ ret=fd_eject(UNIT(drive)); /* switch the motor off, in order to make the diff -u --recursive --new-file v1.3.86/linux/drivers/block/ht6560b.c linux/drivers/block/ht6560b.c --- v1.3.86/linux/drivers/block/ht6560b.c Thu Mar 28 17:34:33 1996 +++ linux/drivers/block/ht6560b.c Fri Apr 12 09:49:32 1996 @@ -12,7 +12,7 @@ * * Version 0.03 Some cleanups * - * I reviewed some assembler sourcer listings of htide drivers and found + * I reviewed some assembler source listings of htide drivers and found * out how they setup those cycle time interfacing values, as they at Holtek * call them. IDESETUP.COM that is supplied with the drivers figures out * optimal values and fetches those values to drivers. I found out that diff -u --recursive --new-file v1.3.86/linux/drivers/block/ide-cd.c linux/drivers/block/ide-cd.c --- v1.3.86/linux/drivers/block/ide-cd.c Mon Apr 8 19:01:42 1996 +++ linux/drivers/block/ide-cd.c Fri Apr 12 09:49:32 1996 @@ -66,7 +66,7 @@ * 3.02 Sep 16, 1995 -- Stick total disk capacity in partition table as well. * Make VERBOSE_IDE_CD_ERRORS dump failed command again. * Dump out more information for ILLEGAL REQUEST errs. - * Fix handling of errors occuring before the + * Fix handling of errors occurring before the * packet command is transferred. * Fix transfers with odd bytelengths. * 3.03 Oct 27, 1995 -- Some Creative drives have an id of just `CD'. @@ -91,6 +91,7 @@ * Switch to using MSF addressing for audio commands. * Reformat to match kernel tabbing style. * Add CDROM_GET_UPC ioctl. + * 3.10 Apr 10, 1996 -- Fix compilation error with STANDARD_ATAPI. * * NOTE: Direct audio reads will only work on some types of drive. * So far, i've received reports of success for Sony and Toshiba drives. @@ -2110,7 +2111,7 @@ case CDROMSUBCHNL: { struct atapi_cdrom_subchnl scbuf; - int stat, msf_flag; + int stat; struct cdrom_subchnl subchnl; stat = verify_area (VERIFY_WRITE, (void *) arg, @@ -2548,13 +2549,13 @@ else CDROM_CONFIG_FLAGS (drive)->drq_interrupt = 0; +#if ! STANDARD_ATAPI CDROM_CONFIG_FLAGS (drive)->old_readcd = 0; CDROM_CONFIG_FLAGS (drive)->toctracks_as_bcd = 0; CDROM_CONFIG_FLAGS (drive)->tocaddr_as_bcd = 0; CDROM_CONFIG_FLAGS (drive)->playmsf_as_bcd = 0; CDROM_CONFIG_FLAGS (drive)->subchan_as_bcd = 0; -#if ! STANDARD_ATAPI if (drive->id != NULL) { if (strcmp (drive->id->model, "V003S0DS") == 0 && drive->id->fw_rev[4] == '1' && diff -u --recursive --new-file v1.3.86/linux/drivers/block/ide-tape.c linux/drivers/block/ide-tape.c --- v1.3.86/linux/drivers/block/ide-tape.c Mon Apr 8 19:01:42 1996 +++ linux/drivers/block/ide-tape.c Fri Apr 12 09:49:32 1996 @@ -127,7 +127,7 @@ * Our data transfer buffer is allocated on startup, * rather than before each data transfer. This should * ensure that we will indeed have a data buffer. - * Ver 1.1 Dec 14 95 Fixed random problems which occured when the tape + * Ver 1.1 Dec 14 95 Fixed random problems which occurred when the tape * shared an interface with another device. * (poll_for_dsc was a complete mess). * Removed some old (non-active) code which had @@ -484,9 +484,9 @@ typedef union { unsigned all :8; struct { - unsigned check :1; /* Error occured */ + unsigned check :1; /* Error occurred */ unsigned idx :1; /* Reserved */ - unsigned corr :1; /* Correctable error occured */ + unsigned corr :1; /* Correctable error occurred */ unsigned drq :1; /* Data is request by the device */ unsigned dsc :1; /* Set when a media access command is finished */ /* Reads / Writes are NOT media access commands */ @@ -659,7 +659,7 @@ unsigned bpu :1; /* Block Position Unknown */ unsigned reserved0_543 :3; /* Reserved */ unsigned eop :1; /* End Of Partition */ - unsigned bop :1; /* Begining Of Partition */ + unsigned bop :1; /* Beginning Of Partition */ byte partition_num; /* Partition Number */ byte reserved_2; /* Reserved */ byte reserved_3; /* Reserved */ @@ -701,14 +701,14 @@ byte ascq; /* Additional Sense Code Qualifier */ byte replaceable_unit_code; /* Field Replaceable Unit Code */ unsigned sk_specific1 :7; /* Sense Key Specific */ - unsigned sksv :1; /* Sense Key Specific informatio is valid */ + unsigned sksv :1; /* Sense Key Specific information is valid */ byte sk_specific2; /* Sense Key Specific */ byte sk_specific3; /* Sense Key Specific */ byte pad [2]; /* Padding to 20 bytes */ } idetape_request_sense_result_t; /* - * Follows structures which are realted to the SELECT SENSE / MODE SENSE + * Follows structures which are related to the SELECT SENSE / MODE SENSE * packet commands. Those packet commands are still not supported * by ide-tape. */ @@ -1102,7 +1102,7 @@ else printk ("%d ns\n",id->eide_dma_min); - printk ("Manafactuer\'s Recommended Multi-word cycle: "); + printk ("Manufacturer\'s Recommended Multi-word cycle: "); if (id->eide_dma_time == 0) printk ("Not supported\n"); else @@ -1143,7 +1143,7 @@ if (gcw.drq_type != 2) { printk ("ide-tape: Sorry, DRQ types other than Accelerated DRQ\n"); - printk ("ide-tape: are still not supproted by the driver\n");support=0; + printk ("ide-tape: are still not supported by the driver\n");support=0; } if (gcw.packet_size != 0) { @@ -1288,8 +1288,8 @@ * tape when its internal buffer is about 50% full. This will * dramatically reduce our polling frequency and will also * leave enough time for the ongoing request of the other device - * to complete before the buffer is completly empty. We will - * then completly refill the buffer with requests from our + * to complete before the buffer is completely empty. We will + * then completely refill the buffer with requests from our * internal pipeline. * * When operating in the non-pipelined operation mode, we @@ -1425,7 +1425,7 @@ * interrupts will be issued. * * 3. ATAPI Tape media access commands have immediate status with a - * delayed process. In case of a successfull initiation of a + * delayed process. In case of a successful initiation of a * media access packet command, the DSC bit will be set when the * actual execution of the command is finished. * Since the tape drive will not issue an interrupt, we have to @@ -2032,7 +2032,7 @@ (void) ide_do_drive_cmd (drive, tape->postponed_rq, ide_next); /* - * Note that the procedure done here is differnet than the method + * Note that the procedure done here is different than the method * we are using in idetape_queue_pc_head - There we are putting * request(s) before our currently called request. * @@ -3259,7 +3259,7 @@ /* * idetape_add_chrdev_write_request tries to add a character device * originated write request to our pipeline. In case we don't succeed, - * we revert to non-piplined operation mode for this request. + * we revert to non-pipelined operation mode for this request. * * 1. Try to allocate a new pipeline stage. * 2. If we can't, wait for more and more requests to be serviced @@ -3626,7 +3626,7 @@ /* * Our character device read / write functions. * - * The tape is optimized to maximize throughput when it is transfering + * The tape is optimized to maximize throughput when it is transferring * an integral number of the "continuous transfer limit", which is * a parameter of the specific tape (26 KB on my particular tape). * @@ -3784,7 +3784,7 @@ * Our character device ioctls. * * General mtio.h magnetic io commands are supported here, and not in - * the correspoding block interface. + * the corresponding block interface. * * The following ioctls are supported: * @@ -3798,7 +3798,7 @@ * * Note that we do not actually return the tape's * block size. Rather, we provide the recommended - * number of bytes which sould be used as a "user + * number of bytes which should be used as a "user * block size" with the character device read/write * functions to maximize throughput. * @@ -3893,7 +3893,7 @@ * MTWEOF - Writes mt_count filemarks. Tape is positioned after * the last written filemark. * - * MTREW - Rewindes tape. + * MTREW - Rewinds tape. * * MTOFFL - Puts the tape drive "Offline": Rewinds the tape and * prevents further access until the media is replaced. @@ -4221,7 +4221,7 @@ } /* - * Rewinds the tape to the Begining Of the current Partition (BOP). + * Rewinds the tape to the Beginning Of the current Partition (BOP). * * We currently support only one partition. */ @@ -4331,7 +4331,7 @@ } /* - * idetape_kfree_stage calls kfree to completly free a stage, along with + * idetape_kfree_stage calls kfree to completely free a stage, along with * its related buffers. */ diff -u --recursive --new-file v1.3.86/linux/drivers/block/ide-tape.h linux/drivers/block/ide-tape.h --- v1.3.86/linux/drivers/block/ide-tape.h Sat Mar 16 13:52:14 1996 +++ linux/drivers/block/ide-tape.h Fri Apr 12 09:49:32 1996 @@ -97,7 +97,7 @@ #endif /* - * ide-tape currently uses two continous buffers, each of the size of + * ide-tape currently uses two continuous buffers, each of the size of * one stage. By default, those buffers are allocated at initialization * time and never released, since dynamic allocation of pages bigger * than PAGE_SIZE may fail as memory becomes fragmented. @@ -344,7 +344,7 @@ */ typedef struct idetape_pipeline_stage_s { - struct request rq; /* The correspoding request */ + struct request rq; /* The corresponding request */ idetape_buffer_head_t *bh; /* The data buffers */ struct idetape_pipeline_stage_s *next,*prev; /* Pointers to the next and previous stages */ } idetape_pipeline_stage_t; @@ -479,7 +479,7 @@ */ struct request *active_data_request; /* Pointer to the request which is waiting in the device request queue */ - char *data_buffer; /* The correspoding data buffer (for read/write requests) */ + char *data_buffer; /* The corresponding data buffer (for read/write requests) */ int data_buffer_size; /* Data buffer size (chosen based on the tape's recommendation */ char *merge_buffer; /* Temporary buffer for user <-> kernel space data transfer */ diff -u --recursive --new-file v1.3.86/linux/drivers/block/ide.c linux/drivers/block/ide.c --- v1.3.86/linux/drivers/block/ide.c Wed Apr 10 17:02:23 1996 +++ linux/drivers/block/ide.c Fri Apr 12 09:49:32 1996 @@ -108,13 +108,13 @@ * add flag to ignore WRERR_STAT for some drives * courtesy of David.H.West@um.cc.umich.edu * assembly syntax tweak to vlb_sync - * removeable drive support from scuba@cs.tu-berlin.de + * removable drive support from scuba@cs.tu-berlin.de * add transparent support for DiskManager-6.0x "Dynamic * Disk Overlay" (DDO), most of this is in genhd.c * eliminate "multiple mode turned off" message at boot * Version 4.10 fix bug in ioctl for "hdparm -c3" * fix DM6:DDO support -- now works with LILO, fdisk, ... - * don't treat some naughty WD drives as removeable + * don't treat some naughty WD drives as removable * Version 4.11 updated DM6 support using info provided by OnTrack * Version 5.00 major overhaul, multmode setting fixed, vlb_sync fixed * added support for 3rd/4th/alternative IDE ports @@ -330,7 +330,7 @@ hwif->ctl_port = hwif->io_base ? hwif->io_base+0x206 : 0x000; #ifdef CONFIG_BLK_DEV_HD if (hwif->io_base == HD_DATA) - hwif->noprobe = 1; /* may be overriden by ide_setup() */ + hwif->noprobe = 1; /* may be overridden by ide_setup() */ #endif /* CONFIG_BLK_DEV_HD */ hwif->major = ide_hwif_to_major[index]; hwif->name[0] = 'i'; @@ -1783,7 +1783,7 @@ if (drive->media == ide_tape) return idetape_blkdev_open (inode, filp, drive); #endif /* CONFIG_BLK_DEV_IDETAPE */ - if (drive->removeable) { + if (drive->removable) { byte door_lock[] = {WIN_DOORLOCK,0,0,0}; struct request rq; check_disk_change(inode->i_rdev); @@ -1822,7 +1822,7 @@ return; } #endif /* CONFIG_BLK_DEV_IDETAPE */ - if (drive->removeable) { + if (drive->removable) { byte door_unlock[] = {WIN_DOORUNLOCK,0,0,0}; struct request rq; invalidate_buffers(inode->i_rdev); @@ -2107,7 +2107,7 @@ if (drive->media == ide_cdrom) return ide_cdrom_check_media_change (drive); #endif /* CONFIG_BLK_DEV_IDECD */ - if (drive->removeable) /* for disks */ + if (drive->removable) /* for disks */ return 1; /* always assume it was changed */ return 0; } @@ -2195,7 +2195,7 @@ printk ("CDROM drive\n"); drive->media = ide_cdrom; drive->present = 1; - drive->removeable = 1; + drive->removable = 1; return; #else printk ("CDROM "); @@ -2207,7 +2207,7 @@ if (idetape_identify_device (drive,id)) { drive->media = ide_tape; drive->present = 1; - drive->removeable = 1; + drive->removable = 1; if (drive->autotune != 2 && HWIF(drive)->dmaproc != NULL) { if (!HWIF(drive)->dmaproc(ide_dma_check, drive)) printk(", DMA"); @@ -2234,15 +2234,15 @@ } #endif /* CONFIG_BLK_DEV_IDEATAPI */ - /* check for removeable disks (eg. SYQUEST), ignore 'WD' drives */ - if (id->config & (1<<7)) { /* removeable disk ? */ + /* check for removable disks (eg. SYQUEST), ignore 'WD' drives */ + if (id->config & (1<<7)) { /* removable disk ? */ if (id->model[0] != 'W' || id->model[1] != 'D') - drive->removeable = 1; + drive->removable = 1; } - /* SunDisk drives: treat as non-removeable, force one unit */ + /* SunDisk drives: treat as non-removable, force one unit */ if (id->model[0] == 'S' && id->model[1] == 'u') { - drive->removeable = 0; + drive->removable = 0; if (drive->select.all & (1<<4)) { drive->present = 0; return; @@ -2462,7 +2462,7 @@ } /* - * probe_for_drive() tests for existance of a given drive using do_probe(). + * probe_for_drive() tests for existence of a given drive using do_probe(). * * Returns: 0 no device was found * 1 device was found (note: drive->present might still be 0) diff -u --recursive --new-file v1.3.86/linux/drivers/block/ide.h linux/drivers/block/ide.h --- v1.3.86/linux/drivers/block/ide.h Mon Apr 8 19:01:43 1996 +++ linux/drivers/block/ide.h Fri Apr 12 12:41:32 1996 @@ -309,7 +309,7 @@ unsigned noprobe : 1; /* from: hdx=noprobe */ unsigned keep_settings : 1; /* restore settings after drive reset */ unsigned busy : 1; /* currently doing revalidate_disk() */ - unsigned removeable : 1; /* 1 if need to do check_media_change */ + unsigned removable : 1; /* 1 if need to do check_media_change */ unsigned using_dma : 1; /* disk is using dma for read/write */ unsigned forced_geom : 1; /* 1 if hdx=c,h,s was given at boot */ unsigned unmask : 1; /* flag: okay to unmask other irqs */ @@ -420,7 +420,7 @@ unsigned no_unmask : 1; /* disallow setting unmask bits */ unsigned got_irq : 1; /* 1 = already alloc'd our irq */ #ifdef CONFIG_BLK_DEV_PROMISE - unsigned is_promise2: 1; /* 2nd i/f on promose DC4030 */ + unsigned is_promise2: 1; /* 2nd i/f on promise DC4030 */ #endif /* CONFIG_BLK_DEV_PROMISE */ #if (DISK_RECOVERY_TIME > 0) unsigned long last_time; /* time when previous rq was done */ @@ -621,7 +621,7 @@ * idetape_identify_device is called during device probing stage to * probe for an ide atapi tape drive and to initialize global variables * in ide-tape.c which provide the link between the character device - * and the correspoding block device. + * and the corresponding block device. * * Returns 1 if an ide tape was detected and is supported. * Returns 0 otherwise. diff -u --recursive --new-file v1.3.86/linux/drivers/block/linear.c linux/drivers/block/linear.c --- v1.3.86/linux/drivers/block/linear.c Mon Feb 26 13:51:45 1996 +++ linux/drivers/block/linear.c Fri Apr 12 09:49:33 1996 @@ -41,7 +41,7 @@ /* Find out the smallest device. This was previously done - at registery time, but since it violates modularity, + at registry time, but since it violates modularity, I moved it here... Any comment ? ;-) */ @@ -63,7 +63,7 @@ { data->hash_table[i].dev0=devices[minor]+cur; - if (size>=data->smallest->size) /* If we completly fill the slot */ + if (size>=data->smallest->size) /* If we completely fill the slot */ { data->hash_table[i++].dev1=NULL; size-=data->smallest->size; diff -u --recursive --new-file v1.3.86/linux/drivers/block/ll_rw_blk.c linux/drivers/block/ll_rw_blk.c --- v1.3.86/linux/drivers/block/ll_rw_blk.c Mon Apr 8 19:01:43 1996 +++ linux/drivers/block/ll_rw_blk.c Fri Apr 12 09:49:33 1996 @@ -468,9 +468,8 @@ default: panic("ll_rw_page: bad block dev cmd, must be R/W"); } - if (mem_map[MAP_NR(buffer)].locked) + if (set_bit(PG_locked, &mem_map[MAP_NR(buffer)].flags)) panic ("ll_rw_page: page already locked"); - mem_map[MAP_NR(buffer)].locked = 1; brw_page(rw, (unsigned long) buffer, dev, &block, PAGE_SIZE, 0); } @@ -636,7 +635,7 @@ loop_init(); #endif #ifdef CONFIG_BLK_DEV_IDE - ide_init(); /* this MUST preceed hd_init */ + ide_init(); /* this MUST precede hd_init */ #endif #ifdef CONFIG_BLK_DEV_HD hd_init(); diff -u --recursive --new-file v1.3.86/linux/drivers/block/md.c linux/drivers/block/md.c --- v1.3.86/linux/drivers/block/md.c Tue Apr 2 13:32:19 1996 +++ linux/drivers/block/md.c Fri Apr 12 09:49:33 1996 @@ -167,7 +167,7 @@ devices[minor][index].dev=dev; /* Lock the device by inserting a dummy inode. This doesn't - smeel very good, but I need to be consistent with the + smell very good, but I need to be consistent with the mount stuff, specially with fs_may_mount. If someone have a better idea, please help ! */ @@ -177,7 +177,7 @@ insert_inode_hash (devices[minor][index].inode); /* Devices sizes are rounded to a multiple of page (needed for - paging). This is NOT done by fdisk when partitionning, + paging). This is NOT done by fdisk when partitioning, but that's a DOS thing anyway... */ devices[minor][index].size=gen_real->sizes[MINOR(dev)] & ~((PAGE_SIZE >> 10)-1); @@ -347,7 +347,7 @@ int minor=MINOR(inode->i_rdev); md_dev[minor].busy++; - return (0); /* Always succed */ + return (0); /* Always succeed */ } @@ -428,13 +428,13 @@ switch (remap_request (minor, req)) { - case REDIRECTED_BHREQ: /* Allright, redirection was succesful */ + case REDIRECTED_BHREQ: /* All right, redirection was successful */ req->rq_status=RQ_INACTIVE; wake_up (&wait_for_request); break; case REDIRECTED_REQ: - break; /* Redirected whole request (for swaping) */ + break; /* Redirected whole request (for swapping) */ case REDIRECT_FAILED: /* Swap redirection failed in RAID-[15] */ end_request (0, req); diff -u --recursive --new-file v1.3.86/linux/drivers/block/raid0.c linux/drivers/block/raid0.c --- v1.3.86/linux/drivers/block/raid0.c Mon Feb 26 13:51:45 1996 +++ linux/drivers/block/raid0.c Fri Apr 12 09:49:33 1996 @@ -130,7 +130,7 @@ { data->hash_table[i].zone0=data->strip_zone+cur; - if (size>=data->smallest->size)/* If we completly fill the slot */ + if (size>=data->smallest->size)/* If we completely fill the slot */ { data->hash_table[i++].zone1=NULL; size-=data->smallest->size; diff -u --recursive --new-file v1.3.86/linux/drivers/block/umc8672.c linux/drivers/block/umc8672.c --- v1.3.86/linux/drivers/block/umc8672.c Mon Feb 12 07:04:03 1996 +++ linux/drivers/block/umc8672.c Fri Apr 12 09:49:33 1996 @@ -32,7 +32,7 @@ * #define UMC_DRIVE0 11 * in the beginning of the driver, which sets the speed of drive 0 to 11 (there * are some lines present). 0 - 11 are allowed speed values. These values are - * the results from the DOS speed test programm supplied from UMC. 11 is the + * the results from the DOS speed test program supplied from UMC. 11 is the * highest speed (about PIO mode 3) */ #undef REALLY_SLOW_IO /* most systems can safely undef this */ diff -u --recursive --new-file v1.3.86/linux/drivers/cdrom/aztcd.c linux/drivers/cdrom/aztcd.c --- v1.3.86/linux/drivers/cdrom/aztcd.c Tue Apr 2 13:32:19 1996 +++ linux/drivers/cdrom/aztcd.c Fri Apr 12 09:49:33 1996 @@ -696,7 +696,7 @@ ms.addr.msf.frame, DiskInfo.lastSession.min, DiskInfo.lastSession.sec, DiskInfo.lastSession.frame); else - printk("atzcd multisession %d, lba:0x%08x [%02x:%02x.%02x])\n", + printk("aztcd multisession %d, lba:0x%08x [%02x:%02x.%02x])\n", ms.xa_flag, ms.addr.lba, DiskInfo.lastSession.min, DiskInfo.lastSession.sec, DiskInfo.lastSession.frame); #endif diff -u --recursive --new-file v1.3.86/linux/drivers/cdrom/cm206.c linux/drivers/cdrom/cm206.c --- v1.3.86/linux/drivers/cdrom/cm206.c Tue Apr 2 13:32:19 1996 +++ linux/drivers/cdrom/cm206.c Fri Apr 12 09:49:33 1996 @@ -268,7 +268,7 @@ stats(sync_error); } else if (cd->intr_ds & ds_toc_ready) { - /* do something appropiate */ + /* do something appropriate */ } /* couldn't see why this interrupt, maybe due to init */ else { diff -u --recursive --new-file v1.3.86/linux/drivers/cdrom/gscd.c linux/drivers/cdrom/gscd.c --- v1.3.86/linux/drivers/cdrom/gscd.c Tue Apr 2 13:32:19 1996 +++ linux/drivers/cdrom/gscd.c Fri Apr 12 09:49:33 1996 @@ -994,7 +994,7 @@ } -/* This is the common initalisation for the GoldStar drive. */ +/* This is the common initialisation for the GoldStar drive. */ /* It is called at boot time AND for module init. */ int my_gscd_init (void) { diff -u --recursive --new-file v1.3.86/linux/drivers/cdrom/mcd.c linux/drivers/cdrom/mcd.c --- v1.3.86/linux/drivers/cdrom/mcd.c Tue Apr 2 13:32:20 1996 +++ linux/drivers/cdrom/mcd.c Fri Apr 12 09:49:33 1996 @@ -48,13 +48,13 @@ I added code for FX001 D to drop from double speed to single speed when encountering errors... this helps with some "problematic" CD's that are supposedly "OUT OF TOLERANCE" (but are really shitty presses!) - severly scratched, or possibly slightly warped! I have noticed that + severely scratched, or possibly slightly warped! I have noticed that the Mitsumi 2x/4x drives are just less tolerant and the firmware is not smart enough to drop speed, so let's just kludge it with software! ****** THE 4X SPEED MITSUMI DRIVES HAVE THE SAME PROBLEM!!!!!! ****** Anyone want to "DONATE" one to me?! ;) I hear sometimes they are even WORSE! ;) - ** HINT... HINT... TAKE NOTES MITSUMI This could save some hassels with + ** HINT... HINT... TAKE NOTES MITSUMI This could save some hassles with certain "large" CD's that have data on the outside edge in your DOS DRIVERS .... Accuracy counts... speed is secondary ;) 17 June 95 Modifications By Andrew J. Kroll @@ -719,7 +719,7 @@ if (mcdDouble == 1 && McdTries == MCD_RETRY_ATTEMPTS && MCMD_DATA_READ == MCMD_2X_READ) { MCMD_DATA_READ = MCMD_PLAY_READ; /* Uhhh, Ummmm, muhuh-huh! */ - mcd1xhold = SINGLE_HOLD_SECTORS; /* Hey Bevis! */ + mcd1xhold = SINGLE_HOLD_SECTORS; /* Hey Beavis! */ printk(" Speed now 1x"); /* Pull my finger! */ } } diff -u --recursive --new-file v1.3.86/linux/drivers/cdrom/mcdx.c linux/drivers/cdrom/mcdx.c --- v1.3.86/linux/drivers/cdrom/mcdx.c Fri Mar 22 09:42:18 1996 +++ linux/drivers/cdrom/mcdx.c Fri Apr 12 09:49:33 1996 @@ -35,7 +35,7 @@ * Jon Tombs, Bjorn Ekwall (module support) * Daniel v. Mosnenck (he sent me the Technical and Programming Reference) * Gerd Knorr (he lent me his PhotoCD) - * Nils Faerber and Roger E. Wolff (extensivly tested the LU portion) + * Nils Faerber and Roger E. Wolff (extensively tested the LU portion) * Andreas Kies (testing the mysterious hang up's) * ... somebody forgotten? * @@ -130,7 +130,7 @@ /* Per drive/controller stuff **************************************/ struct s_drive_stuff { - /* waitquenes */ + /* waitqueues */ struct wait_queue *busyq; struct wait_queue *lockq; struct wait_queue *sleepq; @@ -145,7 +145,7 @@ /* cd infos */ struct s_diskinfo di; struct s_multi multi; - struct s_subqcode* toc; /* first enty of the toc array */ + struct s_subqcode* toc; /* first entry of the toc array */ struct s_subqcode start; struct s_subqcode stop; int xa; /* 1 if xa disk */ @@ -592,7 +592,7 @@ CURRENT->sector, CURRENT->nr_sectors))) { /*INFO(("do_request() read error\n"));*/ - xwarn("do_requst() read error\n"); + xwarn("do_request() read error\n"); if (stuffp->status & MCDX_ST_EOM) { CURRENT->sector += CURRENT->nr_sectors; CURRENT->nr_sectors = 0; @@ -636,7 +636,7 @@ from the hardware status register). If the last eject is too recent, an autoclose wouldn't probably be what we want ..., if we can't read the CD after an autoclose - no further autclose's will be tried */ + no further autocloses will be tried */ if (inb((unsigned int) stuffp->rreg_status) & MCDX_RBIT_DOOR) { if (jiffies - stuffp->ejected < ACLOSE_INHIBIT) return -EIO; if (stuffp->autoclose) mcdx_closedoor(stuffp, 1); @@ -847,7 +847,7 @@ static void mcdx_delay(struct s_drive_stuff *stuff, long jifs) /* This routine is used for sleeping. May be we could use a simple count loop w/ jumps to itself, but - I wanna make this independend of cpu speed. [1 jiffie is 1/HZ] sec */ + I wanna make this independent of cpu speed. [1 jiffy is 1/HZ] sec */ { unsigned long tout = jiffies + jifs; if (jifs < 0) return; @@ -899,7 +899,7 @@ xinfo( "intr() irq %d status 0x%02x\n", irq, inb((unsigned int) stuffp->rreg_data)); } else { - xinfo( "intr() irq %d ambigous hw status\n", irq); + xinfo( "intr() irq %d ambiguous hw status\n", irq); } } else { TRACE((IRQ, "irq() irq %d ok, status %02x\n", irq, b)); @@ -925,9 +925,9 @@ { int st; char c; - int disgard; + int discard; - if ((disgard = (buffer == NULL))) buffer = &c; + if ((discard = (buffer == NULL))) buffer = &c; while (stuffp->lock) { interruptible_sleep_on(&stuffp->lockq); @@ -966,7 +966,7 @@ } st = *bp; sz--; - if (!disgard) bp++; + if (!discard) bp++; TRACE((TALK, "talk() got status 0x%02x\n", st)); @@ -999,7 +999,7 @@ cmd[0], tries - 1, tries == 2 ? "y" : "ies")); st = -1; break; } - if (!disgard) bp++; + if (!discard) bp++; TRACE((TALK, "talk() got 0x%02x\n", *(bp - 1))); } } @@ -1080,7 +1080,7 @@ if (level < 1) return; va_start(args, fmt); if (sizeof(s) < vsprintf(s, fmt, args)) - printk(MCDX ":: dprintf exeeds limit!!\n"); + printk(MCDX ":: dprintf exceeds limit!!\n"); else printk(MCDX ":: %s", s); va_end(args); } @@ -1092,7 +1092,7 @@ va_list args; va_start(args, fmt); if (sizeof(s) < vsprintf(s, fmt, args)) - printk(MCDX ":: dprintf exeeds limit!!\n"); + printk(MCDX ":: dprintf exceeds limit!!\n"); else printk(MCDX ": %s", s); va_end(args); } @@ -1265,7 +1265,7 @@ mcdx_transfer(struct s_drive_stuff *stuffp, char *p, int sector, int nr_sectors) /* This seems to do the actually transfer. But it does more. It - keeps track of errors ocurred and will (if possible) fall back + keeps track of errors occurred and will (if possible) fall back to single speed on error. Return: -1 on timeout or other error else status byte (as in stuff->st) */ @@ -1279,7 +1279,7 @@ else return ans; if (stuffp->readerrs && stuffp->readcmd == READ1X) { - WARN(("XXX Alrady reading 1x -- no chance\n")); + WARN(("XXX Already reading 1x -- no chance\n")); return -1; } @@ -1327,7 +1327,7 @@ do { /* wait for the drive become idle, but first - check for possible occured errors --- the drive + check for possible occurred errors --- the drive seems to report them asynchronously */ current->timeout = jiffies + 5 * HZ; diff -u --recursive --new-file v1.3.86/linux/drivers/cdrom/sjcd.c linux/drivers/cdrom/sjcd.c --- v1.3.86/linux/drivers/cdrom/sjcd.c Tue Apr 2 13:32:20 1996 +++ linux/drivers/cdrom/sjcd.c Fri Apr 12 09:49:33 1996 @@ -42,7 +42,7 @@ * 1.5 Module support and bugfixes. * Tray locking. * 1.6 Removed ISP16 code from this driver. - * Allow only to set io base address on comand line: sjcd= + * Allow only to set io base address on command line: sjcd= * Changes to Documentation/cdrom/sjcd * Added cleanup after any error in the initialisation. * @@ -329,7 +329,7 @@ } /* - * This is just timout counter, and nothing more. Surprized ? :-) + * This is just timeout counter, and nothing more. Surprised ? :-) */ static volatile long sjcd_status_timeout; @@ -528,7 +528,7 @@ } /* - * Get the disk lenght info. + * Get the disk length info. */ sjcd_send_1_cmd( SCMD_GET_DISK_INFO, SCMD_GET_D_SIZE ); sjcd_receive_status(); @@ -1023,7 +1023,7 @@ case SJCD_S_READ:{ if( sjcd_status_valid ? 1 : sjcd_check_status() ){ /* - * Previos command is completed. + * Previous command is completed. */ if( !sjcd_status_valid || sjcd_command_failed ){ #if defined( SJCD_TRACE ) @@ -1146,7 +1146,7 @@ /* * Everything seems to be OK. Just read the frame and recalculate - * indecis. + * indices. */ sjcd_buf_bn[ sjcd_buf_in ] = -1; /* ??? */ insb( SJCDPORT( 2 ), sjcd_buf + 2048 * sjcd_buf_in, 2048 ); @@ -1272,7 +1272,7 @@ sjcd_transfer_is_active = 1; while( CURRENT_IS_VALID ){ /* - * Who of us are paranoic? + * Who of us are paranoiac? */ if( CURRENT->bh && !buffer_locked(CURRENT->bh) ) panic( DEVICE_NAME ": block not locked" ); diff -u --recursive --new-file v1.3.86/linux/drivers/char/ChangeLog linux/drivers/char/ChangeLog --- v1.3.86/linux/drivers/char/ChangeLog Sat Mar 16 20:17:23 1996 +++ linux/drivers/char/ChangeLog Fri Apr 12 09:49:33 1996 @@ -17,7 +17,7 @@ decremented. * serial.c (startup, rs_open): Remove race condition that could - cuase a memory leak of one page. (Fortunately, both race + cause a memory leak of one page. (Fortunately, both race conditions were relatively rare in practice.) Tue Dec 5 13:21:27 1995 diff -u --recursive --new-file v1.3.86/linux/drivers/char/consolemap.c linux/drivers/char/consolemap.c --- v1.3.86/linux/drivers/char/consolemap.c Mon Sep 18 07:55:41 1995 +++ linux/drivers/char/consolemap.c Fri Apr 12 09:49:34 1996 @@ -222,7 +222,7 @@ * * The "old" variants are for translation directly to font (using the * 0xf000-0xf0ff "transparent" Unicodes) whereas the "new" variants set - * Unicodes explictly. + * Unicodes explicitly. */ int con_set_trans_old(unsigned char * arg) { diff -u --recursive --new-file v1.3.86/linux/drivers/char/cyclades.c linux/drivers/char/cyclades.c --- v1.3.86/linux/drivers/char/cyclades.c Sun Mar 24 12:09:36 1996 +++ linux/drivers/char/cyclades.c Fri Apr 12 09:49:34 1996 @@ -326,7 +326,7 @@ /* This is the per-card data structure containing address, irq, number of channels, etc. This driver supports a maximum of NR_CARDS cards. If you need to install more boards, change this constant in the definition - bellow. No other change is necesary to support more boards. */ + bellow. No other change is necessary to support more boards. */ #define NR_CARDS 4 @@ -2836,7 +2836,7 @@ /* the code below is responsible to find the boards. Each different type of board has its own detection routine. If a board is found, the next cy_card structure available is set by the detection - routine. These funcions are responsible for checking the availability + routine. These functions are responsible for checking the availability of cy_card and cy_port data structures and updating the cy_next_channel. */ diff -u --recursive --new-file v1.3.86/linux/drivers/char/ftape/Makefile linux/drivers/char/ftape/Makefile --- v1.3.86/linux/drivers/char/ftape/Makefile Thu Mar 21 08:55:09 1996 +++ linux/drivers/char/ftape/Makefile Fri Apr 12 09:49:34 1996 @@ -23,7 +23,7 @@ # FDC_BASE - sets base address (only!) if using non-standard fdc # FDC_IRQ - sets interrupt if FDC_BASE is defined # FDC_DMA - sets dma channel if FDC_BASE is defined -# MACH2 - Support for Mountain MACH-2 contoller at either 1E0 +# MACH2 - Support for Mountain MACH-2 controller at either 1E0 # or 3E0, don't forget the FDC_OPT's ! # CLK_48MHZ - Set to 1. If you have a i82078-1 FDC and it does not # work, try setting it to 0. (only used for i82078-1's) diff -u --recursive --new-file v1.3.86/linux/drivers/char/ftape/RELEASE-NOTES linux/drivers/char/ftape/RELEASE-NOTES --- v1.3.86/linux/drivers/char/ftape/RELEASE-NOTES Fri Mar 15 11:59:15 1996 +++ linux/drivers/char/ftape/RELEASE-NOTES Fri Apr 12 09:49:34 1996 @@ -62,7 +62,7 @@ - QIC-3020/TR-3: 1Mbps support works. Neal is capable of reading and writing data to a tape. ftape will automatically detect the type of tape (e.g. TR-3 vs QIC-80) and move the fdc in and out of - "perpendicular mode" as neccesarry. + "perpendicular mode" as necessary. - 2Mbps support is disabled by default, since it is not fully debugged. If you are adventurous, remove -DFDC_82078SL in the Makefile and see what happens :-) @@ -273,7 +273,7 @@ bad segment. This causes most applications to continue to work (tar and afio) loosing only a small amount (up to 29 Kb) of data. -Retried read operations will now be done slighly off-track +Retried read operations will now be done slightly off-track to improve the chance of success. Serious head off-track errors will be detected. @@ -290,7 +290,7 @@ Kernels and compilers --------------------- -Ftape is currently being developped using the 2.5.8 compiler. +Ftape is currently being developed using the 2.5.8 compiler. The older 2.4.5 probably works too (Set option in Makefile!). I have no experience with any later compilers nor Elf support. Any information on this is welcome. @@ -372,7 +372,7 @@ ===== Release notes for ftape-2.02d, 30/04/95 ===== -- Improved abortion on signals: Interrupt will make a gracefull +- Improved abortion on signals: Interrupt will make a graceful exit, Kill will be less nice and should be used if everything else fails. - Included check for tape-head off track. @@ -541,7 +541,7 @@ The error correction code can handle up to three of these hard errors provided there are no other errors in that segment (32 Kb). -- Allows writing to tapes with defects (although the risc of loosing +- Allows writing to tapes with defects (although the risk of loosing data increases !) Look for the media-defects entry printed with the statistics when the tape is closed. A non-zero value here shows a bad tape. diff -u --recursive --new-file v1.3.86/linux/drivers/char/ftape/fc-10.c linux/drivers/char/ftape/fc-10.c --- v1.3.86/linux/drivers/char/ftape/fc-10.c Thu Mar 14 11:51:41 1996 +++ linux/drivers/char/ftape/fc-10.c Fri Apr 12 09:49:34 1996 @@ -14,7 +14,7 @@ Modified to use an array of addresses and generally cleaned up (made much shorter) 4 June 94, dosemu isn't that good at writing short code it - would seem :-). Made independant of 0x180, but I doubt it will work + would seem :-). Made independent of 0x180, but I doubt it will work at any other address. Modified for distribution with ftape source. 21 June 94, SJL. diff -u --recursive --new-file v1.3.86/linux/drivers/char/ftape/fdc-io.c linux/drivers/char/ftape/fdc-io.c --- v1.3.86/linux/drivers/char/ftape/fdc-io.c Thu Mar 14 11:55:09 1996 +++ linux/drivers/char/ftape/fdc-io.c Fri Apr 12 09:49:34 1996 @@ -61,7 +61,7 @@ static int fdc_seek_rate = 14; /* default rate = 2 msec @ 500 Kbps */ static void (*do_ftape) (void); static int fdc_fifo_state; /* original fifo setting - fifo enabled */ -static int fdc_fifo_thr; /* original fifo setting - thresshold */ +static int fdc_fifo_thr; /* original fifo setting - threshold */ static int fdc_lock_state; /* original lock setting - locked */ static int fdc_fifo_locked = 0; /* has fifo && lock set ? */ static byte fdc_precomp = 0; /* sets fdc to default precomp. value */ @@ -854,7 +854,7 @@ set_dma_count(fdc.dma, SECTOR_SIZE * buff->sector_count); #ifdef GCC_2_4_5_BUG /* This seemingly stupid construction confuses the gcc-2.4.5 - * code generater enough to create correct code. + * code generator enough to create correct code. */ if (1) { int i; @@ -920,7 +920,7 @@ fdc_fifo_state = (reg[8] & 0x20) == 0; fdc_lock_state = reg[7] & 0x80; fdc_fifo_thr = 1 + (reg[8] & 0x0f); - TRACEx3(5, "original fifo state: %sabled, thresshold %d, %slocked", + TRACEx3(5, "original fifo state: %sabled, threshold %d, %slocked", (fdc_fifo_state) ? "en" : "dis", fdc_fifo_thr, (fdc_lock_state) ? "" : "not "); /* If fdc is already locked, unlock it first ! @@ -933,7 +933,7 @@ result = -EIO; } } - /* Enable fifo and set thresshold at xx bytes to allow a + /* Enable fifo and set threshold at xx bytes to allow a * reasonably large latency and reduce number of dma bursts. */ fdc_ready_wait(100); diff -u --recursive --new-file v1.3.86/linux/drivers/char/ftape/fdc-isr.c linux/drivers/char/ftape/fdc-isr.c --- v1.3.86/linux/drivers/char/ftape/fdc-isr.c Thu Mar 14 11:53:44 1996 +++ linux/drivers/char/ftape/fdc-isr.c Fri Apr 12 09:49:34 1996 @@ -291,7 +291,7 @@ /* Sector_offset points to the problem area, except if we got * a data_crc_error. In that case it points one past the failing * sector. - * Now adjust sector_offset so it allways points one past he + * Now adjust sector_offset so it always points one past he * failing sector. I.e. skip the bad sector. */ if (cause != no_error) { @@ -495,7 +495,7 @@ * If there are any soft errors before the failing sector, * find the first soft error and return the sector offset. * Otherwise find the last hard error. - * Note: there should allways be at least one hard or soft error ! + * Note: there should always be at least one hard or soft error ! */ if (buff->sector_offset < 1 || buff->sector_offset > 32) { TRACEx1(1, "bug: sector_offset = %d", buff->sector_offset); @@ -732,7 +732,7 @@ if (in[1] & 0x02) { TRACE(1, "media not writable"); } else { - TRACE(-1, "unforseen write error"); + TRACE(-1, "unforeseen write error"); } fdc_mode = fdc_idle; break; @@ -757,7 +757,7 @@ ++expected_stray_interrupts; } } else { /* !FDC_BUSY */ - /* clear interrupt, cause should be gotten by issueing + /* clear interrupt, cause should be gotten by issuing * a Sense Interrupt Status command. */ if (fdc_mode == fdc_recalibrating || fdc_mode == fdc_seeking) { diff -u --recursive --new-file v1.3.86/linux/drivers/char/ftape/ftape-ctl.c linux/drivers/char/ftape/ftape-ctl.c --- v1.3.86/linux/drivers/char/ftape/ftape-ctl.c Thu Mar 14 11:53:44 1996 +++ linux/drivers/char/ftape/ftape-ctl.c Fri Apr 12 09:49:34 1996 @@ -841,7 +841,7 @@ drive_type.vendor_id = UNKNOWN_VENDOR; drive_type.speed = 0; drive_type.wake_up = unknown_wake_up; - drive_type.name = "Unkown"; + drive_type.name = "Unknown"; timeout.seek = 650 * SECOND; timeout.reset = 670 * SECOND; diff -u --recursive --new-file v1.3.86/linux/drivers/char/ftape/ftape-io.c linux/drivers/char/ftape/ftape-io.c --- v1.3.86/linux/drivers/char/ftape/ftape-io.c Thu Mar 14 11:53:45 1996 +++ linux/drivers/char/ftape/ftape-io.c Fri Apr 12 09:49:35 1996 @@ -951,7 +951,7 @@ default: result = -ENODEV; /* unknown wakeup method */ } - /* If wakeup succeeded we should't get and error here.. + /* If wakeup succeeded we shouldn't get and error here.. */ if (result == 0) { result = ftape_report_raw_drive_status(&status); diff -u --recursive --new-file v1.3.86/linux/drivers/char/ftape/ftape-rw.c linux/drivers/char/ftape/ftape-rw.c --- v1.3.86/linux/drivers/char/ftape/ftape-rw.c Thu Mar 14 11:53:45 1996 +++ linux/drivers/char/ftape/ftape-rw.c Fri Apr 12 09:49:35 1996 @@ -529,7 +529,7 @@ * if off-track the error will be approximately 2 * segments_per_track. */ if (location.track == -1) { - return 1; /* unforseen situation, don't generate error */ + return 1; /* unforeseen situation, don't generate error */ } else { /* Use margin of segments_per_track on both sides because ftape * needs some margin and the error we're looking for is much larger ! diff -u --recursive --new-file v1.3.86/linux/drivers/char/ftape/ftape-rw.h linux/drivers/char/ftape/ftape-rw.h --- v1.3.86/linux/drivers/char/ftape/ftape-rw.h Wed Mar 6 15:07:20 1996 +++ linux/drivers/char/ftape/ftape-rw.h Fri Apr 12 09:49:35 1996 @@ -96,7 +96,7 @@ */ volatile unsigned remaining; - /* points to next segment (contigious) to be handled, + /* points to next segment (contiguous) to be handled, * or is zero if no read-ahead is allowed. */ volatile unsigned next_segment; diff -u --recursive --new-file v1.3.86/linux/drivers/char/ftape/qic117.h linux/drivers/char/ftape/qic117.h --- v1.3.86/linux/drivers/char/ftape/qic117.h Wed Mar 6 15:07:21 1996 +++ linux/drivers/char/ftape/qic117.h Fri Apr 12 09:49:35 1996 @@ -261,7 +261,7 @@ /*27*/ { "Software Reset Occurred", 0, },\ /*28*/ { "Diagnostic Mode 1 Error", 1, },\ /*29*/ { "Diagnostic Mode 2 Error", 1, },\ - /*30*/ { "Command Received During Non-Interruptable Process", 1, },\ + /*30*/ { "Command Received During Non-Interruptible Process", 1, },\ /*31*/ { "Rate or Format Selection Error", 1, },\ /*32*/ { "Illegal Command While in High Speed Mode", 1, },\ /*33*/ { "Illegal Seek Segment Value", 1, },\ diff -u --recursive --new-file v1.3.86/linux/drivers/char/istallion.c linux/drivers/char/istallion.c --- v1.3.86/linux/drivers/char/istallion.c Tue Apr 2 13:32:20 1996 +++ linux/drivers/char/istallion.c Fri Apr 12 09:49:35 1996 @@ -130,8 +130,8 @@ * 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 linke the driver into - * the kernel, sincethe memory management code is not set up early + * 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 @@ -152,7 +152,7 @@ /* * Define some important driver characteristics. Device major numbers - * allocated as per Linux Device Registery. + * allocated as per Linux Device Registry. */ #ifndef STL_SIOMEMMAJOR #define STL_SIOMEMMAJOR 28 @@ -329,7 +329,7 @@ /* * Per board state flags. Used with the state field of the board struct. * Not really much here... All we need to do is keep track of whether - * the board has been detected, and whether it is actully running a slave + * the board has been detected, and whether it is actually running a slave * or not. */ #define BST_FOUND 0x1 @@ -415,7 +415,7 @@ /* * Hardware configuration info for ECP boards. These defines apply - * to the directly accessable io ports of the ECP. There is a set of + * to the directly accessible io ports of the ECP. There is a set of * defines for each ECP board type, ISA, EISA and MCA. */ #define ECP_IOSIZE 4 @@ -472,7 +472,7 @@ /* * Hardware configuration info for ONboard and Brumby boards. These - * defines apply to the directly accessable io ports of these boards. + * defines apply to the directly accessible io ports of these boards. */ #define ONB_IOSIZE 16 #define ONB_MEMSIZE (64 * 1024) @@ -910,7 +910,7 @@ /* * On the first open of the device setup the port hardware, and * initialize the per port data structure. Since initializing the port - * requires serval commands to the board we will need to wait for any + * requires several commands to the board we will need to wait for any * other open that is already initializing the port. */ portp->tty = tty; @@ -1470,9 +1470,9 @@ * big problem is that we do not want shared memory enabled when we are * sleeping (other boards may be serviced while asleep). Something else * to note here is the reading of the tail twice. Since the boards - * shared memory can be on an 8-bit bus then we need to be very carefull + * shared memory can be on an 8-bit bus then we need to be very careful * reading 16 bit quantities - since both the board (slave) and host - * cound be writing and reading at the same time. + * could be writing and reading at the same time. */ if (from_user) { save_flags(flags); @@ -2286,9 +2286,9 @@ /* * Generic send command routine. This will send a message to the slave, * of the specified type with the specified argument. Must be very - * carefull of data that will be copied out from shared memory - + * careful of data that will be copied out from shared memory - * containing command results. The command completion is all done from - * a poll routine that does not have user coontext. Therefore you cannot + * a poll routine that does not have user context. Therefore you cannot * copy back directly into user space, or to the kernel stack of a * process. This routine does not sleep, so can be called from anywhere. */ @@ -2338,7 +2338,7 @@ /* * Read data from shared memory. This assumes that the shared memory * is enabled and that interrupts are off. Basically we just empty out - * the shared memory buffer into the tty buffer. Must be carefull to + * the shared memory buffer into the tty buffer. Must be careful to * handle the case where we fill up the tty buffer, but still have * more chars to unload. */ @@ -2599,7 +2599,7 @@ /* * Driver poll routine. This routine polls the boards in use and passes - * messages back up to host when neccesary. This is actually very + * messages back up to host when necessary. This is actually very * CPU efficient, since we will always have the kernel poll clock, it * adds only a few cycles when idle (since board service can be * determined very easily), but when loaded generates no interrupts @@ -2831,7 +2831,7 @@ /* * Convert the signals returned from the slave into a local TIOCM type - * signals value. We keep them localy in TIOCM format. + * signals value. We keep them locally in TIOCM format. */ static long stli_mktiocm(unsigned long sigvalue) @@ -3431,7 +3431,7 @@ return((void *) NULL); } if ((rc = remap_page_range((TASK_SIZE + ((unsigned long) virtaddr)), physaddr, size, PAGE_IOMEM))) { - printk("STALLION: failed to map phyiscal address=%x, errno=%d\n", (int) physaddr, rc); + printk("STALLION: failed to map physical address=%x, errno=%d\n", (int) physaddr, rc); return((void *) NULL); } return(virtaddr); @@ -3908,7 +3908,7 @@ * First up we reset the board, to get it into a known state. There * is only 2 board types here we need to worry about. Don;t use the * standard board init routine here, it programs up the shared - * memopry address, and we don't know it yet... + * memory address, and we don't know it yet... */ if (brdp->brdtype == BRD_ECPE) { outb(0x1, (brdp->iobase + ECP_EIBRDENAB)); diff -u --recursive --new-file v1.3.86/linux/drivers/char/keyboard.c linux/drivers/char/keyboard.c --- v1.3.86/linux/drivers/char/keyboard.c Sun Mar 31 00:13:17 1996 +++ linux/drivers/char/keyboard.c Fri Apr 12 09:49:35 1996 @@ -1273,9 +1273,9 @@ data = inb(KBD_DATA_REG); /* - * Check to see if a timeout error has occured. This means + * Check to see if a timeout error has occurred. This means * that transmission was started but did not complete in the - * normal time cycle. PERR is set when a parity error occured + * normal time cycle. PERR is set when a parity error occurred * in the last transmission. */ if (status & (KBD_GTO | KBD_PERR)) { diff -u --recursive --new-file v1.3.86/linux/drivers/char/pcxx.c linux/drivers/char/pcxx.c --- v1.3.86/linux/drivers/char/pcxx.c Mon Apr 8 19:01:43 1996 +++ linux/drivers/char/pcxx.c Fri Apr 12 09:49:35 1996 @@ -24,7 +24,7 @@ * 1.5.3 March 9, 1996 Christoph Lameter: Fixed 115.2K Support. Memory * allocation harmonized with 1.3.X Series. * 1.5.4 March 30, 1996 Christoph Lameter: Fixup for 1.3.81. Use init_bh - * instead of direct assigment to kernel arrays. + * instead of direct assignment to kernel arrays. * 1.5.5 April 5, 1996 Major device numbers corrected. * Mike McLagan: Add setup * variable handling, instead of using the old pcxxconfig.h @@ -946,7 +946,7 @@ numcards, board_desc[board.type], board_mem[board.type], board.numports, board.port, (unsigned int) board.membase); - /* keep track of my inital minor number */ + /* keep track of my initial minor number */ if (numcards) boards[numcards].first_minor = boards[numcards-1].first_minor + boards[numcards-1].numports; else diff -u --recursive --new-file v1.3.86/linux/drivers/char/random.c linux/drivers/char/random.c --- v1.3.86/linux/drivers/char/random.c Wed Jan 3 14:04:53 1996 +++ linux/drivers/char/random.c Fri Apr 12 09:49:35 1996 @@ -44,14 +44,14 @@ * and returns good random numbers, suitable for cryptographic use. * Besides the obvious cryptographic uses, these numbers are also good * for seeding TCP sequence numbers, and other places where it is - * desireable to have numbers which are not only random, but hard to + * desirable to have numbers which are not only random, but hard to * predict by an attacker. * * Theory of operation * =================== * * Computers are very predictable devices. Hence it is extremely hard - * to produce truely random numbers on a computer --- as opposed to + * to produce truly random numbers on a computer --- as opposed to * pseudo-random numbers, which can easily generated by using a * algorithm. Unfortunately, it is very easy for attackers to guess * the sequence of pseudo-random number generators, and for some @@ -89,7 +89,7 @@ * random numbers; however, an attacker may (at least in theory) be * able to infer the future output of the generator from prior * outputs. This requires successful cryptanalysis of MD5, which is - * not believed to be feasible, but there is a remote possiblility. + * not believed to be feasible, but there is a remote possibility. * Nonetheless, these numbers should be useful for the vast majority * of purposes. * @@ -266,7 +266,7 @@ return; /* - * If kamlloc returns null, we just won't use that entropy + * If kmalloc returns null, we just won't use that entropy * source. */ state = kmalloc(sizeof(struct timer_rand_state), GFP_KERNEL); @@ -284,7 +284,7 @@ return; /* - * If kamlloc returns null, we just won't use that entropy + * If kmalloc returns null, we just won't use that entropy * source. */ state = kmalloc(sizeof(struct timer_rand_state), mode); diff -u --recursive --new-file v1.3.86/linux/drivers/char/scc.c linux/drivers/char/scc.c --- v1.3.86/linux/drivers/char/scc.c Fri Mar 1 07:50:41 1996 +++ linux/drivers/char/scc.c Fri Apr 12 09:49:35 1996 @@ -36,7 +36,7 @@ This program is free software; you can redistribute it and/or modify it under the terms of the (modified) GNU General Public License - delivered with the LinuX kernel source. + delivered with the Linux kernel source. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -455,7 +455,7 @@ #endif *queue = buffer->next; /* new head of chain */ - buffer->next = NULLBUF; /* for securety only... */ + buffer->next = NULLBUF; /* for security only... */ buffer->prev = NULLBUF; buffer->rw_ptr = buffer->data; } @@ -707,7 +707,7 @@ /* ----> interrupt service routine for the 8530 <---- */ -/* it's recommendet to keep this function "inline" ;-) */ +/* it's recommended to keep this function "inline" ;-) */ static inline void scc_isr_dispatch(register struct scc_channel *scc, register int vector) @@ -754,7 +754,7 @@ /* ...not forever! */ /* Extract channel number and status from vector. */ - /* Isolate channel nummer */ + /* Isolate channel number */ /* Call handler */ if (vector & 0x01) break; @@ -794,7 +794,7 @@ vector=Inb(q); /* Read the vector */ /* Extract channel number and status from vector. */ - /* Isolate channel nummer */ + /* Isolate channel number */ /* Call handler */ @@ -1147,7 +1147,7 @@ } /* - * Initalization according to the Z8530 manual (SGS-Thomson's version): + * Initialization according to the Z8530 manual (SGS-Thomson's version): * * 1. Modes and constants * diff -u --recursive --new-file v1.3.86/linux/drivers/char/stallion.c linux/drivers/char/stallion.c --- v1.3.86/linux/drivers/char/stallion.c Tue Apr 2 13:32:20 1996 +++ linux/drivers/char/stallion.c Fri Apr 12 09:49:35 1996 @@ -75,11 +75,11 @@ * Some examples: * { BRD_EASYIO, 0x2a0, 0, 0, 10, 0 } * This line would configure an EasyIO board (4 or 8, no difference), - * at io addres 2a0 and irq 10. + * at io address 2a0 and irq 10. * Another example: * { BRD_ECH, 0x2a8, 0x280, 0, 12, 0 }, * This line will configure an EasyConnection 8/32 board at primary io - * addres 2a8, secondary io address 280 and irq 12. + * address 2a8, secondary io address 280 and irq 12. * Enter as many lines into this array as you want (only the first 4 * will actually be used!). Any combination of EasyIO and EasyConnection * boards can be specified. EasyConnection 8/32 boards can share their @@ -109,7 +109,7 @@ /* * Define some important driver characteristics. Device major numbers - * allocated as per Linux Device Registery. + * allocated as per Linux Device Registry. */ #ifndef STL_SIOMEMMAJOR #define STL_SIOMEMMAJOR 28 @@ -206,7 +206,7 @@ * Define a ring queue structure for each port. This will hold the * TX data waiting to be output. Characters are fed into this buffer * from the line discipline (or even direct from user space!) and - * then fed into the UARTs during interrupts. Will use a clasic ring + * then fed into the UARTs during interrupts. Will use a classic ring * queue here for this. The good thing about this type of ring queue * is that the head and tail pointers can be updated without interrupt * protection - since "write" code only needs to change the head, and @@ -344,7 +344,7 @@ /* * Hardware ID bits for the EasyIO and ECH boards. These defines apply - * to the directly accessable io ports of these boards (not the cd1400 + * to the directly accessible io ports of these boards (not the cd1400 * uarts - they are in cd1400.h). */ #define EIO_8PORTRS 0x04 @@ -2168,9 +2168,9 @@ /* * Setup cd1400 enhanced modes if we can. In particular we want to - * handle as much of the flow control as possbile automatically. As + * handle as much of the flow control as possible automatically. As * well as saving a few CPU cycles it will also greatly improve flow - * control reliablilty. + * control reliability. */ if (tiosp->c_iflag & IXON) { cor2 |= COR2_TXIBE; @@ -2309,7 +2309,7 @@ /*****************************************************************************/ /* - * Enable/Disable the Transmitter and/or Reciever. + * Enable/Disable the Transmitter and/or Receiver. */ static void stl_enablerxtx(stlport_t *portp, int rx, int tx) @@ -2345,7 +2345,7 @@ /*****************************************************************************/ /* - * Start/stop the Transmitter and/or Reciever. + * Start/stop the Transmitter and/or Receiver. */ static void stl_startrxtx(stlport_t *portp, int rx, int tx) @@ -2431,7 +2431,7 @@ /* * Map in interrupt vector to this driver. Check that we don't * already have this vector mapped, we might be sharing this - * interrupt accross multiple boards. + * interrupt across multiple boards. */ static int stl_mapirq(int irq) @@ -2650,7 +2650,7 @@ status = 0; /* - * Set up the initial board register contents for boards. This varys a + * Set up the initial board register contents for boards. This varies a * bit between the different board types. So we need to handle each * separately. Also do a check that the supplied IRQ is good. */ diff -u --recursive --new-file v1.3.86/linux/drivers/char/tga.c linux/drivers/char/tga.c --- v1.3.86/linux/drivers/char/tga.c Sun Mar 24 12:09:36 1996 +++ linux/drivers/char/tga.c Fri Apr 12 09:49:35 1996 @@ -434,7 +434,7 @@ } /* - * video init code, called from withing the PCI bus probing code; + * video init code, called from within the PCI bus probing code; * when TGA console is configured, at the end of the probing code, * we call here to look for a TGA device, and proceed... */ @@ -566,7 +566,7 @@ TGA_WRITE_REG(0x12345678, TGA_BLOCK_COLOR0_REG); TGA_WRITE_REG(0x12345678, TGA_BLOCK_COLOR1_REG); - /* init video timeing regs for 640x480 @ 60 Hz */ + /* init video timing regs for 640x480 @ 60 Hz */ TGA_WRITE_REG(0x018608a0, TGA_HORIZ_REG); TGA_WRITE_REG(0x084251e0, TGA_VERT_REG); diff -u --recursive --new-file v1.3.86/linux/drivers/char/wdt.c linux/drivers/char/wdt.c --- v1.3.86/linux/drivers/char/wdt.c Sun Mar 31 00:13:17 1996 +++ linux/drivers/char/wdt.c Fri Apr 12 10:33:25 1996 @@ -48,7 +48,7 @@ #define WD_TIMO (100*60) /* 1 minute */ /* - * Programming suppoort + * Programming support */ static void wdt_ctr_mode(int ctr, int mode) @@ -213,7 +213,7 @@ wdt_release }; -static struct miscdevice wdt_mouse= +static struct miscdevice wdt_miscdev= { WATCHDOG_MINOR, "wdt", @@ -221,7 +221,7 @@ }; #ifdef CONFIG_WDT_501 -static struct miscdevice temp_mouse= +static struct miscdevice temp_miscdev= { TEMP_MINOR, "temperature", @@ -239,9 +239,9 @@ printk("IRQ %d is not free.\n", irq); return -EIO; } - mouse_register(&wdt_mouse); + misc_register(&wdt_miscdev); #ifdef CONFIG_WDT_501 - mouse_register(&temp_mouse); + misc_register(&temp_miscdev); #endif request_region(io, 8, "wdt501"); return 0; @@ -249,9 +249,9 @@ void cleanup_module(void) { - mouse_deregister(&wdt_mouse); + misc_deregister(&wdt_miscdev); #ifdef CONFIG_WDT_501 - misc_deregister(&temp_mouse); + misc_deregister(&temp_miscdev); #endif release_region(io,8); free_irq(irq, NULL); @@ -267,9 +267,9 @@ printk("IRQ %d is not free.\n", irq); return -EIO; } - mouse_register(&wdt_mouse); + misc_register(&wdt_miscdev); #ifdef CONFIG_WDT_501 - misc_register(&temp_mouse); + misc_register(&temp_miscdev); #endif request_region(io, 8, "wdt501"); return 0; diff -u --recursive --new-file v1.3.86/linux/drivers/isdn/icn/icn.c linux/drivers/isdn/icn/icn.c --- v1.3.86/linux/drivers/isdn/icn/icn.c Mon Feb 26 11:58:04 1996 +++ linux/drivers/isdn/icn/icn.c Fri Apr 12 09:49:36 1996 @@ -31,10 +31,10 @@ * * Revision 1.14 1995/12/18 18:23:37 fritz * Support for ICN-2B Cards. - * Change for supporting user-setable service-octet. + * Change for supporting user-settable service-octet. * * Revision 1.13 1995/10/29 21:41:07 fritz - * Added support for DriverId's, added Jan's patches for Kernelversions. + * Added support for DriverId's, added Jan's patches for Kernel versions. * * Revision 1.12 1995/04/29 13:07:35 fritz * Added support for new Euro-ISDN-firmware @@ -51,7 +51,7 @@ * * Revision 1.8 1995/03/15 12:49:44 fritz * Added support for SPV's - * Splitted pollbchan_work ifor calling send-routine directly + * Split pollbchan_work ifor calling send-routine directly * * Revision 1.7 1995/02/20 03:48:03 fritz * Added support of new request_region-function. @@ -642,7 +642,7 @@ /* * Check Statusqueue-Pointer from isdn-card. * If there are new status-replies from the interface, check - * them against B-Channel-connects/disconnects and set flags arrcordingly. + * them against B-Channel-connects/disconnects and set flags accordingly. * Wake-Up any processes, who are reading the status-device. * If there are B-Channels open, initiate a timer-callback to * icn_pollbchan(). @@ -794,7 +794,7 @@ dev->mvalid = 1; } restore_flags(flags); - OUTB_P(0, ICN_RUN); /* Reset Controler */ + OUTB_P(0, ICN_RUN); /* Reset Controller */ OUTB_P(0, ICN_MAPRAM); /* Disable RAM */ icn_shiftout(ICN_CFG, 0x0f, 3, 4); /* Windowsize= 16k */ icn_shiftout(ICN_CFG, (unsigned long) dev->shmem, 23, 10); /* Set RAM-Addr. */ @@ -1484,7 +1484,7 @@ dev2->interface.statcallb(&cmd); } if (dev->rvalid) { - OUTB_P(0, ICN_RUN); /* Reset Controler */ + OUTB_P(0, ICN_RUN); /* Reset Controller */ OUTB_P(0, ICN_MAPRAM); /* Disable RAM */ release_region(dev->port, ICN_PORTLEN); } diff -u --recursive --new-file v1.3.86/linux/drivers/isdn/icn/icn.h linux/drivers/isdn/icn/icn.h --- v1.3.86/linux/drivers/isdn/icn/icn.h Mon Feb 26 12:29:22 1996 +++ linux/drivers/isdn/icn/icn.h Fri Apr 12 09:49:36 1996 @@ -24,13 +24,13 @@ * * Revision 1.11 1995/12/18 18:25:00 fritz * Support for ICN-2B Cards. - * Change for supporting user-setable service-octet. + * Change for supporting user-settable service-octet. * * Revision 1.10 1995/10/29 21:43:10 fritz * Added support for leased lines. * * Revision 1.9 1995/04/23 13:42:10 fritz - * Added some constants for distingushing 1TR6 and DSS1 + * Added some constants for distinguishing 1TR6 and DSS1 * * Revision 1.8 1995/03/25 23:18:55 fritz * Changed ICN_PORTLEN to reflect correct number of ports. @@ -184,7 +184,7 @@ } pqueue; typedef struct { - unsigned short port; /* Base-port-adress */ + unsigned short port; /* Base-port-address */ icn_shmem *shmem; /* Pointer to memory-mapped-buffers */ int myid; /* Driver-Nr. assigned by linklevel */ int rvalid; /* IO-portregion has been requested */ @@ -194,7 +194,7 @@ unsigned short flags; /* Statusflags */ int doubleS0; /* Flag: Double-S0-Card */ int secondhalf; /* Flag: Second half of a doubleS0 */ - int ptype; /* Protocoltype (1TR6 or Euro) */ + int ptype; /* Protocol type (1TR6 or Euro) */ struct timer_list st_timer; /* Timer for Status-Polls */ struct timer_list rb_timer; /* Timer for B-Channel-Polls */ int channel; /* Currently mapped Channel */ diff -u --recursive --new-file v1.3.86/linux/drivers/isdn/isdn_common.h linux/drivers/isdn/isdn_common.h --- v1.3.86/linux/drivers/isdn/isdn_common.h Mon Feb 26 11:58:05 1996 +++ linux/drivers/isdn/isdn_common.h Fri Apr 12 09:49:36 1996 @@ -1,6 +1,6 @@ /* $Id: isdn_common.h,v 1.1 1996/01/10 21:37:19 fritz Exp fritz $ * - * header for Linux ISDN subsystem, common used funtions and debugging-switches (linklevel). + * header for Linux ISDN subsystem, common used functions and debugging-switches (linklevel). * * Copyright 1994,95,96 by Fritz Elfert (fritz@wuemaus.franken.de) * Copyright 1995,96 by Thinking Objects Software GmbH Wuerzburg diff -u --recursive --new-file v1.3.86/linux/drivers/isdn/isdn_net.c linux/drivers/isdn/isdn_net.c --- v1.3.86/linux/drivers/isdn/isdn_net.c Mon Feb 26 11:58:05 1996 +++ linux/drivers/isdn/isdn_net.c Fri Apr 12 09:49:36 1996 @@ -284,7 +284,7 @@ } /* - * Check, if a numer contains wilcard-characters, in which case it + * Check, if a number contains wildcard-characters, in which case it * is for incoming purposes only. */ static int @@ -622,7 +622,7 @@ /* * Generic routine to send out an skbuf. * If lowlevel-device does not support supports skbufs, use - * standard send-routine, else sind directly. + * standard send-routine, else send directly. * * Return: 0 on success, !0 on failure. * Side-effects: ndev->tbusy is cleared on success. @@ -665,7 +665,7 @@ { int ret; - /* For the other encaps the header has allready been built */ + /* For the other encaps the header has already been built */ #ifdef CONFIG_ISDN_PPP if (lp->p_encap == ISDN_NET_ENCAP_SYNCPPP) return (isdn_ppp_xmit(skb, ndev)); @@ -867,9 +867,9 @@ } /* This is simply a copy from std. eth.c EXCEPT we pull ETH_HLEN - * instead of dev->hard_header_len off. This is done, because the - * lowlevel-driver has already pulled of it's stuff, when we get - * here and this routine only get's called whit p_encap == ETHER. + * instead of dev->hard_header_len off. This is done because the + * lowlevel-driver has already pulled off its stuff when we get + * here and this routine only gets called with p_encap == ETHER. * Determine the packet's protocol ID. The rule here is that we * assume 802.3 if the type field is short enough to be a length. * This is normal practice and works for any 'now in use' protocol. @@ -908,7 +908,7 @@ /* * This is a magic hack to spot IPX packets. Older Novell breaks * the protocol design and runs IPX over 802.3 without an 802.2 LLC - * layer. We look for FFFF which isnt a used 802.2 SSAP/DSAP. This + * layer. We look for FFFF which isn't a used 802.2 SSAP/DSAP. This * won't work for fault tolerant netware but does for the rest. */ if (*(unsigned short *)rawp == 0xFFFF) @@ -1014,7 +1014,7 @@ } /* - * receive callback for lovlevel drivers, which support skb's + * receive callback for lowlevel drivers, which support skb's */ int @@ -1077,7 +1077,7 @@ /* * build an header - * depends on encaps that is beeing used. + * depends on encaps that is being used. */ static int @@ -1217,7 +1217,7 @@ /* * up till binding we ask the protocol layer to reserve as much - * as we migth need for HL layer + * as we might need for HL layer */ for (drvidx = 0; drvidx < ISDN_MAX_DRIVERS; drvidx++) @@ -1239,7 +1239,7 @@ /* * I picked the pattern-matching-functions from an old GNU-tar version (1.10) - * It was originaly written and put to PD by rs@mirror.TMC.COM (Rich Salz) + * It was originally written and put to PD by rs@mirror.TMC.COM (Rich Salz) */ static int @@ -1256,11 +1256,11 @@ * This function gets a string in s and checks, if it matches the pattern * given in p. It returns 1 on success, 0 otherwise. * - * Posible Patterns: + * Possible Patterns: * * '?' matches one character * '*' matches zero or more characters - * [xyz] matches the set of charcters in brackets. + * [xyz] matches the set of characters in brackets. * [^xyz] matches any single character not in the set of characters */ @@ -1347,7 +1347,7 @@ /* * An incoming call-request has arrived. - * Search the interface-chain for an aproppriate interface. + * Search the interface-chain for an appropriate interface. * If found, connect the interface to the ISDN-channel and initiate * D- and B-Channel-setup. If secure-flag is set, accept only * configured phone-numbers. If callback-flag is set, initiate @@ -1420,7 +1420,7 @@ #endif swapped = 0; while (p) { - /* If last check has trigered as binding-swap, revert it */ + /* If last check has triggered as binding-swap, revert it */ switch (swapped) { case 2: isdn_net_swap_usage(idx, sidx); @@ -1836,7 +1836,7 @@ /* * Set interface-parameters. - * Allways set all parameters, so the user-level application is responsible + * Always set all parameters, so the user-level application is responsible * for not overwriting existing setups. It has to get the current * setup first, if only selected parameters are to be changed. */ diff -u --recursive --new-file v1.3.86/linux/drivers/isdn/isdn_net.h linux/drivers/isdn/isdn_net.h --- v1.3.86/linux/drivers/isdn/isdn_net.h Mon Feb 26 11:58:05 1996 +++ linux/drivers/isdn/isdn_net.h Fri Apr 12 09:49:36 1996 @@ -1,6 +1,6 @@ /* $Id: isdn_net.h,v 1.1 1996/02/11 02:35:13 fritz Exp fritz $ * - * header for Linux ISDN subsystem, network releted funtions (linklevel). + * header for Linux ISDN subsystem, network related functions (linklevel). * * Copyright 1994,95,96 by Fritz Elfert (fritz@wuemaus.franken.de) * Copyright 1995,96 by Thinking Objects Software GmbH Wuerzburg diff -u --recursive --new-file v1.3.86/linux/drivers/isdn/isdn_ppp.c linux/drivers/isdn/isdn_ppp.c --- v1.3.86/linux/drivers/isdn/isdn_ppp.c Mon Feb 26 11:58:05 1996 +++ linux/drivers/isdn/isdn_ppp.c Fri Apr 12 09:49:36 1996 @@ -859,7 +859,7 @@ } else { /* skb_push(skb, 5); Done in isdn_net_header () */ skb->data[4] = MP_BEGIN_FRAG | MP_END_FRAG; /* (B)egin & (E)ndbit .. */ - skb->data[5] = (mp_seqno >> 16) & 0xff; /* sequence nubmer: 24bit */ + skb->data[5] = (mp_seqno >> 16) & 0xff; /* sequence number: 24bit */ skb->data[6] = (mp_seqno >> 8) & 0xff; skb->data[7] = (mp_seqno >> 0) & 0xff; skb->data[8] = proto; /* PID compression */ @@ -868,7 +868,7 @@ } #endif skb->data[0] = 0xff; /* All Stations */ - skb->data[1] = 0x03; /* Unumbered information */ + skb->data[1] = 0x03; /* Unnumbered information */ skb->data[2] = proto >> 8; skb->data[3] = proto & 0xff; diff -u --recursive --new-file v1.3.86/linux/drivers/isdn/isdn_tty.c linux/drivers/isdn/isdn_tty.c --- v1.3.86/linux/drivers/isdn/isdn_tty.c Mon Feb 26 12:31:19 1996 +++ linux/drivers/isdn/isdn_tty.c Fri Apr 12 09:49:36 1996 @@ -402,7 +402,7 @@ bufptr = info->xmit_buf; buflen = info->xmit_count; if (dev->mdm.atmodem[i].mdmreg[13] & 2) { - /* Add T.70 simplyfied header */ + /* Add T.70 simplified header */ #ifdef ISDN_DEBUG_MODEM_DUMP isdn_dumppkt("T70pack1:", bufptr, buflen, 40); @@ -1208,7 +1208,7 @@ /* * An incoming call-request has arrived. - * Search the tty-devices for an aproppriate device and bind + * Search the tty-devices for an appropriate device and bind * it to the ISDN-Channel. * Return Index to dev->mdm or -1 if none found. */ @@ -2008,7 +2008,7 @@ bufptr = info->xmit_buf; buflen = info->xmit_count; if (dev->mdm.atmodem[midx].mdmreg[13] & 2) { - /* Add T.70 simplyfied header */ + /* Add T.70 simplified header */ #ifdef ISDN_DEBUG_MODEM_DUMP isdn_dumppkt("T70pack3:", bufptr, buflen, 40); #endif @@ -2041,7 +2041,7 @@ #if FUTURE /* * A packet has been output successfully. - * Search the tty-devices for an aproppriate device, decrement it's + * Search the tty-devices for an appropriate device, decrement its * counter for outstanding packets, and set CTS if this counter reaches 0. */ void isdn_tty_bsent(int drv, int chan) diff -u --recursive --new-file v1.3.86/linux/drivers/isdn/teles/isdnl3.c linux/drivers/isdn/teles/isdnl3.c --- v1.3.86/linux/drivers/isdn/teles/isdnl3.c Mon Feb 26 11:58:07 1996 +++ linux/drivers/isdn/teles/isdnl3.c Fri Apr 12 09:49:36 1996 @@ -509,7 +509,7 @@ break; if (i == downsl_1tr6t_len) { if (DEBUG_1TR6 > 0) { - printk(KERN_INFO "isdnl3down unhandled 1tr6 state %d primitiv %x\n", st->l3.state, pr); + printk(KERN_INFO "isdnl3down unhandled 1tr6 state %d primitive %x\n", st->l3.state, pr); } } else downstatelist_1tr6t[i].rout(st, pr, ibh); diff -u --recursive --new-file v1.3.86/linux/drivers/isdn/teles/l3_1TR6.c linux/drivers/isdn/teles/l3_1TR6.c --- v1.3.86/linux/drivers/isdn/teles/l3_1TR6.c Mon Feb 26 11:58:07 1996 +++ linux/drivers/isdn/teles/l3_1TR6.c Fri Apr 12 09:49:36 1996 @@ -10,15 +10,15 @@ if (mt == mtdesc_n0[i].mt) return (mtdesc_n0[i].descr); } - return ("unkown Message Type PD=N0"); + return ("unknown Message Type PD=N0"); } else if (pd == PROTO_DIS_N1) { for (i = 0; i < (sizeof(mtdesc_n1) / sizeof(struct MTypeDesc)); i++) { if (mt == mtdesc_n1[i].mt) return (mtdesc_n1[i].descr); } - return ("unkown Message Type PD=N1"); + return ("unknown Message Type PD=N1"); } - return ("unkown Protokolldiscriminator"); + return ("unknown Protokolldiscriminator"); } static void diff -u --recursive --new-file v1.3.86/linux/drivers/isdn/teles/q931.c linux/drivers/isdn/teles/q931.c --- v1.3.86/linux/drivers/isdn/teles/q931.c Mon Feb 26 11:58:07 1996 +++ linux/drivers/isdn/teles/q931.c Fri Apr 12 09:49:36 1996 @@ -266,7 +266,7 @@ 0x1d, "Facility rejected", "" }, { - 0x1e, "Response to Status enuiry", "" + 0x1e, "Response to Status enquiry", "" }, { 0x1f, "Normal, unspecified", "" @@ -314,7 +314,7 @@ 0x37, "Incoming calls barred within CUG", "" }, { - 0x39, "Bearer capability not auhorized", "" + 0x39, "Bearer capability not authorized", "" }, { 0x3a, "Bearer capability not presently available", "" @@ -853,7 +853,7 @@ if (*buf == ielist[i].nr) break; - /* When not found, give apropriate msg */ + /* When not found, give appropriate msg */ if (i != IESIZE) { dp += sprintf(dp, " %s\n", ielist[i].descr); dp += ielist[i].f(dp, buf); diff -u --recursive --new-file v1.3.86/linux/drivers/net/3c503.c linux/drivers/net/3c503.c --- v1.3.86/linux/drivers/net/3c503.c Sat Mar 16 13:52:12 1996 +++ linux/drivers/net/3c503.c Fri Apr 12 09:49:36 1996 @@ -579,7 +579,7 @@ /* * Here I also try to get data as fast as possible. I am betting that I - * can read one extra byte without clobering anything in the kernel because + * can read one extra byte without clobbering anything in the kernel because * this would only occur on an odd byte-count and allocation of skb->data * is word-aligned. Variable 'count' is NOT checked. Caller must check * for a valid count. diff -u --recursive --new-file v1.3.86/linux/drivers/net/3c505.c linux/drivers/net/3c505.c --- v1.3.86/linux/drivers/net/3c505.c Wed Apr 3 16:06:55 1996 +++ linux/drivers/net/3c505.c Fri Apr 12 09:41:58 1996 @@ -1,6 +1,6 @@ /* * Linux ethernet device driver for the 3Com Etherlink Plus (3C505) - * By Craig Southeren and Juha Laiho + * By Craig Southeren, Juha Laiho and Philip Blundell * * 3c505.c This module implements an interface to the 3Com * Etherlink Plus (3c505) ethernet card. Linux device @@ -10,7 +10,7 @@ * be here without 3C505 technical reference provided by * 3Com. * - * $Id: 3c505.c,v 0.9.1.1 1996/04/02 13:58:06 root Exp $ + * $Id: 3c505.c,v 1.7 1996/04/09 19:01:30 phil Exp phil $ * * Authors: Linux 3c505 device driver by * Craig Southeren, @@ -30,8 +30,57 @@ * Terry Murphy, of 3Com Network Adapter Division * Linux 1.3.0 changes by * Alan Cox - * More debugging by Philip Blundell - * + * More debugging and DMA version by Philip Blundell + */ + +/* Theory of operation: + + * The 3c505 is quite an intelligent board. All communication with it is done + * by means of Primary Command Blocks (PCBs); these are transferred using PIO + * through the command register. The card has 256k of on-board RAM, which is + * used to buffer received packets. It might seem at first that more buffers + * are better, but in fact this isn't true. From my tests, it seems that + * more than about 10 buffers are unnecessary, and there is a noticeable + * performance hit in having more active on the card. So the majority of the + * card's memory isn't, in fact, used. + * + * We keep up to 4 "receive packet" commands active on the board at a time. + * When a packet comes in, so long as there is a receive command active, the + * board will send us a "packet received" PCB and then add the data for that + * packet to the DMA queue. If a DMA transfer is not already in progress, we + * set one up to start uploading the data. We have to maintain a list of + * backlogged receive packets, because the card may decide to tell us about + * a newly-arrived packet at any time, and we may not be able to start a DMA + * transfer immediately (ie one may already be going on). We can't NAK the + * PCB, because then it would throw the packet away. + * + * Trying to send a PCB to the card at the wrong moment seems to have bad + * effects. If we send it a transmit PCB while a receive DMA is happening, + * it will just NAK the PCB and so we will have wasted our time. Worse, it + * sometimes seems to interrupt the transfer. The majority of the low-level + * code is protected by one huge semaphore -- "busy" -- which is set whenever + * it probably isn't safe to do anything to the card. The receive routine + * must gain a lock on "busy" before it can start a DMA transfer, and the + * transmit routine must gain a lock before it sends the first PCB to the card. + * The send_pcb() routine also has an internal semaphore to protect it against + * being re-entered (which would be disastrous) -- this is needed because + * several things can happen asynchronously (re-priming the receiver and + * asking the card for statistics, for example). send_pcb() will also refuse + * to talk to the card at all if a DMA upload is happening. The higher-level + * networking code will reschedule a later retry if some part of the driver + * is blocked. In practice, this doesn't seem to happen very often. + */ + +/* This driver will not work with revision 2 hardware, because the host + * control register is write-only. It should be fairly easy to arrange to + * keep our own soft-copy of the intended contents of this register, if + * somebody has the time. There may be firmware differences that cause + * other problems, though, and I don't have an old card to test. + */ + +/* The driver is a mess. I took Craig's and Juha's code, and hacked it firstly + * to make it more reliable, and secondly to add DMA mode. Many things could + * probably be done better; the concurrency protection is particularly awful. */ #include @@ -47,6 +96,7 @@ #include #include #include +#include #include #include @@ -54,32 +104,35 @@ #include "3c505.h" +#define ELP_DMA 6 /* DMA channel to use */ +#define ELP_RX_PCBS 4 + /********************************************************* * * define debug messages here as common strings to reduce space * *********************************************************/ -static const char * filename = __FILE__; +static const char *filename = __FILE__; -static const char * timeout_msg = "*** timeout at %s:%s (line %d) ***\n"; +static const char *timeout_msg = "*** timeout at %s:%s (line %d) ***\n"; #define TIMEOUT_MSG(lineno) \ printk(timeout_msg, filename,__FUNCTION__,(lineno)) -static const char * invalid_pcb_msg = - "*** invalid pcb length %d at %s:%s (line %d) ***\n"; +static const char *invalid_pcb_msg = +"*** invalid pcb length %d at %s:%s (line %d) ***\n"; #define INVALID_PCB_MSG(len) \ printk(invalid_pcb_msg, (len),filename,__FUNCTION__,__LINE__) -static const char * search_msg = "%s: Looking for 3c505 adapter at address %#x..."; +static const char *search_msg = "%s: Looking for 3c505 adapter at address %#x..."; -static const char * stilllooking_msg = "still looking..."; +static const char *stilllooking_msg = "still looking..."; -static const char * found_msg = "found.\n"; +static const char *found_msg = "found.\n"; -static const char * notfound_msg = "not found (reason = %d)\n"; +static const char *notfound_msg = "not found (reason = %d)\n"; -static const char * couldnot_msg = "%s: 3c505 not found\n"; +static const char *couldnot_msg = "%s: 3c505 not found\n"; /********************************************************* * @@ -88,9 +141,9 @@ *********************************************************/ #ifdef ELP_DEBUG -static int elp_debug = ELP_DEBUG; +static const int elp_debug = ELP_DEBUG; #else -static int elp_debug = 0; +static const int elp_debug = 0; #endif /* @@ -121,7 +174,32 @@ * Last element MUST BE 0! *****************************************************************/ -const int addr_list[]={0x300,0x280,0x310,0}; +const int addr_list[] = +{0x300, 0x280, 0x310, 0}; + +/* Dma Memory related stuff */ + +/* Pure 2^n version of get_order */ +static inline int __get_order(unsigned long size) +{ + int order; + + size = (size - 1) >> (PAGE_SHIFT - 1); + order = -1; + do { + size >>= 1; + order++; + } while (size); + return order; +} + +static unsigned long dma_mem_alloc(int size) +{ + int order = __get_order(size); + + return __get_dma_pages(GFP_KERNEL, order); +} + /***************************************************************** * @@ -129,46 +207,39 @@ * *****************************************************************/ -static inline unsigned char -inb_status (unsigned int base_addr) +static inline unsigned char inb_status(unsigned int base_addr) { - return inb(base_addr+PORT_STATUS); + return inb(base_addr + PORT_STATUS); } -static inline unsigned char -inb_control (unsigned int base_addr) +static inline unsigned char inb_control(unsigned int base_addr) { - return inb(base_addr+PORT_CONTROL); + return inb(base_addr + PORT_CONTROL); } -static inline int -inb_command (unsigned int base_addr) +static inline int inb_command(unsigned int base_addr) { - return inb(base_addr+PORT_COMMAND); + return inb(base_addr + PORT_COMMAND); } -static inline void -outb_control (unsigned char val, unsigned int base_addr) +static inline void outb_control(unsigned char val, unsigned int base_addr) { - outb(val, base_addr+PORT_CONTROL); + outb(val, base_addr + PORT_CONTROL); } -static inline void -outb_command (unsigned char val, unsigned int base_addr) +static inline void outb_command(unsigned char val, unsigned int base_addr) { - outb(val, base_addr+PORT_COMMAND); + outb(val, base_addr + PORT_COMMAND); } -static inline unsigned int -inw_data (unsigned int base_addr) +static inline unsigned int inw_data(unsigned int base_addr) { - return inw(base_addr+PORT_DATA); + return inw(base_addr + PORT_DATA); } -static inline void -outw_data (unsigned int val, unsigned int base_addr) +static inline void outw_data(unsigned int val, unsigned int base_addr) { - outw(val, base_addr+PORT_DATA); + outw(val, base_addr + PORT_DATA); } @@ -178,6 +249,13 @@ * *****************************************************************/ +/* We allocate 8k of DMA buffer for each adapter. This gives us one buffer for + * received data, and four for the transmit backlog. + */ + +#define DMA_BUFFER_SIZE 1600 +#define BACKLOG_SIZE 4 + typedef struct { volatile short got[NUM_TRANSMIT_CMDS]; /* flags for command completion */ pcb_struct tx_pcb; /* PCB for foreground sending */ @@ -185,9 +263,35 @@ pcb_struct itx_pcb; /* PCB for background sending */ pcb_struct irx_pcb; /* PCB for background receiving */ struct enet_statistics stats; + + void *dma_buffer; + + struct { + unsigned int length[BACKLOG_SIZE]; + unsigned int in; + unsigned int out; + } rx_backlog; + + struct { + unsigned int direction; + unsigned int length; + unsigned int copy_flag; + struct sk_buff *skb; + long int start_time; + } current_dma; + + /* flags */ + unsigned long send_pcb_semaphore; + unsigned int dmaing; + unsigned long busy; + + unsigned int rx_active; /* number of receive PCBs */ } elp_device; -static int reset_count=0; +static inline unsigned int backlog_next(unsigned int n) +{ + return (n + 1) % BACKLOG_SIZE; +} /***************************************************************** * @@ -204,8 +308,7 @@ #define GET_ASF(addr) \ (get_status(addr)&ASF_PCB_MASK) -static inline int -get_status (unsigned int base_addr) +static inline int get_status(unsigned int base_addr) { int timeout = jiffies + 10; register int stat1; @@ -217,96 +320,103 @@ return stat1; } -static inline void -set_hsf (unsigned int base_addr, int hsf) +static inline void set_hsf(unsigned int base_addr, int hsf) { cli(); - outb_control((inb_control(base_addr)&~HSF_PCB_MASK)|hsf, base_addr); - sti(); + outb_control((inb_control(base_addr) & ~HSF_PCB_MASK) | hsf, base_addr); + sti(); } -static int start_receive (struct device *, pcb_struct *); -static void adapter_hard_reset (struct device *); +static int start_receive(struct device *, pcb_struct *); -inline static void -adapter_reset (struct device * dev) +inline static void adapter_reset(struct device *dev) { int timeout; - unsigned char orig_hcr=inb_control(dev->base_addr); + unsigned char orig_hcr = inb_control(dev->base_addr); - elp_device * adapter=dev->priv; + elp_device *adapter = dev->priv; - outb_control(0,dev->base_addr); + outb_control(0, dev->base_addr); - if (inb_status(dev->base_addr)&ACRF) { + if (inb_status(dev->base_addr) & ACRF) { do { inb_command(dev->base_addr); - timeout=jiffies+2; - while ((jiffies<=timeout) && !(inb_status(dev->base_addr)&ACRF)) - ; - } while (inb_status(dev->base_addr)&ACRF); - set_hsf(dev->base_addr,HSF_PCB_NAK); - } - - outb_control(inb_control(dev->base_addr)|ATTN|DIR,dev->base_addr); - timeout=jiffies+1; - while (jiffies<=timeout) - ; - outb_control(inb_control(dev->base_addr)&~ATTN,dev->base_addr); - timeout=jiffies+1; - while (jiffies<=timeout) - ; - outb_control(inb_control(dev->base_addr)|FLSH,dev->base_addr); - timeout=jiffies+1; - while (jiffies<=timeout) - ; - outb_control(inb_control(dev->base_addr)&~FLSH,dev->base_addr); - timeout=jiffies+1; - while (jiffies<=timeout) - ; + timeout = jiffies + 2; + while ((jiffies <= timeout) && !(inb_status(dev->base_addr) & ACRF)); + } while (inb_status(dev->base_addr) & ACRF); + set_hsf(dev->base_addr, HSF_PCB_NAK); + } + outb_control(inb_control(dev->base_addr) | ATTN | DIR, dev->base_addr); + timeout = jiffies + 1; + while (jiffies <= timeout); + outb_control(inb_control(dev->base_addr) & ~ATTN, dev->base_addr); + timeout = jiffies + 1; + while (jiffies <= timeout); + outb_control(inb_control(dev->base_addr) | FLSH, dev->base_addr); + timeout = jiffies + 1; + while (jiffies <= timeout); + outb_control(inb_control(dev->base_addr) & ~FLSH, dev->base_addr); + timeout = jiffies + 1; + while (jiffies <= timeout); outb_control(orig_hcr, dev->base_addr); if (!start_receive(dev, &adapter->tx_pcb)) printk("%s: start receive command failed \n", dev->name); } -/* These should be moved to the private data area */ -static int send_pcb_semaphore = 0; -static int rx_restart_needed = 0; +static inline void check_dma(struct device *dev) +{ + elp_device *adapter = dev->priv; + if (adapter->dmaing && (jiffies > (adapter->current_dma.start_time + 10))) { + unsigned long flags; + printk("%s: DMA %s timed out, %d bytes left\n", dev->name, adapter->current_dma.direction ? "download" : "upload", get_dma_residue(dev->dma)); + save_flags(flags); + cli(); + adapter->dmaing = 0; + adapter->busy = 0; + disable_dma(dev->dma); + if (adapter->rx_active) + adapter->rx_active--; + outb_control(inb_control(dev->base_addr) & ~(DMAE | TCEN | DIR), dev->base_addr); + restore_flags(flags); + } +} /* Primitive functions used by send_pcb() */ -static inline int send_pcb_slow(unsigned int base_addr, unsigned char byte) +static inline unsigned int send_pcb_slow(unsigned int base_addr, unsigned char byte) { - int timeout; + unsigned int timeout; outb_command(byte, base_addr); - for (timeout = jiffies + 5; jiffies < timeout; ) { - if (inb_status(base_addr) & HCRE) return FALSE; + for (timeout = jiffies + 5; jiffies < timeout;) { + if (inb_status(base_addr) & HCRE) + return FALSE; } printk("3c505: send_pcb_slow timed out\n"); return TRUE; } -static inline int send_pcb_fast(unsigned int base_addr, unsigned char byte) +static inline unsigned int send_pcb_fast(unsigned int base_addr, unsigned char byte) { - int timeout; + unsigned int timeout; outb_command(byte, base_addr); for (timeout = 0; timeout < 40000; timeout++) { - if (inb_status(base_addr) & HCRE) return FALSE; + if (inb_status(base_addr) & HCRE) + return FALSE; } printk("3c505: send_pcb_fast timed out\n"); return TRUE; } static int -start_receive (struct device * dev, pcb_struct * tx_pcb); + start_receive(struct device *dev, pcb_struct * tx_pcb); /* Check to see if the receiver needs restarting, and kick it if so */ static inline void prime_rx(struct device *dev) { - if (rx_restart_needed) { - elp_device *adapter = dev->priv; - rx_restart_needed = 0; - start_receive(dev, &adapter->itx_pcb); + elp_device *adapter = dev->priv; + while (adapter->rx_active < ELP_RX_PCBS && dev->start) { + if (!start_receive(dev, &adapter->itx_pcb)) + break; } } @@ -334,66 +444,71 @@ * timeout is reduced to 500us). */ -static int -send_pcb (struct device * dev, pcb_struct * pcb) +static int send_pcb(struct device *dev, pcb_struct * pcb) { int i; int timeout; + elp_device *adapter = dev->priv; + + check_dma(dev); + + if (adapter->dmaing && adapter->current_dma.direction == 0) + return FALSE; - /* Avoid contention */ - if (set_bit(1, &send_pcb_semaphore)) { + /* Avoid contention */ + if (set_bit(1, &adapter->send_pcb_semaphore)) { if (elp_debug >= 3) { printk("%s: send_pcb entered while threaded\n", dev->name); } return FALSE; } - /* * load each byte into the command register and * wait for the HCRE bit to indicate the adapter * had read the byte */ - set_hsf(dev->base_addr,0); + set_hsf(dev->base_addr, 0); - if (send_pcb_slow(dev->base_addr, pcb->command)) goto abort; + if (send_pcb_slow(dev->base_addr, pcb->command)) + goto abort; cli(); - if (send_pcb_fast(dev->base_addr, pcb->length)) goto sti_abort; + if (send_pcb_fast(dev->base_addr, pcb->length)) + goto sti_abort; for (i = 0; i < pcb->length; i++) { - if (send_pcb_fast(dev->base_addr, pcb->data.raw[i])) goto sti_abort; + if (send_pcb_fast(dev->base_addr, pcb->data.raw[i])) + goto sti_abort; } - outb_control(inb_control(dev->base_addr) | 3, dev->base_addr); /* signal end of PCB */ - outb_command(2+pcb->length, dev->base_addr); + outb_control(inb_control(dev->base_addr) | 3, dev->base_addr); /* signal end of PCB */ + outb_command(2 + pcb->length, dev->base_addr); /* now wait for the acknowledgement */ sti(); - for (timeout = jiffies+5; jiffies < timeout; ) { + for (timeout = jiffies + 5; jiffies < timeout;) { switch (GET_ASF(dev->base_addr)) { case ASF_PCB_ACK: - send_pcb_semaphore = 0; - if (pcb->command != CMD_TRANSMIT_PACKET) { - prime_rx(dev); - } + adapter->send_pcb_semaphore = 0; return TRUE; break; case ASF_PCB_NAK: - printk(KERN_INFO "%s: send_pcb got NAK\n", dev->name); + cli(); + printk("%s: send_pcb got NAK\n", dev->name); goto abort; break; } } - printk("%s: timeout waiting for PCB acknowledge (status %02x)\n", dev->name, inb_status(dev->base_addr)); + if (elp_debug >= 1) + printk("%s: timeout waiting for PCB acknowledge (status %02x)\n", dev->name, inb_status(dev->base_addr)); -sti_abort: + sti_abort: sti(); -abort: - send_pcb_semaphore = 0; - prime_rx(dev); + abort: + adapter->send_pcb_semaphore = 0; return FALSE; } @@ -401,7 +516,7 @@ /***************************************************************** * * receive_pcb - * Read a PCB to the adapter + * Read a PCB from the adapter * * wait for ACRF to be non-zero ---<---+ * input a byte | @@ -411,31 +526,29 @@ * *****************************************************************/ -static int -receive_pcb (struct device * dev, pcb_struct * pcb) +static int receive_pcb(struct device *dev, pcb_struct * pcb) { int i, j; int total_length; int stat; int timeout; - set_hsf(dev->base_addr,0); + elp_device *adapter = dev->priv; + + set_hsf(dev->base_addr, 0); /* get the command code */ timeout = jiffies + 2; - while (((stat = get_status(dev->base_addr))&ACRF) == 0 && jiffies < timeout) - ; + while (((stat = get_status(dev->base_addr)) & ACRF) == 0 && jiffies < timeout); if (jiffies >= timeout) { TIMEOUT_MSG(__LINE__); return FALSE; } - pcb->command = inb_command(dev->base_addr); /* read the data length */ timeout = jiffies + 3; - while (((stat = get_status(dev->base_addr)) & ACRF) == 0 && jiffies < timeout) - ; + while (((stat = get_status(dev->base_addr)) & ACRF) == 0 && jiffies < timeout); if (jiffies >= timeout) { TIMEOUT_MSG(__LINE__); printk("%s: status %02x\n", dev->name, stat); @@ -448,14 +561,12 @@ adapter_reset(dev); return FALSE; } - /* read the data */ cli(); i = 0; do { j = 0; - while (((stat = get_status(dev->base_addr))&ACRF) == 0 && j++ < 20000) - ; + while (((stat = get_status(dev->base_addr)) & ACRF) == 0 && j++ < 20000); pcb->data.raw[i++] = inb_command(dev->base_addr); if (i > MAX_PCB_DATA) INVALID_PCB_MSG(i); @@ -465,7 +576,6 @@ TIMEOUT_MSG(__LINE__); return FALSE; } - /* woops, the last "data" byte was really the length! */ total_length = pcb->data.raw[--i]; @@ -473,58 +583,26 @@ if (total_length != (pcb->length + 2)) { if (elp_debug >= 2) printk("%s: mangled PCB received\n", dev->name); - set_hsf(dev->base_addr,HSF_PCB_NAK); + set_hsf(dev->base_addr, HSF_PCB_NAK); return FALSE; } - set_hsf(dev->base_addr,HSF_PCB_ACK); - reset_count=0; + if (pcb->command == CMD_RECEIVE_PACKET_COMPLETE) { + if (set_bit(0, (void *) &adapter->busy)) { + if (backlog_next(adapter->rx_backlog.in) == adapter->rx_backlog.out) { + set_hsf(dev->base_addr, HSF_PCB_NAK); + printk("%s: PCB rejected, transfer in progress and backlog full\n", dev->name); + pcb->command = 0; + return TRUE; + } else { + pcb->command = 0xff; + } + } + } + set_hsf(dev->base_addr, HSF_PCB_ACK); return TRUE; } -static void -adapter_hard_reset (struct device * dev) -{ - int timeout; - long flags; - - save_flags(flags); - sti(); - - if (elp_debug > 0) - printk("%s: Resetting the adapter, please wait (approx 20 s)\n", - dev->name); - /* - * take FLSH and ATTN high - */ - outb_control(ATTN|FLSH, dev->base_addr); - - /* - * wait for a little bit - */ - for (timeout = jiffies + 20; jiffies <= timeout; ) - ; - - /* - * now take them low - */ - outb_control(0, dev->base_addr); - - /* - * wait for a little bit - */ - for (timeout = jiffies + 20; jiffies <= timeout; ) - ; - - /* - * now hang around until the board gets it's act together - */ - for (timeout = jiffies + (100 * 15); jiffies <= timeout; ) - if (GET_ASF(dev->base_addr) != ASF_PCB_END) - break; - restore_flags(flags); -} - /****************************************************** * * queue a receive command on the adapter so we will get an @@ -532,18 +610,23 @@ * ******************************************************/ -static int -start_receive (struct device * dev, pcb_struct * tx_pcb) +static int start_receive(struct device *dev, pcb_struct * tx_pcb) { + int status; + elp_device *adapter = dev->priv; + if (elp_debug >= 3) printk("%s: restarting receiver\n", dev->name); tx_pcb->command = CMD_RECEIVE_PACKET; tx_pcb->length = sizeof(struct Rcv_pkt); tx_pcb->data.rcv_pkt.buf_seg - = tx_pcb->data.rcv_pkt.buf_ofs = 0; /* Unused */ + = tx_pcb->data.rcv_pkt.buf_ofs = 0; /* Unused */ tx_pcb->data.rcv_pkt.buf_len = 1600; tx_pcb->data.rcv_pkt.timeout = 0; /* set timeout to zero */ - return send_pcb(dev, tx_pcb); + status = send_pcb(dev, tx_pcb); + if (status) + adapter->rx_active++; + return status; } /****************************************************** @@ -555,139 +638,146 @@ * ******************************************************/ -static void -receive_packet (struct device * dev, int len) +static void receive_packet(struct device *dev, int len) { - register int i; - unsigned short * ptr; - int timeout; int rlen; + elp_device *adapter = dev->priv; + unsigned long target; struct sk_buff *skb; - elp_device * adapter; - - adapter=dev->priv; - if (len <= 0 || ((len & ~1) != len)) - if (elp_debug >= 3) { - sti(); - printk("*** bad packet len %d at %s(%d)\n",len,filename,__LINE__); - cli(); - } + rlen = (len + 1) & ~1; + skb = dev_alloc_skb(rlen + 2); - rlen = (len+1) & ~1; - - skb = dev_alloc_skb(rlen+2); - - /* - * make sure the data register is going the right way - */ - - outb_control(inb_control(dev->base_addr)|DIR, dev->base_addr); - - /* - * if buffer could not be allocated, swallow it - */ - if (skb == NULL) { - printk(KERN_INFO "%s: memory squeeze, dropping packet\n", dev->name); - for (i = 0; i < (rlen/2); i++) { - timeout = 0; - while ((inb_status(dev->base_addr)&HRDY) == 0 && timeout++ < 20000) - ; - if (timeout >= 20000) { - sti(); - TIMEOUT_MSG(__LINE__); - break; - } - - inw_data(dev->base_addr); - } - adapter->stats.rx_dropped++; + adapter->current_dma.copy_flag = 0; + if (!skb) { + printk("%s: memory squeeze, dropping packet\n", dev->name); + target = virt_to_bus(adapter->dma_buffer); } else { - skb_reserve(skb,2); /* 16 byte alignment */ - skb->dev = dev; - - /* - * now read the data from the adapter - */ - ptr = (unsigned short *)skb_put(skb,len); - for (i = 0; i < (rlen/2); i++) { - timeout = 0; - while ((inb_status(dev->base_addr)&HRDY) == 0 && timeout++ < 20000) - ; - if (timeout >= 20000) { - sti(); - printk("*** timeout at %s(%d) reading word %d of %d ***\n", - filename,__LINE__, i, rlen/2); - kfree_skb(skb, FREE_WRITE); - return; - } - - *ptr = inw_data(dev->base_addr); - ptr++; - } + skb_reserve(skb, 2); + target = virt_to_bus(skb_put(skb, rlen)); + if ((target + rlen) >= MAX_DMA_ADDRESS) { + target = virt_to_bus(adapter->dma_buffer); + adapter->current_dma.copy_flag = 1; + } + } + /* if this happens, we die */ + if (set_bit(0, (void *) &adapter->dmaing)) + printk("%s: rx blocked, DMA in progress, dir %d\n", dev->name, adapter->current_dma.direction); + + adapter->current_dma.direction = 0; + adapter->current_dma.length = rlen; + adapter->current_dma.skb = skb; + adapter->current_dma.start_time = jiffies; + + outb_control(inb_control(dev->base_addr) | DIR | TCEN | DMAE, dev->base_addr); + + disable_dma(dev->dma); + clear_dma_ff(dev->dma); + set_dma_mode(dev->dma, 0x04); /* dma read */ + set_dma_addr(dev->dma, target); + set_dma_count(dev->dma, rlen); + enable_dma(dev->dma); - sti(); - skb->protocol=eth_type_trans(skb,dev); - netif_rx(skb); + if (elp_debug >= 3) { + printk("%s: rx DMA transfer started\n", dev->name); } + if (adapter->rx_active) + adapter->rx_active--; - outb_control(inb_control(dev->base_addr)&~DIR, dev->base_addr); + if (!adapter->busy) + printk("%s: receive_packet called, busy not set.\n", dev->name); } - /****************************************************** * * interrupt handler * ******************************************************/ -static void -elp_interrupt (int irq, void *dev_id, struct pt_regs *reg_ptr) +static void elp_interrupt(int irq, void *dev_id, struct pt_regs *reg_ptr) { int len; int dlen; + int icount = 0; struct device *dev; - elp_device * adapter; + elp_device *adapter; int timeout; if (irq < 0 || irq > 15) { - printk ("elp_interrupt(): illegal IRQ number found in interrupt routine (%i)\n", irq); + printk("elp_interrupt(): illegal IRQ number found in interrupt routine (%i)\n", irq); return; } - dev = irq2dev_map[irq]; if (dev == NULL) { - printk ("elp_interrupt(): irq %d for unknown device.\n", irq); + printk("elp_interrupt(): irq %d for unknown device.\n", irq); return; } - adapter = (elp_device *) dev->priv; - if (dev->interrupt) - if (elp_debug >= 2) - printk("%s: Re-entering the interrupt handler.\n", dev->name); + if (dev->interrupt) { + printk("%s: re-entering the interrupt handler!\n", dev->name); + return; + } dev->interrupt = 1; - /* - * allow interrupts (we need timers!) - */ - sti(); - - /* - * receive a PCB from the adapter - */ - timeout = jiffies + 3; - while ((inb_status(dev->base_addr)&ACRF) != 0 && jiffies < timeout) { + do { + /* + * has a DMA transfer finished? + */ + if (inb_status(dev->base_addr) & DONE) { + if (!adapter->dmaing) { + printk("%s: phantom DMA completed\n", dev->name); + } + if (elp_debug >= 3) { + printk("%s: %s DMA complete, status %02x\n", dev->name, adapter->current_dma.direction ? "tx" : "rx", inb_status(dev->base_addr)); + } - if (receive_pcb(dev, &adapter->irx_pcb)) { + outb_control(inb_control(dev->base_addr) & ~(DMAE | TCEN | DIR), dev->base_addr); + if (adapter->current_dma.direction) { + dev_kfree_skb(adapter->current_dma.skb, FREE_WRITE); + } else { + struct sk_buff *skb = adapter->current_dma.skb; + if (skb) { + skb->dev = dev; + if (adapter->current_dma.copy_flag) { + memcpy(skb_put(skb, adapter->current_dma.length), adapter->dma_buffer, adapter->current_dma.length); + } + skb->protocol = eth_type_trans(skb,dev); + netif_rx(skb); + } + } + adapter->dmaing = 0; + if (adapter->rx_backlog.in != adapter->rx_backlog.out) { + int t = adapter->rx_backlog.length[adapter->rx_backlog.out]; + adapter->rx_backlog.out = backlog_next(adapter->rx_backlog.out); + if (elp_debug >= 2) + printk("%s: receiving backlogged packet (%d)\n", dev->name, t); + receive_packet(dev, t); + } else { + adapter->busy = 0; + } + } else { + /* has one timed out? */ + check_dma(dev); + } - switch (adapter->irx_pcb.command) { + sti(); - /* - * received a packet - this must be handled fast - */ + /* + * receive a PCB from the adapter + */ + timeout = jiffies + 3; + while ((inb_status(dev->base_addr) & ACRF) != 0 && jiffies < timeout) { + if (receive_pcb(dev, &adapter->irx_pcb)) { + switch (adapter->irx_pcb.command) { + case 0: + break; + /* + * received a packet - this must be handled fast + */ + case 0xff: case CMD_RECEIVE_PACKET_COMPLETE: /* if the device isn't open, don't pass packets up the stack */ if (dev->start == 0) @@ -704,103 +794,116 @@ printk("%s: interrupt - packet received of length %i (%i)\n", dev->name, len, dlen); cli(); } - receive_packet(dev, dlen); + if (adapter->irx_pcb.command == 0xff) { + if (elp_debug >= 2) + printk("%s: adding packet to backlog (len = %d)\n", dev->name, dlen); + adapter->rx_backlog.length[adapter->rx_backlog.in] = dlen; + adapter->rx_backlog.in = backlog_next(adapter->rx_backlog.in); + } else { + receive_packet(dev, dlen); + } sti(); if (elp_debug >= 3) printk("%s: packet received\n", dev->name); } - if (dev->start && !start_receive(dev, &adapter->itx_pcb)) { - if (elp_debug >= 2) - printk("%s: interrupt - receiver start deferred\n", dev->name); - rx_restart_needed = 1; - } - if (elp_debug >= 3) - printk("%s: receive procedure complete\n", dev->name); - break; - /* - * 82586 configured correctly - */ + /* + * 82586 configured correctly + */ case CMD_CONFIGURE_82586_RESPONSE: adapter->got[CMD_CONFIGURE_82586] = 1; if (elp_debug >= 3) printk("%s: interrupt - configure response received\n", dev->name); break; - /* - * Adapter memory configuration - */ + /* + * Adapter memory configuration + */ case CMD_CONFIGURE_ADAPTER_RESPONSE: adapter->got[CMD_CONFIGURE_ADAPTER_MEMORY] = 1; if (elp_debug >= 3) - printk("%s: Adapter memory configuration %s.\n",dev->name, - adapter->irx_pcb.data.failed?"failed":"succeeded"); + printk("%s: Adapter memory configuration %s.\n", dev->name, + adapter->irx_pcb.data.failed ? "failed" : "succeeded"); break; - /* - * Multicast list loading - */ + /* + * Multicast list loading + */ case CMD_LOAD_MULTICAST_RESPONSE: adapter->got[CMD_LOAD_MULTICAST_LIST] = 1; if (elp_debug >= 3) - printk("%s: Multicast address list loading %s.\n",dev->name, - adapter->irx_pcb.data.failed?"failed":"succeeded"); + printk("%s: Multicast address list loading %s.\n", dev->name, + adapter->irx_pcb.data.failed ? "failed" : "succeeded"); break; - /* - * Station address setting - */ + /* + * Station address setting + */ case CMD_SET_ADDRESS_RESPONSE: adapter->got[CMD_SET_STATION_ADDRESS] = 1; if (elp_debug >= 3) - printk("%s: Ethernet address setting %s.\n",dev->name, - adapter->irx_pcb.data.failed?"failed":"succeeded"); + printk("%s: Ethernet address setting %s.\n", dev->name, + adapter->irx_pcb.data.failed ? "failed" : "succeeded"); break; - /* - * received board statistics - */ + /* + * received board statistics + */ case CMD_NETWORK_STATISTICS_RESPONSE: adapter->stats.rx_packets += adapter->irx_pcb.data.netstat.tot_recv; adapter->stats.tx_packets += adapter->irx_pcb.data.netstat.tot_xmit; adapter->stats.rx_crc_errors += adapter->irx_pcb.data.netstat.err_CRC; adapter->stats.rx_frame_errors += adapter->irx_pcb.data.netstat.err_align; adapter->stats.rx_fifo_errors += adapter->irx_pcb.data.netstat.err_ovrrun; + adapter->stats.rx_over_errors += adapter->irx_pcb.data.netstat.err_res; adapter->got[CMD_NETWORK_STATISTICS] = 1; if (elp_debug >= 3) printk("%s: interrupt - statistics response received\n", dev->name); break; - /* - * sent a packet - */ + /* + * sent a packet + */ case CMD_TRANSMIT_PACKET_COMPLETE: - if (elp_debug >= 3) - printk("%s: interrupt - packet sent\n", dev->name); + if (elp_debug >= 3) + printk("%s: interrupt - packet sent\n", dev->name); if (dev->start == 0) break; - if (adapter->irx_pcb.data.xmit_resp.c_stat != 0) - if (elp_debug >= 2) + if (adapter->irx_pcb.data.xmit_resp.c_stat != 0) { + if (elp_debug >= 0) printk("%s: interrupt - error sending packet %4.4x\n", - dev->name, adapter->irx_pcb.data.xmit_resp.c_stat); + dev->name, adapter->irx_pcb.data.xmit_resp.c_stat); + switch (adapter->irx_pcb.data.xmit_resp.c_stat) { + case 0xffff: + adapter->stats.tx_aborted_errors++; + break; + case 0xfffe: + adapter->stats.tx_fifo_errors++; + break; + } + } dev->tbusy = 0; mark_bh(NET_BH); break; - /* - * some unknown PCB - */ + /* + * some unknown PCB + */ default: printk("%s: unknown PCB received - %2.2x\n", dev->name, adapter->irx_pcb.command); break; + } + } else { + printk("%s: failed to read PCB on interrupt\n", dev->name); + adapter_reset(dev); } - } else { - printk("%s: failed to read PCB on interrupt\n", dev->name); - adapter_reset(dev); } - } + + } while (icount++ < 5 && (inb_status(dev->base_addr) & (ACRF | DONE))); + + prime_rx(dev); /* * indicate no longer in interrupt routine @@ -815,14 +918,13 @@ * ******************************************************/ -static int -elp_open (struct device *dev) +static int elp_open(struct device *dev) { - elp_device * adapter; + elp_device *adapter; adapter = dev->priv; - if (elp_debug >= 3) + if (elp_debug >= 3) printk("%s: request to open device\n", dev->name); /* @@ -832,7 +934,6 @@ printk("%s: Opening a non-existent physical device\n", dev->name); return -EAGAIN; } - /* * disable interrupts on the board */ @@ -855,6 +956,16 @@ dev->tbusy = 0; /* + * no receive PCBs active + */ + adapter->rx_active = 0; + + adapter->busy = 0; + adapter->send_pcb_semaphore = 0; + adapter->rx_backlog.in = 0; + adapter->rx_backlog.out = 0; + + /* * make sure we can find the device header given the interrupt number */ irq2dev_map[dev->irq] = dev; @@ -866,6 +977,15 @@ irq2dev_map[dev->irq] = NULL; return -EAGAIN; } + if (request_dma(dev->dma, "3c505")) { + printk("%s: could not allocate DMA channel\n", dev->name); + return -EAGAIN; + } + adapter->dma_buffer = (void *) dma_mem_alloc(DMA_BUFFER_SIZE); + if (!adapter->dma_buffer) { + printk("Could not allocate DMA buffer\n"); + } + adapter->dmaing = 0; /* * enable interrupts on the board @@ -895,8 +1015,7 @@ printk("%s: couldn't send memory configuration command\n", dev->name); else { int timeout = jiffies + TIMEOUT; - while (adapter->got[CMD_CONFIGURE_ADAPTER_MEMORY] == 0 && jiffies < timeout) - ; + while (adapter->got[CMD_CONFIGURE_ADAPTER_MEMORY] == 0 && jiffies < timeout); if (jiffies >= timeout) TIMEOUT_MSG(__LINE__); } @@ -909,35 +1028,30 @@ printk("%s: sending 82586 configure command\n", dev->name); adapter->tx_pcb.command = CMD_CONFIGURE_82586; adapter->tx_pcb.data.configure = NO_LOOPBACK | RECV_BROAD; - adapter->tx_pcb.length = 2; + adapter->tx_pcb.length = 2; adapter->got[CMD_CONFIGURE_82586] = 0; if (!send_pcb(dev, &adapter->tx_pcb)) printk("%s: couldn't send 82586 configure command\n", dev->name); else { int timeout = jiffies + TIMEOUT; - while (adapter->got[CMD_CONFIGURE_82586] == 0 && jiffies < timeout) - ; + while (adapter->got[CMD_CONFIGURE_82586] == 0 && jiffies < timeout); if (jiffies >= timeout) TIMEOUT_MSG(__LINE__); } + /* enable burst-mode DMA */ + outb(0x1, dev->base_addr + PORT_AUXDMA); + /* * queue receive commands to provide buffering */ - if (!start_receive(dev, &adapter->tx_pcb)) - printk("%s: start receive command failed \n", dev->name); - if (!start_receive(dev, &adapter->tx_pcb)) - printk("%s: start receive command failed \n", dev->name); - if (!start_receive(dev, &adapter->tx_pcb)) - printk("%s: start receive command failed \n", dev->name); - if (!start_receive(dev, &adapter->tx_pcb)) - printk("%s: start receive command failed \n", dev->name); + prime_rx(dev); if (elp_debug >= 3) - printk("%s: start receive command sent\n", dev->name); + printk("%s: %d receive PCBs active\n", dev->name, adapter->rx_active); MOD_INC_USE_COUNT; - return 0; /* Always succeed */ + return 0; /* Always succeed */ } @@ -947,23 +1061,23 @@ * ******************************************************/ -static int -send_packet (struct device * dev, unsigned char * ptr, int len) +static int send_packet(struct device *dev, struct sk_buff *skb) { - int i; - int timeout = 0; - elp_device * adapter; + elp_device *adapter = dev->priv; + unsigned long target; /* * make sure the length is even and no shorter than 60 bytes */ - unsigned int nlen = (((len < 60) ? 60 : len) + 1) & (~1); + unsigned int nlen = (((skb->len < 60) ? 60 : skb->len) + 1) & (~1); + if (set_bit(0, (void *) &adapter->busy)) { + if (elp_debug >= 2) + printk("%s: transmit blocked\n", dev->name); + return FALSE; + } adapter = dev->priv; - if (nlen < len) - printk("Warning, bad length nlen=%d len=%d %s(%d)\n",nlen,len,filename,__LINE__); - /* * send the adapter a transmit packet command. Ignore segment and offset * and make sure the length is even @@ -971,33 +1085,36 @@ adapter->tx_pcb.command = CMD_TRANSMIT_PACKET; adapter->tx_pcb.length = sizeof(struct Xmit_pkt); adapter->tx_pcb.data.xmit_pkt.buf_ofs - = adapter->tx_pcb.data.xmit_pkt.buf_seg = 0; /* Unused */ + = adapter->tx_pcb.data.xmit_pkt.buf_seg = 0; /* Unused */ adapter->tx_pcb.data.xmit_pkt.pkt_len = nlen; + if (!send_pcb(dev, &adapter->tx_pcb)) { + adapter->busy = 0; return FALSE; } - - /* - * write data to the adapter - */ - cli(); - for (i = 0; i < (nlen/2);i++) { - while (((inb_status(dev->base_addr)&HRDY) == 0) - && (timeout++ < 20000)) - ; - if (timeout >= 20000) { - sti(); - printk("%s: timeout at %s(%d) writing word %d of %d ***\n", - dev->name,filename,__LINE__, i, nlen/2); - return FALSE; - } - - outw_data(*(short *)ptr, dev->base_addr); - ptr +=2; + /* if this happens, we die */ + if (set_bit(0, (void *) &adapter->dmaing)) + printk("%s: tx: DMA %d in progress\n", dev->name, adapter->current_dma.direction); + + adapter->current_dma.direction = 1; + adapter->current_dma.start_time = jiffies; + + target = virt_to_bus(skb->data); + if ((target + nlen) >= MAX_DMA_ADDRESS) { + memcpy(adapter->dma_buffer, skb->data, nlen); + target = virt_to_bus(adapter->dma_buffer); } - sti(); - - prime_rx(dev); + adapter->current_dma.skb = skb; + cli(); + disable_dma(dev->dma); + clear_dma_ff(dev->dma); + set_dma_mode(dev->dma, 0x08); /* dma memory -> io */ + set_dma_addr(dev->dma, target); + set_dma_count(dev->dma, nlen); + enable_dma(dev->dma); + outb_control(inb_control(dev->base_addr) | DMAE | TCEN, dev->base_addr); + if (elp_debug >= 3) + printk("%s: DMA transfer started\n", dev->name); return TRUE; } @@ -1009,23 +1126,33 @@ * ******************************************************/ -static int -elp_start_xmit (struct sk_buff *skb, struct device *dev) +static int elp_start_xmit(struct sk_buff *skb, struct device *dev) { + if (dev->interrupt) { + printk("%s: start_xmit aborted (in irq)\n", dev->name); + return 1; + } + + check_dma(dev); + /* * if the transmitter is still busy, we have a transmit timeout... */ if (dev->tbusy) { - int tickssofar = jiffies - dev->trans_start; + elp_device *adapter = dev->priv; + int tickssofar = jiffies - dev->trans_start; int stat; - if (tickssofar < 40) + + if (tickssofar < 1000) return 1; + stat = inb_status(dev->base_addr); - printk("%s: transmit timed out, %s?\n", dev->name, (stat & ACRF)?"IRQ conflict":"network cable problem"); + printk("%s: transmit timed out, %s?\n", dev->name, (stat & ACRF) ? "IRQ conflict" : "network cable problem"); if (elp_debug >= 1) - printk("%s: status %#02x\n", dev->name, stat); + printk("%s: status %#02x\n", dev->name, stat); dev->trans_start = jiffies; dev->tbusy = 0; + adapter->stats.tx_dropped++; } /* Some upper layer thinks we've missed a tx-done interrupt */ @@ -1038,34 +1165,31 @@ return 0; if (elp_debug >= 3) - printk("%s: request to send packet of length %d\n", dev->name, (int)skb->len); + printk("%s: request to send packet of length %d\n", dev->name, (int) skb->len); + if (set_bit(0, (void *) &dev->tbusy)) { + printk("%s: transmitter access conflict\n", dev->name); + return 1; + } /* * send the packet at skb->data for skb->len */ - if (!send_packet(dev, skb->data, skb->len)) { - printk("%s: failed to transmit packet\n", dev->name); + if (!send_packet(dev, skb)) { + if (elp_debug >= 2) { + printk("%s: failed to transmit packet\n", dev->name); + } + dev->tbusy = 0; return 1; } - if (elp_debug >= 3) - printk("%s: packet of length %d sent\n", dev->name, (int)skb->len); - + printk("%s: packet of length %d sent\n", dev->name, (int) skb->len); /* * start the transmit timeout */ dev->trans_start = jiffies; - /* - * the transmitter is now busy - */ - dev->tbusy = 1; - - /* - * free the buffer - */ - dev_kfree_skb(skb, FREE_WRITE); + prime_rx(dev); return 0; } @@ -1077,7 +1201,7 @@ ******************************************************/ static struct enet_statistics * -elp_get_stats (struct device *dev) + elp_get_stats(struct device *dev) { elp_device *adapter = (elp_device *) dev->priv; @@ -1091,14 +1215,13 @@ /* send a get statistics command to the board */ adapter->tx_pcb.command = CMD_NETWORK_STATISTICS; - adapter->tx_pcb.length = 0; + adapter->tx_pcb.length = 0; adapter->got[CMD_NETWORK_STATISTICS] = 0; if (!send_pcb(dev, &adapter->tx_pcb)) printk("%s: couldn't send get statistics command\n", dev->name); else { int timeout = jiffies + TIMEOUT; - while (adapter->got[CMD_NETWORK_STATISTICS] == 0 && jiffies < timeout) - ; + while (adapter->got[CMD_NETWORK_STATISTICS] == 0 && jiffies < timeout); if (jiffies >= timeout) { TIMEOUT_MSG(__LINE__); return &adapter->stats; @@ -1115,10 +1238,9 @@ * ******************************************************/ -static int -elp_close (struct device *dev) +static int elp_close(struct device *dev) { - elp_device * adapter; + elp_device *adapter; adapter = dev->priv; @@ -1156,6 +1278,9 @@ */ irq2dev_map[dev->irq] = 0; + free_dma(dev->dma); + free_pages((unsigned long) adapter->dma_buffer, __get_order(DMA_BUFFER_SIZE)); + MOD_DEC_USE_COUNT; return 0; @@ -1171,44 +1296,39 @@ * ************************************************************/ -static void -elp_set_mc_list (struct device *dev) +static void elp_set_mc_list(struct device *dev) { elp_device *adapter = (elp_device *) dev->priv; - struct dev_mc_list *dmi=dev->mc_list; + struct dev_mc_list *dmi = dev->mc_list; int i; if (elp_debug >= 3) printk("%s: request to set multicast list\n", dev->name); - if (!(dev->flags&(IFF_PROMISC|IFF_ALLMULTI))) - { + if (!(dev->flags & (IFF_PROMISC | IFF_ALLMULTI))) { /* send a "load multicast list" command to the board, max 10 addrs/cmd */ /* if num_addrs==0 the list will be cleared */ adapter->tx_pcb.command = CMD_LOAD_MULTICAST_LIST; - adapter->tx_pcb.length = 6*dev->mc_count; - for (i=0;imc_count;i++) - { - memcpy(adapter->tx_pcb.data.multicast[i], dmi->dmi_addr,6); - dmi=dmi->next; + adapter->tx_pcb.length = 6 * dev->mc_count; + for (i = 0; i < dev->mc_count; i++) { + memcpy(adapter->tx_pcb.data.multicast[i], dmi->dmi_addr, 6); + dmi = dmi->next; } adapter->got[CMD_LOAD_MULTICAST_LIST] = 0; if (!send_pcb(dev, &adapter->tx_pcb)) printk("%s: couldn't send set_multicast command\n", dev->name); else { int timeout = jiffies + TIMEOUT; - while (adapter->got[CMD_LOAD_MULTICAST_LIST] == 0 && jiffies < timeout) - ; + while (adapter->got[CMD_LOAD_MULTICAST_LIST] == 0 && jiffies < timeout); if (jiffies >= timeout) { TIMEOUT_MSG(__LINE__); } } if (dev->mc_count) adapter->tx_pcb.data.configure = NO_LOOPBACK | RECV_BROAD | RECV_MULTI; - else /* num_addrs == 0 */ + else /* num_addrs == 0 */ adapter->tx_pcb.data.configure = NO_LOOPBACK | RECV_BROAD; - } - else + } else adapter->tx_pcb.data.configure = NO_LOOPBACK | RECV_PROMISC; /* * configure adapter to receive messages (as specified above) @@ -1217,14 +1337,13 @@ if (elp_debug >= 3) printk("%s: sending 82586 configure command\n", dev->name); adapter->tx_pcb.command = CMD_CONFIGURE_82586; - adapter->tx_pcb.length = 2; - adapter->got[CMD_CONFIGURE_82586] = 0; + adapter->tx_pcb.length = 2; + adapter->got[CMD_CONFIGURE_82586] = 0; if (!send_pcb(dev, &adapter->tx_pcb)) printk("%s: couldn't send 82586 configure command\n", dev->name); else { int timeout = jiffies + TIMEOUT; - while (adapter->got[CMD_CONFIGURE_82586] == 0 && jiffies < timeout) - ; + while (adapter->got[CMD_CONFIGURE_82586] == 0 && jiffies < timeout); if (jiffies >= timeout) TIMEOUT_MSG(__LINE__); } @@ -1236,17 +1355,16 @@ * ******************************************************/ -static void -elp_init (struct device *dev) +static void elp_init(struct device *dev) { - elp_device * adapter; + elp_device *adapter = dev->priv; /* * set ptrs to various functions */ dev->open = elp_open; /* local */ dev->stop = elp_close; /* local */ - dev->get_stats = elp_get_stats; /* local */ + dev->get_stats = elp_get_stats; /* local */ dev->hard_start_xmit = elp_start_xmit; /* local */ dev->set_multicast_list = elp_set_mc_list; /* local */ @@ -1256,9 +1374,6 @@ /* * setup ptr to adapter specific information */ - adapter = (elp_device *)(dev->priv = kmalloc(sizeof(elp_device), GFP_KERNEL)); - if (adapter == NULL) - return; memset(&(adapter->stats), 0, sizeof(struct enet_statistics)); /* @@ -1273,31 +1388,29 @@ * Called only by elp_autodetect ************************************************************/ -static int -elp_sense (struct device * dev) +static int elp_sense(struct device *dev) { int timeout; - int addr=dev->base_addr; - const char *name=dev->name; + int addr = dev->base_addr; + const char *name = dev->name; long flags; byte orig_HCR, orig_HSR; - if (check_region(addr, 0xf)) - return -1; + if (check_region(addr, 0xf)) + return -1; - orig_HCR=inb_control(addr); - orig_HSR=inb_status(addr); + orig_HCR = inb_control(addr); + orig_HSR = inb_status(addr); if (elp_debug > 0) printk(search_msg, name, addr); - if (((orig_HCR==0xff) && (orig_HSR==0xff)) || + if (((orig_HCR == 0xff) && (orig_HSR == 0xff)) || ((orig_HCR & DIR) != (orig_HSR & DIR))) { if (elp_debug > 0) printk(notfound_msg, 1); - return -1; /* It can't be 3c505 if HCR.DIR != HSR.DIR */ + return -1; /* It can't be 3c505 if HCR.DIR != HSR.DIR */ } - /* Enable interrupts - we need timers! */ save_flags(flags); sti(); @@ -1305,32 +1418,26 @@ /* Wait for a while; the adapter may still be booting up */ if (elp_debug > 0) printk(stilllooking_msg); - for (timeout = jiffies + (100 * 15); jiffies <= timeout; ) - if (GET_ASF(addr) != ASF_PCB_END) - break; - if (orig_HCR & DIR) { /* If HCR.DIR is up, we pull it down. HSR.DIR should follow. */ - outb_control(orig_HCR & ~DIR,addr); - timeout = jiffies+30; - while (jiffies < timeout) - ; + outb_control(orig_HCR & ~DIR, addr); + timeout = jiffies + 30; + while (jiffies < timeout); restore_flags(flags); if (inb_status(addr) & DIR) { - outb_control(orig_HCR,addr); + outb_control(orig_HCR, addr); if (elp_debug > 0) printk(notfound_msg, 2); return -1; } } else { /* If HCR.DIR is down, we pull it up. HSR.DIR should follow. */ - outb_control(orig_HCR | DIR,addr); - timeout = jiffies+300; - while (jiffies < timeout) - ; + outb_control(orig_HCR | DIR, addr); + timeout = jiffies + 30; + while (jiffies < timeout); restore_flags(flags); if (!(inb_status(addr) & DIR)) { - outb_control(orig_HCR,addr); + outb_control(orig_HCR, addr); if (elp_debug > 0) printk(notfound_msg, 3); return -1; @@ -1341,10 +1448,8 @@ * a hard reset. Also, do a hard reset if selected at the compile time. */ if (elp_debug > 0) - printk(found_msg); + printk(found_msg); - if (((orig_HCR==0x35) && (orig_HSR==0x5b)) || ELP_NEED_HARD_RESET) - adapter_hard_reset(dev); return 0; } @@ -1354,90 +1459,170 @@ * Called only by eplus_probe *************************************************************/ -static int -elp_autodetect (struct device * dev) +static int elp_autodetect(struct device *dev) { - int idx=0; + int idx = 0; /* if base address set, then only check that address - otherwise, run through the table */ - if (dev->base_addr != 0) { /* dev->base_addr == 0 ==> plain autodetect */ - if (elp_sense(dev) == 0) - return dev->base_addr; - } else while ( (dev->base_addr=addr_list[idx++]) ) { + otherwise, run through the table */ + if (dev->base_addr != 0) { /* dev->base_addr == 0 ==> plain autodetect */ if (elp_sense(dev) == 0) return dev->base_addr; - } + } else + while ((dev->base_addr = addr_list[idx++])) { + if (elp_sense(dev) == 0) + return dev->base_addr; + } /* could not find an adapter */ if (elp_debug > 0) printk(couldnot_msg, dev->name); - return 0; /* Because of this, the layer above will return -ENODEV */ + return 0; /* Because of this, the layer above will return -ENODEV */ } + /****************************************************** * * probe for an Etherlink Plus board at the specified address * ******************************************************/ -int -elplus_probe (struct device *dev) +/* There are three situations we need to be able to detect here: + + * a) the card is idle + * b) the card is still booting up + * c) the card is stuck in a strange state (some DOS drivers do this) + * + * In case (a), all is well. In case (b), we wait 10 seconds to see if the + * card finishes booting, and carry on if so. In case (c), we do a hard reset, + * loop round, and hope for the best. + * + * This is all very unpleasant, but hopefully avoids the problems with the old + * probe code (which had a 15-second delay if the card was idle, and didn't + * work at all if it was in a weird state). + */ + +int elplus_probe(struct device *dev) { - elp_device adapter; - int i; + elp_device *adapter; + int i, tries, tries1, timeout, okay; /* * setup adapter structure */ dev->base_addr = elp_autodetect(dev); - if ( !(dev->base_addr) ) + if (!(dev->base_addr)) return -ENODEV; /* - * As we enter here from bootup, the adapter should have IRQs enabled, - * but we can as well enable them anyway. + * setup ptr to adapter specific information */ - outb_control(inb_control(dev->base_addr) | CMDE, dev->base_addr); - autoirq_setup(0); - - /* - * use ethernet address command to probe for board in polled mode - * (this also makes us the IRQ that we need for automatic detection) - */ - adapter.tx_pcb.command = CMD_STATION_ADDRESS; - adapter.tx_pcb.length = 0; - if (!send_pcb (dev, &adapter.tx_pcb) || - !receive_pcb(dev, &adapter.rx_pcb) || - (adapter.rx_pcb.command != CMD_ADDRESS_RESPONSE) || - (adapter.rx_pcb.length != 6)) { - printk("%s: not responding to first PCB\n", dev->name); - autoirq_report(0); + adapter = (elp_device *) (dev->priv = kmalloc(sizeof(elp_device), GFP_KERNEL)); + if (adapter == NULL) { + printk("%s: out of memory\n", dev->name); return -ENODEV; - } + } + + for (tries1 = 0; tries1 < 3; tries1++) { + outb_control((inb_control(dev->base_addr) | CMDE) & ~DIR, dev->base_addr); + /* First try to write just one byte, to see if the card is + * responding at all normally. + */ + timeout = jiffies + 5; + okay = 0; + while (jiffies < timeout && !(inb_status(dev->base_addr) & HCRE)); + if ((inb_status(dev->base_addr) & HCRE)) { + outb_command(0, dev->base_addr); /* send a spurious byte */ + timeout = jiffies + 5; + while (jiffies < timeout && !(inb_status(dev->base_addr) & HCRE)); + if (inb_status(dev->base_addr) & HCRE) + okay = 1; + } + if (!okay) { + /* Nope, it's ignoring the command register. This means that + * either it's still booting up, or it's died. + */ + printk("%s: command register wouldn't drain, assuming ", dev->name); + if ((inb_status(dev->base_addr) & 7) == 3) { + /* If the adapter status is 3, it *could* still be booting. + * Give it the benefit of the doubt for 10 seconds. + */ + printk("3c505 still starting\n"); + timeout = jiffies + 10 * HZ; + while (jiffies < timeout && (inb_status(dev->base_addr) & 7)); + if (inb_status(dev->base_addr) & 7) { + printk("%s: 3c505 failed to start\n", dev->name); + continue; + } + } else { + /* Otherwise, it must just be in a strange state. We probably + * need to kick it. + */ + printk("3c505 dead\n"); + continue; + } + } + for (tries = 0; tries < 5; tries++) { - if (dev->irq) { /* Is there a preset IRQ? */ - if (dev->irq != autoirq_report(0)) { - printk("%s: Detected IRQ doesn't match user-defined one.\n",dev->name); + /* + * Try to set the Ethernet address, to make sure that the board + * is working. + */ + adapter->tx_pcb.command = CMD_STATION_ADDRESS; + adapter->tx_pcb.length = 0; + autoirq_setup(0); + if (!send_pcb(dev, &adapter->tx_pcb)) { + printk("%s: could not send first PCB\n", dev->name); + autoirq_report(0); + continue; + } + if (!receive_pcb(dev, &adapter->rx_pcb)) { + printk("%s: could not read first PCB\n", dev->name); + autoirq_report(0); + continue; + } + if ((adapter->rx_pcb.command != CMD_ADDRESS_RESPONSE) || + (adapter->rx_pcb.length != 6)) { + printk("%s: first PCB wrong (%d, %d)\n", dev->name, adapter->rx_pcb.command, adapter->rx_pcb.length); + autoirq_report(0); + continue; + } + goto okay; + } + /* It's broken. Do a hard reset to re-initialise the board, + * and try again. + */ + printk(KERN_INFO "%s: resetting adapter\n", dev->name); + outb_control(inb_control(dev->base_addr) | FLSH | ATTN, dev->base_addr); + outb_control(inb_control(dev->base_addr) & ~(FLSH | ATTN), dev->base_addr); + } + printk("%s: 3c505 is sulking, giving up\n", dev->name); + return -ENODEV; + + okay: + if (dev->irq) { /* Is there a preset IRQ? */ + int rpt = autoirq_report(0); + if (dev->irq != rpt) { + printk("%s: warning, irq %d configured but %d detected\n", dev->name, dev->irq, rpt); return -ENODEV; } /* if dev->irq == autoirq_report(0), all is well */ - } else /* No preset IRQ; just use what we can detect */ - dev->irq=autoirq_report(0); - switch (dev->irq) { /* Legal, sane? */ - case 0: - printk("%s: No IRQ reported by autoirq_report().\n",dev->name); - printk("%s: Check the jumpers of your 3c505 board.\n",dev->name); - return -ENODEV; - case 1: - case 6: - case 8: - case 13: - printk("%s: Impossible IRQ %d reported by autoirq_report().\n", - dev->name, dev->irq); - return -ENODEV; + } else /* No preset IRQ; just use what we can detect */ + dev->irq = autoirq_report(0); + switch (dev->irq) { /* Legal, sane? */ + case 0: + printk("%s: No IRQ reported by autoirq_report().\n", dev->name); + printk("%s: Check the jumpers of your 3c505 board.\n", dev->name); + return -ENODEV; + case 1: + case 6: + case 8: + case 13: + printk("%s: Impossible IRQ %d reported by autoirq_report().\n", + dev->name, dev->irq); + return -ENODEV; } /* * Now we have the IRQ number so we can disable the interrupts from @@ -1448,19 +1633,56 @@ /* * copy ethernet address into structure */ - for (i = 0; i < 6; i++) - dev->dev_addr[i] = adapter.rx_pcb.data.eth_addr[i]; + for (i = 0; i < 6; i++) + dev->dev_addr[i] = adapter->rx_pcb.data.eth_addr[i]; + + /* set up the DMA channel */ + dev->dma = ELP_DMA; /* * print remainder of startup message */ - printk("%s: 3c505 card found at I/O %#lx using IRQ%d" - " has address %02x:%02x:%02x:%02x:%02x:%02x\n", - dev->name, dev->base_addr, dev->irq, + printk("%s: 3c505 at %#lx, irq %d, dma %d, ", + dev->name, dev->base_addr, dev->irq, dev->dma); + printk("addr %02x:%02x:%02x:%02x:%02x:%02x, ", dev->dev_addr[0], dev->dev_addr[1], dev->dev_addr[2], dev->dev_addr[3], dev->dev_addr[4], dev->dev_addr[5]); /* + * read more information from the adapter + */ + + adapter->tx_pcb.command = CMD_ADAPTER_INFO; + adapter->tx_pcb.length = 0; + if (!send_pcb(dev, &adapter->tx_pcb) || + !receive_pcb(dev, &adapter->rx_pcb) || + (adapter->rx_pcb.command != CMD_ADAPTER_INFO_RESPONSE) || + (adapter->rx_pcb.length != 10)) { + printk("%s: not responding to second PCB\n", dev->name); + } + printk("rev %d.%d, %dk\n", adapter->rx_pcb.data.info.major_vers, adapter->rx_pcb.data.info.minor_vers, adapter->rx_pcb.data.info.RAM_sz); + + /* + * reconfigure the adapter memory to better suit our purposes + */ + adapter->tx_pcb.command = CMD_CONFIGURE_ADAPTER_MEMORY; + adapter->tx_pcb.length = 12; + adapter->tx_pcb.data.memconf.cmd_q = 8; + adapter->tx_pcb.data.memconf.rcv_q = 8; + adapter->tx_pcb.data.memconf.mcast = 10; + adapter->tx_pcb.data.memconf.frame = 10; + adapter->tx_pcb.data.memconf.rcv_b = 10; + adapter->tx_pcb.data.memconf.progs = 0; + if (!send_pcb(dev, &adapter->tx_pcb) || + !receive_pcb(dev, &adapter->rx_pcb) || + (adapter->rx_pcb.command != CMD_CONFIGURE_ADAPTER_RESPONSE) || + (adapter->rx_pcb.length != 2)) { + printk("%s: could not configure adapter memory\n", dev->name); + } + if (adapter->rx_pcb.data.configure) { + printk("%s: adapter configuration failed\n", dev->name); + } + /* * and reserve the address region */ request_region(dev->base_addr, ELP_IO_EXTENT, "3c505"); @@ -1469,16 +1691,19 @@ * initialise the device */ elp_init(dev); + return 0; } #ifdef MODULE -static char devicename[9] = { 0, }; -static struct device dev_3c505 = { - devicename, /* device name is inserted by linux/drivers/net/net_init.c */ +static char devicename[9] = +{0,}; +static struct device dev_3c505 = +{ + devicename, /* device name is inserted by linux/drivers/net/net_init.c */ 0, 0, 0, 0, 0, 0, - 0, 0, 0, NULL, elplus_probe }; + 0, 0, 0, NULL, elplus_probe}; int io = 0x300; int irq = 0; @@ -1488,7 +1713,7 @@ if (io == 0) printk("3c505: You should not use auto-probing with insmod!\n"); dev_3c505.base_addr = io; - dev_3c505.irq = irq; + dev_3c505.irq = irq; if (register_netdev(&dev_3c505) != 0) { printk("3c505: register_netdev() returned non-zero.\n"); return -EIO; @@ -1496,8 +1721,7 @@ return 0; } -void -cleanup_module(void) +void cleanup_module(void) { unregister_netdev(&dev_3c505); kfree(dev_3c505.priv); @@ -1506,4 +1730,14 @@ /* If we don't do this, we can't re-insmod it later. */ release_region(dev_3c505.base_addr, ELP_IO_EXTENT); } -#endif /* MODULE */ + +#endif /* MODULE */ + + +/* + * Local Variables: + * c-file-style: "linux" + * tab-width: 8 + * compile-command: "gcc -D__KERNEL__ -I/discs/bibble/src/linux-1.3.69/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strength-reduce -pipe -m486 -DCPU=486 -DMODULE -c 3c505.c" + * End: + */ diff -u --recursive --new-file v1.3.86/linux/drivers/net/3c59x.c linux/drivers/net/3c59x.c --- v1.3.86/linux/drivers/net/3c59x.c Fri Mar 1 07:50:42 1996 +++ linux/drivers/net/3c59x.c Fri Apr 12 09:49:36 1996 @@ -127,7 +127,7 @@ #define TCOM_VENDOR_ID 0x10B7 /* 3Com's manufacturer's ID. */ -/* Operational defintions. +/* Operational definitions. These are not used by other compilation units and thus are not exported in a ".h" file. @@ -141,7 +141,7 @@ /* The top five bits written to EL3_CMD are a command, the lower 11 bits are the parameter, if applicable. Note that 11 parameters bits was fine for ethernet, but the new chip - can handle FDDI lenght frames (~4500 octets) and now parameters count + can handle FDDI length frames (~4500 octets) and now parameters count 32-bit 'Dwords' rather than octets. */ enum vortex_cmd { @@ -247,7 +247,7 @@ /* Unlike the other PCI cards the 59x cards don't need a large contiguous memory region, so making the driver a loadable module is feasible. - Unfortuneately maximizing the shared code between the integrated and + Unfortunately maximizing the shared code between the integrated and module version of the driver results in a complicated set of initialization procedures. init_module() -- modules / tc59x_init() -- built-in @@ -255,7 +255,7 @@ vortex_scan() The common routine that scans for PCI and EISA cards vortex_found_device() Allocate a device structure when we find a card. Different versions exist for modules and built-in. - vortex_probe1() Fill in the device structure -- this is seperated + vortex_probe1() Fill in the device structure -- this is separated so that the modules code can put it in dev->init. */ /* This driver uses 'options' to pass the media type, full-duplex flag, etc. */ @@ -713,7 +713,7 @@ int i = 4; while (--i > 0 && (tx_status = inb(ioaddr + TxStatus)) > 0) { - if (tx_status & 0x3C) { /* A Tx-disabling error occured. */ + if (tx_status & 0x3C) { /* A Tx-disabling error occurred. */ if (vortex_debug > 2) printk("%s: Tx error, status %2.2x.\n", dev->name, tx_status); @@ -956,7 +956,7 @@ free_shared_irq(dev->irq, dev); #else free_irq(dev->irq, NULL); - /* Mmmm, we should diable all interrupt sources here. */ + /* Mmmm, we should disable all interrupt sources here. */ irq2dev_map[dev->irq] = 0; #endif @@ -1005,7 +1005,7 @@ vp->stats.tx_packets += (inb(ioaddr + 9)&0x30) << 4; /* Rx packets */ inb(ioaddr + 7); /* Must read to clear */ /* Tx deferrals */ inb(ioaddr + 8); - /* Don't bother with register 9, an extention of registers 6&7. + /* Don't bother with register 9, an extension of registers 6&7. If we do use the 6&7 values the atomic update assumption above is invalid. */ inw(ioaddr + 10); /* Total Rx and Tx octets. */ diff -u --recursive --new-file v1.3.86/linux/drivers/net/Makefile linux/drivers/net/Makefile --- v1.3.86/linux/drivers/net/Makefile Wed Apr 10 17:02:24 1996 +++ linux/drivers/net/Makefile Thu Apr 11 09:20:34 1996 @@ -8,7 +8,7 @@ include CONFIG L_TARGET := net.a -L_OBJS := Space.o auto_irq.o net_init.o loopback.o +L_OBJS := auto_irq.o M_OBJS := MOD_LIST_NAME := NET_MODULES @@ -29,6 +29,10 @@ CONFIG_SLHC_MODULE = y endif endif +endif + +ifeq ($(CONFIG_NET),y) +L_OBJS += Space.o net_init.o loopback.o endif ifeq ($(CONFIG_SEEQ8005),y) diff -u --recursive --new-file v1.3.86/linux/drivers/net/README.3c505 linux/drivers/net/README.3c505 --- v1.3.86/linux/drivers/net/README.3c505 Wed Apr 3 16:06:55 1996 +++ linux/drivers/net/README.3c505 Fri Apr 12 09:41:58 1996 @@ -1,41 +0,0 @@ -The address and IRQ used by the 3c505 driver can be configured at boot -time by typing 'ether=eth0,15,0x300' (replace IRQ and base address with -ones that tell how your adapter is jumpered). The driver does not yet -use DMA. - -If no base address is given at the boot time, the driver will look for -a 3c505 adapter at addresses 0x300, 0x280 and 0x310 in this order, -possibly messing up any other hardware residing in these addresses. -If a base address is given, it will be verified. - -The driver has two compile-time settings in the CONFIG file: -ELP_NEED_HARD_RESET - Some DOS drivers seem to get the adapter to some irrecoverable state - if the machine is "warm booted" from DOS to Linux. If you experience - problems when warm booting, but "cold boot" works, #defining this - to 1 may help. As of 3c505.c v0.8 the driver should be able to find - out whether of not this is needed, but I'm not completely sure. -ELP_DEBUG - The driver debug level. It's probably best to leave it at 0 most of the time. - If you are having trouble, setting it to 1 may give you more information. - Any higher setting is too verbose for most purposes. - -Known problems: - The 3c505 is a slow card, mostly because of the way it talks to the host. - Don't expect any great performance from it. - - I am seeing periodic "transmit timed out" and "timeout waiting for PCB - acknowledge" messages under high load. I'm not sure what's causing these - - it seems that the 3c505 occasionally just loses a command. They seem not to - be fatal, anyway. - - There may be some initialisation problems still lurking, particularly when - warm-booting from DOS (ELP_NEED_HARD_RESET seems not to help). - -Authors: - The driver is mainly written by Craig Southeren, email - . - Parts of the driver (adapting the driver to 1.1.4+ kernels, - IRQ/address detection, some changes) and this README by - Juha Laiho . - Philip Blundell made some more changes. diff -u --recursive --new-file v1.3.86/linux/drivers/net/README.eql linux/drivers/net/README.eql --- v1.3.86/linux/drivers/net/README.eql Tue Jun 6 11:22:07 1995 +++ linux/drivers/net/README.eql Fri Apr 12 09:49:36 1996 @@ -1,6 +1,6 @@ EQL Driver: Serial IP Load Balancing HOWTO Simon "Guru Aleph-Null" Janes, simon@ncm.com - v1.1, Feburary 27, 1995 + v1.1, February 27, 1995 This is the manual for the EQL device driver. EQL is a software device that lets you load-balance IP serial links (SLIP or uncompressed PPP) @@ -104,7 +104,7 @@ In rc.inet1, ifconfig the eql device to the IP address you usually use for your machine, and the MTU you prefer for your SLIP lines. One - could argue that MTU should be roughly half the usuall size for two + could argue that MTU should be roughly half the usual size for two modems, one-third for three, one-fourth for four, etc... But going too far below 296 is probably overkill. Here is an example ifconfig command that sets up the eql device: @@ -265,7 +265,7 @@ o icee from LinuxNET patched 1.1.86 without any rejects and was able to boot the kernel and enslave a couple of ISDN PPP links. - 5.1. Randoph Bentson's Test Report + 5.1. Randolph Bentson's Test Report diff -u --recursive --new-file v1.3.86/linux/drivers/net/README.pt linux/drivers/net/README.pt --- v1.3.86/linux/drivers/net/README.pt Tue Dec 26 06:03:00 1995 +++ linux/drivers/net/README.pt Fri Apr 12 09:49:36 1996 @@ -24,7 +24,7 @@ recompile it. The driver is not real good at the moment for finding the card. You can -'help' it by changing the order of the potiential addresses in the structure +'help' it by changing the order of the potential addresses in the structure found in the pt_init() function so the address of where the card is is put first. diff -u --recursive --new-file v1.3.86/linux/drivers/net/arcnet.c linux/drivers/net/arcnet.c --- v1.3.86/linux/drivers/net/arcnet.c Thu Mar 28 17:34:34 1996 +++ linux/drivers/net/arcnet.c Fri Apr 12 09:49:37 1996 @@ -211,7 +211,7 @@ /**************************************************************************/ /* Normally, the ARCnet device needs to be assigned a name (default arc0). - * Ethernet devices have a fucntion to automatically try eth0, eth1, etc + * Ethernet devices have a function to automatically try eth0, eth1, etc * until a free name is found. To name the ARCnet device using an "eth?" * device name, define this option. */ diff -u --recursive --new-file v1.3.86/linux/drivers/net/bsd_comp.c linux/drivers/net/bsd_comp.c --- v1.3.86/linux/drivers/net/bsd_comp.c Sun Mar 24 12:09:36 1996 +++ linux/drivers/net/bsd_comp.c Fri Apr 12 09:49:37 1996 @@ -37,7 +37,7 @@ */ /* - * This version is for use with contigious buffers on Linux-derived systems. + * This version is for use with contiguous buffers on Linux-derived systems. * * ==FILEVERSION 4== * diff -u --recursive --new-file v1.3.86/linux/drivers/net/de4x5.c linux/drivers/net/de4x5.c --- v1.3.86/linux/drivers/net/de4x5.c Thu Mar 21 20:38:37 1996 +++ linux/drivers/net/de4x5.c Fri Apr 12 09:49:37 1996 @@ -53,7 +53,7 @@ achieved by letting the driver autoprobe as if it were compiled into the kernel, except that there is no autoprobing of the IRQ lines. This is of no great consequence except do make sure you're not sharing interrupts - with anything that cannot accomodate interrupt sharing! The existing + with anything that cannot accommodate interrupt sharing! The existing register_netdevice() code will only allow one device to be registered at a time. @@ -108,7 +108,7 @@ applies most particularly to the DC21140 based cards). I've changed the timing routines to use the kernel timer and scheduling - functions so that the hangs and other assorted problems that occured + functions so that the hangs and other assorted problems that occurred while autosensing the media should be gone. A bonus for the DC21040 auto media sense algorithm is that it can now use one that is more in line with the rest (the DC21040 chip doesn't have a hardware timer). @@ -173,7 +173,7 @@ Made changes suggested by : Change driver to detect all DECchip based cards with DEC_ONLY restriction a special case. - Changed driver to autprobe as a module. No irq + Changed driver to autoprobe as a module. No irq checking is done now - assume BIOS is good! Added SMC9332 detection 0.41 21-Mar-96 Don't check for get_hw_addr checksum unless DEC card @@ -1156,7 +1156,7 @@ if (sts & STS_SE) { /* Bus Error */ STOP_DE4X5; - printk("%s: Fatal bus error occured, sts=%#8x, device stopped.\n", + printk("%s: Fatal bus error occurred, sts=%#8x, device stopped.\n", dev->name, sts); return; } diff -u --recursive --new-file v1.3.86/linux/drivers/net/depca.c linux/drivers/net/depca.c --- v1.3.86/linux/drivers/net/depca.c Wed Mar 6 15:04:20 1996 +++ linux/drivers/net/depca.c Fri Apr 12 09:49:37 1996 @@ -194,7 +194,7 @@ ALPHA support from 0.41 26-Jun-95 Added verify_area() calls in depca_ioctl() from suggestion by - 0.42 27-Dec-95 Add 'mem' shared memory assigment for loadable + 0.42 27-Dec-95 Add 'mem' shared memory assignment for loadable modules. Add 'adapter_name' for loadable modules when no PROM. Both above from a suggestion by @@ -999,7 +999,7 @@ if (status < 0) { /* Packet not yet sent! */ break; - } else if (status & T_ERR) { /* An error occured. */ + } else if (status & T_ERR) { /* An error occurred. */ status = readl(&lp->tx_ring[entry].misc); lp->stats.tx_errors++; if (status & TMD3_RTRY) lp->stats.tx_aborted_errors++; diff -u --recursive --new-file v1.3.86/linux/drivers/net/eepro.c linux/drivers/net/eepro.c --- v1.3.86/linux/drivers/net/eepro.c Wed Apr 10 17:02:24 1996 +++ linux/drivers/net/eepro.c Fri Apr 12 09:49:37 1996 @@ -841,7 +841,7 @@ /* * We must make the kernel realise we had to move * into promisc mode or we start all out war on - * the cable. If it was a promisc rewquest the + * the cable. If it was a promisc request the * flag is already set. If not we assert it. */ dev->flags|=IFF_PROMISC; @@ -868,7 +868,7 @@ unsigned short status, *eaddrs; int i, boguscount = 0; - /* Disable RX and TX interrupts. Neccessary to avoid + /* Disable RX and TX interrupts. Necessary to avoid corruption of the HOST_ADDRESS_REG by interrupt service routines. */ outb(ALL_MASK, ioaddr + INT_MASK_REG); @@ -1007,7 +1007,7 @@ tx_available = lp->tx_start - lp->tx_end; else tx_available = XMT_RAM; - /* Disable RX and TX interrupts. Neccessary to avoid + /* Disable RX and TX interrupts. Necessary to avoid corruption of the HOST_ADDRESS_REG by interrupt service routines. */ outb(ALL_MASK, ioaddr + INT_MASK_REG); diff -u --recursive --new-file v1.3.86/linux/drivers/net/eexpress.c linux/drivers/net/eexpress.c --- v1.3.86/linux/drivers/net/eexpress.c Sun Mar 17 09:58:21 1996 +++ linux/drivers/net/eexpress.c Fri Apr 12 09:49:37 1996 @@ -29,7 +29,7 @@ */ /* - * The original EtherExpress driver was just about useable, but + * The original EtherExpress driver was just about usable, but * suffered from a long startup delay, a hard limit of 16k memory * usage on the card (EtherExpress 16s have either 32k or 64k), * and random locks under load. The last was particularly annoying @@ -74,7 +74,7 @@ * never reset the card *after* booting the kernel - once at probe time * must be sufficient, and we'll just have to put up with that failing * occasionally (or buy a new NIC). By the way, this looks like a - * definate card bug, since Intel's own driver for DOS does exactly the + * definite card bug, since Intel's own driver for DOS does exactly the * same. */ @@ -183,7 +183,7 @@ 0x0000,0x0000, /* address of ISCP (lo,hi) */ 0x0001, /* ISCP: busy - cleared after reset */ - 0x0008,0x0000,0x0000, /* offsett,address (lo,hi) of SCB */ + 0x0008,0x0000,0x0000, /* offset,address (lo,hi) of SCB */ 0x0000,0x0000, /* SCB: status, commands */ 0x0000,0x0000, /* links to first command block, first receive descriptor */ @@ -687,7 +687,7 @@ * Sanity check the suspected EtherExpress card * Read hardware address, reset card, size memory and * initialize buffer memory pointers. These should - * probably be held in dev->priv, incase someone has 2 + * probably be held in dev->priv, in case someone has 2 * differently configured cards in their box (Arghhh!) */ @@ -953,7 +953,7 @@ /* * Writes down the list of transmit buffers into card - * memory. Initial seperate, repeated transmits link + * memory. Initial separate, repeated transmits link * them into a circular list, such that the CU can * be constantly active, and unlink them as we reap * transmitted packet buffers, so the CU doesn't loop diff -u --recursive --new-file v1.3.86/linux/drivers/net/eql.c linux/drivers/net/eql.c --- v1.3.86/linux/drivers/net/eql.c Wed Feb 7 08:55:36 1996 +++ linux/drivers/net/eql.c Fri Apr 12 09:49:37 1996 @@ -2,7 +2,7 @@ * Equalizer Load-balancer for serial network interfaces. * * (c) Copyright 1995 Simon "Guru Aleph-Null" Janes - * NCM: Network and Communications Mangement, Inc. + * NCM: Network and Communications Management, Inc. * * * This software may be used and distributed according to the terms @@ -73,7 +73,7 @@ * infinite sleep in a lock somewhere.. * * Revision 3.2 1995/01/15 16:46:06 guru - * Log trimmed of non-pertinant 1.x branch messages + * Log trimmed of non-pertinent 1.x branch messages * * Revision 3.1 1995/01/15 14:41:45 guru * New Scheduler and timer stuff... @@ -664,7 +664,7 @@ #if 0 /* not currently used, will be used - when we realy use a priority queue */ + when we really use a priority queue */ static long slave_Bps(slave_t *slave) { return (slave->priority_Bps); @@ -738,7 +738,7 @@ slave_t *zapped; /* * This should only be called when there isn't a - * timer running that scans the data periodicaly.. + * timer running that scans the data periodically.. * dev_close stops the timer... */ diff -u --recursive --new-file v1.3.86/linux/drivers/net/eth16i.c linux/drivers/net/eth16i.c --- v1.3.86/linux/drivers/net/eth16i.c Fri Mar 1 07:50:44 1996 +++ linux/drivers/net/eth16i.c Fri Apr 12 09:49:37 1996 @@ -378,7 +378,7 @@ { static unsigned version_printed = 0; unsigned int irq = 0; - boot = 1; /* To inform initilization that we are in boot probe */ + boot = 1; /* To inform initialization that we are in boot probe */ /* The MB86985 chip has on register which holds information in which @@ -650,12 +650,12 @@ if( (jiffies - starttime) > TIMEOUT_TICKS) { if(eth16i_debug > 1) - printk("Timeout occured waiting transmit packet received\n"); + printk("Timeout occurred waiting transmit packet received\n"); starttime = jiffies; while((inb(ioaddr + RX_STATUS_REG) & 0x80) == 0) { if( (jiffies - starttime) > TIMEOUT_TICKS) { if(eth16i_debug > 1) - printk("Timeout occured waiting receive packet\n"); + printk("Timeout occurred waiting receive packet\n"); return -1; } } @@ -992,7 +992,7 @@ dev->name, inb(ioaddr + RECEIVE_MODE_REG), status); if( !(status & PKT_GOOD) ) { - /* Hmm..something went wrong. Let's check what error occured */ + /* Hmm..something went wrong. Let's check what error occurred */ lp->stats.rx_errors++; if( status & PKT_SHORT ) lp->stats.rx_length_errors++; if( status & PKT_ALIGN_ERR ) lp->stats.rx_frame_errors++; @@ -1015,7 +1015,7 @@ skb = dev_alloc_skb(pkt_len + 3); if( skb == NULL ) { - printk("%s: Could'n allocate memory for packet (len %d)\n", + printk("%s: Couldn't allocate memory for packet (len %d)\n", dev->name, pkt_len); outb(RX_BUF_SKIP_PACKET, ioaddr + FILTER_SELF_RX_REG); lp->stats.rx_dropped++; @@ -1118,7 +1118,7 @@ if(lp->tx_queue) { /* Is there still packets ? */ /* There was packet(s) so start transmitting and write also - how many packets there is to be sended */ + how many packets there is to be sent */ outb(TX_START | lp->tx_queue, ioaddr + TRANSMIT_START_REG); lp->tx_queue = 0; lp->tx_queue_len = 0; diff -u --recursive --new-file v1.3.86/linux/drivers/net/eth82586.h linux/drivers/net/eth82586.h --- v1.3.86/linux/drivers/net/eth82586.h Sun Mar 10 09:28:55 1996 +++ linux/drivers/net/eth82586.h Fri Apr 12 09:49:37 1996 @@ -2,7 +2,7 @@ * eth82586.h: Intel EtherExpress defines * * Written 1995 by John Sullivan - * See eexpress.c for furthur details + * See eexpress.c for further details * documentation and usage to do. */ @@ -89,7 +89,7 @@ * SCB defines */ -/* these functions take the SCB status word and test the relavent status bit */ +/* these functions take the SCB status word and test the relevant status bit */ #define SCB_complete(s) ((s&0x8000)!=0) #define SCB_rxdframe(s) ((s&0x4000)!=0) #define SCB_CUdead(s) ((s&0x2000)!=0) diff -u --recursive --new-file v1.3.86/linux/drivers/net/ewrk3.h linux/drivers/net/ewrk3.h --- v1.3.86/linux/drivers/net/ewrk3.h Sat Dec 30 15:57:20 1995 +++ linux/drivers/net/ewrk3.h Fri Apr 12 09:49:37 1996 @@ -115,7 +115,7 @@ #define EISA_IOB 0x1f /* Compare bits for I/O Base Address */ /* -** I/O Congiguration/Management Register bit definitions (EWRK3_CMR) +** I/O Configuration/Management Register bit definitions (EWRK3_CMR) */ #define CMR_RA 0x80 /* Read Ahead */ #define CMR_WB 0x40 /* Write Behind */ diff -u --recursive --new-file v1.3.86/linux/drivers/net/fmv18x.c linux/drivers/net/fmv18x.c --- v1.3.86/linux/drivers/net/fmv18x.c Wed Mar 13 08:38:54 1996 +++ linux/drivers/net/fmv18x.c Fri Apr 12 09:49:37 1996 @@ -13,9 +13,9 @@ Masayoshi UTAKA (utaka@ace.yk.fujitsu.co.jp) for testing this driver. H. NEGISHI (agy, negishi@sun45.psd.cs.fujitsu.co.jp) - for sugestion of some program modification. + for suggestion of some program modification. Masahiro SEKIGUCHI - for sugestion of some program modification. + for suggestion of some program modification. Kazutoshi MORIOKA (morioka@aurora.oaks.cs.fujitsu.co.jp) for testing this driver. diff -u --recursive --new-file v1.3.86/linux/drivers/net/hp100.c linux/drivers/net/hp100.c --- v1.3.86/linux/drivers/net/hp100.c Fri Mar 1 07:50:44 1996 +++ linux/drivers/net/hp100.c Fri Apr 12 09:49:38 1996 @@ -148,7 +148,7 @@ u_char *mem_ptr_virt; /* virtual memory mapped area, maybe NULL */ u_char *mem_ptr_phys; /* physical memory mapped area */ short lan_type; /* 10Mb/s, 100Mb/s or -1 (error) */ - int hub_status; /* login to hub was successfull? */ + int hub_status; /* login to hub was successful? */ u_char mac1_mode; u_char mac2_mode; struct enet_statistics stats; @@ -382,7 +382,7 @@ { mem_ptr_phys = (u_char *)( hp100_inw( MEM_MAP_LSW ) | ( hp100_inw( MEM_MAP_MSW ) << 16 ) ); - (u_int)mem_ptr_phys &= ~0x1fff; /* 8k aligment */ + (u_int)mem_ptr_phys &= ~0x1fff; /* 8k alignment */ if ( bus == HP100_BUS_ISA && ( (u_long)mem_ptr_phys & ~0xfffff ) != 0 ) { mem_ptr_phys = NULL; diff -u --recursive --new-file v1.3.86/linux/drivers/net/hp100.h linux/drivers/net/hp100.h --- v1.3.86/linux/drivers/net/hp100.h Wed Jun 28 18:35:04 1995 +++ linux/drivers/net/hp100.h Fri Apr 12 09:49:38 1996 @@ -168,7 +168,7 @@ /* * IRQChannelReg bits/masks. */ -#define HP100_ZERO_WAIT_EN 0x80 /* 0:No, 1:Yes assers NOWS signal */ +#define HP100_ZERO_WAIT_EN 0x80 /* 0:No, 1:Yes asserts NOWS signal */ #define HP100_LEVEL_IRQ 0x10 /* 0:Edge, 1:Level type interrupts. */ /* Only valid on EISA cards. */ #define HP100_IRQ_MASK 0x0F /* Isolate the IRQ bits */ @@ -241,7 +241,7 @@ #define HP100_RX_IDLE 0x80 /* 0:Yes, 1:No currently receiving pkts */ #define HP100_TX_IDLE 0x40 /* 0:Yes, 1:No currently Txing pkts */ #define HP100_RX_EN 0x20 /* 0:No, 1:Yes allow receiving of pkts */ -#define HP100_TX_EN 0x10 /* 0:No, 1:Yes allow transmiting of pkts */ +#define HP100_TX_EN 0x10 /* 0:No, 1:Yes allow transmitting of pkts */ #define HP100_ACC_ERRORED 0x08 /* 0:No, 1:Yes allow Rx of errored pkts */ #define HP100_ACC_MC 0x04 /* 0:No, 1:Yes allow Rx of multicast pkts */ #define HP100_ACC_BC 0x02 /* 0:No, 1:Yes allow Rx of broadcast pkts */ diff -u --recursive --new-file v1.3.86/linux/drivers/net/ibmtr.c linux/drivers/net/ibmtr.c --- v1.3.86/linux/drivers/net/ibmtr.c Mon Apr 8 19:01:43 1996 +++ linux/drivers/net/ibmtr.c Fri Apr 12 09:49:38 1996 @@ -40,7 +40,7 @@ - modified shared memory and mmio access port the driver to alpha platform (structure access -> readb/writeb) - Chagnes by Steve Kipisz (bungy@ibm.net or kipisz@vnet.ibm.com) + Changes by Steve Kipisz (bungy@ibm.net or kipisz@vnet.ibm.com) (January 18 1996): - swapped WWOR and WWCR in ibmtr.h - moved some init code from tok_probe into trdev_init. The @@ -52,7 +52,7 @@ Warnings !!!!!!!!!!!!!! This driver is only partially sanitized for support of multiple - adapters. It will almost definately fail if more than one + adapters. It will almost definitely fail if more than one active adapter is identified. */ @@ -246,7 +246,7 @@ where it is?). We also have a coded interrupt address. */ segment = inb(PIOaddr); - /* out of range values so we'll assume non-existant IO device */ + /* out of range values so we'll assume non-existent IO device */ if (segment < 0x40 || segment > 0xe0) { PIOaddr = 0; continue; /* clear to flag fail and try next */ @@ -599,7 +599,7 @@ if (ti->open_status==IN_PROGRESS) sleep_on(&ti->wait_for_reset); - if (ti->open_status==SUCCES) { + if (ti->open_status==SUCCESS) { dev->tbusy=0; dev->interrupt=0; dev->start=1; @@ -820,7 +820,7 @@ } else { ti->exsap_station_id= readw(ti->srb+offsetof(struct dlc_open_sap, station_id)); - ti->open_status=SUCCES; /* TR adapter is now available */ + ti->open_status=SUCCESS; /* TR adapter is now available */ wake_up(&ti->wait_for_reset); } break; diff -u --recursive --new-file v1.3.86/linux/drivers/net/ibmtr.h linux/drivers/net/ibmtr.h --- v1.3.86/linux/drivers/net/ibmtr.h Sun Mar 24 12:09:36 1996 +++ linux/drivers/net/ibmtr.h Fri Apr 12 09:49:38 1996 @@ -87,7 +87,7 @@ encountered a serious problem and has closed itself. Whoa. */ #define SRB_RESP_INT 0x20 /* Bit 5 - SRB response. The adapter has accepted - an SRB request and set the return code withing + an SRB request and set the return code within the SRB. */ #define ASB_FREE_INT 0x10 /* Bit 4 - ASB free. The adapter has read the ASB and this area can be safely reused. This interrupt @@ -121,7 +121,7 @@ #define RESP_IN_ASB 0x10 /* Bit 4 - Indicates that you have placed a response (an ASB) in the shared RAM which is available for the adapter's use. */ -/* Bit 3 - Indicates that you are ready to ut an SRB in the shared RAM, but that a previous */ +/* Bit 3 - Indicates that you are ready to put an SRB in the shared RAM, but that a previous */ /* command is still pending. The adapter will then interrupt you when the previous */ /* command is completed */ /* Bit 2 - Indicates that you are ready to put an ASB in the shared RAM, but that a previous */ @@ -169,7 +169,7 @@ #define SET_PAGE(x) #endif -typedef enum { IN_PROGRESS, SUCCES, FAILURE, CLOSED } open_state; +typedef enum { IN_PROGRESS, SUCCESS, FAILURE, CLOSED } open_state; /* do_tok_int possible values */ #define FIRST_INT 1 diff -u --recursive --new-file v1.3.86/linux/drivers/net/lance.c linux/drivers/net/lance.c --- v1.3.86/linux/drivers/net/lance.c Tue Apr 2 13:32:20 1996 +++ linux/drivers/net/lance.c Fri Apr 12 09:49:38 1996 @@ -155,7 +155,7 @@ */ /* Memory accessed from LANCE card must be aligned on 8-byte boundaries. - But we can't believe that kmalloc()'ed memory satisfyes it. -- SAW */ + But we can't believe that kmalloc()'ed memory satisfies it. -- SAW */ #define LANCE_KMALLOC(x) \ ((void *) (((unsigned long)kmalloc((x)+7, GFP_DMA | GFP_KERNEL)+7) & ~7)) diff -u --recursive --new-file v1.3.86/linux/drivers/net/ni52.c linux/drivers/net/ni52.c --- v1.3.86/linux/drivers/net/ni52.c Fri Mar 1 07:56:09 1996 +++ linux/drivers/net/ni52.c Fri Apr 12 09:49:38 1996 @@ -38,7 +38,7 @@ * The internal sysbus seems to be slow. So we often lose packets because of * overruns while receiving from a fast remote host. * This can slow down TCP connections. Maybe the newer ni5210 cards are better. - * my experinece is, that if a machine sends with more then about 500-600K/s + * my experience is, that if a machine sends with more then about 500-600K/s * the fifo/sysbus overflows. * * IMPORTANT NOTE: @@ -166,7 +166,7 @@ if(!p->scb->cmd_cuc) break; \ DELAY_18(); \ if(i == 16383) { \ - printk("%s: scb_cmd timed out: %04x,%04x .. disabeling i82586!!\n",dev->name,p->scb->cmd_cuc,p->scb->cus); \ + printk("%s: scb_cmd timed out: %04x,%04x .. disabling i82586!!\n",dev->name,p->scb->cmd_cuc,p->scb->cus); \ if(!p->reseted) { p->reseted = 1; ni_reset586(); } } } } #define WAIT_4_SCB_CMD_RUC() { int i; \ @@ -174,7 +174,7 @@ if(!p->scb->cmd_ruc) break; \ DELAY_18(); \ if(i == 16383) { \ - printk("%s: scb_cmd (ruc) timed out: %04x,%04x .. disabeling i82586!!\n",dev->name,p->scb->cmd_ruc,p->scb->rus); \ + printk("%s: scb_cmd (ruc) timed out: %04x,%04x .. disabling i82586!!\n",dev->name,p->scb->cmd_ruc,p->scb->rus); \ if(!p->reseted) { p->reseted = 1; ni_reset586(); } } } } #define WAIT_4_STAT_COMPL(addr) { int i; \ @@ -1234,7 +1234,7 @@ next_nop = 0; p->xmit_cmds[p->xmit_count]->cmd_status = 0; - /* linkpointer of xmit-command allready points to next nop cmd */ + /* linkpointer of xmit-command already points to next nop cmd */ p->nop_cmds[next_nop]->cmd_link = make16((p->nop_cmds[next_nop])); p->nop_cmds[next_nop]->cmd_status = 0; diff -u --recursive --new-file v1.3.86/linux/drivers/net/ni52.h linux/drivers/net/ni52.h --- v1.3.86/linux/drivers/net/ni52.h Mon Feb 26 11:58:15 1996 +++ linux/drivers/net/ni52.h Fri Apr 12 09:49:38 1996 @@ -51,7 +51,7 @@ struct iscp_struct { unsigned char busy; /* 586 clears after successful init */ - unsigned char zero_dummy; /* hast to be zero */ + unsigned char zero_dummy; /* has to be zero */ unsigned short scb_offset; /* pointeroffset to the scb_base */ char *scb_base; /* base-address of all 16-bit offsets */ }; diff -u --recursive --new-file v1.3.86/linux/drivers/net/ni65.c linux/drivers/net/ni65.c --- v1.3.86/linux/drivers/net/ni65.c Fri Mar 1 07:58:30 1996 +++ linux/drivers/net/ni65.c Fri Apr 12 09:49:38 1996 @@ -59,7 +59,7 @@ #include "ni65.h" /* - * the current setting allows max. perforamnce + * the current setting allows max. performance * for 'RCV_PARANOIA_CHECK' read the 'known problems' part in * the header of this file */ @@ -505,7 +505,7 @@ if(i < RMDNUM) { p->rmdnum = (p->rmdnum + 8 - i) & (RMDNUM - 1); - printk(KERN_ERR "%s: Ooops, receive ring currupted\n",dev->name); + printk(KERN_ERR "%s: Ooops, receive ring corrupted\n",dev->name); ni65_recv_intr(dev,csr0); } diff -u --recursive --new-file v1.3.86/linux/drivers/net/ppp.c linux/drivers/net/ppp.c --- v1.3.86/linux/drivers/net/ppp.c Tue Apr 2 13:32:21 1996 +++ linux/drivers/net/ppp.c Fri Apr 12 09:49:38 1996 @@ -245,7 +245,7 @@ #define BUFFER_TYPE_TTY_RD 3 /* tty read buffer */ #define BUFFER_TYPE_VJ 4 /* vj compression buffer */ -/* Define this string only once for all macro envocations */ +/* Define this string only once for all macro invocations */ static char ppp_warning[] = KERN_WARNING "PPP: ALERT! not INUSE! %d\n"; static char szVersion[] = PPP_VERSION; @@ -344,7 +344,7 @@ "PPP: version %s (dynamic channel allocation)" "\n", szVersion); -#ifndef MODULE /* slhc module logic has its own copyright announcment */ +#ifndef MODULE /* slhc module logic has its own copyright announcement */ printk (KERN_INFO "TCP compression code copyright 1989 Regents of the " "University of California\n"); @@ -354,7 +354,7 @@ "PPP Dynamic channel allocation code copyright 1995 " "Caldera, Inc.\n"); /* - * Register the tty dicipline + * Register the tty discipline */ (void) memset (&ppp_ldisc, 0, sizeof (ppp_ldisc)); ppp_ldisc.magic = TTY_LDISC_MAGIC; @@ -571,7 +571,7 @@ */ dev = ppp2dev (ppp); mru = new_mru; - /* allow for possible escapement of every character */ + /* allow for possible escaping of every character */ mtu = (new_mtu * 2) + 20; /* RFC 1331, section 7.2 says the minimum value is 1500 bytes */ @@ -1854,7 +1854,7 @@ } /* - * Procedure to encode the data with the proper escapement and send the + * Procedure to encode the data with the proper escaping and send the * data to the remote system. */ @@ -3458,7 +3458,7 @@ return; } /* - * Release the tty registration of the line dicipline so that no new entries + * Release the tty registration of the line discipline so that no new entries * may be created. */ status = tty_register_ldisc (N_PPP, NULL); diff -u --recursive --new-file v1.3.86/linux/drivers/net/pt.c linux/drivers/net/pt.c --- v1.3.86/linux/drivers/net/pt.c Fri Mar 1 07:50:45 1996 +++ linux/drivers/net/pt.c Fri Apr 12 09:49:38 1996 @@ -42,7 +42,7 @@ #define DEF_A_SPEED 4800 /* 4800 baud */ #define DEF_A_TXDELAY 350 /* 350 mS */ -#define DEF_A_PERSIST 64 /* 25% persistance */ +#define DEF_A_PERSIST 64 /* 25% persistence */ #define DEF_A_SLOTIME 10 /* 10 mS */ #define DEF_A_SQUELDELAY 30 /* 30 mS */ #define DEF_A_CLOCKMODE 0 /* Normal clock mode */ @@ -540,7 +540,7 @@ } /* - * Link a couple of device structres into the chain + * Link a couple of device structures into the chain * * For the A port * Allocate space for 4 buffers even though we only need 3, @@ -680,7 +680,7 @@ { if (lp->speed) /* internally clocked */ { - /* Repogram BRG from 32x clock for Rx DPLL */ + /* Reprogram BRG from 32x clock for Rx DPLL */ /* BRG off, keep PClk source */ wrtscc(lp->cardbase, cmd, R14, BRSRC); br = lp->speed; @@ -690,7 +690,7 @@ /* SEARCH mode, BRG source */ wrtscc(lp->cardbase, cmd, R14, BRSRC | SEARCH); - /* Enalbe the BRG */ + /* Enable the BRG */ wrtscc(lp->cardbase, cmd, R14, BRSRC | BRENABL); } } @@ -801,7 +801,7 @@ lp->base = dev->base_addr; lp->cardbase = dev->base_addr & 0x3f0; - /* These need to be initialsed before scc_init() is called. + /* These need to be initialised before scc_init() is called. */ lp->xtal = XTAL; @@ -916,7 +916,7 @@ * sometime after booting when the 'ifconfig' program is run. * * This routine should set everything up anew at each open, even - * registers that 'should' only be set once at bott, so that there is + * registers that 'should' only be set once at boot, so that there is * a non-reboot way to recover if something goes wrong. * derived from last half of tsync_attach() */ @@ -1193,7 +1193,7 @@ { lp->tstate = DEFER; tdelay(lp, 100); - /* DEFER until DCD transistion or timeout */ + /* DEFER until DCD transition or timeout */ wrtscc(lp->cardbase, cmd, R15, DCDIE); restore_flags(flags); return; @@ -1230,7 +1230,7 @@ lp->sndbuf = NULL; if ((rdscc(lp->cardbase, cmd, R0) & TxEOM)) { - /* Did we underrum */ + /* Did we underrun */ lp->stats.tx_errors++; lp->stats.tx_fifo_errors++; wrtscc(lp->cardbase, cmd, R0, SEND_ABORT); @@ -1253,7 +1253,7 @@ restore_flags(flags); return; default: - printk("PT: pt_txisr(): Invlaid tstate (%d) for chan %s.\n", lp->tstate, (cmd & CHANA? "A": "B") ); + printk("PT: pt_txisr(): Invalid tstate (%d) for chan %s.\n", lp->tstate, (cmd & CHANA? "A": "B") ); pt_rts(lp, OFF); lp->tstate = IDLE; break; @@ -1392,7 +1392,7 @@ skb = dev_alloc_skb(sksize); if (skb == NULL) { - printk("PT: %s: Memory squeze, dropping packet.\n", dev->name); + printk("PT: %s: Memory squeeze, dropping packet.\n", dev->name); lp->stats.rx_dropped++; restore_flags(flags); return; @@ -1701,7 +1701,7 @@ /* slotime has timed out */ case DEFER: /* Check DCD - debounce it - * see Intel Micrommunications Handbook, p2-308 + * see Intel Microcommunications Handbook, p2-308 */ wrtscc(lp->cardbase, cmd, R0, RES_EXT_INT); wrtscc(lp->cardbase, cmd, R0, RES_EXT_INT); @@ -1709,7 +1709,7 @@ { lp->tstate = DEFER; tdelay(lp, 100); - /* DEFER until DCD transistion or timeout */ + /* DEFER until DCD transition or timeout */ wrtscc(lp->cardbase, cmd, R15, DCDIE); restore_flags(flags); return; @@ -1761,7 +1761,7 @@ } - /* Check for DCD transistions */ + /* Check for DCD transitions */ if ( (st & DCD) != (lp->saved_RR0 & DCD)) { #ifdef PT_DEBUG diff -u --recursive --new-file v1.3.86/linux/drivers/net/sdla.c linux/drivers/net/sdla.c --- v1.3.86/linux/drivers/net/sdla.c Tue Apr 2 13:32:21 1996 +++ linux/drivers/net/sdla.c Fri Apr 12 09:49:38 1996 @@ -734,7 +734,7 @@ if (i == CONFIG_DLCI_MAX) { - printk(KERN_NOTICE "%s: Recieved packet from invalid DLCI %i, ignoring.", dev->name, dlci); + printk(KERN_NOTICE "%s: Received packet from invalid DLCI %i, ignoring.", dev->name, dlci); flp->stats.rx_errors++; cmd->opp_flag = 0; break; @@ -773,7 +773,7 @@ if (i == CONFIG_DLCI_MAX) { - printk(KERN_NOTICE "%s: Recieved packet from invalid DLCI %i, ignoring.", dev->name, dlci); + printk(KERN_NOTICE "%s: Received packet from invalid DLCI %i, ignoring.", dev->name, dlci); flp->stats.rx_errors++; pbuf->opp_flag = 0; break; @@ -838,7 +838,7 @@ if (!flp->initialized) { - printk(KERN_WARNING "%s: irq %d for unintialiazed device.\n", dev->name, irq); + printk(KERN_WARNING "%s: irq %d for uninitialized device.\n", dev->name, irq); return; } @@ -1134,7 +1134,7 @@ if (err) return(err); - /* no sense reading if the CPU isnt' started */ + /* no sense reading if the CPU isn't started */ if (dev->start) { size = sizeof(data); diff -u --recursive --new-file v1.3.86/linux/drivers/net/seeq8005.c linux/drivers/net/seeq8005.c --- v1.3.86/linux/drivers/net/seeq8005.c Fri Mar 1 07:50:45 1996 +++ linux/drivers/net/seeq8005.c Fri Apr 12 09:49:38 1996 @@ -235,7 +235,7 @@ #if 0 /* - * testing the packet buffer memory doesnt work yet + * testing the packet buffer memory doesn't work yet * but all other buffer accesses do * - fixing is not a priority */ diff -u --recursive --new-file v1.3.86/linux/drivers/net/seeq8005.h linux/drivers/net/seeq8005.h --- v1.3.86/linux/drivers/net/seeq8005.h Sun Jan 14 16:22:17 1996 +++ linux/drivers/net/seeq8005.h Fri Apr 12 09:49:38 1996 @@ -68,7 +68,7 @@ #define SEEQSTAT_FIFO_EMPTY (0x4000) #define SEEQSTAT_FIFO_DIR (0x8000) /* 1=read, 0=write */ -#define SEEQCFG1_BUFFER_MASK (0x000f) /* define what mapps into the BUFFER register */ +#define SEEQCFG1_BUFFER_MASK (0x000f) /* define what maps into the BUFFER register */ #define SEEQCFG1_BUFFER_MAC0 (0x0000) /* MAC station addresses 0-5 */ #define SEEQCFG1_BUFFER_MAC1 (0x0001) #define SEEQCFG1_BUFFER_MAC2 (0x0002) diff -u --recursive --new-file v1.3.86/linux/drivers/net/sk_g16.c linux/drivers/net/sk_g16.c --- v1.3.86/linux/drivers/net/sk_g16.c Fri Mar 1 07:50:45 1996 +++ linux/drivers/net/sk_g16.c Fri Apr 12 09:49:39 1996 @@ -1722,7 +1722,7 @@ * Globals : None * Update History : * YY/MM/DD uid Description - * 95/10/18 ACox Noew multicast calling scheme + * 95/10/18 ACox New multicast calling scheme -*/ diff -u --recursive --new-file v1.3.86/linux/drivers/net/slip.c linux/drivers/net/slip.c --- v1.3.86/linux/drivers/net/slip.c Tue Apr 2 13:32:21 1996 +++ linux/drivers/net/slip.c Fri Apr 12 09:49:39 1996 @@ -1339,7 +1339,7 @@ { /* * VSV = if dev->start==0, then device - * unregistred while close proc. + * unregistered while close proc. */ if (slip_ctrls[i]->dev.start) unregister_netdev(&(slip_ctrls[i]->dev)); @@ -1375,7 +1375,7 @@ { if( test_bit(SLF_OUTWAIT, &sl->flags) ) { - /* no packets was transmited, do outfill */ + /* no packets were transmitted, do outfill */ #ifdef CONFIG_SLIP_MODE_SLIP6 unsigned char s = (sl->mode & SL_MODE_SLIP6)?0x70:END; #else diff -u --recursive --new-file v1.3.86/linux/drivers/net/slip.h linux/drivers/net/slip.h --- v1.3.86/linux/drivers/net/slip.h Sun Feb 18 10:13:05 1996 +++ linux/drivers/net/slip.h Fri Apr 12 09:49:39 1996 @@ -102,7 +102,7 @@ #define SL_MODE_AX25 4 #define SL_MODE_ADAPTIVE 8 #ifdef CONFIG_SLIP_SMART - unsigned char outfill; /* # of sec betwen outfill packet */ + unsigned char outfill; /* # of sec between outfill packet */ unsigned char keepalive; /* keepalive seconds */ struct timer_list outfill_timer; struct timer_list keepalive_timer; diff -u --recursive --new-file v1.3.86/linux/drivers/net/smc9194.c linux/drivers/net/smc9194.c --- v1.3.86/linux/drivers/net/smc9194.c Fri Mar 8 10:03:32 1996 +++ linux/drivers/net/smc9194.c Fri Apr 12 09:49:39 1996 @@ -27,8 +27,8 @@ . o ( a LOT of advice from Becker as well ) . . History: - . 12/07/95 Erik Stahlman written, got recieve/xmit handled - . 01/03/96 Erik Stahlman worked out some bugs, actually useable!!! :-) + . 12/07/95 Erik Stahlman written, got receive/xmit handled + . 01/03/96 Erik Stahlman worked out some bugs, actually usable!!! :-) . 01/06/96 Erik Stahlman cleaned up some, better testing, etc . 01/29/96 Erik Stahlman fixed autoirq, added multicast . 02/01/96 Erik Stahlman 1. disabled all interrupts in smc_reset @@ -99,7 +99,7 @@ /* . Do you want to use 32 bit xfers? This should work on all chips, as - . the chipset is designed to accomodate them. + . the chipset is designed to accommodate them. */ #define USE_32_BIT 1 @@ -206,7 +206,7 @@ . and sets up the appropriate device parameters. . NOTE: Interrupts are *OFF* when this procedure is called. . - . NB:This shouldn't be static since it is refered to externally. + . NB:This shouldn't be static since it is referred to externally. */ int smc_init(struct device *dev); @@ -262,7 +262,7 @@ static void smc_interrupt(int irq, struct pt_regs *regs); #endif /* - . This is a seperate procedure to handle the receipt of a packet, to + . This is a separate procedure to handle the receipt of a packet, to . leave the interrupt code looking slightly cleaner */ inline static void smc_rcv( struct device *dev ); @@ -318,7 +318,7 @@ /* Enable Interrupts, Receive, and Transmit */ static void smc_enable( int ioaddr ); -/* this puts the device in an inactve state */ +/* this puts the device in an inactive state */ static void smc_shutdown( int ioaddr ); #ifndef NO_AUTOPROBE @@ -374,8 +374,8 @@ outw( TCR_CLEAR, ioaddr + TCR ); /* set the control register to automatically - release succesfully transmitted packets, to make the best - use out of our limitted memory */ + release successfully transmitted packets, to make the best + use out of our limited memory */ SMC_SELECT_BANK( 1 ); outw( inw( ioaddr + CONTROL ) | CTL_AUTO_RELEASE , ioaddr + CONTROL ); @@ -415,7 +415,7 @@ . Purpose: closes down the SMC91xxx chip. . Method: . 1. zero the interrupt mask - . 2. clear the enable recieve flag + . 2. clear the enable receive flag . 3. clear the enable xmit flags . . TODO: @@ -741,7 +741,7 @@ | Input parameters: | dev->base_addr == 0, try to find all possible locations | dev->base_addr == 1, return failure code - | dev->base_addr == 2, always allocate space, and return sucess + | dev->base_addr == 2, always allocate space, and return success | dev->base_addr == this is the address to check | | Output: @@ -915,7 +915,7 @@ SMC_SELECT_BANK(3); revision_register = inw( ioaddr + REVISION ); if ( !chip_ids[ ( revision_register >> 4 ) & 0xF ] ) { - /* I don't regonize this chip, so... */ + /* I don't recognize this chip, so... */ printk(CARDNAME ": IO %x: Unrecognized revision register:" " %x, Contact author. \n", ioaddr, revision_register ); @@ -1009,7 +1009,7 @@ revision_register = inw( ioaddr + REVISION ); version_string = chip_ids[ ( revision_register >> 4 ) & 0xF ]; if ( !version_string ) { - /* I shouldnt' get here because this call was done before.... */ + /* I shouldn't get here because this call was done before.... */ return -ENODEV; } @@ -1337,7 +1337,7 @@ if (status & IM_RCV_INT) { /* Got a packet(s). */ PRINTK2((KERN_WARNING CARDNAME - ": Recieve Interrupt\n")); + ": Receive Interrupt\n")); smc_rcv(dev); } else if (status & IM_TX_INT ) { PRINTK2((KERN_WARNING CARDNAME @@ -1590,7 +1590,7 @@ if ( tx_status & TS_LOSTCAR ) lp->stats.tx_carrier_errors++; if ( tx_status & TS_LATCOL ) { printk(KERN_DEBUG CARDNAME - ": Late collision occured on last xmit.\n"); + ": Late collision occurred on last xmit.\n"); lp->stats.tx_window_errors++; } #if 0 @@ -1675,7 +1675,7 @@ outw( inw(ioaddr + RCR ) | RCR_PROMISC, ioaddr + RCR ); /* BUG? I never disable promiscuous mode if multicasting was turned on. - Now, I turn off promiscouos mode, but I don't do anything to multicasting + Now, I turn off promiscuous mode, but I don't do anything to multicasting when promiscuous mode is turned on. */ diff -u --recursive --new-file v1.3.86/linux/drivers/net/smc9194.h linux/drivers/net/smc9194.h --- v1.3.86/linux/drivers/net/smc9194.h Fri Mar 8 10:03:32 1996 +++ linux/drivers/net/smc9194.h Fri Apr 12 09:49:39 1996 @@ -80,7 +80,7 @@ #define RCR 4 #define RCR_SOFTRESET 0x8000 /* resets the chip */ #define RCR_STRIP_CRC 0x200 /* strips CRC */ -#define RCR_ENABLE 0x100 /* IFF this is set, we can recieve packets */ +#define RCR_ENABLE 0x100 /* IFF this is set, we can receive packets */ #define RCR_ALMUL 0x4 /* receive all multicast packets */ #define RCR_PROMISC 0x2 /* enable promiscuous mode */ @@ -227,12 +227,12 @@ } /*---------------------------------------------------------------------- - . Define the interrupts that I want to recieve from the card + . Define the interrupts that I want to receive from the card . . I want: . IM_EPH_INT, for nasty errors - . IM_RCV_INT, for happy recieved packets - . IM_RX_OVRN_INT, because I have to kick the reciever + . IM_RCV_INT, for happy received packets + . IM_RX_OVRN_INT, because I have to kick the receiver --------------------------------------------------------------------------*/ #define SMC_INTERRUPT_MASK (IM_EPH_INT | IM_RX_OVRN_INT | IM_RCV_INT) diff -u --recursive --new-file v1.3.86/linux/drivers/net/strip.c linux/drivers/net/strip.c --- v1.3.86/linux/drivers/net/strip.c Mon Apr 8 19:01:43 1996 +++ linux/drivers/net/strip.c Fri Apr 12 09:49:39 1996 @@ -124,7 +124,7 @@ struct tty_struct *tty; /* ptr to TTY structure */ char if_name[8]; /* Dynamically generated name */ - struct device dev; /* Our device stucture */ + struct device dev; /* Our device structure */ }; /************************************************************************/ /* Utility routines for disabling and restoring interrupts */ @@ -385,7 +385,7 @@ UnStuffData returns new_src < end to indicate that there are more bytes to be read. -Note: The decoding may be dstructive, in that it may alter the source +Note: The decoding may be destructive, in that it may alter the source data in the process of decoding it (this is necessary to allow a follow-on call to resume correctly). */ @@ -578,7 +578,7 @@ if (strip_info->tx_left > 0) { /* If some data left, send it */ - /* Must disable interrupts because othewise the write_wakeup might + /* Must disable interrupts because otherwise the write_wakeup might * happen before we've had a chance to update the tx_left and * tx_head fields */ @@ -867,7 +867,7 @@ } name_end = ptr++; - /* Check for SRIP key, and skip over it */ + /* Check for STRIP key, and skip over it */ if (ptr[0] != ProtocolKey.c[0] || ptr[1] != ProtocolKey.c[1] || ptr[2] != ProtocolKey.c[2] || @@ -1150,7 +1150,7 @@ /* * This routine is called by DDI when the - * (dyamically assigned) device is registered + * (dynamically assigned) device is registered */ static int strip_dev_init(struct device *dev) diff -u --recursive --new-file v1.3.86/linux/drivers/net/sunlance.c linux/drivers/net/sunlance.c --- v1.3.86/linux/drivers/net/sunlance.c Mon Mar 4 08:49:59 1996 +++ linux/drivers/net/sunlance.c Fri Apr 12 09:49:39 1996 @@ -64,7 +64,7 @@ #define LE_C0_ERR 0x8000 /* Error: set if BAB, SQE, MISS or ME is set */ #define LE_C0_BABL 0x4000 /* BAB: Babble: tx timeout. */ #define LE_C0_CERR 0x2000 /* SQE: Signal quality error */ -#define LE_C0_MISS 0x1000 /* MISS: Missed a packaed */ +#define LE_C0_MISS 0x1000 /* MISS: Missed a packet */ #define LE_C0_MERR 0x0800 /* ME: Memory error */ #define LE_C0_RINT 0x0400 /* Received interrupt */ #define LE_C0_TINT 0x0200 /* Transmitter Interrupt */ @@ -73,7 +73,7 @@ #define LE_C0_INEA 0x0040 /* Interrupt enable */ #define LE_C0_RXON 0x0020 /* Receiver on */ #define LE_C0_TXON 0x0010 /* Transmitter on */ -#define LE_C0_TDMD 0x0008 /* Transmiter demand */ +#define LE_C0_TDMD 0x0008 /* Transmitter demand */ #define LE_C0_STOP 0x0004 /* Stop the card */ #define LE_C0_STRT 0x0002 /* Start the card */ #define LE_C0_INIT 0x0001 /* Init the card */ @@ -96,12 +96,12 @@ #define LE_T1_OWN 0x80 /* Lance owns the packet */ #define LE_T1_ERR 0x40 /* Error summary */ #define LE_T1_EONE 0x08 /* Error: one retry needed */ -#define LE_T1_EDEF 0x04 /* Error: defered */ +#define LE_T1_EDEF 0x04 /* Error: deferred */ #define LE_T1_SOP 0x02 /* Start of packet */ #define LE_T1_EOP 0x01 /* End of packet */ #define LE_T3_BUF 0x8000 /* Buffer error */ -#define LE_T3_UFL 0x4000 /* Error undeflow */ +#define LE_T3_UFL 0x4000 /* Error underflow */ #define LE_T3_LCOL 0x1000 /* Error late collision */ #define LE_T3_CLOS 0x0800 /* Error carrier loss */ #define LE_T3_RTY 0x0400 /* Error retry */ @@ -216,7 +216,7 @@ int leptr; int i; - /* Lock out other processes while setting up harware */ + /* Lock out other processes while setting up hardware */ dev->tbusy = 1; lp->rx_new = lp->tx_new = 0; lp->rx_old = lp->tx_old = 0; @@ -402,7 +402,7 @@ if (status & LE_T3_CLOS) lp->stats.tx_carrier_errors++; if (status & LE_T3_LCOL) lp->stats.tx_window_errors++; - /* buffer errors and underflows turn off the transmiter */ + /* buffer errors and underflows turn off the transmitter */ /* Restart the adapter */ if (status & (LE_T3_BUF|LE_T3_UFL)){ lp->stats.tx_fifo_errors++; @@ -590,7 +590,7 @@ if (tickssofar < 100) status = -1; else { - printk ("%s: trasmit timed out, status %04x, resetting\n", + printk ("%s: transmit timed out, status %04x, resetting\n", dev->name, ll->rdp); lance_reset (dev); } diff -u --recursive --new-file v1.3.86/linux/drivers/net/tulip.c linux/drivers/net/tulip.c --- v1.3.86/linux/drivers/net/tulip.c Mon Apr 8 19:01:43 1996 +++ linux/drivers/net/tulip.c Fri Apr 12 09:49:39 1996 @@ -303,8 +303,8 @@ #define TRING_CLEAR 0x00000000 /* clear */ #define TRING_ERROR 0x00008000 /* error summary */ #define TRING_ETxTO 0x00004000 /* Tx time out */ -#define TRING_ELCOLL 0x00000200 /* late collition */ -#define TRING_EFCOLL 0x00000100 /* fatal collition */ +#define TRING_ELCOLL 0x00000200 /* late collision */ +#define TRING_EFCOLL 0x00000100 /* fatal collision */ #define TRING_ELCARR 0x00000800 /* carrier lost */ #define TRING_ENCARR 0x00000400 /* no carrier */ #define TRING_ENOHB 0x00000080 /* heartbeat fail */ @@ -565,7 +565,7 @@ dev->if_port &= 3; printk("%s: enabling %s port.\n", dev->name, dev->if_port ? "AUI":"10baseT"); - /* Set the full duplux match frame. */ + /* Set the full duplex match frame. */ tio_write(FULL_DUPLEX_MAGIC, CSR11); tio_write(TSIAC_RESET, CSR13); /* Reset the serial interface */ @@ -1344,7 +1344,7 @@ /* Remove I/O space marker in bit 0. */ pci_ioaddr &= ~3; #ifdef MODULE - /* cmpare requested IRQ/IO address */ + /* compare requested IRQ/IO address */ if (dev && dev->irq && dev->base_addr && (dev->irq != pci_irq || dev->base_addr != pci_ioaddr)) continue; diff -u --recursive --new-file v1.3.86/linux/drivers/scsi/53c7,8xx.c linux/drivers/scsi/53c7,8xx.c --- v1.3.86/linux/drivers/scsi/53c7,8xx.c Tue Apr 2 13:32:21 1996 +++ linux/drivers/scsi/53c7,8xx.c Fri Apr 12 10:33:25 1996 @@ -65,11 +65,20 @@ #include #ifdef CONFIG_SCSI_NCR53C7xx_sync +#ifdef CONFIG_SCSI_NCR53C7xx_DISCONNECT #define PERM_OPTIONS (OPTION_IO_MAPPED|OPTION_DEBUG_TEST1|OPTION_DISCONNECT|\ OPTION_SYNCHRONOUS|OPTION_ALWAYS_SYNCHRONOUS) #else +#define PERM_OPTIONS (OPTION_IO_MAPPED|OPTION_DEBUG_TEST1|\ + OPTION_SYNCHRONOUS|OPTION_ALWAYS_SYNCHRONOUS) +#endif +#else +#ifdef CONFIG_SCSI_NCR53C7xx_DISCONNECT #define PERM_OPTIONS (OPTION_IO_MAPPED|OPTION_DEBUG_TEST1|OPTION_DISCONNECT|\ OPTION_SYNCHRONOUS) +#else +#define PERM_OPTIONS (OPTION_IO_MAPPED|OPTION_DEBUG_TEST1|OPTION_SYNCHRONOUS) +#endif #endif /* @@ -349,7 +358,7 @@ * next command for a given I/T/L combination after the first has completed; * incurring our interrupt latency between SCSI commands. * - * To allow furthur pipelining of the NCR and host CPU operation, we want + * To allow further pipelining of the NCR and host CPU operation, we want * to set things up so that immediately on termination of a command destined * for a given LUN, we get that LUN busy again. * @@ -361,7 +370,7 @@ * which starts execution immediately, inserting the command at the head * of the start queue if the NCR chip is selected or reselected. * - * We would chanage so that we keep a list of outstanding commands + * We would change so that we keep a list of outstanding commands * for each unit, rather than a single running_list. We'd insert * a new command into the right running list; if the NCR didn't * have something running for that yet, we'd put it in the @@ -391,13 +400,13 @@ * * 3. Parity checking is currently disabled, and a few things should * happen here now that we support synchronous SCSI transfers : - * 1. On soft-reset, we shuld set the EPC (Enable Parity Checking) + * 1. On soft-reset, we should set the EPC (Enable Parity Checking) * and AAP (Assert SATN/ on parity error) bits in SCNTL0. * * 2. We should enable the parity interrupt in the SIEN0 register. * * 3. intr_phase_mismatch() needs to believe that message out is - * allways an "acceptable" phase to have a mismatch in. If + * always an "acceptable" phase to have a mismatch in. If * the old phase was MSG_IN, we should send a MESSAGE PARITY * error. If the old phase was something else, we should send * a INITIATOR_DETECTED_ERROR message. Note that this could @@ -422,7 +431,7 @@ * command completion signaling. Need to modify all * SDID, SCID, etc. registers, and table indirect select code * since these use bit fielded (ie 1<initiate_sdtr & (1 << target)) { restore_flags(flags); - printk (KERN_ALERT "target %d allready doing SDTR\n", target); + printk (KERN_ALERT "target %d already doing SDTR\n", target); return -1; } hostdata->initiate_sdtr |= (1 << target); @@ -1352,7 +1361,7 @@ * using a 'C' call on the host processor. * * Therefore, there's no need for the NCR chip to directly manipulate - * this data, and we should put it wherever is most convienient for + * this data, and we should put it wherever is most convenient for * Linux. */ if (track_events) @@ -1858,7 +1867,7 @@ /* * This is currently a .5 second timeout, since (in theory) no slow * board will take that long. In practice, we've seen one - * pentium which ocassionally fails with this, but works with + * pentium which occasionally fails with this, but works with * 10 times as much? */ @@ -2143,7 +2152,7 @@ hostdata->dsa_next), ncr_search = *ncr_prev, --left); if (left < 0) - printk("scsi%d: loop detected in ncr reonncect list\n", + printk("scsi%d: loop detected in ncr reconnect list\n", host->host_no); else if (ncr_search) if (found) @@ -2517,7 +2526,7 @@ hostdata->dsp_changed = 1; break; default: - printk ("scsi%d : unsupported message, resjecting\n", + printk ("scsi%d : unsupported message, rejecting\n", host->host_no); hostdata->dsp = hostdata->script + hostdata->E_reject_message / sizeof(u32); @@ -3391,7 +3400,7 @@ * Function static struct NCR53c7x0_cmd *allocate_cmd (Scsi_Cmnd *cmd) * * Purpose : Return the first free NCR53c7x0_cmd structure (which are - * reused in a LIFO maner to minimize cache thrashing). + * reused in a LIFO manner to minimize cache thrashing). * * Side effects : If we haven't yet scheduled allocation of NCR53c7x0_cmd * structures for this device, do so. Attempt to complete all scheduled @@ -3419,11 +3428,11 @@ " target = %d, lun = %d, %s\n", host->host_no, hostdata->num_cmds, host->can_queue, cmd->target, cmd->lun, (hostdata->cmd_allocated[cmd->target] & - (1 << cmd->lun)) ? "allready allocated" : "not allocated"); + (1 << cmd->lun)) ? "already allocated" : "not allocated"); /* * If we have not yet reserved commands for this I_T_L nexus, and - * the device exists (as indicated by permanant Scsi_Cmnd structures + * the device exists (as indicated by permanent Scsi_Cmnd structures * being allocated under 1.3.x, or being outside of scan_scsis in * 1.2.x), do so now. */ @@ -3568,7 +3577,7 @@ } /* - * New code : so that active pointers work correctly irregardless + * New code : so that active pointers work correctly regardless * of where the saved data pointer is at, we want to immediately * enter the dynamic code after selection, and on a non-data * phase perform a CALL to the non-data phase handler, with @@ -3603,7 +3612,7 @@ /* * The saved data pointer is set up so that a RESTORE POINTERS message - * will start the data transfer over at the beggining. + * will start the data transfer over at the beginning. */ tmp->saved_data_pointer = virt_to_bus (hostdata->script) + @@ -3854,7 +3863,7 @@ * Side effects : * cmd is added to the per instance driver issue_queue, with major * twiddling done to the host specific fields of cmd. If the - * process_issue_queue corouting isn't running, it is restarted. + * process_issue_queue coroutine isn't running, it is restarted. * * NOTE : we use the host_scribble field of the Scsi_Cmnd structure to * hold our own data, and pervert the ptr field of the SCp field @@ -3914,7 +3923,7 @@ cli(); /* * REQUEST SENSE commands are inserted at the head of the queue - * so that we do not clear the contingent allegience condition + * so that we do not clear the contingent allegiance condition * they may be looking at. */ @@ -3940,7 +3949,7 @@ * free slot in the schedule list or by terminating it immediately. * * Inputs : - * host - SCSI host adater; hostdata - hostdata structure for + * host - SCSI host adapter; hostdata - hostdata structure for * this adapter; cmd - a pointer to the command; should have * the host_scribble field initialized to point to a valid * @@ -3970,7 +3979,7 @@ cli(); /* - * Work arround race condition : if an interrupt fired and we + * Work around race condition : if an interrupt fired and we * got disabled forget about this command. */ @@ -4043,7 +4052,7 @@ static __inline__ int busyp (struct Scsi_Host *host, struct NCR53c7x0_hostdata *hostdata, Scsi_Cmnd *cmd) { - /* FIXME : in the future, this needs to accomodate SCSI-II tagged + /* FIXME : in the future, this needs to accommodate SCSI-II tagged queuing, and we may be able to play with fairness here a bit. */ return hostdata->busy[cmd->target][cmd->lun]; @@ -4057,7 +4066,7 @@ * overflows when the scsi_done() function is invoked recursively. * * NOTE : process_issue_queue exits with interrupts *disabled*, so the - * caller must renable them if it desires. + * caller must reenable them if it desires. * * NOTE : process_issue_queue should be called from both * NCR53c7x0_queue_command() and from the interrupt handler @@ -4273,7 +4282,7 @@ * * - A synchronous offset which causes the SCSI FIFO to be overwritten. * - * - A REQ which causes the maxmimum synchronous offset programmed in + * - A REQ which causes the maximum synchronous offset programmed in * the SXFER register to be exceeded. * * - A phase change with an outstanding synchronous offset. @@ -4618,7 +4627,7 @@ struct NCR53c7x0_hostdata *hostdata = (struct NCR53c7x0_hostdata *) host->hostdata; /* FIXME : this probably should change for production kernels; at the - least, counter sould move to a per-host structure. */ + least, counter should move to a per-host structure. */ static int counter = 5; #ifdef NEW_ABORT int sstat, phase, offset; @@ -4934,7 +4943,7 @@ /* * Some SCSI devices will interpret a command as they read the bytes * off the SCSI bus, and may decide that the command is Bogus before - * they've read the entire commad off the bus. + * they've read the entire command off the bus. */ } else if (dsp == hostdata->script + hostdata->E_cmdout_cmdout / sizeof (u32)) { @@ -5364,7 +5373,7 @@ prefix, insn); } else { /* - * FIXME : (void *) cast in virt_to_bus should be unecessary, because + * FIXME : (void *) cast in virt_to_bus should be unnecessary, because * it should take const void * as argument. */ sprintf(buf, "%s0x%lx (virt 0x%p) : 0x%08x 0x%08x (virt 0x%p)", @@ -5603,7 +5612,7 @@ * get new commands. * * We can't let this happen until after we've re-initialized the driver - * structures, and can't reinitilize those structures until after we've + * structures, and can't reinitialize those structures until after we've * dealt with their contents. * * So, we need to find all of the commands which were running, stick @@ -5693,7 +5702,7 @@ /* * With the current code implementation, if the insn is inside dynamically - * generated code, the data pointer will be the instruction preceeding + * generated code, the data pointer will be the instruction preceding * the next transfer segment. */ @@ -6083,7 +6092,7 @@ * so we don't perturb hostdata. We don't use a field of the * NCR53c7x0_cmd structure since we may not have allocated one * for the command causing the reset.) of Scsi_Cmnd structures that - * had propogated bellow the Linux issue queue level. If free is set, + * had propagated below the Linux issue queue level. If free is set, * free the NCR53c7x0_cmd structures which are associated with * the Scsi_Cmnd structures, and clean up any internal * NCR lists that the commands were on. If issue is set, @@ -6153,7 +6162,7 @@ * Purpose : disables the given NCR host, causing all commands * to return a driver error. Call this so we can unload the * module during development and try again. Eventually, - * we should be able to find clean workarrounds for these + * we should be able to find clean workarounds for these * problems. * * Inputs : host - hostadapter to twiddle @@ -6298,7 +6307,7 @@ i = (i ? i - 1 : hostdata->event_size -1), --count) { save_flags(flags); /* - * By copying the event we're currently examinging with interrupts + * By copying the event we're currently examining with interrupts * disabled, we can do multiple printk(), etc. operations and * still be guaranteed that they're happening on the same * event structure. diff -u --recursive --new-file v1.3.86/linux/drivers/scsi/53c7,8xx.h linux/drivers/scsi/53c7,8xx.h --- v1.3.86/linux/drivers/scsi/53c7,8xx.h Sat Jan 6 15:30:58 1996 +++ linux/drivers/scsi/53c7,8xx.h Fri Apr 12 09:49:40 1996 @@ -981,7 +981,7 @@ #define OPTION_DEBUG_CORRUPTION 0x1000000 /* Detect script corruption */ #define OPTION_DEBUG_SDTR 0x2000000 /* Debug SDTR problem */ #define OPTION_DEBUG_MISMATCH 0x4000000 /* Debug phase mismatches */ -#define OPTION_DISCONNECT 0x8000000 /* Allow disconect */ +#define OPTION_DISCONNECT 0x8000000 /* Allow disconnect */ #define OPTION_DEBUG_DISCONNECT 0x10000000 #define OPTION_ALWAYS_SYNCHRONOUS 0x20000000 /* Negotiate sync. transfers on power up */ @@ -1063,7 +1063,7 @@ * * 1. A fixed portion, for things which are not accessed directly by static NCR * code (ie, are referenced only by the Linux side of the driver, - * or only by dynamically genreated code). + * or only by dynamically generated code). * * 2. The DSA portion, for things which are accessed directly by static NCR * code. @@ -1116,7 +1116,7 @@ u32 *data_transfer_end; /* Address after end of data transfer o routines */ /* - * The following three fields were moved from the DSA propper to here + * The following three fields were moved from the DSA proper to here * since only dynamically generated NCR code refers to them, meaning * we don't need dsa_* absolutes, and it is simpler to let the * host code refer to them directly. diff -u --recursive --new-file v1.3.86/linux/drivers/scsi/53c7,8xx.scr linux/drivers/scsi/53c7,8xx.scr --- v1.3.86/linux/drivers/scsi/53c7,8xx.scr Sat Jan 6 15:31:06 1996 +++ linux/drivers/scsi/53c7,8xx.scr Fri Apr 12 09:49:40 1996 @@ -128,7 +128,7 @@ ; loaded with the address of the next DSA structure and ; reselected_check_next is called if a failure occurs. ; -; Perhaps more conscisely, the net effect of the mess is +; Perhaps more concisely, the net effect of the mess is ; ; for (dsa = reconnect_dsa_head, dest = &reconnect_dsa_head, ; src = NULL; dsa; dest = &dsa->next, dsa = dsa->next) { @@ -224,7 +224,7 @@ ENTRY dsa_code_check_reselect dsa_code_check_reselect: MOVE SSID TO SFBR ; SSID contains 3 bit target ID -; FIXME : we need to accomodate bit fielded and binary here for '7xx/'8xx chips +; FIXME : we need to accommodate bit fielded and binary here for '7xx/'8xx chips JUMP REL (wrong_dsa), IF NOT dsa_temp_target, AND MASK 0xf8 ; ; Hack - move to scratch first, since SFBR is not writeable @@ -234,7 +234,7 @@ MOVE MEMORY 1, reselected_identify, addr_scratch MOVE dmode_memory_to_memory TO DMODE MOVE SCRATCH0 TO SFBR -; FIXME : we need to accomodate bit fielded and binary here for '7xx/'8xx chips +; FIXME : we need to accommodate bit fielded and binary here for '7xx/'8xx chips JUMP REL (wrong_dsa), IF NOT dsa_temp_lun, AND MASK 0xf8 ; Patch the MOVE MEMORY INSTRUCTION such that ; the source address is the address of this dsa's @@ -281,7 +281,7 @@ ; Linked lists of DSA structures ABSOLUTE reconnect_dsa_head = 0 ; Link list of DSAs which can reconnect -ABSOLUTE addr_reconnect_dsa_head = 0 ; Address of variable contataining +ABSOLUTE addr_reconnect_dsa_head = 0 ; Address of variable containing ; address of reconnect_dsa_head ; These select the source and destination of a MOVE MEMORY instruction @@ -571,7 +571,7 @@ ; ; After control has passed to one of the user provided ; DATA_IN or DATA_OUT routines, back calls are made to -; other_tranfer_in or other_transfer_out to handle non-DATA IN +; other_transfer_in or other_transfer_out to handle non-DATA IN ; and DATA OUT phases respectively, with the state of the active ; data pointer being preserved in TEMP. ; @@ -648,7 +648,7 @@ ; Note that other_out and other_in loop until a non-data phase -; is discoverred, so we only execute return statements when we +; is discovered, so we only execute return statements when we ; can go on to the next data phase block move statement. ENTRY other_out @@ -697,7 +697,7 @@ ; caller hasn't read the first byte of the message. munge_message ; is called when the caller has read the first byte of the message, ; and left it in SFBR. msg_in_restart is called when the caller -; hasnt read the first byte of the message, and wishes RETURN +; hasn't read the first byte of the message, and wishes RETURN ; to transfer control back to the address of the conditional ; CALL instruction rather than to the instruction after it. ; @@ -1110,7 +1110,7 @@ ; ; 2. The NCR53c810 was selected or reselected by another device. ; -; 3. The bus was allready busy since we were selected or reselected +; 3. The bus was already busy since we were selected or reselected ; before starting the command. wait_reselect_failed: @@ -1234,7 +1234,7 @@ ; so we need to sink/source one byte of data to allow the transition. ; ; For the sake of safety, we'll only source one byte of data in all -; cases, but to accomodate the SCSI-I dain bramage, we'll sink an +; cases, but to accommodate the SCSI-I dain bramage, we'll sink an ; arbitrary number of bytes. JUMP spew_cmd, WHEN CMD JUMP eat_msgin, WHEN MSG_IN diff -u --recursive --new-file v1.3.86/linux/drivers/scsi/53c8xx_d.h linux/drivers/scsi/53c8xx_d.h --- v1.3.86/linux/drivers/scsi/53c8xx_d.h Sat Jan 6 15:31:14 1996 +++ linux/drivers/scsi/53c8xx_d.h Fri Apr 12 09:49:40 1996 @@ -130,7 +130,7 @@ ; loaded with the address of the next DSA structure and ; reselected_check_next is called if a failure occurs. ; -; Perhaps more conscisely, the net effect of the mess is +; Perhaps more concisely, the net effect of the mess is ; ; for (dsa = reconnect_dsa_head, dest = &reconnect_dsa_head, ; src = NULL; dsa; dest = &dsa->next, dsa = dsa->next) { @@ -310,7 +310,7 @@ at 0x0000003e : */ 0x720a0000,0x00000000, /* -; FIXME : we need to accomodate bit fielded and binary here for '7xx/'8xx chips +; FIXME : we need to accommodate bit fielded and binary here for '7xx/'8xx chips JUMP REL (wrong_dsa), IF NOT dsa_temp_target, AND MASK 0xf8 at 0x00000040 : */ 0x8084f800,0x00ffff48, @@ -335,7 +335,7 @@ at 0x00000049 : */ 0x72340000,0x00000000, /* -; FIXME : we need to accomodate bit fielded and binary here for '7xx/'8xx chips +; FIXME : we need to accommodate bit fielded and binary here for '7xx/'8xx chips JUMP REL (wrong_dsa), IF NOT dsa_temp_lun, AND MASK 0xf8 at 0x0000004b : */ 0x8084f800,0x00ffff1c, @@ -403,7 +403,7 @@ ; Linked lists of DSA structures ABSOLUTE reconnect_dsa_head = 0 ; Link list of DSAs which can reconnect -ABSOLUTE addr_reconnect_dsa_head = 0 ; Address of variable contataining +ABSOLUTE addr_reconnect_dsa_head = 0 ; Address of variable containing ; address of reconnect_dsa_head ; These select the source and destination of a MOVE MEMORY instruction @@ -748,7 +748,7 @@ ; ; After control has passed to one of the user provided ; DATA_IN or DATA_OUT routines, back calls are made to -; other_tranfer_in or other_transfer_out to handle non-DATA IN +; other_transfer_in or other_transfer_out to handle non-DATA IN ; and DATA OUT phases respectively, with the state of the active ; data pointer being preserved in TEMP. ; @@ -906,7 +906,7 @@ ; Note that other_out and other_in loop until a non-data phase -; is discoverred, so we only execute return statements when we +; is discovered, so we only execute return statements when we ; can go on to the next data phase block move statement. ENTRY other_out @@ -1018,7 +1018,7 @@ ; caller hasn't read the first byte of the message. munge_message ; is called when the caller has read the first byte of the message, ; and left it in SFBR. msg_in_restart is called when the caller -; hasnt read the first byte of the message, and wishes RETURN +; hasn't read the first byte of the message, and wishes RETURN ; to transfer control back to the address of the conditional ; CALL instruction rather than to the instruction after it. ; @@ -1761,7 +1761,7 @@ ; ; 2. The NCR53c810 was selected or reselected by another device. ; -; 3. The bus was allready busy since we were selected or reselected +; 3. The bus was already busy since we were selected or reselected ; before starting the command. wait_reselect_failed: @@ -1990,7 +1990,7 @@ ; so we need to sink/source one byte of data to allow the transition. ; ; For the sake of safety, we'll only source one byte of data in all -; cases, but to accomodate the SCSI-I dain bramage, we'll sink an +; cases, but to accommodate the SCSI-I dain bramage, we'll sink an ; arbitrary number of bytes. JUMP spew_cmd, WHEN CMD diff -u --recursive --new-file v1.3.86/linux/drivers/scsi/AM53C974.c linux/drivers/scsi/AM53C974.c --- v1.3.86/linux/drivers/scsi/AM53C974.c Fri Mar 1 07:50:50 1996 +++ linux/drivers/scsi/AM53C974.c Fri Apr 12 09:49:40 1996 @@ -30,7 +30,7 @@ * drew@colorado.edu * +1 (303) 666-5836 * - * The AM53C974_nobios_detect code was origininally developed by + * The AM53C974_nobios_detect code was originally developed by * Robin Cutshaw (robin@xfree86.org) and is used here in a * slightly modified form. * @@ -1374,7 +1374,7 @@ * Purpose : handle phase changes * * * * Inputs : instance - which AM53C974 * -* statreg - stus register * +* statreg - status register * * isreg - internal state register * * instreg - interrupt status register * * cfifo - number of bytes in FIFO * diff -u --recursive --new-file v1.3.86/linux/drivers/scsi/AM53C974.h linux/drivers/scsi/AM53C974.h --- v1.3.86/linux/drivers/scsi/AM53C974.h Tue Jan 23 21:34:30 1996 +++ linux/drivers/scsi/AM53C974.h Fri Apr 12 09:49:40 1996 @@ -10,7 +10,7 @@ * drew@colorado.edu * +1 (303) 666-5836 * - * The AM53C974_nobios_detect code was origininally developed by + * The AM53C974_nobios_detect code was originally developed by * Robin Cutshaw (robin@xfree86.org) and is used here in a * modified form. * diff -u --recursive --new-file v1.3.86/linux/drivers/scsi/ChangeLog linux/drivers/scsi/ChangeLog --- v1.3.86/linux/drivers/scsi/ChangeLog Thu Jan 4 07:35:47 1996 +++ linux/drivers/scsi/ChangeLog Fri Apr 12 09:49:40 1996 @@ -71,16 +71,16 @@ * Linux 1.3.5 released. * Native wide, multichannel and /proc/scsi support now in official - kernel distibution. + kernel distribution. - * scsi.c/h, hosts.c/h et al reindended to increase readability + * scsi.c/h, hosts.c/h et al reindented to increase readability (especially on 80 column wide terminals). * scsi.c, scsi_proc.c, ../../fs/proc/inode.c: Added /proc/scsi/scsi which allows root to scan for hotplugged devices. * scsi.c (scsi_proc_info): Added, to support /proc/scsi/scsi. - (scan_scsis): Added some 'spagetti' code to allow scanning for + (scan_scsis): Added some 'spaghetti' code to allow scanning for single devices. @@ -105,9 +105,9 @@ scsi_malloc returned memory for it. * eata_dma.c (register_HBA) (eata_queue): Add support for - large scatter/gatter tables and set use_clustering accordingly + large scatter/gather tables and set use_clustering accordingly - * hosts.c: Make use_clustering changable in the Scsi_Host structure. + * hosts.c: Make use_clustering changeable in the Scsi_Host structure. Wed Apr 12 15:25:52 1995 Eric Youngdale (eric@andante) @@ -119,9 +119,9 @@ cards. * eata_dma.c: Update to 2.3.5r. Modularize. Improved error handling - thruout and fixed bug interrupt routine which resulted in shifted + throughout and fixed bug interrupt routine which resulted in shifted status bytes. Added blink LED state checks for ISA and EISA HBAs. - Memory mamagement bug seems to have disapeared ==> increasing + Memory management bug seems to have disappeared ==> increasing C_P_L_CURRENT_MAX to 16 for now. Decreasing C_P_L_DIV to 3 for performance reasons. diff -u --recursive --new-file v1.3.86/linux/drivers/scsi/Config.in linux/drivers/scsi/Config.in --- v1.3.86/linux/drivers/scsi/Config.in Wed Apr 10 17:02:24 1996 +++ linux/drivers/scsi/Config.in Fri Apr 12 10:33:25 1996 @@ -39,6 +39,7 @@ if [ "$CONFIG_SCSI_NCR53C7xx" != "n" ]; then bool ' always negotiate synchronous transfers' CONFIG_SCSI_NCR53C7xx_sync bool ' allow FAST-SCSI [10MHz]' CONFIG_SCSI_NCR53C7xx_FAST + bool ' allow DISCONNECT' CONFIG_SCSI_NCR53C7xx_DISCONNECT fi fi dep_tristate 'Always IN2000 SCSI support (test release)' CONFIG_SCSI_IN2000 $CONFIG_SCSI diff -u --recursive --new-file v1.3.86/linux/drivers/scsi/NCR5380.c linux/drivers/scsi/NCR5380.c --- v1.3.86/linux/drivers/scsi/NCR5380.c Wed Apr 10 17:02:24 1996 +++ linux/drivers/scsi/NCR5380.c Fri Apr 12 09:49:40 1996 @@ -1220,7 +1220,7 @@ * in hostdata->connected, OR has terminated the * command. * - * With successfull commands, we fall through + * With successful commands, we fall through * and see if we can do an information transfer, * with failures we will restart. */ @@ -1947,7 +1947,7 @@ * other phase and will have to source/sink data. * * We really don't care what value was on the bus or what value - * the target see's, so we just handshake. + * the target sees, so we just handshake. */ while (!(tmp = NCR5380_read(STATUS_REG)) & SR_REQ); @@ -2310,7 +2310,7 @@ #endif if (NCR5380_read(BUS_AND_STATUS_REG) & BASR_IRQ) { #if (NDEBUG & NDEBUG_C400_PWRITE) - printk("53C400w: got it, reading reset interupt reg\n"); + printk("53C400w: got it, reading reset interrupt reg\n"); #endif NCR5380_read(RESET_PARITY_INTERRUPT_REG); } else { diff -u --recursive --new-file v1.3.86/linux/drivers/scsi/NCR5380.h linux/drivers/scsi/NCR5380.h --- v1.3.86/linux/drivers/scsi/NCR5380.h Wed Apr 10 17:02:25 1996 +++ linux/drivers/scsi/NCR5380.h Fri Apr 12 09:49:40 1996 @@ -270,7 +270,7 @@ long time_read[8]; /* time to do reads */ long time_write[8]; /* time to do writes */ unsigned long bytes_read[8]; /* bytes read */ - unsigned long bytes_write[8]; /* byytes written */ + unsigned long bytes_write[8]; /* bytes written */ unsigned pendingr; unsigned pendingw; #endif diff -u --recursive --new-file v1.3.86/linux/drivers/scsi/NCR53c406a.c linux/drivers/scsi/NCR53c406a.c --- v1.3.86/linux/drivers/scsi/NCR53c406a.c Fri Mar 1 07:50:51 1996 +++ linux/drivers/scsi/NCR53c406a.c Fri Apr 12 09:49:40 1996 @@ -61,7 +61,7 @@ #define WATCHDOG 5000000 -#define SYNC_MODE 0 /* Synchrounous transfer mode */ +#define SYNC_MODE 0 /* Synchronous transfer mode */ #if DEBUG #undef NCR53C406A_DEBUG @@ -379,7 +379,7 @@ len=128; break; } - if ((i & 0x40) && len == 0) { /* fifo empty and interrupt occured */ + if ((i & 0x40) && len == 0) { /* fifo empty and interrupt occurred */ return 0; } @@ -911,7 +911,7 @@ case 0x02: /* COMMAND */ current_SC->SCp.phase = command_ph; - printk("NCR53c406a: Warning: Unknown interupt occured in command phase!\n"); + printk("NCR53c406a: Warning: Unknown interrupt occurred in command phase!\n"); break; case 0x03: /* STATUS */ diff -u --recursive --new-file v1.3.86/linux/drivers/scsi/README.AM53C974 linux/drivers/scsi/README.AM53C974 --- v1.3.86/linux/drivers/scsi/README.AM53C974 Tue Jan 23 21:34:30 1996 +++ linux/drivers/scsi/README.AM53C974 Fri Apr 12 09:49:40 1996 @@ -23,7 +23,7 @@ drew@colorado.edu +1 (303) 666-5836 -The AM53C974_nobios_detect code was origininally developed by +The AM53C974_nobios_detect code was originally developed by Robin Cutshaw (robin@xfree86.org) and is used here in a slightly modified form. @@ -69,7 +69,7 @@ -------- This driver supports asynchronous and synchronous SCSI-I and SCSI-II devices. It is capable of transfer rate and synchronous negotiation (see below). -The driver supportes scatter-gather. Transfers are DMA based, but do not +The driver supports scatter-gather. Transfers are DMA based, but do not (yet) make use of the AM53/79C974 MDL mode. Max. transfer rate is 10MHz (whatever this is in real life). The transfer rate is negotiated with each device (see dmesg output). @@ -88,7 +88,7 @@ - in case of sync. communication, the sync. offset The sync. offset specifies the number of bytes that can be sent or -reveived from the SCSI bus without ACK resp. REQ signal. +received from the SCSI bus without ACK resp. REQ signal. CAUTION: USING SYNCHRONOUS MODE ON LONG SCSI CABLES MAY CAUSE COMMUNICATION PROBLEMS LEADING TO LOSS OF DATA. @@ -149,7 +149,7 @@ correctly loaded by the BIOS into the controller's register during system boot. If the driver detects that the controller's SCSI ID is not '7' it will print out a warning. If this happens to you please correct -seeting of the controller's SCSI-ID. If it is wrong, then edit the +setting of the controller's SCSI-ID. If it is wrong, then edit the AM53C974_SCSI_ID definition in file AM53C974.h accordingly. @@ -202,7 +202,7 @@ single-step mode if it has detected something weird. -Author's Contact Adress +Author's Contact Address ----------------------- Email: fri@rsx42sun0.dofn.de Phone: x49-7545-2256 (office), x49-7541-42305 (home) diff -u --recursive --new-file v1.3.86/linux/drivers/scsi/README.BusLogic linux/drivers/scsi/README.BusLogic --- v1.3.86/linux/drivers/scsi/README.BusLogic Mon Jan 1 09:26:10 1996 +++ linux/drivers/scsi/README.BusLogic Fri Apr 12 09:49:40 1996 @@ -39,9 +39,9 @@ I have recently had conversations with the Senior Product Marketing Manager at BusLogic regarding the needs of free software developers, and he has reaffirmed -BusLogic's committment to providing the technical information and support we +BusLogic's commitment to providing the technical information and support we need to take full advantage of their products. BusLogic has also been very -accomodating in providing technical documentation, as well as access to their +accommodating in providing technical documentation, as well as access to their engineering staff for technical questions and advice. In addition, they have loaned me ISA cards for configuration testing, and even allowed me use of their technical support lab to test EISA configurations, since I don't have an EISA @@ -210,7 +210,7 @@ This command line selects default probing and a concurrency of 1 which also disables tagged queuing. It may be useful if problems arise during - installation on a system with a flakey SCSI configuration. In cases of a + installation on a system with a flaky SCSI configuration. In cases of a marginal SCSI configuration it may also be beneficial to disable fast transfers and/or synchronous negotiation using AutoSCSI on "C" series boards. Disconnect/reconnect may also be disabled for fast devices such as diff -u --recursive --new-file v1.3.86/linux/drivers/scsi/README.dtc3x80 linux/drivers/scsi/README.dtc3x80 --- v1.3.86/linux/drivers/scsi/README.dtc3x80 Wed Apr 10 17:02:25 1996 +++ linux/drivers/scsi/README.dtc3x80 Fri Apr 12 09:49:40 1996 @@ -1,4 +1,4 @@ -REAME file for the Linux DTC3180/3280 scsi driver. +README file for the Linux DTC3180/3280 scsi driver. by Ray Van Tassle (rayvt@comm.mot.com) March 1996 Based on the generic & core NCR5380 code by Drew Eckhard diff -u --recursive --new-file v1.3.86/linux/drivers/scsi/README.g_NCR5380 linux/drivers/scsi/README.g_NCR5380 --- v1.3.86/linux/drivers/scsi/README.g_NCR5380 Sun Mar 24 20:07:00 1996 +++ linux/drivers/scsi/README.g_NCR5380 Fri Apr 12 09:49:41 1996 @@ -36,7 +36,7 @@ /proc/scsi/g_NCR5380/x where x is the scsi card number as detected at boot time. More info to come in the future. -When NCR53c400 support is compiled in, BIOS paramaters will be returned by +When NCR53c400 support is compiled in, BIOS parameters will be returned by the driver (the raw 5380 driver does not and I don't plan to fiddle with it!). @@ -44,7 +44,7 @@ Kevin Lentin K.Lentin@cs.monash.edu.au -REAME file for the Linux g_NCR5380 driver. +README file for the Linux g_NCR5380 driver. (c) 1993 Drew Eckhard NCR53c400 extensions (c) 1994,1995,1996 Kevin Lentin @@ -82,7 +82,7 @@ /proc/scsi/g_NCR5380/x where x is the scsi card number as detected at boot time. More info to come in the future. -When NCR53c400 support is compiled in, BIOS paramaters will be returned by +When NCR53c400 support is compiled in, BIOS parameters will be returned by the driver (the raw 5380 driver does not and I don't plan to fiddle with it!). diff -u --recursive --new-file v1.3.86/linux/drivers/scsi/advansys.c linux/drivers/scsi/advansys.c --- v1.3.86/linux/drivers/scsi/advansys.c Fri Mar 1 07:50:51 1996 +++ linux/drivers/scsi/advansys.c Fri Apr 12 09:49:41 1996 @@ -2472,7 +2472,7 @@ ulong cont_xfer; /* contiguous transfer total (512 byte units) */ ulong sg_cnt; /* # scatter-gather I/O requests received */ ulong sg_elem; /* scatter-gather element total */ - ulong sg_xfer; /* scatter-gather tranfer total (512 byte units) */ + ulong sg_xfer; /* scatter-gather transfer total (512 byte units) */ ulong error; /* # AscExeScsiQueue() ASC_ERROR returns. */ /* * Number of times interrupts disabled in advansys_queuecommand() and @@ -2758,7 +2758,7 @@ if (detect_called == ASC_FALSE) { detect_called = ASC_TRUE; } else { - printk("AdvanSys SCSI: advansys_detect() mulitple calls ignored\n"); + printk("AdvanSys SCSI: advansys_detect() multiple calls ignored\n"); return 0; } @@ -2780,7 +2780,7 @@ */ if (asc_iopflag == ASC_TRUE) { for (ioport = 0; ioport < ASC_NUM_BOARD_SUPPORTED; ioport++) { - ASC_DBG2(1, "asdvansys_detect: asc_ioport[%d] %x\n", + ASC_DBG2(1, "advansys_detect: asc_ioport[%d] %x\n", ioport, asc_ioport[ioport]); if (asc_ioport[ioport] != 0) { for (iop = 0; iop < ASC_IOADR_TABLE_MAX_IX; iop++) { diff -u --recursive --new-file v1.3.86/linux/drivers/scsi/aic7xxx.c linux/drivers/scsi/aic7xxx.c --- v1.3.86/linux/drivers/scsi/aic7xxx.c Fri Mar 1 07:50:52 1996 +++ linux/drivers/scsi/aic7xxx.c Fri Apr 12 09:49:41 1996 @@ -348,8 +348,8 @@ /* * BIOS Control Bits */ -#define CFSUPREM 0x0001 /* support all removeable drives */ -#define CFSUPREMB 0x0002 /* support removeable drives for boot only */ +#define CFSUPREM 0x0001 /* support all removable drives */ +#define CFSUPREMB 0x0002 /* support removable drives for boot only */ #define CFBIOSEN 0x0004 /* BIOS enabled */ /* UNUSED 0x0008 */ #define CFSM2DRV 0x0010 /* support more than two drives */ @@ -421,7 +421,7 @@ UNPAUSE_SEQUENCER(p); /* - * If an error occurs during a data transfer phase, run the comand + * If an error occurs during a data transfer phase, run the command * to completion - it's easier that way - making a note of the error * condition in this location. This then will modify a DID_OK status * into an appropriate error for the higher-level SCSI code. @@ -541,7 +541,7 @@ const char *errmesg; } hard_error[] = { { ILLHADDR, "Illegal Host Access" }, - { ILLSADDR, "Illegal Sequencer Address referrenced" }, + { ILLSADDR, "Illegal Sequencer Address referenced" }, { ILLOPCODE, "Illegal Opcode in sequencer program" }, { PARERR, "Sequencer Ram Parity Error" } }; @@ -633,7 +633,7 @@ /* * Valid SCSIRATE values. (p. 3-17) - * Provides a mapping of tranfer periods in ns to the proper value to + * Provides a mapping of transfer periods in ns to the proper value to * stick in the scsiscfr reg to use that transfer rate. */ static struct { @@ -952,7 +952,7 @@ * * Description: * Return a string containing just the RCS version number from either - * an Id or Revison RCS clause. + * an Id or Revision RCS clause. *-F*************************************************************************/ const char * rcs_version(const char *version_info) @@ -1517,7 +1517,7 @@ * Go through the entire SCB array now and look for * commands for this target that are active. These * are other (most likely tagged) commands that - * were disconnected when the reset occured. + * were disconnected when the reset occurred. */ for (i = 0; i < p->numscb; i++) { @@ -2235,7 +2235,7 @@ int found; /* - * Go back to async/narrow transfers and renogiate. + * Go back to async/narrow transfers and renegotiate. */ aic7xxx_unbusy_target(scsi_id, channel, base); p->needsdtr |= (p->needsdtr_copy & target_mask); @@ -2641,7 +2641,7 @@ * The DI_2840 bit of the STATUS_2840 is connected to the data in line * of the serial EEPROM. The EEPROM_TF bit of STATUS_2840 register is * useful in that it gives us an 800 nsec timer. After a read from the - * SEECTL_2840 register the timing flag is cleard and goes high 800 nsec + * SEECTL_2840 register the timing flag is cleared and goes high 800 nsec * later. * *-F*************************************************************************/ @@ -2784,7 +2784,7 @@ * ------------------------------------------------------------------- * READ 1 10 A5 - A0 Reads data stored in memory, * starting at specified address - * EWEN 1 00 11XXXX Write enable must preceed + * EWEN 1 00 11XXXX Write enable must precede * all programming modes * ERASE 1 11 A5 - A0 Erase register A5A4A3A2A1A0 * WRITE 1 01 A5 - A0 D15 - D0 Writes register @@ -3332,7 +3332,7 @@ /* * For the 294x cards, clearing DIAGLEDEN and DIAGLEDON, will - * take the card out of diagnostic mode and make the host adatper + * take the card out of diagnostic mode and make the host adapter * LED follow bus activity (will not always be on). */ outb(sblkctl & ~(DIAGLEDEN | DIAGLEDON), SBLKCTL + base); @@ -3897,7 +3897,7 @@ } /* - * Read esundry information from PCI BIOS. + * Read sundry information from PCI BIOS. */ error = pcibios_read_config_dword(pci_bus, pci_device_fn, PCI_BASE_ADDRESS_0, &io_port); @@ -3918,7 +3918,7 @@ if((csize_lattime & LATTIME) == 0) { /* Default to 64 PCLKS (is this a good value?) */ - /* This may also be availble in the SEEPROM?? */ + /* This may also be available in the SEEPROM?? */ csize_lattime |= (64 << 8); } pcibios_write_config_dword(pci_bus, pci_device_fn, diff -u --recursive --new-file v1.3.86/linux/drivers/scsi/aic7xxx.seq linux/drivers/scsi/aic7xxx.seq --- v1.3.86/linux/drivers/scsi/aic7xxx.seq Thu Feb 15 06:57:02 1996 +++ linux/drivers/scsi/aic7xxx.seq Fri Apr 12 09:49:41 1996 @@ -49,10 +49,10 @@ * a later time. This problem cannot be resolved by holding a single entry * in scratch ram since a reconnecting target can request sense and this will * create yet another SCB waiting for selection. The solution used here is to - * use byte 27 of the SCB as a psuedo-next pointer and to thread a list + * use byte 27 of the SCB as a pseudo-next pointer and to thread a list * of SCBs that are awaiting selection. Since 0-0xfe are valid SCB offsets, * SCB_LIST_NULL is 0xff which is out of range. The kernel driver must - * add an entry to this list everytime a request sense occurs. The sequencer + * add an entry to this list every time a request sense occurs. The sequencer * will automatically consume the entries. */ @@ -91,7 +91,7 @@ * locks out on a per target basis instead of target/lun. Although this * is not ideal for devices that have multiple luns active at the same * time, it is faster than looping through all SCB's looking for active - * commands. It may be benificial to make findscb a more general procedure + * commands. It may be beneficial to make findscb a more general procedure * to see if the added cost of the search is negligible. This code also * assumes that the kernel driver will clear the active flags on board * initialization, board reset, and a target SELTO. Tagged commands @@ -171,10 +171,10 @@ jmp wait_for_selection mk_identify: - and A,DISCENB,SCB_CONTROL /* mask off disconnect privledge */ + and A,DISCENB,SCB_CONTROL /* mask off disconnect privilege */ and MSG0,0x7,SCB_TCL /* lun */ - or MSG0,A /* or in disconnect privledge */ + or MSG0,A /* or in disconnect privilege */ or MSG0,MSG_IDENTIFY mvi MSG_LEN, 1 @@ -559,7 +559,7 @@ * instead of always uploading the scb. If the status is SCSI_CHECK, * the driver will download a new scb requesting sense to replace * the old one, modify the "waiting for selection" SCB list and set - * RETURN_1 to 0x80. If RETURN_1 is set to 0x80 the sequencer imediately + * RETURN_1 to 0x80. If RETURN_1 is set to 0x80 the sequencer immediately * jumps to main loop where it will run down the waiting SCB list. * If the kernel driver does not wish to request sense, it need * only clear RETURN_1, and the command is allowed to complete. We don't @@ -575,7 +575,7 @@ * alternatives are to pause the sequencer on all command completes (yuck), * dma the resid directly to the host (slick, we may have space to do it now) * or have the sequencer pause itself when it encounters a non-zero resid - * (unecessary pause just to flag the command -yuck-, but takes one instruction + * (unnecessary pause just to flag the command -yuck-, but takes one instruction * and since it shouldn't happen that often is good enough for our purposes). */ resid: @@ -607,7 +607,7 @@ test SCB_CMDLEN,0xff jnz complete /* Immediate message complete */ /* * Pause the sequencer until the driver gets around to handling the command - * complete. This is so that any action that might require carefull timing + * complete. This is so that any action that might require careful timing * with the completion of this command can occur. */ mvi INTSTAT,IMMEDDONE @@ -731,7 +731,7 @@ mvi ARG_1 call inb_next /* tag value */ /* * See if the tag is in range. The tag is < SCBCOUNT if we add - * the complement of SCBCOUNT to the incomming tag and there is + * the complement of SCBCOUNT to the incoming tag and there is * no carry. */ mov A,COMP_SCBCOUNT @@ -777,7 +777,7 @@ mvi CLRSINT1,CLRATNO /* - * if this is an immediate command, perform a psuedo command complete to + * if this is an immediate command, perform a pseudo command complete to * notify the driver. */ test SCB_CMDLEN,0xff jz status_ok @@ -1009,8 +1009,8 @@ * If we need to negotiate transfer parameters, build the WDTR or SDTR message * starting at the address passed in SINDEX. DINDEX is modified on return. * The SCSI-II spec requires that Wide negotiation occur first and you can - * only negotiat one or the other at a time otherwise in the event of a message - * reject, you wouldn't be able to tell which message was the culpret. + * only negotiate one or the other at a time otherwise in the event of a message + * reject, you wouldn't be able to tell which message was the culprit. */ mk_dtr: test SCB_CONTROL,NEEDWDTR jnz mk_wdtr_16bit diff -u --recursive --new-file v1.3.86/linux/drivers/scsi/aic7xxx_reg.h linux/drivers/scsi/aic7xxx_reg.h --- v1.3.86/linux/drivers/scsi/aic7xxx_reg.h Thu Feb 15 06:57:02 1996 +++ linux/drivers/scsi/aic7xxx_reg.h Fri Apr 12 09:49:41 1996 @@ -24,7 +24,7 @@ /* * This header is shared by the sequencer code and the kernel level driver. * - * All page numbers refer to the Adaptec AIC-7770 Data Book availible from + * All page numbers refer to the Adaptec AIC-7770 Data Book available from * Adaptec's Technical Documents Department 1-800-934-2766 */ @@ -94,7 +94,7 @@ #define P_STATUS 0xc0 #define P_MESGIN 0xe0 /* - * SCSI Contol Signal Write Register (p. 3-16). + * SCSI Control Signal Write Register (p. 3-16). * Writing to this register modifies the control signals on the bus. Only * those signals that are allowed in the current mode (Initiator/Target) are * asserted. @@ -132,9 +132,9 @@ /* * SCSI Latched Data (p. 3-19). - * Read/Write latchs used to transfer data on the SCSI bus during + * Read/Write latches used to transfer data on the SCSI bus during * Automatic or Manual PIO mode. SCSIDATH can be used for the - * upper byte of a 16bit wide asyncronouse data phase transfer. + * upper byte of a 16bit wide asynchronous data phase transfer. */ #define SCSIDATL 0x006 #define SCSIDATH 0x007 @@ -234,7 +234,7 @@ * transfered on the SCSI bus. They are counted up in the same * manner as STCNT is counted down. SHADDR should always be used * to determine the address of the last byte transfered since HADDR - * can be squewed by write ahead. + * can be skewed by write ahead. */ #define SHADDR 0x014 #define SHADDR0 0x014 @@ -289,7 +289,7 @@ * Sequencer RAM Data (p. 3-34) * Single byte window into the Scratch Ram area starting at the address * specified by SEQADDR0 and SEQADDR1. To write a full word, simply write - * four bytes in sucessesion. The SEQADDRs will increment after the most + * four bytes in succession. The SEQADDRs will increment after the most * significant byte is written */ #define SEQRAM 0x061 @@ -376,7 +376,7 @@ /* * Host Control (p. 3-47) R/W - * Overal host control of the device. + * Overall host control of the device. */ #define HCNTRL 0x087 /* UNUSED 0x80 */ @@ -398,9 +398,9 @@ #define SEND_REJECT 0x11 /* sending a message reject */ #define NO_IDENT 0x21 /* no IDENTIFY after reconnect*/ #define NO_MATCH 0x31 /* no cmd match for reconnect */ -#define SDTR_MSG 0x41 /* SDTR message recieved */ -#define WDTR_MSG 0x51 /* WDTR message recieved */ -#define REJECT_MSG 0x61 /* Reject message recieved */ +#define SDTR_MSG 0x41 /* SDTR message received */ +#define WDTR_MSG 0x51 /* WDTR message received */ +#define REJECT_MSG 0x61 /* Reject message received */ #define BAD_STATUS 0x71 /* Bad status from target */ #define RESIDUAL 0x81 /* Residual byte count != 0 */ #define ABORT_TAG 0x91 /* Sent an ABORT_TAG message */ @@ -484,7 +484,7 @@ /* * Queue In FIFO (p. 3-60) - * Input queue for queued SCBs (commands that the seqencer has yet to start) + * Input queue for queued SCBs (commands that the sequencer has yet to start) */ #define QINFIFO 0x09b @@ -511,9 +511,9 @@ * The two reserved bytes at SCBARRAY+1[23] are expected to be set to * zero. Bit 3 in SCBARRAY+0 is used as an internal flag to indicate * whether or not to DMA an SCB from host ram. This flag prevents the - * "re-fetching" of transactions that are requed because the target is + * "re-fetching" of transactions that are requeued because the target is * busy with another command. We also use bits 6 & 7 to indicate whether - * or not to initiate SDTR or WDTR repectively when starting this command. + * or not to initiate SDTR or WDTR respectively when starting this command. */ #define SCBARRAY 0x0a0 #define SCB_CONTROL 0x0a0 @@ -633,7 +633,7 @@ #define TARG_SCRATCH 0x020 /* - * The sequencer will stick the frist byte of any rejected message here so + * The sequencer will stick the first byte of any rejected message here so * we can see what is getting thrown away. */ #define REJBYTE 0x031 diff -u --recursive --new-file v1.3.86/linux/drivers/scsi/eata_dma.c linux/drivers/scsi/eata_dma.c --- v1.3.86/linux/drivers/scsi/eata_dma.c Fri Mar 1 07:50:52 1996 +++ linux/drivers/scsi/eata_dma.c Fri Apr 12 09:49:41 1996 @@ -1057,7 +1057,7 @@ */ /* * If we are using a ISA board, we can't use extended SG, - * because we would need exessive amounts of memory for + * because we would need excessive amounts of memory for * bounce buffers. */ if (gc->SG_64K == TRUE && ntohs(gc->SGsiz) == 64 && hd->bustype != IS_ISA){ diff -u --recursive --new-file v1.3.86/linux/drivers/scsi/eata_dma_proc.c linux/drivers/scsi/eata_dma_proc.c --- v1.3.86/linux/drivers/scsi/eata_dma_proc.c Mon Nov 6 12:45:53 1995 +++ linux/drivers/scsi/eata_dma_proc.c Fri Apr 12 09:49:41 1996 @@ -57,7 +57,7 @@ * eata_proc_info * inout : decides on the direction of the dataflow and the meaning of the * variables - * buffer: If inout==FALSE data is beeing written to it else read from it + * buffer: If inout==FALSE data is being written to it else read from it * *start: If inout==FALSE start of the valid data in the buffer * offset: If inout==FALSE offset from the beginning of the imaginary file * from which we start writing into the buffer @@ -99,7 +99,7 @@ HBA_ptr = SD(HBA_ptr)->next; } - if(inout == TRUE) /* Has data been writen to the file ? */ + if(inout == TRUE) /* Has data been written to the file ? */ return(eata_set_info(buffer, length, HBA_ptr)); if (offset == 0) diff -u --recursive --new-file v1.3.86/linux/drivers/scsi/eata_pio.c linux/drivers/scsi/eata_pio.c --- v1.3.86/linux/drivers/scsi/eata_pio.c Fri Mar 1 07:50:52 1996 +++ linux/drivers/scsi/eata_pio.c Fri Apr 12 09:49:41 1996 @@ -511,7 +511,7 @@ sp->result = DID_RESET << 16; /* This mailbox is terminated */ - printk("eata_pio_reset: resetted ccb %d.\n",x); + printk("eata_pio_reset: reset ccb %d.\n",x); HD(cmd)->ccb[x].status = FREE; restore_flags(flags); diff -u --recursive --new-file v1.3.86/linux/drivers/scsi/eata_pio_proc.c linux/drivers/scsi/eata_pio_proc.c --- v1.3.86/linux/drivers/scsi/eata_pio_proc.c Sat Aug 5 11:12:14 1995 +++ linux/drivers/scsi/eata_pio_proc.c Fri Apr 12 09:49:41 1996 @@ -30,7 +30,7 @@ * eata_proc_info * inout : decides on the direction of the dataflow and the meaning of the * variables - * buffer: If inout==FALSE data is beeing written to it else read from it + * buffer: If inout==FALSE data is being written to it else read from it * *start: If inout==FALSE start of the valid data in the buffer * offset: If inout==FALSE offset from the beginning of the imaginary file * from which we start writing into the buffer @@ -56,7 +56,7 @@ HBA_ptr = SD(HBA_ptr)->next; } - if(inout == TRUE) /* Has data been writen to the file ? */ + if(inout == TRUE) /* Has data been written to the file ? */ return(eata_pio_set_info(buffer, length, HBA_ptr)); if (offset == 0) diff -u --recursive --new-file v1.3.86/linux/drivers/scsi/fdomain.c linux/drivers/scsi/fdomain.c --- v1.3.86/linux/drivers/scsi/fdomain.c Mon Apr 8 19:01:44 1996 +++ linux/drivers/scsi/fdomain.c Fri Apr 12 09:49:41 1996 @@ -188,7 +188,7 @@ Thanks to Adam Bowen for the signature to the 1610M/MER/MEX scsi cards, to Martin Andrews (andrewm@ccfadm.eeg.ccf.org) for the signature to some random TMC-1680 repackaged by IBM; and to Mintak Ng (mintak@panix.com) for - the version 3.61 BIOS siganture. + the version 3.61 BIOS signature. Thanks for Mark Singer (elf@netcom.com) and Richard Simpson (rsimpson@ewrcsdra.demon.co.uk) for more Quantum signatures and detective @@ -1146,7 +1146,7 @@ /* * inout : decides on the direction of the dataflow and the meaning of the * variables - * buffer: If inout==FALSE data is beeing written to it else read from it + * buffer: If inout==FALSE data is being written to it else read from it * *start: If inout==FALSE start of the valid data in the buffer * offset: If inout==FALSE offset from the beginning of the imaginary file * from which we start writing into the buffer diff -u --recursive --new-file v1.3.86/linux/drivers/scsi/g_NCR5380.c linux/drivers/scsi/g_NCR5380.c --- v1.3.86/linux/drivers/scsi/g_NCR5380.c Sun Mar 31 00:13:17 1996 +++ linux/drivers/scsi/g_NCR5380.c Fri Apr 12 09:49:41 1996 @@ -148,7 +148,7 @@ * * Purpose : LILO command line initialization of the overrides array, * - * Inputs : str - unused, ints - array of integer paramters with ints[0] + * Inputs : str - unused, ints - array of integer parameters with ints[0] * equal to the number of ints. */ @@ -161,7 +161,7 @@ * * Purpose : LILO command line initialization of the overrides array, * - * Inputs : str - unused, ints - array of integer paramters with ints[0] + * Inputs : str - unused, ints - array of integer parameters with ints[0] * equal to the number of ints. */ @@ -260,13 +260,13 @@ /* * Function : int generic_NCR5380_biosparam(Disk * disk, kdev_t dev, int *ip) * - * Purpose : Generates a BIOS / DOS compatable H-C-S mapping for + * Purpose : Generates a BIOS / DOS compatible H-C-S mapping for * the specified device / size. * * Inputs : size = size of device in sectors (512 bytes), dev = block device * major / minor, ip[] = {heads, sectors, cylinders} * - * Returns : allways 0 (success), initializes ip + * Returns : always 0 (success), initializes ip * */ @@ -375,7 +375,7 @@ printk("53C400r: no 53C80 gated irq after transfer"); #if (NDEBUG & NDEBUG_C400_PREAD) else - printk("53C400r: Got 53C80 interupt and tried to clear it\n"); + printk("53C400r: Got 53C80 interrupt and tried to clear it\n"); #endif /* DON'T DO THIS - THEY NEVER ARRIVE! @@ -499,7 +499,7 @@ */ if (i) { #if (NDEBUG & NDEBUG_C400_PWRITE) - prink("53C400w: got 53C80 gated irq (last block)\n"); + printk("53C400w: got 53C80 gated irq (last block)\n"); #endif if (!((i=NCR5380_read(BUS_AND_STATUS_REG)) & BASR_END_DMA_TRANSFER)) printk("53C400w: No END OF DMA bit - WHOOPS! BASR=%0x\n",i); diff -u --recursive --new-file v1.3.86/linux/drivers/scsi/scsi.c linux/drivers/scsi/scsi.c --- v1.3.86/linux/drivers/scsi/scsi.c Tue Apr 2 13:32:21 1996 +++ linux/drivers/scsi/scsi.c Fri Apr 12 09:49:42 1996 @@ -2989,7 +2989,7 @@ if(tpnt->attach) (*tpnt->attach)(SDpnt); /* * If this driver attached to the device, and we no longer - * have anything attached, release the scso command blocks. + * have anything attached, release the scsi command blocks. */ if(SDpnt->attached && SDpnt->has_cmdblocks == 0) scsi_build_commandblocks(SDpnt); diff -u --recursive --new-file v1.3.86/linux/drivers/scsi/sd.c linux/drivers/scsi/sd.c --- v1.3.86/linux/drivers/scsi/sd.c Wed Apr 10 17:02:25 1996 +++ linux/drivers/scsi/sd.c Fri Apr 12 09:49:42 1996 @@ -118,7 +118,7 @@ } /* - * Similarily, if the device has the write protect tab set, + * Similarly, if the device has the write protect tab set, * have the open fail if the user expects to be able to write * to the thing. */ @@ -1168,7 +1168,7 @@ for (m=i<<4; m<((i+1)<<4); m++){ sd_hardsizes[m] = hard_sector; } - mb = (hard_sector * rscsi_disks[i].capacity) / (1024*1024); + mb = rscsi_disks[i].capacity / 1024 * hard_sector / 1024; /* sz = div(m/100, 10); this seems to not be in the libr */ m = (mb + 50) / 100; sz_quot = m / 10; diff -u --recursive --new-file v1.3.86/linux/drivers/scsi/sr.c linux/drivers/scsi/sr.c --- v1.3.86/linux/drivers/scsi/sr.c Tue Apr 2 13:32:21 1996 +++ linux/drivers/scsi/sr.c Fri Apr 12 09:49:42 1996 @@ -294,7 +294,7 @@ /* * Here I tried to implement support for multisession-CD's * - * Much of this has do be done with vendor-specific SCSI-commands, becauce + * Much of this has do be done with vendor-specific SCSI-commands, because * multisession is newer than the SCSI-II standard. * So I have to complete it step by step. Useful information is welcome. * diff -u --recursive --new-file v1.3.86/linux/drivers/scsi/u14-34f.c linux/drivers/scsi/u14-34f.c --- v1.3.86/linux/drivers/scsi/u14-34f.c Fri Mar 1 07:50:54 1996 +++ linux/drivers/scsi/u14-34f.c Fri Apr 12 09:49:42 1996 @@ -3,7 +3,7 @@ * * 13 Jun 1995 rev. 2.01 for linux 1.2.10 * HAVE_OLD_UX4F_FIRMWARE should be defined for U34F boards when - * the firmware prom is not the lastest one (28008-006). + * the firmware prom is not the latest one (28008-006). * * 11 Mar 1995 rev. 2.00 for linux 1.2.0 * Fixed a bug which prevented media change detection for removable diff -u --recursive --new-file v1.3.86/linux/drivers/sound/CHANGELOG linux/drivers/sound/CHANGELOG --- v1.3.86/linux/drivers/sound/CHANGELOG Sun Mar 31 00:13:17 1996 +++ linux/drivers/sound/CHANGELOG Fri Apr 12 09:49:42 1996 @@ -4,7 +4,7 @@ Since 3.5.1 - TB Maui initialization support Since 3.5 -- Improved handling of playback underrunt situations. +- Improved handling of playback underrun situations. Since 3.5-beta10 - Bug fixing @@ -82,7 +82,7 @@ modularized version. They can be enabled by using init_trace=1 in the insmod command line (insmod sound init_trace=1). - More AIX stuff. -- Added support for syncronizing dsp/audio devices with /dev/sequencer. +- Added support for synchronizing dsp/audio devices with /dev/sequencer. - mmap() support for dsp/audio devices. Since 3.5-alpha5 @@ -106,13 +106,13 @@ - Fixed random protection fault in gus_wave.c Since 3.5-alpha1 -- Modified to work with Linux-1.3.33 and leater +- Modified to work with Linux-1.3.33 and later - Some minor changes Since 3.0.2 - Support for CS4232 based PnP cards (AcerMagic S23 etc). - Full duplex support for some CS4231, CS4232 and AD1845 based cards -(GUA MAX, AudioTrix Pro, AcerMagic S23 and many MAD16/Mozart cards +(GUS MAX, AudioTrix Pro, AcerMagic S23 and many MAD16/Mozart cards having a codec mentioned above). - Almost fully rewritten loadable modules support. - Fixed some bugs. diff -u --recursive --new-file v1.3.86/linux/drivers/sound/Config.in linux/drivers/sound/Config.in --- v1.3.86/linux/drivers/sound/Config.in Sun Mar 24 22:49:48 1996 +++ linux/drivers/sound/Config.in Fri Apr 12 09:49:42 1996 @@ -2,7 +2,7 @@ # Sound driver configuration # #-------- -# There is another confic script which is compatible with rest of +# There is another config script which is compatible with rest of # the kernel. It can be activated by running 'make mkscript' in this # directory. Please note that this is an _experimental_ feature which # doesn't work with all cards (PSS, SM Wave, AudioTriX Pro). diff -u --recursive --new-file v1.3.86/linux/drivers/sound/Config.std linux/drivers/sound/Config.std --- v1.3.86/linux/drivers/sound/Config.std Sun Mar 24 22:49:48 1996 +++ linux/drivers/sound/Config.std Fri Apr 12 09:49:42 1996 @@ -2,7 +2,7 @@ # Sound driver configuration # #-------- -# There is another confic script which is compatible with rest of +# There is another config script which is compatible with rest of # the kernel. It can be activated by running 'make mkscript' in this # directory. Please note that this is an _experimental_ feature which # doesn't work with all cards (PSS, SM Wave, AudioTriX Pro). diff -u --recursive --new-file v1.3.86/linux/drivers/sound/Readme linux/drivers/sound/Readme --- v1.3.86/linux/drivers/sound/Readme Sun Mar 31 00:13:17 1996 +++ linux/drivers/sound/Readme Fri Apr 12 09:49:42 1996 @@ -23,7 +23,7 @@ Linux versions later than 2.x. Packages "snd-util-3.5.tar.gz" and "snd-data-0.1.tar.Z" -contain usefull utilities to be used with this driver. +contain useful utilities to be used with this driver. If you are looking for the installation instructions, please look at Readme.linux. @@ -40,7 +40,7 @@ ------------ This driver contains code by several contributors. In addition several other -persons have given usefull suggestions. The following is a list of major +persons have given useful suggestions. The following is a list of major contributors. (I could have forgotten some names.) Craig Metz 1/2 of the PAS16 Mixer and PCM support @@ -72,7 +72,7 @@ Riccardo Facchetti Audio Excel DSP 16 (aedsp16) support James Hightower Spotting a tiny but important bug in CS423x support. -There are propably many other names missing. If you have sent me some +There are probably many other names missing. If you have sent me some patches and your name is not in the above list, please inform me. Sponsors etc. @@ -87,7 +87,7 @@ MediaTriX Peripherals Inc, a AudioTriX Pro card + SDK Acer, Inc. a pair of AcerMagic S23 cards. -In addition the following companies have provided me sufficial amount +In addition the following companies have provided me sufficient amount of technical information at least some of their products (free or $$$): Advanced Gravis Computer Technology Ltd. @@ -119,7 +119,7 @@ at /var/adm/messages for more verbose error message. -In general the easiest way to diagnoze problems is to do "cat /dev/sndstat". +In general the easiest way to diagnose problems is to do "cat /dev/sndstat". If you get an error message, there are some problems with the driver setup: @@ -127,7 +127,7 @@ the sound driver are missing. Use the script at the end of linux/drivers/sound/Readme.linux to create them. - - "No such device" telss that the sound driver is not in the kernel. + - "No such device" shows that the sound driver is not in the kernel. You have to reconfigure and recompile the kernel to have the sound driver. Compiling the driver doesn't help alone. You have to boot with the newly compiled one before the driver becomes active. @@ -142,7 +142,7 @@ this particular device. For example /dev/audio and /dev/dsp will not work if "digitized voice support" was not enabled during "make config". - - "Device or resource busy". Propably the IRQ (or DMA) channel + - "Device or resource busy". Probably the IRQ (or DMA) channel required by the soundcard is in use by some other device/driver. - "I/O error". Almost certainly (99%) it's an IRQ or DMA conflict. diff -u --recursive --new-file v1.3.86/linux/drivers/sound/Readme.cards linux/drivers/sound/Readme.cards --- v1.3.86/linux/drivers/sound/Readme.cards Wed Apr 10 17:02:25 1996 +++ linux/drivers/sound/Readme.cards Fri Apr 12 09:49:42 1996 @@ -17,13 +17,13 @@ - All PnP soundcards (SB PnP, GUS PnP, Soundscape PnP etc.) (SB PnP in first 3.6-alpha version (Apr 96?), GUS PnP bit later, - Soundscape PnP propably much later, others ???). See + Soundscape PnP probably much later, others ???). See "Configuring PnP soundcards" below for some hints. - Mwave soundcards and motherboards (Version 3.6 or 3.7. Depends on how fast I get a Mwave card and suitable documents for it). - Emu8k (SB 32/AWE) - (Propably not before Nov/Dec 96. I know the unofficial + (Probably not before Nov/Dec 96. I know the unofficial AWE programmers guide so don't send me more copies of it). - Diamond Edge 3D (ASAP. In practice this may take relatively long time). @@ -52,7 +52,7 @@ soft configuring their I/O, IRQ, DMA and shared memory resources. Currently at least cards made by Creative Technology (SB32 and SB32AWE PnP), Gravis (GUS PnP and GUS PnP Pro), Ensoniq (Soundscape PnP) and -Aztech (some Sound Galazy models) use PnP technology. The CS4232 audio +Aztech (some Sound Galaxy models) use PnP technology. The CS4232 audio chip by Crystal Semiconductor (Intel Atlantis, HP Pavillon and many other motherboards) is also based on PnP technology but there is a "native" driver available for it (see information about CS4232 later in this document). @@ -76,7 +76,7 @@ your card for more info. Windows 95 could work as well as DOS but running loadlin may be somehow -difficult. Propably you should "shut down" your machine to MS-DOS mode +difficult. Probably you should "shut down" your machine to MS-DOS mode before running it. Some machines have BIOS utility for setting PnP resources. This is a good @@ -253,14 +253,14 @@ Latest cards are fully software configurable or they are PnP ISA compatible. There are no jumpers on the board. -The driver handles software configurable cards automaticly. Just configure +The driver handles software configurable cards automatically. Just configure the driver to use I/O, IRQ and DMA settings which are known to work. You could usually use the same values than with DOS and/or Windows. Using different settings is possible but not recommended since it may cause some trouble (for example when warm booting from an OS to another or when installing new hardware to the machine). -Sound driver sets the soft configurable parameters of the card automaticly +Sound driver sets the soft configurable parameters of the card automatically during boot. Usually you don't need to run any extra initialization programs when booting Linux but there are some exceptions. See the card specific instructions (below) for more info. @@ -357,8 +357,8 @@ since using the default _doesn't_ guarantee anything. Note also that all questions may not be asked. The configuration program -may disable some questions dependig on the earlier choices. It may also -select some options automaticly as well. +may disable some questions depending on the earlier choices. It may also +select some options automatically as well. "ProAudioSpectrum 16 support", - Answer 'y'_ONLY_ if you have a Pro Audio Spectrum _16_, @@ -396,7 +396,7 @@ - Be careful with this question. The MPU401 interface is supported by almost any soundcard today. However some natively supported cards have their own driver for MPU401. Enabling the MPU401 option with - these cards wil cause a conflict. Also enabling MPU401 on a system + these cards will cause a conflict. Also enabling MPU401 on a system that doesn't really have a MPU401 could cause some trouble. If your card was in the list of supported cards (above), please look at the card specific instructions later in this file. @@ -422,11 +422,11 @@ Also you may answer 'y' in case your card was not listed earlier in this file. For cards having native support in the driver, consult the card specific instructions later in this file. Some drivers - have their own MSS support and enabling this option wil cause a + have their own MSS support and enabling this option will cause a conflict. "Ensoniq Soundscape support", - Answer 'y' if you have a soundcard based on the Ensoniq SoundScape - chipset. Suach cards are being manufactured at least by Ensoniq, + chipset. Such cards are being manufactured at least by Ensoniq, Spea and Reveal (note that Reveal makes other cards also). "MediaTriX AudioTriX Pro support", - Answer 'y' if you have the AudioTriX Pro. @@ -438,7 +438,7 @@ cards made by known manufacturers such as Turtle Beach (Tropez), Reveal (some models) and Diamond (some recent models). "Support for TB Maui" - - This enables TB Maui spesific initialization. Works with TB Maui + - This enables TB Maui specific initialization. Works with TB Maui and TB Tropez (may not work with Tropez Plus). "Audio Excel DSP 16 initialization support", @@ -521,7 +521,7 @@ was listed in the beginning of this file. In this case you should follow instructions for your card later in this file. -For other not fully SB clones yoy may try initialization using DOS in +For other not fully SB clones you may try initialization using DOS in the following way: - Boot DOS so that the card specific driver gets run. @@ -616,7 +616,7 @@ somewhere else in this file. Configuring these cards is obvious (or it should be). With MSS -you should propably enable the OPL3 synth also since +you should probably enable the OPL3 synth also since most MSS compatible cards have it. However check that this is true before enabling OPL3. @@ -663,10 +663,10 @@ Configuring ATP is little bit tricky since it uses so many I/O, IRQ and DMA numbers. Using the same values than with DOS/Win is a good idea. Don't -attemp to use the same IRQ or DMA channels twice. +attempt to use the same IRQ or DMA channels twice. The SB mode of ATP is implemented so the the ATP driver just enables SB -in the proper address. The SB driver handles the rest. Yoy have to configure +in the proper address. The SB driver handles the rest. You have to configure both the SB driver and the SB mode of ATP to use the same IRQ, DMA and I/O settings. @@ -738,7 +738,7 @@ If you have initialized the card using a wrong microcode file (sounds are terrible), just modify ssinit.c to use another microcode file and try again. It's possible to use an earlier version of sndscape.co[01] but it -may sound wierd. +may sound weird. MAD16 (Pro) and Mozart ---------------------- @@ -765,8 +765,8 @@ this should not be a problem. If you have a MAD16 card which have an OPL4 (FM + Wave table) synthesizer -chip (_not_ an OPL3), you have to apped line containing #define MAD16_OPL4 -to the file linux/dirvers/sound/local.h (after running make config). +chip (_not_ an OPL3), you have to append line containing #define MAD16_OPL4 +to the file linux/drivers/sound/local.h (after running make config). MAD16 cards having a CS4231 codec support full duplex mode. This mode can be enabled by configuring the card to use two DMA channels. Possible @@ -785,12 +785,12 @@ problems if you have another MPU401 compatible card. In this case you must give address of the Jazz16 based MPU401 interface when the config program prompts for the MPU401 information. Then look at the MPU401 -spesific section for instructions about configuring more than one MPU401 cards. +specific section for instructions about configuring more than one MPU401 cards. Logitech Soundman Wave ---------------------- -Read the above MV Jazz spesific instructions first. +Read the above MV Jazz specific instructions first. The Logitech SoundMan Wave (don't confuse with the SM16 or SM Games) is a MV Jazz based card which has an additional OPL4 based wave table @@ -810,7 +810,7 @@ NOTE! Don't answer 'y' when the driver asks about SM Games support (the next question after the MIDI0001.BIN name). However - aneswering 'y' doesn't cause damage your computer so don't panic. + answering 'y' doesn't cause damage your computer so don't panic. Sound Galaxies -------------- @@ -821,7 +821,7 @@ The older 16 bit cards (SG Pro16, SG NX Pro16, Nova and Lyra) have an EEPROM chip for storing the configuration data. There is a microcontroller -which initializes the card to match the EEPROM settigs when the machine +which initializes the card to match the EEPROM settings when the machine is powered on. These cards actually behave just like they have jumpers for all of the settings. Configure driver for MSS, MPU, SB/SB Pro and OPL3 supports with these cards. @@ -839,7 +839,7 @@ Support for these two ESS chips is embedded in the SB Pro driver. Configure these cards just like SB Pro. Enable the 'SB MPU401 MIDI port' if you want to use MIDI features of ES1688. ES688 doesn't have MPU mode -so you don't need to enable it (the driver uses normal SB MIDI automaticly +so you don't need to enable it (the driver uses normal SB MIDI automatically with ES688). NOTE! ESS cards are not compatible with MSS/WSS. @@ -899,13 +899,13 @@ First of all. There is an easy way to make most soundcards to work with Linux. Just use the DOS based driver to initialize the card to a _known_ state. Then use loadlin.exe to boot Linux. If Linux is configured -to use the sama I/O, IRQ and DMA numbers than DOS, the card could work. +to use the same I/O, IRQ and DMA numbers than DOS, the card could work. (ctrl-alt-del can be used in place of loadlin.exe but it doesn't work with new motherboards). This method works also with all/most PnP soundcards. Don't get fooled with SB compatibility. Most cards are compatible with SB but that may require a TSR which is not possible with Linux. If -the card is compatible with MSS, it's a better choise. Some cards +the card is compatible with MSS, it's a better choice. Some cards don't work in the SB and MSS modes at the same time. Then there are cards which are no longer manufactured and/or which @@ -914,7 +914,7 @@ Adding support for a new card requires much work and increases time required in maintaining the driver (some changes need to be done to all low level drivers and be tested too, maybe with multiple -operating systems). For this reason I have made a desicion to not support +operating systems). For this reason I have made a decision to not support obsolete cards. It's possible that someone else makes a separately distributed driver (diffs) for the card. Version v3.6 will be much more modular so making separately distributed drivers will be easier with it. @@ -928,12 +928,12 @@ released technical details of the card. Do this before contacting me. I can only answer 'no' if there are no programming information available. -I have made decicion to not accept code based on reverse engineering +I have made decision to not accept code based on reverse engineering to the driver. There are three main reasons: First I don't want to break relationships to sound card manufacturers. The second reason is that -maintaining and supporting a driver withoun any specs will be a pain. +maintaining and supporting a driver without any specs will be a pain. The third reason is that companies have freedom to refuse selling their -products to other than Windows useres. +products to other than Windows users. Some companies don't give low level technical information about their products to public or at least their require signing a NDA. It's not diff -u --recursive --new-file v1.3.86/linux/drivers/sound/Readme.linux linux/drivers/sound/Readme.linux --- v1.3.86/linux/drivers/sound/Readme.linux Sun Mar 24 22:49:46 1996 +++ linux/drivers/sound/Readme.linux Fri Apr 12 09:49:42 1996 @@ -19,7 +19,7 @@ sources). Remove old version of linux/drivers/sound directory before installing new files. -- To build the device files you need to run the enclosed shell scrip +- To build the device files you need to run the enclosed shell script (see below). You need to do this only when installing sound driver first time or when upgrading to much recent version than the earlier one. @@ -27,13 +27,13 @@ - Configure and compile Linux as normally (remember to include the sound support during "make config"). Please refer to kernel documentation for instructions about configuring and compiling kernel. File Readme.cards - contains card spesific instructions for configuring this driver for + contains card specific instructions for configuring this driver for use with various soundcards. Boot time configuration (using lilo and insmod) ----------------------------------------------- -This information has been removed. Too many users did't believe +This information has been removed. Too many users didn't believe that it's really not necessary to use this method. Please look at Readme of sound driver version 3.0.1 if you still want to use this method. @@ -46,7 +46,7 @@ cat /dev/sndstat -and look at the output. It should display some usefull info about the +and look at the output. It should display some useful info about the driver configuration. If there is no /dev/sndstat (/dev/sndstat: No such file or directory), ensure that you have executed the soundinstall script (at the end of this file). @@ -75,7 +75,7 @@ ----------------- cut here ------------------------------ #!/bin/sh # -# soudinstall +# soundinstall # # # Create the devices diff -u --recursive --new-file v1.3.86/linux/drivers/sound/Readme.modules linux/drivers/sound/Readme.modules --- v1.3.86/linux/drivers/sound/Readme.modules Sun Mar 24 22:49:47 1996 +++ linux/drivers/sound/Readme.modules Fri Apr 12 09:49:42 1996 @@ -45,10 +45,10 @@ insmod sound dma_buffsize=32768 -Minimum buffer size is 4096 and the maximum depends on the DMA channe. +Minimum buffer size is 4096 and the maximum depends on the DMA channel. For 8 bit channels (0 to 3) the limit is 64k and for 16 bit ones (5 to 7) -it's 128k. Driver selects a suitable buffer size automaticly in case -you try to spesify an invalid size. +it's 128k. Driver selects a suitable buffer size automatically in case +you try to specify an invalid size. Q: What is the right DMA buffer size? @@ -58,17 +58,17 @@ recording to hard disk is likely to require large buffers. Very small buffers are sufficient when you are just playing 8kHz audio files -on an empty P133 system. Using a 128k byffer just wastes 120k (or 250k) +on an empty P133 system. Using a 128k buffer just wastes 120k (or 250k) of valuable physical RAM memory. -The right buffer sice can be easily found by making some experiments +The right buffer size can be easily found by making some experiments with the dma_buffsize= parameter. I use usually 16k buffers on a DX4/100 system and 64k on an old 386 system. NOTE! DMA buffers are used only by /dev/audio# and /dev/dsp# devices. Other device files don't use them but there are two exceptions: GUS driver uses DMA buffers when loading samples to the card. - Ensoniq SoundScape driver uses them when doanloading the microcode + Ensoniq SoundScape driver uses them when downloading the microcode file (sndscape.co[012]) to the card. Using large buffers doesn't increase performance in these cases. @@ -85,7 +85,7 @@ NOTE! This method is not normally required. You should use it only when you have to use different configuration than normally. The sound= - command line parameter is error phrone and not recommended. + command line parameter is error prone and not recommended. Debugging and tracing --------------------- diff -u --recursive --new-file v1.3.86/linux/drivers/sound/Readme.v30 linux/drivers/sound/Readme.v30 --- v1.3.86/linux/drivers/sound/Readme.v30 Sun Mar 24 22:49:48 1996 +++ linux/drivers/sound/Readme.v30 Fri Apr 12 09:49:42 1996 @@ -18,7 +18,7 @@ /dev/midi## ----------- -This interface should be usefull for applications like MIDI sysex librarians. +This interface should be useful for applications like MIDI sysex librarians. There are (currently) no timing features so making music could be impossible. There are as many /dev/midi## devices as there are MIDI ports in the system. @@ -53,7 +53,7 @@ If this ioctl is called with mode=1, the interface is put to the intelligent (coprocessor) mode. NOTE! The MIDI port will be reset when this ioctl is called. It could have some strange effects if not called immediately after open. This -vall returns EINVAL if the midi port doesn't support the MPU-401 intelligent +call returns EINVAL if the midi port doesn't support the MPU-401 intelligent mode. ioctl(fd, SNDCTL_MIDI_MPUCMD, &cmdstruct) is valid only if the MIDI port @@ -81,10 +81,10 @@ data Buffer for the command arguments and returned data. -Be extremely carefull with the nr_args and nr_returns fields. They +Be extremely careful with the nr_args and nr_returns fields. They must match the command. An incorrect value will put the card and the driver out of sync. Refer to the MPU-401/MQX-32M documentation for further -datails. +details. @@ -99,7 +99,7 @@ /dev/sequencer. Both kind of devices are accessed using the SEQ_START_NOTE() like macros. The voice number parameters of the API macros have been redefined to denote MIDI channels. This means that the driver allocates voices for -the channels automaticly (this is a responsibility/right of an application +the channels automatically (this is a responsibility/right of an application with /dev/sequencer). The result is that a SEQ_START_NOTE() macro has similar effects for a synth channel than on a MIDI port. This kind of solution provides better device independence than the /dev/sequencer. The @@ -116,12 +116,12 @@ - The new interface is used much like the ordinary /dev/sequencer. The event format is new so you have to use the API macros defined in the -sys/soundcard.h. The interface is will propably change before the final 3.0 +sys/soundcard.h. The interface is will probably change before the final 3.0 release but using the API macros should ensure compatibility in source level. The new event format is not recognized by version 2.X so don't try to distribute binaries compiled with soundcard.h of v3.X. -- The basic API useage is similar to the current one. There are some new +- The basic API usage is similar to the current one. There are some new macros but the older ones should work as earlier. The most important incompatibility is that the /dev/sequencer2 driver allocates voices itself. The other one is that the application must send SEQ_START_TIMER() as it's diff -u --recursive --new-file v1.3.86/linux/drivers/sound/ad1848.c linux/drivers/sound/ad1848.c --- v1.3.86/linux/drivers/sound/ad1848.c Sun Mar 24 22:49:51 1996 +++ linux/drivers/sound/ad1848.c Fri Apr 12 09:49:42 1996 @@ -624,7 +624,7 @@ set_speed (ad1848_info * devc, int arg) { /* - * The sampling speed is encoded in the least significant nible of I8. The + * The sampling speed is encoded in the least significant nibble of I8. The * LSB selects the clock source (0=24.576 MHz, 1=16.9344 Mhz) and other * three bits select the divisor (indirectly): * @@ -992,7 +992,7 @@ ad_write (devc, 8, fs); /* - * Write to I8 starts resyncronization. Wait until it completes. + * Write to I8 starts resynchronization. Wait until it completes. */ timeout = 10000; while (timeout > 0 && inb (devc->base) == 0x80) @@ -1006,7 +1006,7 @@ ad_write (devc, 28, fs); /* - * Write to I28 starts resyncronization. Wait until it completes. + * Write to I28 starts resynchronization. Wait until it completes. */ timeout = 10000; while (timeout > 0 && inb (devc->base) == 0x80) @@ -1588,7 +1588,7 @@ } } else - printk ("ad1848: Can't find device to be undoaded. Base=%x\n", + printk ("ad1848: Can't find device to be unloaded. Base=%x\n", io_base); } @@ -1871,7 +1871,7 @@ { unsigned long flags; ad1848_info *devc = (ad1848_info *) audio_devs[dev]->devc; - unsigned long xtal_nsecs; /* nanoseconds per xtal oscillaror tick */ + unsigned long xtal_nsecs; /* nanoseconds per xtal oscillator tick */ unsigned long divider; save_flags (flags); diff -u --recursive --new-file v1.3.86/linux/drivers/sound/aedsp16.c linux/drivers/sound/aedsp16.c --- v1.3.86/linux/drivers/sound/aedsp16.c Sun Mar 24 22:49:53 1996 +++ linux/drivers/sound/aedsp16.c Fri Apr 12 09:49:42 1996 @@ -170,7 +170,7 @@ I think the request regions should be done this way: if (check_region(...)) - return ERR; // I/O region alredy reserved + return ERR; // I/O region already reserved device_probe(...); device_attach(...); request_region(...); // reserve only when we are sure all is okay @@ -178,12 +178,12 @@ Request the 2x0h region in any case if we are using this card. NOTE: the "(sbpro)" string with which we are requesting the aedsp16 region - (see code) does not mean necessarly that we are emulating sbpro. + (see code) does not mean necessarily that we are emulating sbpro. It mean that the region is the sbpro I/O ports region. We use this region to access the control registers of the card, and if emulating sbpro, I/O sbpro registers too. If we are emulating MSS, the sbpro registers are not used, in no way, to emulate an sbpro: they are - used only for configuration pourposes. + used only for configuration purposes. Someone pointed out that should be possible use both the SBPRO and MSS modes because the sound card have all the two chipsets, supposing that @@ -222,7 +222,7 @@ one sound card of the emulated type (read the NOTES above) - Moved the sb init routine from the attach to the very first probe in sb_card.c - - Rearrangemens and cleanups + - Rearrangements and cleanups - Wiped out some unnecessary code and variables: this is kernel code so it is better save some TEXT and DATA - Fixed the request_region code. We must allocate the aedsp16 (sbpro) @@ -263,7 +263,7 @@ #define CMD6 0x8c /* Enable Microsoft Sound System mode */ /* - * Offsets of AEDSP16 DSP I/O ports. The offest is added to portbase + * Offsets of AEDSP16 DSP I/O ports. The offset is added to portbase * to have the actual I/O port. * Register permissions are: * (wo) == Write Only @@ -516,7 +516,7 @@ if ((ret = ReadData (port)) == -1) return -1; /* - * We alredy know how many int are stored (2), so we know when the + * We already know how many int are stored (2), so we know when the * string is finished. */ ver[len++] = ret; @@ -536,7 +536,7 @@ { if ((ret = ReadData (port)) == -1) /* - * If no more data availabe, return to the caller, no error if len>0. + * If no more data available, return to the caller, no error if len>0. * We have no other way to know when the string is finished. */ return (len ? 0 : -1); @@ -666,7 +666,7 @@ InitAEDSP16_SBPRO (struct address_info *hw_config) { /* - * If the card is alredy init'ed MSS, we can not init it to SBPRO too + * If the card is already init'ed MSS, we can not init it to SBPRO too * because the board can not emulate simultaneously MSS and SBPRO. */ if (ae_init & INIT_MSS) @@ -683,7 +683,7 @@ { if (check_region (hw_config->io_base, 0x0f)) { - printk ("AEDSP16/SBPRO I/O port region is alredy in use.\n"); + printk ("AEDSP16/SBPRO I/O port region is already in use.\n"); return -1; } } @@ -721,7 +721,7 @@ InitAEDSP16_MSS (struct address_info *hw_config) { /* - * If the card is alredy init'ed SBPRO, we can not init it to MSS too + * If the card is already init'ed SBPRO, we can not init it to MSS too * because the board can not emulate simultaneously MSS and SBPRO. */ if (ae_init & INIT_SBPRO) @@ -736,7 +736,7 @@ */ if (check_region (hw_config->io_base, 0x08)) { - printk ("MSS I/O port region is alredy in use.\n"); + printk ("MSS I/O port region is already in use.\n"); return -1; } @@ -748,7 +748,7 @@ { if (check_region (AEDSP16_BASE, 0x0f)) { - printk ("AEDSP16 I/O port region is alredy in use.\n"); + printk ("AEDSP16 I/O port region is already in use.\n"); return -1; } } @@ -801,7 +801,7 @@ */ if (check_region (hw_config->io_base, 0x02)) { - printk ("SB I/O port region is alredy in use.\n"); + printk ("SB I/O port region is already in use.\n"); return -1; } @@ -813,7 +813,7 @@ { if (check_region (AEDSP16_BASE, 0x0f)) { - printk ("AEDSP16 I/O port region is alredy in use.\n"); + printk ("AEDSP16 I/O port region is already in use.\n"); return -1; } } diff -u --recursive --new-file v1.3.86/linux/drivers/sound/configure.c linux/drivers/sound/configure.c --- v1.3.86/linux/drivers/sound/configure.c Sun Mar 31 00:13:17 1996 +++ linux/drivers/sound/configure.c Fri Apr 12 09:49:42 1996 @@ -1437,7 +1437,7 @@ { FILE *sf = fopen ("synth-ld.h", "w"); - fprintf (sf, "/* automaticaly generated by configure */\n"); + fprintf (sf, "/* automatically generated by configure */\n"); fprintf (sf, "unsigned char pss_synth[1];\n" "#define pss_synthLen 0\n"); fclose (sf); diff -u --recursive --new-file v1.3.86/linux/drivers/sound/cs4232.c linux/drivers/sound/cs4232.c --- v1.3.86/linux/drivers/sound/cs4232.c Sun Mar 24 22:49:56 1996 +++ linux/drivers/sound/cs4232.c Fri Apr 12 09:49:42 1996 @@ -5,7 +5,7 @@ * a PnP compatible chip which contains a CS4231A codec, SB emulation, * a MPU401 compatible MIDI port, joystick and synthesizer and IDE CD-ROM * interfaces. This is just a temporary driver until full PnP support - * gets inplemented. Just the WSS codec, FM synth and the MIDI ports are + * gets implemented. Just the WSS codec, FM synth and the MIDI ports are * supported. Other interfaces are left uninitialized. */ /* diff -u --recursive --new-file v1.3.86/linux/drivers/sound/dev_table.h linux/drivers/sound/dev_table.h --- v1.3.86/linux/drivers/sound/dev_table.h Sun Mar 24 22:49:41 1996 +++ linux/drivers/sound/dev_table.h Fri Apr 12 09:49:42 1996 @@ -43,7 +43,7 @@ struct driver_info { char *driver_id; - int card_subtype; /* Driver spesific. Usually 0 */ + int card_subtype; /* Driver specific. Usually 0 */ int card_type; /* From soundcard.h */ char *name; long (*attach) (long mem_start, struct address_info *hw_config); @@ -521,7 +521,7 @@ int sound_alloc_dmap (int dev, struct dma_buffparms *dmap, int chan); void sound_free_dmap (int dev, struct dma_buffparms *dmap); -extern int soud_map_buffer (int dev, struct dma_buffparms *dmap, buffmem_desc *info); +extern int sound_map_buffer (int dev, struct dma_buffparms *dmap, buffmem_desc *info); void install_pnp_sounddrv(struct pnp_sounddev *drv); int sndtable_probe (int unit, struct address_info *hw_config); int sndtable_init_card (int unit, struct address_info *hw_config); diff -u --recursive --new-file v1.3.86/linux/drivers/sound/dmabuf.c linux/drivers/sound/dmabuf.c --- v1.3.86/linux/drivers/sound/dmabuf.c Sun Mar 24 22:49:59 1996 +++ linux/drivers/sound/dmabuf.c Fri Apr 12 09:49:42 1996 @@ -98,7 +98,7 @@ sz /= 8; /* #bits -> #bytes */ /* - * Compute a buffer size for time not exeeding 1 second. + * Compute a buffer size for time not exceeding 1 second. * Usually this algorithm gives a buffer size for 0.5 to 1.0 seconds * of sound (using the current speed, sample size and #channels). */ @@ -135,8 +135,8 @@ else { /* - * The process has specified the buffer sice with SNDCTL_DSP_SETFRAGMENT or - * the buffer sice computation has already been done. + * The process has specified the buffer size with SNDCTL_DSP_SETFRAGMENT or + * the buffer size computation has already been done. */ if (dmap->fragment_size > (audio_devs[dev]->buffsize / 2)) dmap->fragment_size = (audio_devs[dev]->buffsize / 2); @@ -634,7 +634,7 @@ } if (dmap->subdivision != 0 || - dmap->fragment_size) /* Loo late to change */ + dmap->fragment_size) /* Too late to change */ return -EINVAL; if (fact > MAX_REALTIME_FACTOR) @@ -656,7 +656,7 @@ return -EIO; if (dmap->subdivision != 0 || - dmap->fragment_size) /* Loo late to change */ + dmap->fragment_size) /* Too late to change */ return -EINVAL; bytes = fact & 0xffff; @@ -1173,7 +1173,7 @@ dmap->cfrag = -1; /* - * Bypass buffering if using mmaped access + * Bypass buffering if using mmapped access */ if (audio_devs[dev]->dmap_out->mapping_flags & DMA_MAP_MAPPED) diff -u --recursive --new-file v1.3.86/linux/drivers/sound/gus_wave.c linux/drivers/sound/gus_wave.c --- v1.3.86/linux/drivers/sound/gus_wave.c Sun Mar 24 22:50:04 1996 +++ linux/drivers/sound/gus_wave.c Fri Apr 12 09:49:43 1996 @@ -1481,7 +1481,7 @@ if ((err = DMAbuf_open_dma (gus_devnum)) < 0) { - printk ("GUS: Loading saples without DMA\n"); + printk ("GUS: Loading samples without DMA\n"); gus_no_dma = 1; /* Upload samples using PIO */ } else diff -u --recursive --new-file v1.3.86/linux/drivers/sound/mad16.c linux/drivers/sound/mad16.c --- v1.3.86/linux/drivers/sound/mad16.c Sun Mar 24 22:54:13 1996 +++ linux/drivers/sound/mad16.c Fri Apr 12 09:49:43 1996 @@ -33,7 +33,7 @@ * OPTi 82C929 MAD16 Pro * OPTi 82C930 (Not supported yet) * - * These audio interface chips don't prduce sound themselves. They just + * These audio interface chips don't produce sound themselves. They just * connect some other components (OPL-[234] and a WSS compatible codec) * to the PC bus and perform I/O, DMA and IRQ address decoding. There is * also a UART for the MPU-401 mode (not 82C928/Mozart). @@ -201,7 +201,7 @@ return 0; } - mad_write (MC1_PORT, tmp ^ 0x80); /* Togge a bit */ + mad_write (MC1_PORT, tmp ^ 0x80); /* Toggle a bit */ if ((tmp2 = mad_read (MC1_PORT)) != (tmp ^ 0x80)) /* Compare the bit */ { mad_write (MC1_PORT, tmp); /* Restore */ diff -u --recursive --new-file v1.3.86/linux/drivers/sound/mad16_sb_midi.c linux/drivers/sound/mad16_sb_midi.c --- v1.3.86/linux/drivers/sound/mad16_sb_midi.c Sun Mar 24 22:50:06 1996 +++ linux/drivers/sound/mad16_sb_midi.c Fri Apr 12 09:49:43 1996 @@ -64,7 +64,7 @@ unsigned long limit; limit = jiffies + HZ / 10; /* - * The timeout is 0.1 secods + * The timeout is 0.1 seconds */ /* diff -u --recursive --new-file v1.3.86/linux/drivers/sound/maui.c linux/drivers/sound/maui.c --- v1.3.86/linux/drivers/sound/maui.c Sun Mar 31 00:13:18 1996 +++ linux/drivers/sound/maui.c Fri Apr 12 09:49:43 1996 @@ -193,7 +193,7 @@ if (c != 0x80) { - printk ("Doanload not acknowledged\n"); + printk ("Download not acknowledged\n"); return 0; } else if (!(lines++ % 10)) @@ -463,7 +463,7 @@ struct synth_operations *synth; /* - * Intercept patch loading calls so that they canbe handled + * Intercept patch loading calls so that they can be handled * by the Maui driver. */ diff -u --recursive --new-file v1.3.86/linux/drivers/sound/midi_synth.c linux/drivers/sound/midi_synth.c --- v1.3.86/linux/drivers/sound/midi_synth.c Sun Mar 24 22:50:07 1996 +++ linux/drivers/sound/midi_synth.c Fri Apr 12 09:49:43 1996 @@ -744,7 +744,7 @@ if (!midi_devs[orig_dev]->putc (orig_dev, bytes[i])) { /* - * Hardware leve buffer is full. Abort the sysex message. + * Hardware level buffer is full. Abort the sysex message. */ int timeout = 0; diff -u --recursive --new-file v1.3.86/linux/drivers/sound/mpu401.c linux/drivers/sound/mpu401.c --- v1.3.86/linux/drivers/sound/mpu401.c Sun Mar 24 22:50:10 1996 +++ linux/drivers/sound/mpu401.c Fri Apr 12 09:49:43 1996 @@ -522,7 +522,7 @@ * Verify that the device is really running. * Some devices (such as Ensoniq SoundScape don't * work before the on board processor (OBP) is initialized - * by downloadin it's microcode. + * by downloading its microcode. */ if (!devc->initialized) @@ -667,7 +667,7 @@ ok = 1; } else - { /* Device is not currently open. Use simplier method */ + { /* Device is not currently open. Use simpler method */ if (read_data (devc) == MPU_ACK) ok = 1; } @@ -894,7 +894,7 @@ * Verify that the device is really running. * Some devices (such as Ensoniq SoundScape don't * work before the on board processor (OBP) is initialized - * by downloadin it's microcode. + * by downloading its microcode. */ if (!devc->initialized) diff -u --recursive --new-file v1.3.86/linux/drivers/sound/opl3.c linux/drivers/sound/opl3.c --- v1.3.86/linux/drivers/sound/opl3.c Sun Mar 24 22:50:11 1996 +++ linux/drivers/sound/opl3.c Fri Apr 12 09:49:43 1996 @@ -266,7 +266,7 @@ detected_model = 3; /* - * Detect availability of OPL4 (_experimental_). Works propably + * Detect availability of OPL4 (_experimental_). Works probably * only after a cold boot. In addition the OPL4 port * of the chip may not be connected to the PC bus at all. */ diff -u --recursive --new-file v1.3.86/linux/drivers/sound/opl3.h linux/drivers/sound/opl3.h --- v1.3.86/linux/drivers/sound/opl3.h Sun Mar 24 22:49:42 1996 +++ linux/drivers/sound/opl3.h Fri Apr 12 09:49:43 1996 @@ -34,7 +34,7 @@ * * The percussive mode is implemented in the left side only. * - * With the above exeptions the both sides can be operated independently. + * With the above exceptions the both sides can be operated independently. * * A 4 OP voice can be created by setting the corresponding * bit at offset 4 of the right side. diff -u --recursive --new-file v1.3.86/linux/drivers/sound/pas.h linux/drivers/sound/pas.h --- v1.3.86/linux/drivers/sound/pas.h Sun Mar 24 22:49:42 1996 +++ linux/drivers/sound/pas.h Fri Apr 12 09:49:43 1996 @@ -83,7 +83,7 @@ #define OPERATION_MODE_1 0xEF8B /* R Control */ # define O_M_1_CDROM_TYPE 0x03 /* R CD-ROM 3=SCSI, 2=Sony, 0=no CD-ROM interface */ -# define O_M_1_FM_TYPE 0x04 /* R FM 1=sterero, 0=mono FM chip */ +# define O_M_1_FM_TYPE 0x04 /* R FM 1=stereo, 0=mono FM chip */ # define O_M_1_PCM_TYPE 0x08 /* R PCM 1=16-bit Codec, 0=8-bit DAC */ #define OPERATION_MODE_2 0xFF8B /* R Control */ # define O_M_2_PCS_ENABLED 0x02 /* R PC speaker PC speaker emulation 1=enabled, 0=disabled */ diff -u --recursive --new-file v1.3.86/linux/drivers/sound/pas2_pcm.c linux/drivers/sound/pas2_pcm.c --- v1.3.86/linux/drivers/sound/pas2_pcm.c Sun Mar 24 22:50:13 1996 +++ linux/drivers/sound/pas2_pcm.c Fri Apr 12 09:49:43 1996 @@ -86,7 +86,7 @@ tmp = pas_read (FILTER_FREQUENCY); /* - * Set anti-aliasing filters according to sample rate. You reall *NEED* + * Set anti-aliasing filters according to sample rate. You really *NEED* * to enable this feature for all normal recording unless you want to * experiment with aliasing effects. * These filters apply to the selected "recording" source. diff -u --recursive --new-file v1.3.86/linux/drivers/sound/patmgr.c linux/drivers/sound/patmgr.c --- v1.3.86/linux/drivers/sound/patmgr.c Sun Mar 24 22:50:14 1996 +++ linux/drivers/sound/patmgr.c Fri Apr 12 09:49:43 1996 @@ -1,7 +1,7 @@ /* * sound/patmgr.c * - * The patch maneger interface for the /dev/sequencer + * The patch manager interface for the /dev/sequencer */ /* * Copyright by Hannu Savolainen 1993-1996 diff -u --recursive --new-file v1.3.86/linux/drivers/sound/pss.c linux/drivers/sound/pss.c --- v1.3.86/linux/drivers/sound/pss.c Wed Apr 3 16:06:56 1996 +++ linux/drivers/sound/pss.c Fri Apr 12 09:49:43 1996 @@ -824,7 +824,7 @@ /* * For some reason the card returns 0xff in the WSS status register - * immediately after boot. Propably MIDI+SB emulation algorithm + * immediately after boot. Probably MIDI+SB emulation algorithm * downloaded to the ADSP2115 spends some time initializing the card. * Let's try to wait until it finishes this task. */ diff -u --recursive --new-file v1.3.86/linux/drivers/sound/sb_dsp.c linux/drivers/sound/sb_dsp.c --- v1.3.86/linux/drivers/sound/sb_dsp.c Mon Mar 25 09:25:27 1996 +++ linux/drivers/sound/sb_dsp.c Fri Apr 12 09:49:43 1996 @@ -124,7 +124,7 @@ unsigned long limit; limit = jiffies + HZ / 10; /* - * The timeout is 0.1 secods + * The timeout is 0.1 seconds */ /* @@ -202,7 +202,7 @@ if (!(src & 1)) return; /* - * Not a DSP interupt + * Not a DSP interrupt */ } @@ -711,7 +711,7 @@ { /* !AudioDrive */ /* Select correct dma channel - * for 16/8 bit acccess + * for 16/8 bit access */ audio_devs[my_dev]->dmachan1 = audio_devs[my_dev]->dmachan2 = @@ -1332,7 +1332,7 @@ * Set DMA configuration register */ - cfg = 0x50; /* Extended mode DMA ebable */ + cfg = 0x50; /* Extended mode DMA enable */ if (sbc_dma > 3 || sbc_dma < 0 || sbc_dma == 2) { diff -u --recursive --new-file v1.3.86/linux/drivers/sound/sb_midi.c linux/drivers/sound/sb_midi.c --- v1.3.86/linux/drivers/sound/sb_midi.c Sun Mar 24 22:50:20 1996 +++ linux/drivers/sound/sb_midi.c Fri Apr 12 09:49:43 1996 @@ -44,7 +44,7 @@ * future version of this driver. */ -extern int sb_dsp_ok; /* Set to 1 atfer successful initialization */ +extern int sb_dsp_ok; /* Set to 1 after successful initialization */ extern int sbc_base; extern int sb_midi_mode; diff -u --recursive --new-file v1.3.86/linux/drivers/sound/sequencer.c linux/drivers/sound/sequencer.c --- v1.3.86/linux/drivers/sound/sequencer.c Sun Mar 24 22:50:23 1996 +++ linux/drivers/sound/sequencer.c Fri Apr 12 09:49:43 1996 @@ -51,7 +51,7 @@ /* * The seq_mode gives the operating mode of the sequencer: * 1 = level1 (the default) - * 2 = level2 (extended capabilites) + * 2 = level2 (extended capabilities) */ #define SEQ_1 1 diff -u --recursive --new-file v1.3.86/linux/drivers/sound/sound_config.h linux/drivers/sound/sound_config.h --- v1.3.86/linux/drivers/sound/sound_config.h Sun Mar 24 22:49:43 1996 +++ linux/drivers/sound/sound_config.h Fri Apr 12 09:49:43 1996 @@ -113,7 +113,7 @@ #define SND_DEV_DSP16 5 /* Like /dev/dsp but 16 bits/sample */ #define SND_DEV_STATUS 6 /* /dev/sndstat */ /* #7 not in use now. Was in 2.4. Free for use after v3.0. */ -#define SND_DEV_SEQ2 8 /* /dev/sequecer, level 2 interface */ +#define SND_DEV_SEQ2 8 /* /dev/sequencer, level 2 interface */ #define SND_DEV_SNDPROC 9 /* /dev/sndproc for programmable devices */ #define SND_DEV_PSS SND_DEV_SNDPROC @@ -143,8 +143,8 @@ char *name; int driver_use_1; /* Driver defined field 1 */ int driver_use_2; /* Driver defined field 2 */ - int *osp; /* OS spesific info */ - int card_subtype; /* Driver spesific. Usually 0 */ + int *osp; /* OS specific info */ + int card_subtype; /* Driver specific. Usually 0 */ }; #define SYNTH_MAX_VOICES 32 diff -u --recursive --new-file v1.3.86/linux/drivers/sound/soundcard.c linux/drivers/sound/soundcard.c --- v1.3.86/linux/drivers/sound/soundcard.c Mon Mar 25 09:25:27 1996 +++ linux/drivers/sound/soundcard.c Fri Apr 12 09:49:43 1996 @@ -726,7 +726,7 @@ } int -soud_map_buffer (int dev, struct dma_buffparms *dmap, buffmem_desc * info) +sound_map_buffer (int dev, struct dma_buffparms *dmap, buffmem_desc * info) { printk ("Entered sound_map_buffer()\n"); printk ("Exited sound_map_buffer()\n"); diff -u --recursive --new-file v1.3.86/linux/fs/buffer.c linux/fs/buffer.c --- v1.3.86/linux/fs/buffer.c Mon Apr 8 19:01:44 1996 +++ linux/fs/buffer.c Fri Apr 12 09:49:43 1996 @@ -1095,7 +1095,7 @@ struct page *page; page = mem_map + MAP_NR(address); - page->uptodate = 0; + clear_bit(PG_uptodate, &page->flags); bh = create_buffers(address, size); if (!bh) return -ENOMEM; @@ -1152,8 +1152,8 @@ ll_rw_block(rw, nr, arr); else { unsigned long flags; - page->locked = 0; - page->uptodate = 1; + clear_bit(PG_locked, &page->flags); + set_bit(PG_uptodate, &page->flags); wake_up(&page->wait); next = bh; save_flags(flags); @@ -1183,7 +1183,7 @@ tmp=tmp->b_this_page; } while (tmp && tmp != bh); if (page_uptodate) - mem_map[MAP_NR(bh->b_data)].uptodate = 1; + set_bit(PG_uptodate, &mem_map[MAP_NR(bh->b_data)].flags); } else clear_bit(BH_Uptodate, &bh->b_state); } @@ -1200,7 +1200,7 @@ if (!test_bit(BH_FreeOnIO, &bh->b_state)) return; page = mem_map + MAP_NR(bh->b_data); - if (!page->locked) { + if (!PageLocked(page)) { printk ("Whoops: unlock_buffer: " "async io complete on unlocked page\n"); return; @@ -1221,7 +1221,7 @@ /* OK, go ahead and complete the async IO on this page. */ save_flags(flags); - page->locked = 0; + clear_bit(PG_locked, &page->flags); wake_up(&page->wait); cli(); tmp = bh; @@ -1238,10 +1238,9 @@ tmp = tmp->b_this_page; } while (tmp != bh); restore_flags(flags); - if (page->free_after) { + if (clear_bit(PG_freeafter, &page->flags)) { extern int nr_async_pages; nr_async_pages--; - page->free_after = 0; free_page(page_address(page)); } wake_up(&buffer_wait); @@ -1251,7 +1250,7 @@ * Generic "readpage" function for block devices that have the normal * bmap functionality. This is most of the block device filesystems. * Reads the page asynchronously --- the unlock_buffer() and - * mark_buffer_uptodate() functions propogate buffer state into the + * mark_buffer_uptodate() functions propagate buffer state into the * page struct once IO has completed. */ int generic_readpage(struct inode * inode, struct page * page) @@ -1262,7 +1261,7 @@ address = page_address(page); page->count++; - page->locked = 1; + set_bit(PG_locked, &page->flags); i = PAGE_SIZE >> inode->i_sb->s_blocksize_bits; block = page->offset >> inode->i_sb->s_blocksize_bits; diff -u --recursive --new-file v1.3.86/linux/fs/dquot.c linux/fs/dquot.c --- v1.3.86/linux/fs/dquot.c Mon Feb 12 06:45:30 1996 +++ linux/fs/dquot.c Fri Apr 12 09:49:44 1996 @@ -8,7 +8,7 @@ * block. These routines take care of the administration needed to * have a consistent diskquota tracking system. The ideas of both * user and group quotas are based on the Melbourne quota system as - * used on BSD derivated systems. The internal implementation is + * used on BSD derived systems. The internal implementation is * based on the LINUX inode-subsystem with added complexity of the * diskquota system. This implementation is not based on any BSD * kernel sourcecode. @@ -757,7 +757,7 @@ } /* - * Externaly referenced funtions trough dq_operations. + * Externally referenced functions through dquot_operations. */ int dquot_alloc_block(const struct inode *inode, unsigned long number) { @@ -872,7 +872,7 @@ } /* - * Finaly perform the needed transfer from transfer_from to transfer_to. + * Finally perform the needed transfer from transfer_from to transfer_to. * And release any pointer to dquots not needed anymore. */ for (cnt = 0; cnt < MAXQUOTAS; cnt++) { diff -u --recursive --new-file v1.3.86/linux/fs/ext2/symlink.c linux/fs/ext2/symlink.c --- v1.3.86/linux/fs/ext2/symlink.c Fri Dec 22 13:00:19 1995 +++ linux/fs/ext2/symlink.c Fri Apr 12 10:33:26 1996 @@ -86,6 +86,10 @@ link = bh->b_data; } else link = (char *) inode->u.ext2_i.i_data; + if (!IS_RDONLY(inode)) { + inode->i_atime = CURRENT_TIME; + inode->i_dirt = 1; + } current->link_count++; error = open_namei (link, flag, mode, res_inode, dir); current->link_count--; @@ -122,6 +126,10 @@ while (i < buflen && (c = link[i])) { i++; put_user (c, buffer++); + } + if (!IS_RDONLY(inode)) { + inode->i_atime = CURRENT_TIME; + inode->i_dirt = 1; } iput (inode); if (bh) diff -u --recursive --new-file v1.3.86/linux/fs/ncpfs/inode.c linux/fs/ncpfs/inode.c --- v1.3.86/linux/fs/ncpfs/inode.c Sat Mar 2 13:15:35 1996 +++ linux/fs/ncpfs/inode.c Fri Apr 12 09:49:44 1996 @@ -53,7 +53,7 @@ ncp_read_inode(struct inode *inode) { /* Our task should be extremely simple here. We only have to - look up the infomation somebody else (ncp_iget) put into + look up the information somebody else (ncp_iget) put into the inode tree. The address of this information is the inode->i_ino. Just to make sure everything went well, we check it's there. */ diff -u --recursive --new-file v1.3.86/linux/fs/nfs/README linux/fs/nfs/README --- v1.3.86/linux/fs/nfs/README Tue Apr 2 13:32:22 1996 +++ linux/fs/nfs/README Fri Apr 12 09:49:44 1996 @@ -14,7 +14,7 @@ This stuff compiles as a loadable module (I developed it on 1.3.77). Simply type mkmodule, and insmod nfs.o. This will start for nfsiod's - at the same time (which will show up under the pesudonym of insmod in + at the same time (which will show up under the pseudonym of insmod in ps-style listings). Alternatively, you can put it right into the kernel: remove everything @@ -51,9 +51,9 @@ * Async RPC will not be tried when server->rsize < PAGE_SIZE. * When an error occurs, nfsiod has no way of returning - the error code to the user process. Theerefore, it flags + the error code to the user process. Therefore, it flags page->error and wakes up all processes waiting on that - page (they usually do so from withing generic_readpage). + page (they usually do so from within generic_readpage). generic_readpage finds that the page is still not uptodate, and calls nfs_readpage again. This time around, diff -u --recursive --new-file v1.3.86/linux/fs/nfs/bio.c linux/fs/nfs/bio.c --- v1.3.86/linux/fs/nfs/bio.c Tue Apr 2 13:32:22 1996 +++ linux/fs/nfs/bio.c Thu Apr 11 14:24:35 1996 @@ -51,8 +51,8 @@ dprintk("NFS: do_read_nfs_sync(%p)\n", page); - page->locked = 1; - page->error = 0; + set_bit(PG_locked, &page->flags); + clear_bit(PG_error, &page->flags); do { if (count < rsize) @@ -77,9 +77,9 @@ if (refresh) { nfs_refresh_inode(inode, &fattr); result = 0; - page->uptodate = 1; + set_bit(PG_uptodate, &page->flags); } - page->locked = 0; + clear_bit(PG_locked, &page->flags); wake_up(&page->wait); return result; } @@ -100,13 +100,13 @@ if (result >= 0 && (result = nfs_proc_read_reply(&req->rq_rpcreq)) >= 0) { succ++; - page->uptodate = 1; + set_bit(PG_uptodate, &page->flags); } else { fail++; printk("BIO: %d successful reads, %d failures\n", succ, fail); - page->error = 1; + set_bit(PG_error, &page->flags); } - page->locked = 0; + clear_bit(PG_locked, &page->flags); wake_up(&page->wait); free_page(page_address(page)); } @@ -119,8 +119,8 @@ dprintk("NFS: do_read_nfs_async(%p)\n", page); - page->locked = 1; - page->error = 0; + set_bit(PG_locked, &page->flags); + clear_bit(PG_error, &page->flags); if (!(req = nfsiod_reserve(NFS_SERVER(inode), nfs_read_cb))) goto done; @@ -138,7 +138,7 @@ if (result < 0) { dprintk("NFS: deferring async READ request.\n"); nfsiod_release(req); - page->locked = 0; + clear_bit(PG_locked, &page->flags); wake_up(&page->wait); } @@ -155,7 +155,7 @@ dprintk("NFS: nfs_readpage %08lx\n", page_address(page)); address = page_address(page); page->count++; - if (!page->error && NFS_SERVER(inode)->rsize >= PAGE_SIZE) + if (!PageError(page) && NFS_SERVER(inode)->rsize >= PAGE_SIZE) error = do_read_nfs_async(inode, page); if (error < 0) /* couldn't enqueue */ error = do_read_nfs_sync(inode, page); diff -u --recursive --new-file v1.3.86/linux/fs/nfs/dir.c linux/fs/nfs/dir.c --- v1.3.86/linux/fs/nfs/dir.c Tue Mar 12 16:06:44 1996 +++ linux/fs/nfs/dir.c Thu Apr 11 09:20:34 1996 @@ -4,6 +4,8 @@ * Copyright (C) 1992 Rick Sladkey * * nfs directory handling functions + * + * 10 Apr 1996 Added silly rename for unlink --okir */ #include @@ -481,6 +483,51 @@ return error; } +static int nfs_sillyrename(struct inode *dir, const char *name, int len) +{ + struct inode *inode; + char silly[14]; + int slen, ret; + + dir->i_count++; + if (nfs_lookup(dir, name, len, &inode) < 0) + return -EIO; /* arbitrary */ + if (inode->i_count == 1 || NFS_RENAMED_DIR(inode)) { + iput(inode); + return -EIO; + } + slen = sprintf(silly, ".nfs%ld", inode->i_ino); + + if (len == slen && !strncmp(name, silly, len)) { + iput(inode); + return -EIO; /* DWIM */ + } + ret = nfs_proc_rename(NFS_SERVER(dir), NFS_FH(dir), name, + NFS_FH(dir), silly); + if (ret >= 0) { + nfs_lookup_cache_remove(dir, NULL, name); + nfs_lookup_cache_remove(dir, NULL, silly); + NFS_RENAMED_DIR(inode) = dir; + dir->i_count++; + } + iput(inode); + return ret; +} + +void nfs_sillyrename_cleanup(struct inode *inode) +{ + struct inode *dir = NFS_RENAMED_DIR(inode); + char silly[14]; + int error, slen; + + slen = sprintf(silly, ".nfs%ld", inode->i_ino); + if ((error = nfs_unlink(dir, silly, slen)) < 0) { + printk("NFS silly_rename cleanup failed (err = %d)\n", + -error); + } + NFS_RENAMED_DIR(inode) = NULL; +} + static int nfs_unlink(struct inode *dir, const char *name, int len) { int error; @@ -494,9 +541,11 @@ iput(dir); return -ENAMETOOLONG; } - error = nfs_proc_remove(NFS_SERVER(dir), NFS_FH(dir), name); - if (!error) - nfs_lookup_cache_remove(dir, NULL, name); + if ((error = nfs_sillyrename(dir, name, len)) < 0) { + error = nfs_proc_remove(NFS_SERVER(dir), NFS_FH(dir), name); + if (!error) + nfs_lookup_cache_remove(dir, NULL, name); + } iput(dir); return error; } diff -u --recursive --new-file v1.3.86/linux/fs/nfs/inode.c linux/fs/nfs/inode.c --- v1.3.86/linux/fs/nfs/inode.c Tue Apr 2 13:32:22 1996 +++ linux/fs/nfs/inode.c Thu Apr 11 09:20:34 1996 @@ -68,6 +68,8 @@ static void nfs_put_inode(struct inode * inode) { + if (NFS_RENAMED_DIR(inode)) + nfs_sillyrename_cleanup(inode); if (inode->i_pipe) clear_inode(inode); } diff -u --recursive --new-file v1.3.86/linux/fs/nfs/nfsroot.c linux/fs/nfs/nfsroot.c --- v1.3.86/linux/fs/nfs/nfsroot.c Wed Apr 10 17:02:25 1996 +++ linux/fs/nfs/nfsroot.c Fri Apr 12 09:49:44 1996 @@ -154,7 +154,7 @@ ***************************************************************************/ /* - * Setup and initialize all network devices. If there is a user-prefered + * Setup and initialize all network devices. If there is a user-preferred * interface, ignore all other interfaces. */ static int root_dev_open(void) @@ -1541,7 +1541,7 @@ /* * First connect the UDP socket to a server port, then send the - * packet out, and finally check wether the answer is OK. + * packet out, and finally check whether the answer is OK. */ if (nfs_sock_inode->u.socket_i.ops->connect && nfs_sock_inode->u.socket_i.ops->connect(&nfs_sock_inode->u.socket_i, diff -u --recursive --new-file v1.3.86/linux/fs/proc/scsi.c linux/fs/proc/scsi.c --- v1.3.86/linux/fs/proc/scsi.c Sun Jan 14 16:48:05 1996 +++ linux/fs/proc/scsi.c Fri Apr 12 09:49:44 1996 @@ -195,7 +195,7 @@ return(file->f_pos); case 2: /* This ugly hack allows us to */ if (offset) /* to determine the length of the */ - return(-EINVAL); /* file and then later savely to */ + return(-EINVAL); /* file and then later safely to */ proc_readscsi(inode, file, 0, -1); /* seek in it */ return(file->f_pos); default: diff -u --recursive --new-file v1.3.86/linux/fs/smbfs/dir.c linux/fs/smbfs/dir.c --- v1.3.86/linux/fs/smbfs/dir.c Tue Jan 2 14:18:43 1996 +++ linux/fs/smbfs/dir.c Fri Apr 12 09:49:44 1996 @@ -136,7 +136,7 @@ * count --- Number of entries to be read. Should indicate the total * buffer space available for filling with dirents. * Return values: - * < 0 --- An error occured (linux/errno.h). + * < 0 --- An error occurred (linux/errno.h). * = 0 --- * > 0 --- Success, amount of bytes written to dirent. * Notes: diff -u --recursive --new-file v1.3.86/linux/fs/smbfs/inode.c linux/fs/smbfs/inode.c --- v1.3.86/linux/fs/smbfs/inode.c Mon Jan 15 07:59:11 1996 +++ linux/fs/smbfs/inode.c Fri Apr 12 09:49:44 1996 @@ -48,7 +48,7 @@ smb_read_inode(struct inode *inode) { /* Our task should be extremely simple here. We only have to - look up the infomation somebody else (smb_iget) put into + look up the information somebody else (smb_iget) put into the inode tree. The address of this information is the inode->i_ino. Just to make sure everything went well, we check it's there. */ diff -u --recursive --new-file v1.3.86/linux/fs/smbfs/sock.c linux/fs/smbfs/sock.c --- v1.3.86/linux/fs/smbfs/sock.c Fri Nov 10 07:54:00 1995 +++ linux/fs/smbfs/sock.c Fri Apr 12 09:49:44 1996 @@ -483,7 +483,7 @@ /*****************************************************************************/ /* */ -/* This routine was once taken from nfs, wich is for udp. Here TCP does */ +/* This routine was once taken from nfs, which is for udp. Here TCP does */ /* most of the ugly stuff for us (thanks, Alan!) */ /* */ /*****************************************************************************/ diff -u --recursive --new-file v1.3.86/linux/fs/umsdos/dir.c linux/fs/umsdos/dir.c --- v1.3.86/linux/fs/umsdos/dir.c Wed Feb 7 09:39:29 1996 +++ linux/fs/umsdos/dir.c Fri Apr 12 09:49:44 1996 @@ -353,7 +353,7 @@ of the data of a file. It can translate silently from MsDOS text file format to Unix one (crlf -> lf) while reading, and the reverse - while writting. This is activated using the mount + while writing. This is activated using the mount option conv=.... This is not useful for Linux file in promoted diff -u --recursive --new-file v1.3.86/linux/include/asm-alpha/io.h linux/include/asm-alpha/io.h --- v1.3.86/linux/include/asm-alpha/io.h Wed Feb 28 11:36:37 1996 +++ linux/include/asm-alpha/io.h Fri Apr 12 09:49:44 1996 @@ -58,7 +58,7 @@ /* * Define actual functions in private name-space so it's easier to - * accomodate things like XFree or svgalib that like to define their + * accommodate things like XFree or svgalib that like to define their * own versions of inb etc. */ extern void __sethae (unsigned long addr); /* syscall */ diff -u --recursive --new-file v1.3.86/linux/include/asm-alpha/lca.h linux/include/asm-alpha/lca.h --- v1.3.86/linux/include/asm-alpha/lca.h Fri Dec 22 08:22:06 1995 +++ linux/include/asm-alpha/lca.h Fri Apr 12 09:49:44 1996 @@ -313,7 +313,7 @@ /* * Data structure for handling LCA machine checks. Correctable errors - * result in a short logout frame, uncorrectably ones in a long one. + * result in a short logout frame, uncorrectable ones in a long one. */ struct el_lca_mcheck_short { struct el_common h; /* common logout header */ diff -u --recursive --new-file v1.3.86/linux/include/asm-alpha/shmparam.h linux/include/asm-alpha/shmparam.h --- v1.3.86/linux/include/asm-alpha/shmparam.h Fri Jun 16 21:11:21 1995 +++ linux/include/asm-alpha/shmparam.h Fri Apr 12 09:49:44 1996 @@ -5,7 +5,7 @@ * Address range for shared memory attaches if no address passed to * shmat(). These ought to be changed to something >4GB so 32-bit * errors are caught more easily. However, they don't seem to be used - * execept for ELF stuff, so it's not really critical until we get ELF + * except for ELF stuff, so it's not really critical until we get ELF * support for the Alpha. */ #define SHM_RANGE_START 0x50000000 diff -u --recursive --new-file v1.3.86/linux/include/asm-alpha/stat.h linux/include/asm-alpha/stat.h --- v1.3.86/linux/include/asm-alpha/stat.h Mon Mar 11 11:12:17 1996 +++ linux/include/asm-alpha/stat.h Fri Apr 12 09:49:44 1996 @@ -13,7 +13,7 @@ unsigned long st_atime; unsigned long st_mtime; unsigned long st_ctime; - unsigned int st_blkize; + unsigned int st_blksize; int st_blocks; unsigned int st_flags; unsigned int st_gen; diff -u --recursive --new-file v1.3.86/linux/include/asm-i386/bitops.h linux/include/asm-i386/bitops.h --- v1.3.86/linux/include/asm-i386/bitops.h Sun Mar 31 00:13:18 1996 +++ linux/include/asm-i386/bitops.h Thu Apr 11 13:22:13 1996 @@ -66,7 +66,7 @@ */ extern __inline__ int test_bit(int nr, const SMPVOL void * addr) { - return 1UL & (((const unsigned int *) addr)[nr >> 5] >> (nr & 31)); + return ((1UL << (nr & 31)) & (((const unsigned int *) addr)[nr >> 5])) != 0; } /* diff -u --recursive --new-file v1.3.86/linux/include/asm-i386/locks.h linux/include/asm-i386/locks.h --- v1.3.86/linux/include/asm-i386/locks.h Wed Apr 3 16:06:57 1996 +++ linux/include/asm-i386/locks.h Fri Apr 12 09:49:44 1996 @@ -83,7 +83,7 @@ /* - * These wrap the locking primtives up for usage + * These wrap the locking primitives up for usage */ extern __inline__ void spinlock(struct spinlock *sp) @@ -126,7 +126,7 @@ extern __inline__ void spintestunlock(struct spinlock *sp) { /* - * A testlock doesnt update the lock chain so we + * A testlock doesn't update the lock chain so we * must not update it on free */ prim_spin_unlock(sp); diff -u --recursive --new-file v1.3.86/linux/include/asm-i386/pgtable.h linux/include/asm-i386/pgtable.h --- v1.3.86/linux/include/asm-i386/pgtable.h Wed Apr 3 16:06:57 1996 +++ linux/include/asm-i386/pgtable.h Fri Apr 12 09:49:44 1996 @@ -201,7 +201,7 @@ /* * The 4MB page is guessing.. Detailed in the infamous "Chapter H" - * of the Pentium details, but assuming intel did the straigtforward + * of the Pentium details, but assuming intel did the straightforward * thing, this bit set in the page directory entry just means that * the page directory entry points directly to a 4MB-aligned block of * memory. @@ -254,7 +254,7 @@ /* page table for 0-4MB for everybody */ extern unsigned long pg0[1024]; -/* zero page used for unitialized stuff */ +/* zero page used for uninitialized stuff */ extern unsigned long empty_zero_page[1024]; /* diff -u --recursive --new-file v1.3.86/linux/include/asm-i386/smp.h linux/include/asm-i386/smp.h --- v1.3.86/linux/include/asm-i386/smp.h Wed Apr 3 16:06:57 1996 +++ linux/include/asm-i386/smp.h Fri Apr 12 09:49:44 1996 @@ -244,7 +244,7 @@ * a process across CPUs. Such a transfer incurs misses on the L1 * cache, and on a P6 or P5 with multiple L2 caches L2 hits. My * gut feeling is this will vary by board in value. For a board - * with seperate L2 cache it probably depends also on the RSS, and + * with separate L2 cache it probably depends also on the RSS, and * for a board with shared L2 cache it ought to decay fast as other * processes are run. */ diff -u --recursive --new-file v1.3.86/linux/include/asm-mips/delay.h linux/include/asm-mips/delay.h --- v1.3.86/linux/include/asm-mips/delay.h Wed Dec 13 12:39:45 1995 +++ linux/include/asm-mips/delay.h Fri Apr 12 09:49:44 1996 @@ -36,7 +36,7 @@ /* * The different variants for 32/64 bit are pure paranoia. The typical - * range of numbers that apprears for MIPS machines avoids overflows. + * range of numbers that appears for MIPS machines avoids overflows. */ extern __inline__ unsigned long muldiv(unsigned long a, unsigned long b, unsigned long c) { diff -u --recursive --new-file v1.3.86/linux/include/asm-mips/dma.h linux/include/asm-mips/dma.h --- v1.3.86/linux/include/asm-mips/dma.h Thu Mar 14 09:21:15 1996 +++ linux/include/asm-mips/dma.h Fri Apr 12 09:49:44 1996 @@ -75,9 +75,9 @@ /* * The maximum address that we can perform a DMA transfer to on this platform - * This discribes only the PC style part of the DMA logic like on Deskstations + * This describes only the PC style part of the DMA logic like on Deskstations * or Acer PICA but not the much more versatile DMA logic used for the - * local devices on Acer PICA or Mangnums. + * local devices on Acer PICA or Magnums. */ #define MAX_DMA_ADDRESS 0x1000000 diff -u --recursive --new-file v1.3.86/linux/include/asm-mips/floppy.h linux/include/asm-mips/floppy.h --- v1.3.86/linux/include/asm-mips/floppy.h Fri Mar 1 07:50:56 1996 +++ linux/include/asm-mips/floppy.h Fri Apr 12 09:49:44 1996 @@ -45,10 +45,10 @@ 512*2*MAX_BUFFER_SECTORS); /* - * And on Mips's the CMOS info failes also ... + * And on Mips's the CMOS info fails also ... * * FIXME: This information should come from the ARC configuration tree - * or whereever a parivular machine has stored this ... + * or wherever a particular machine has stored this ... */ #define FLOPPY0_TYPE 4 /* this is wrong for the Olli M700, but who cares... */ #define FLOPPY1_TYPE 0 diff -u --recursive --new-file v1.3.86/linux/include/asm-mips/jazz.h linux/include/asm-mips/jazz.h --- v1.3.86/linux/include/asm-mips/jazz.h Wed Dec 13 12:39:46 1995 +++ linux/include/asm-mips/jazz.h Fri Apr 12 09:49:44 1996 @@ -53,7 +53,7 @@ * Some characters for the LED control registers * The original Mips machines seem to have a LED display * with integrated decoder while the Acer machines can - * control each of the seven segments and the dot independend. + * control each of the seven segments and the dot independently. * It's only a toy, anyway... */ #define LED_DOT 0x01 @@ -227,7 +227,7 @@ #define JAZZ_R4030_CACHE_MTNC 0xE0000030 /* Cache Maintenance */ #define JAZZ_R4030_R_FAIL_ADDR 0xE0000038 /* Remote Failed Address */ -#define JAZZ_R4030_M_FAIL_ADDR 0xE0000040 /* Memory Failed Adresss */ +#define JAZZ_R4030_M_FAIL_ADDR 0xE0000040 /* Memory Failed Address */ #define JAZZ_R4030_CACHE_PTAG 0xE0000048 /* I/O Cache Physical Tag */ #define JAZZ_R4030_CACHE_LTAG 0xE0000050 /* I/O Cache Logical Tag */ diff -u --recursive --new-file v1.3.86/linux/include/asm-mips/mc146818rtc.h linux/include/asm-mips/mc146818rtc.h --- v1.3.86/linux/include/asm-mips/mc146818rtc.h Wed Dec 13 12:39:46 1995 +++ linux/include/asm-mips/mc146818rtc.h Fri Apr 12 09:49:44 1996 @@ -1,5 +1,5 @@ /* - * Machine dependend access functions for RTC registers. + * Machine dependent access functions for RTC registers. */ #ifndef __ASM_MIPS_MC146818RTC_H #define __ASM_MIPS_MC146818RTC_H diff -u --recursive --new-file v1.3.86/linux/include/asm-mips/mipsconfig.h linux/include/asm-mips/mipsconfig.h --- v1.3.86/linux/include/asm-mips/mipsconfig.h Wed Dec 13 12:39:46 1995 +++ linux/include/asm-mips/mipsconfig.h Fri Apr 12 09:49:44 1996 @@ -46,7 +46,7 @@ #undef CONF_PROFILE_TLB /* - * Disable all caching. Usefull to find trouble with caches in drivers. + * Disable all caching. Useful to find trouble with caches in drivers. */ #undef CONF_DISABLE_KSEG0_CACHING diff -u --recursive --new-file v1.3.86/linux/include/asm-mips/pgtable.h linux/include/asm-mips/pgtable.h --- v1.3.86/linux/include/asm-mips/pgtable.h Wed Dec 13 12:39:46 1995 +++ linux/include/asm-mips/pgtable.h Fri Apr 12 09:49:44 1996 @@ -88,7 +88,7 @@ * physical address by a single 'and' operation and gain 6 additional * bits for storing information which isn't present in a normal * MIPS page table. - * Since the Mips has choosen some quite missleading names for the + * Since the Mips has chosen some quite misleading names for the * valid and dirty bits they're defined here but only their synonyms * will be used. */ @@ -545,7 +545,7 @@ /* * MIPS doesn't need any external MMU info: the kernel page tables contain * all the necessary information. We use this hook though to load the - * TLB as early as possible with uptodate information avoiding unecessary + * TLB as early as possible with uptodate information avoiding unnecessary * exceptions. */ extern void update_mmu_cache(struct vm_area_struct * vma, diff -u --recursive --new-file v1.3.86/linux/include/asm-mips/pica.h linux/include/asm-mips/pica.h --- v1.3.86/linux/include/asm-mips/pica.h Wed Dec 13 12:39:46 1995 +++ linux/include/asm-mips/pica.h Fri Apr 12 09:49:44 1996 @@ -48,7 +48,7 @@ * Some characters for the LED control registers * The original Mips machines seem to have a LED display * with integrated decoder while the Acer machines can - * control each of the seven segments and the dot independend. + * control each of the seven segments and the dot independently. * It only a toy, anyway... */ #define LED_DOT 0x01 diff -u --recursive --new-file v1.3.86/linux/include/asm-mips/processor.h linux/include/asm-mips/processor.h --- v1.3.86/linux/include/asm-mips/processor.h Wed Dec 13 12:39:46 1995 +++ linux/include/asm-mips/processor.h Fri Apr 12 09:49:44 1996 @@ -178,7 +178,7 @@ sync_mem(); regs->cp0_epc = pc; /* - * New thread looses kernel priviledges. + * New thread loses kernel privileges. */ regs->cp0_status = (regs->cp0_status & ~(ST0_CU0|ST0_KSU)) | KSU_USER; /* diff -u --recursive --new-file v1.3.86/linux/include/asm-mips/segment.h linux/include/asm-mips/segment.h --- v1.3.86/linux/include/asm-mips/segment.h Wed Dec 13 12:39:46 1995 +++ linux/include/asm-mips/segment.h Fri Apr 12 09:49:44 1996 @@ -8,7 +8,7 @@ * Copyright (C) 1994, 1995 by Ralf Baechle * * Note that the quad functions are only being used for the 64 bit kernel and - * therefore it isn't really important that they will be misscompiled for + * therefore it isn't really important that they will be miscompiled for * 32-bit kernels. */ #ifndef __ASM_MIPS_SEGMENT_H diff -u --recursive --new-file v1.3.86/linux/include/asm-mips/signal.h linux/include/asm-mips/signal.h --- v1.3.86/linux/include/asm-mips/signal.h Fri Mar 1 07:50:56 1996 +++ linux/include/asm-mips/signal.h Fri Apr 12 09:49:44 1996 @@ -48,7 +48,7 @@ #define SIGWINCH 20 /* Window size change (4.3 BSD, Sun). */ #define SIGURG 21 /* Urgent condition on socket (4.2 BSD). */ #define SIGIO 22 /* I/O now possible (4.2 BSD). */ -#define SIGPOLL SIGIO /* Pollable event occured (System V). */ +#define SIGPOLL SIGIO /* Pollable event occurred (System V). */ #define SIGSTOP 23 /* Stop, unblockable (POSIX). */ #define SIGTSTP 24 /* Keyboard stop (POSIX). */ #define SIGCONT 25 /* Continue (POSIX). */ diff -u --recursive --new-file v1.3.86/linux/include/asm-mips/socket.h linux/include/asm-mips/socket.h --- v1.3.86/linux/include/asm-mips/socket.h Wed Dec 13 12:39:46 1995 +++ linux/include/asm-mips/socket.h Fri Apr 12 09:49:44 1996 @@ -41,7 +41,7 @@ #define SO_BSDCOMPAT 14 /* - * Wierd. There are two ABIs; in the old one SOCK_STREAM and SOCK_DGRAM + * Weird. There are two ABIs; in the old one SOCK_STREAM and SOCK_DGRAM * have swapped values. I choose to be compatible with the new one. */ #define SOCK_DGRAM 1 /* datagram (conn.less) socket */ diff -u --recursive --new-file v1.3.86/linux/include/asm-mips/stat.h linux/include/asm-mips/stat.h --- v1.3.86/linux/include/asm-mips/stat.h Wed Dec 13 12:39:46 1995 +++ linux/include/asm-mips/stat.h Fri Apr 12 09:49:44 1996 @@ -15,7 +15,7 @@ unsigned int st_atime, st_res1; unsigned int st_mtime, st_res2; unsigned int st_ctime, st_res3; - unsigned int st_blkize; + unsigned int st_blksize; int st_blocks; unsigned int st_flags; unsigned int st_gen; diff -u --recursive --new-file v1.3.86/linux/include/asm-mips/sysmips.h linux/include/asm-mips/sysmips.h --- v1.3.86/linux/include/asm-mips/sysmips.h Wed Dec 13 12:39:47 1995 +++ linux/include/asm-mips/sysmips.h Fri Apr 12 09:49:44 1996 @@ -17,7 +17,7 @@ * We only support the following commands. */ #define SETNAME 1 /* set hostname */ -#define FLUSH_CACHE 3 /* writeback and invalide caches */ +#define FLUSH_CACHE 3 /* writeback and invalidate caches */ #define MIPS_FIXADE 7 /* control address error fixing */ #define MIPS_ATOMIC_SET 2001 /* atomically set variable */ diff -u --recursive --new-file v1.3.86/linux/include/asm-mips/termbits.h linux/include/asm-mips/termbits.h --- v1.3.86/linux/include/asm-mips/termbits.h Wed Dec 13 12:39:47 1995 +++ linux/include/asm-mips/termbits.h Fri Apr 12 09:49:44 1996 @@ -26,7 +26,7 @@ tcflag_t c_cflag; /* control mode flags */ tcflag_t c_lflag; /* local mode flags */ /* - * Seems nonexistant in the ABI, but Linux assumes existence ... + * Seems nonexistent in the ABI, but Linux assumes existence ... */ cc_t c_line; /* line discipline */ cc_t c_cc[NCCS]; /* control characters */ diff -u --recursive --new-file v1.3.86/linux/include/asm-mips/vector.h linux/include/asm-mips/vector.h --- v1.3.86/linux/include/asm-mips/vector.h Wed Dec 13 12:39:47 1995 +++ linux/include/asm-mips/vector.h Fri Apr 12 09:49:44 1996 @@ -47,7 +47,7 @@ /* * Similar to the above this is a structure that describes various - * CPU dependend features. + * CPU dependent features. * * FIXME: This vector isn't being used yet */ diff -u --recursive --new-file v1.3.86/linux/include/asm-ppc/pgtable.h linux/include/asm-ppc/pgtable.h --- v1.3.86/linux/include/asm-ppc/pgtable.h Sat Nov 25 19:52:45 1995 +++ linux/include/asm-ppc/pgtable.h Fri Apr 12 09:49:45 1996 @@ -19,7 +19,7 @@ * simplest way to split this was literally in half. Also, life is so * much simpler for the kernel if the machine hardware resources are * always mapped in. Thus, some additional space is given up to the - * kernel space to accomodate this. + * kernel space to accommodate this. * * CAUTION! Some of the trade-offs make sense for the PreP platform on * which this code was originally developed. When it migrates to other @@ -35,7 +35,7 @@ * of the logical address. These 4 bits address a "virtual segment id" * which is unique per task/page combination for user addresses and * fixed for the kernel addresses. Thus, the kernel space can be simply - * shared [indeed at low overhead] amoung all tasks. + * shared [indeed at low overhead] among all tasks. * * The basic virtual address space is thus: * diff -u --recursive --new-file v1.3.86/linux/include/asm-ppc/processor.h linux/include/asm-ppc/processor.h --- v1.3.86/linux/include/asm-ppc/processor.h Sat Nov 25 19:49:06 1995 +++ linux/include/asm-ppc/processor.h Fri Apr 12 09:49:45 1996 @@ -13,7 +13,7 @@ #define MSR_TGPR (1<<17) /* TLB Update registers in use */ #define MSR_ILE (1<<16) /* Interrupt Little-Endian enable */ #define MSR_EE (1<<15) /* External Interrupt enable */ -#define MSR_PR (1<<14) /* Supervisor/User privelege */ +#define MSR_PR (1<<14) /* Supervisor/User privilege */ #define MSR_FP (1<<13) /* Floating Point enable */ #define MSR_ME (1<<12) /* Machine Check enable */ #define MSR_FE0 (1<<11) /* Floating Exception mode 0 */ diff -u --recursive --new-file v1.3.86/linux/include/asm-ppc/string.h linux/include/asm-ppc/string.h --- v1.3.86/linux/include/asm-ppc/string.h Sat Nov 25 19:49:07 1995 +++ linux/include/asm-ppc/string.h Fri Apr 12 09:49:45 1996 @@ -20,7 +20,7 @@ return s; } #define __HAVE_ARCH_STRSTR -/* Return the first ocurrence of NEEDLE in HAYSTACK. */ +/* Return the first occurrence of NEEDLE in HAYSTACK. */ extern inline char * strstr(const char *haystack, const char *needle) { diff -u --recursive --new-file v1.3.86/linux/include/asm-sparc/asi.h linux/include/asm-sparc/asi.h --- v1.3.86/linux/include/asm-sparc/asi.h Mon Mar 4 08:49:59 1996 +++ linux/include/asm-sparc/asi.h Fri Apr 12 09:49:45 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 */ /* Sparc V9 TI UltraSparc ASI's (V8 ploos ploos) */ diff -u --recursive --new-file v1.3.86/linux/include/asm-sparc/auxio.h linux/include/asm-sparc/auxio.h --- v1.3.86/linux/include/asm-sparc/auxio.h Mon Mar 4 08:49:59 1996 +++ linux/include/asm-sparc/auxio.h Fri Apr 12 09:49:45 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.86/linux/include/asm-sparc/bsderrno.h linux/include/asm-sparc/bsderrno.h --- v1.3.86/linux/include/asm-sparc/bsderrno.h Sat Nov 25 04:31:17 1995 +++ linux/include/asm-sparc/bsderrno.h Fri Apr 12 09:49:45 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.86/linux/include/asm-sparc/cache.h linux/include/asm-sparc/cache.h --- v1.3.86/linux/include/asm-sparc/cache.h Sat Nov 25 04:31:23 1995 +++ linux/include/asm-sparc/cache.h Fri Apr 12 09:49:45 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.86/linux/include/asm-sparc/cypress.h linux/include/asm-sparc/cypress.h --- v1.3.86/linux/include/asm-sparc/cypress.h Mon Mar 4 08:50:00 1996 +++ linux/include/asm-sparc/cypress.h Fri Apr 12 09:49:45 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.86/linux/include/asm-sparc/dma.h linux/include/asm-sparc/dma.h --- v1.3.86/linux/include/asm-sparc/dma.h Mon Mar 4 08:50:00 1996 +++ linux/include/asm-sparc/dma.h Fri Apr 12 09:49:45 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_BCNT_ENAB 0x00002000 /* If on, use the byte counter */ #define DMA_TERM_CNTR 0x00004000 /* Terminal counter */ #define DMA_CSR_DISAB 0x00010000 /* No FIFO drains during csr */ diff -u --recursive --new-file v1.3.86/linux/include/asm-sparc/ecc.h linux/include/asm-sparc/ecc.h --- v1.3.86/linux/include/asm-sparc/ecc.h Sat Nov 25 04:31:38 1995 +++ linux/include/asm-sparc/ecc.h Fri Apr 12 09:49:45 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.86/linux/include/asm-sparc/fbio.h linux/include/asm-sparc/fbio.h --- v1.3.86/linux/include/asm-sparc/fbio.h Mon Mar 4 08:50:00 1996 +++ linux/include/asm-sparc/fbio.h Fri Apr 12 09:49:45 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.86/linux/include/asm-sparc/floppy.h linux/include/asm-sparc/floppy.h --- v1.3.86/linux/include/asm-sparc/floppy.h Mon Apr 8 19:01:45 1996 +++ linux/include/asm-sparc/floppy.h Fri Apr 12 09:49:45 1996 @@ -94,7 +94,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. */ @@ -345,7 +345,7 @@ fdc_status = &sun_fdc->status_82077; /* This controller detection technique is from the netbsd - * Sun floppy driver, origionally Chris Torek of BSDI came + * Sun floppy driver, originally Chris Torek of BSDI came * up with this. It seems to work pretty well. */ if(sun_fdc->dor_82077 == 0x80) { @@ -359,7 +359,7 @@ } /* P3: The only reliable way which I found for ejection - * of boot floppy. AUXIO_FLPY_EJCT is not enougth alone. + * of boot floppy. AUXIO_FLPY_EJCT is not enough alone. */ set_auxio(AUXIO_FLPY_EJCT, 0); /* Bring EJECT line to normal. */ udelay(1000); diff -u --recursive --new-file v1.3.86/linux/include/asm-sparc/head.h linux/include/asm-sparc/head.h --- v1.3.86/linux/include/asm-sparc/head.h Mon Mar 4 08:50:00 1996 +++ linux/include/asm-sparc/head.h Fri Apr 12 09:49:45 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 */ @@ -80,7 +80,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.86/linux/include/asm-sparc/mbus.h linux/include/asm-sparc/mbus.h --- v1.3.86/linux/include/asm-sparc/mbus.h Sat Nov 25 04:32:01 1995 +++ linux/include/asm-sparc/mbus.h Fri Apr 12 09:49:45 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.86/linux/include/asm-sparc/memreg.h linux/include/asm-sparc/memreg.h --- v1.3.86/linux/include/asm-sparc/memreg.h Mon Mar 4 08:50:01 1996 +++ linux/include/asm-sparc/memreg.h Fri Apr 12 09:49:45 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.86/linux/include/asm-sparc/mman.h linux/include/asm-sparc/mman.h --- v1.3.86/linux/include/asm-sparc/mman.h Mon Mar 4 08:50:01 1996 +++ linux/include/asm-sparc/mman.h Fri Apr 12 09:49:45 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.86/linux/include/asm-sparc/mostek.h linux/include/asm-sparc/mostek.h --- v1.3.86/linux/include/asm-sparc/mostek.h Sat Nov 25 04:32:06 1995 +++ linux/include/asm-sparc/mostek.h Fri Apr 12 09:49:45 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.86/linux/include/asm-sparc/mpmbox.h linux/include/asm-sparc/mpmbox.h --- v1.3.86/linux/include/asm-sparc/mpmbox.h Sat Nov 25 04:32:10 1995 +++ linux/include/asm-sparc/mpmbox.h Fri Apr 12 09:49:45 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.86/linux/include/asm-sparc/mxcc.h linux/include/asm-sparc/mxcc.h --- v1.3.86/linux/include/asm-sparc/mxcc.h Sat Nov 25 04:32:12 1995 +++ linux/include/asm-sparc/mxcc.h Fri Apr 12 09:49:45 1996 @@ -48,7 +48,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.86/linux/include/asm-sparc/openprom.h linux/include/asm-sparc/openprom.h --- v1.3.86/linux/include/asm-sparc/openprom.h Sat Nov 25 04:32:14 1995 +++ linux/include/asm-sparc/openprom.h Fri Apr 12 09:49:45 1996 @@ -8,7 +8,7 @@ * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) */ -/* Imperical constants... */ +/* Empirical constants... */ #define KADB_DEBUGGER_BEGVM 0xffc00000 /* Where kern debugger is in virt-mem */ #define LINUX_OPPROM_BEGVM 0xffd00000 #define LINUX_OPPROM_ENDVM 0xfff00000 diff -u --recursive --new-file v1.3.86/linux/include/asm-sparc/oplib.h linux/include/asm-sparc/oplib.h --- v1.3.86/linux/include/asm-sparc/oplib.h Mon Mar 4 08:50:01 1996 +++ linux/include/asm-sparc/oplib.h Fri Apr 12 09:49:45 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 */ @@ -83,7 +83,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.86/linux/include/asm-sparc/pconf.h linux/include/asm-sparc/pconf.h --- v1.3.86/linux/include/asm-sparc/pconf.h Sat Nov 25 04:32:21 1995 +++ linux/include/asm-sparc/pconf.h Fri Apr 12 09:49:45 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.86/linux/include/asm-sparc/pgtsrmmu.h linux/include/asm-sparc/pgtsrmmu.h --- v1.3.86/linux/include/asm-sparc/pgtsrmmu.h Mon Mar 4 08:50:02 1996 +++ linux/include/asm-sparc/pgtsrmmu.h Fri Apr 12 09:49:45 1996 @@ -160,7 +160,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.86/linux/include/asm-sparc/smp.h linux/include/asm-sparc/smp.h --- v1.3.86/linux/include/asm-sparc/smp.h Mon Mar 4 08:50:03 1996 +++ linux/include/asm-sparc/smp.h Fri Apr 12 09:49:45 1996 @@ -72,7 +72,7 @@ return cpuid; } -/* 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.86/linux/include/asm-sparc/solerrno.h linux/include/asm-sparc/solerrno.h --- v1.3.86/linux/include/asm-sparc/solerrno.h Sat Nov 25 04:32:52 1995 +++ linux/include/asm-sparc/solerrno.h Fri Apr 12 09:49:45 1996 @@ -1,5 +1,5 @@ /* $Id: solerrno.h,v 1.3 1995/11/25 02:32:51 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.86/linux/include/asm-sparc/traps.h linux/include/asm-sparc/traps.h --- v1.3.86/linux/include/asm-sparc/traps.h Sat Nov 25 04:33:06 1995 +++ linux/include/asm-sparc/traps.h Fri Apr 12 09:49:45 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.86/linux/include/asm-sparc/unistd.h linux/include/asm-sparc/unistd.h --- v1.3.86/linux/include/asm-sparc/unistd.h Mon Mar 4 08:50:04 1996 +++ linux/include/asm-sparc/unistd.h Fri Apr 12 09:49:45 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.86/linux/include/asm-sparc/vac-ops.h linux/include/asm-sparc/vac-ops.h --- v1.3.86/linux/include/asm-sparc/vac-ops.h Mon Mar 4 08:50:04 1996 +++ linux/include/asm-sparc/vac-ops.h Fri Apr 12 09:49:45 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.86/linux/include/asm-sparc/vaddrs.h linux/include/asm-sparc/vaddrs.h --- v1.3.86/linux/include/asm-sparc/vaddrs.h Mon Mar 4 08:50:04 1996 +++ linux/include/asm-sparc/vaddrs.h Fri Apr 12 09:49:45 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.86/linux/include/linux/cdk.h linux/include/linux/cdk.h --- v1.3.86/linux/include/linux/cdk.h Mon Mar 11 11:20:33 1996 +++ linux/include/linux/cdk.h Fri Apr 12 09:49:46 1996 @@ -36,8 +36,8 @@ */ /* - * Define the set of importrant shared memory addresses. These are - * required to intialize the board and get things started. All of these + * Define the set of important shared memory addresses. These are + * required to initialize the board and get things started. All of these * addresses are relative to the start of the shared memory. */ #define CDK_SIGADDR 0x200 @@ -204,7 +204,7 @@ /* * Define the port setting structure, and all those defines that go along - * with it. Basically this structure defines the charcateristics of this + * with it. Basically this structure defines the characteristics of this * port: baud rate, chars, parity, input/output char cooking etc. */ typedef struct asyport { @@ -374,7 +374,7 @@ /* * Define the stats structure kept for each port. This is a useful set * of data collected for each port on the slave. The A_GETSTATS command - * is used to retrive this data from the slave. + * is used to retrieve this data from the slave. */ typedef struct asystats { unsigned long opens; @@ -430,7 +430,7 @@ * Each device on the slave passes data to and from the host via a ring * queue in shared memory. Define a ring queue structure to hold the * vital information about each ring queue. Two ring queues will be - * allocated for each port, one for reveice data and one for transmit + * allocated for each port, one for receive data and one for transmit * data. */ typedef struct cdkasyrq { @@ -443,7 +443,7 @@ /* * Each asynchronous port is defined in shared memory by the following * structure. It contains a control block to command a device, and also - * the neccessary data channel information as well. + * the necessary data channel information as well. */ typedef struct cdkasy { cdkctrl_t ctrl; @@ -461,7 +461,7 @@ /* * Define the set of ioctls used by the driver to do special things - * to the board. These include interrupting it, and initializeing + * to the board. These include interrupting it, and initializing * the driver after board startup and shutdown. */ #include diff -u --recursive --new-file v1.3.86/linux/include/linux/cdrom.h linux/include/linux/cdrom.h --- v1.3.86/linux/include/linux/cdrom.h Tue Apr 2 13:32:22 1996 +++ linux/include/linux/cdrom.h Fri Apr 12 09:49:46 1996 @@ -179,7 +179,7 @@ }; /* - * extensions for transfering audio frames + * extensions for transferring audio frames * currently used by sbpcd.c, cdu31a.c, ide-cd.c */ struct cdrom_read_audio diff -u --recursive --new-file v1.3.86/linux/include/linux/cm206.h linux/include/linux/cm206.h --- v1.3.86/linux/include/linux/cm206.h Wed Jul 19 10:15:42 1995 +++ linux/include/linux/cm206.h Fri Apr 12 09:49:46 1996 @@ -52,7 +52,7 @@ dc_mask_transmit_ready) /* now some constants related to the cm206 */ -/* another drive status byte, echoed by the cm206 on most commmands */ +/* another drive status byte, echoed by the cm206 on most commands */ #define dsb_error_condition 0x1 #define dsb_play_in_progress 0x4 diff -u --recursive --new-file v1.3.86/linux/include/linux/comstats.h linux/include/linux/comstats.h --- v1.3.86/linux/include/linux/comstats.h Mon Mar 11 11:20:33 1996 +++ linux/include/linux/comstats.h Fri Apr 12 09:49:46 1996 @@ -68,7 +68,7 @@ /* - * Board stats structure. Returns usefull info about the board. + * Board stats structure. Returns useful info about the board. */ #define COM_MAXPANELS 8 diff -u --recursive --new-file v1.3.86/linux/include/linux/elfcore.h linux/include/linux/elfcore.h --- v1.3.86/linux/include/linux/elfcore.h Mon Mar 25 10:26:21 1996 +++ linux/include/linux/elfcore.h Fri Apr 12 09:49:46 1996 @@ -24,7 +24,7 @@ #endif /* - * Definitons to generate Intel SVR4-like core files. + * Definitions to generate Intel SVR4-like core files. * These mostly have the same names as the SVR4 types with "elf_" * tacked on the front to prevent clashes with linux definitions, * and the typedef forms have been avoided. This is mostly like diff -u --recursive --new-file v1.3.86/linux/include/linux/fd.h linux/include/linux/fd.h --- v1.3.86/linux/include/linux/fd.h Mon Apr 8 19:01:46 1996 +++ linux/include/linux/fd.h Fri Apr 12 09:49:46 1996 @@ -113,7 +113,7 @@ /* - * Drive parameters (user modifyable) + * Drive parameters (user modifiable) */ struct floppy_drive_params { char cmos; /* cmos type */ @@ -185,7 +185,7 @@ /* - * Current drive state (not directly modifyable by user, readonly) + * Current drive state (not directly modifiable by user, readonly) */ struct floppy_drive_struct { signed char flags; @@ -340,7 +340,7 @@ void *data; char *kernel_data; /* location of data buffer in the kernel */ struct floppy_raw_cmd *next; /* used for chaining of raw cmd's - * withing the kernel */ + * within the kernel */ long length; /* in: length of dma transfer. out: remaining bytes */ long phys_length; /* physical length, if different from dma length */ int buffer_length; /* length of allocated buffer */ diff -u --recursive --new-file v1.3.86/linux/include/linux/fs.h linux/include/linux/fs.h --- v1.3.86/linux/include/linux/fs.h Wed Apr 10 17:02:25 1996 +++ linux/include/linux/fs.h Fri Apr 12 12:40:37 1996 @@ -320,7 +320,7 @@ loff_t f_pos; unsigned short f_flags; unsigned short f_count; - loff_t f_reada; + unsigned long f_reada, f_ramax, f_rapos, f_ralen; struct file *f_next, *f_prev; int f_owner; /* pid or -pgrp where SIGIO should be sent */ struct inode * f_inode; diff -u --recursive --new-file v1.3.86/linux/include/linux/gscd.h linux/include/linux/gscd.h --- v1.3.86/linux/include/linux/gscd.h Sat Jul 1 19:06:00 1995 +++ linux/include/linux/gscd.h Fri Apr 12 09:49:46 1996 @@ -9,7 +9,7 @@ */ -/* The Interface Card default address is 0x340. This will work fo most +/* The Interface Card default address is 0x340. This will work for most applications. Address selection is accomplished by jumpers PN801-1 to PN801-4 on the GoldStar Interface Card. Appropriate settings are: 0x300, 0x310, 0x320, 0x330, 0x340, 0x350, 0x360 diff -u --recursive --new-file v1.3.86/linux/include/linux/hdreg.h linux/include/linux/hdreg.h --- v1.3.86/linux/include/linux/hdreg.h Mon Mar 25 10:03:25 1996 +++ linux/include/linux/hdreg.h Fri Apr 12 12:40:37 1996 @@ -51,8 +51,8 @@ #define WIN_SETIDLE1 0xE3 #define WIN_SETIDLE2 0x97 -#define WIN_DOORLOCK 0xde /* lock door on removeable drives */ -#define WIN_DOORUNLOCK 0xdf /* unlock door on removeable drives */ +#define WIN_DOORLOCK 0xde /* lock door on removable drives */ +#define WIN_DOORUNLOCK 0xdf /* unlock door on removable drives */ #define WIN_MULTREAD 0xC4 /* read sectors using multiple mode */ #define WIN_MULTWRITE 0xC5 /* write sectors using multiple mode */ diff -u --recursive --new-file v1.3.86/linux/include/linux/if_eql.h linux/include/linux/if_eql.h --- v1.3.86/linux/include/linux/if_eql.h Thu Oct 5 08:31:40 1995 +++ linux/include/linux/if_eql.h Fri Apr 12 09:49:46 1996 @@ -2,7 +2,7 @@ * Equalizer Load-balancer for serial network interfaces. * * (c) Copyright 1995 Simon "Guru Aleph-Null" Janes - * NCM: Network and Communications Mangement, Inc. + * NCM: Network and Communications Management, Inc. * * * This software may be used and distributed according to the terms diff -u --recursive --new-file v1.3.86/linux/include/linux/if_ether.h linux/include/linux/if_ether.h --- v1.3.86/linux/include/linux/if_ether.h Sun Mar 31 00:13:18 1996 +++ linux/include/linux/if_ether.h Fri Apr 12 09:49:46 1996 @@ -69,7 +69,7 @@ #define ETH_P_DDCMP 0x0006 /* DEC DDCMP: Internal only */ #define ETH_P_WAN_PPP 0x0007 /* Dummy type for WAN PPP frames*/ #define ETH_P_PPP_MP 0x0008 /* Dummy type for PPP MP frames */ -#define ETH_P_LOCALTALK 0x0009 /* Localtalk pseudeo type */ +#define ETH_P_LOCALTALK 0x0009 /* Localtalk pseudo type */ #define ETH_P_PPPTALK 0x0010 /* Dummy type for Atalk over PPP*/ #define ETH_P_TR_802_2 0x0011 /* 802.2 frames */ diff -u --recursive --new-file v1.3.86/linux/include/linux/if_frad.h linux/include/linux/if_frad.h --- v1.3.86/linux/include/linux/if_frad.h Wed Apr 10 17:02:25 1996 +++ linux/include/linux/if_frad.h Fri Apr 12 09:49:46 1996 @@ -1,7 +1,7 @@ /* * DLCI/FRAD Definitions for Frame Relay Access Devices. DLCI devices are * created for each DLCI associated with a FRAD. The FRAD driver - * is not truely a network device, but the lower level device + * is not truly a network device, but the lower level device * handler. This allows other FRAD manufacturers to use the DLCI * code, including it's RFC1490 encapsulation along side the current * implementation for the Sangoma cards. @@ -19,7 +19,7 @@ #ifndef _FRAD_H_ #define _FRAD_H_ -/* Stuctures and constants associated with the DLCI device driver */ +/* Structures and constants associated with the DLCI device driver */ #define DLCI_DEVADD (SIOCDEVPRIVATE) #define DLCI_DEVDEL (SIOCDEVPRIVATE + 1) diff -u --recursive --new-file v1.3.86/linux/include/linux/if_ppp.h linux/include/linux/if_ppp.h --- v1.3.86/linux/include/linux/if_ppp.h Tue Mar 5 10:01:27 1996 +++ linux/include/linux/if_ppp.h Fri Apr 12 09:49:46 1996 @@ -92,7 +92,7 @@ */ struct npioctl { - int protocol; /* PPP procotol, e.g. PPP_IP */ + int protocol; /* PPP protocol, e.g. PPP_IP */ enum NPmode mode; }; diff -u --recursive --new-file v1.3.86/linux/include/linux/if_wic.h linux/include/linux/if_wic.h --- v1.3.86/linux/include/linux/if_wic.h Wed Apr 10 17:02:25 1996 +++ linux/include/linux/if_wic.h Fri Apr 12 09:49:46 1996 @@ -43,11 +43,11 @@ #define NET_MODE_MCAST 0x04 /* receive mcasts */ #define NET_MODE_PROM 0x08 /* promiscuous */ #define NET_MODE_HC 0x10 /* is a hop coordinator */ -#define NET_MODE_HC_VALID 0x20 /* hc addres is valid */ +#define NET_MODE_HC_VALID 0x20 /* hc address is valid */ #define NET_MODE_HCAP 0x40 /* hc is also ap */ #define NET_MODE_HC_KNOWN 0x80 /* hc is known */ - unsigned char rts_lo; /* rts threshhold */ - unsigned char rts_hi; /* rts threshhold */ + unsigned char rts_lo; /* rts threshold */ + unsigned char rts_hi; /* rts threshold */ unsigned char retry; /* retry limit */ unsigned char hc_ula[6]; /* ula of hc */ unsigned char key[4]; /* network key */ @@ -86,12 +86,12 @@ unsigned char cca_mode; /* cca flags */ #define CCA_PKT_DET_BSY 0x01 /* busy if packet is detected */ #define CCA_VIRT_CARR 0x02 /* use virtual carrier */ -#define CCA_RSSI_BSY 0x04 /* busy if rssi > thresshold */ +#define CCA_RSSI_BSY 0x04 /* busy if rssi > threshold */ #define CCA_DATA_BSY 0x08 /* busy if valid data > XXX usec */ unsigned char dwell_hi; /* dwell time */ unsigned char dwell_lo; /* dwell time */ unsigned char hc_timeout; /* HC timeout */ - unsigned char rssi; /* rssi threshhold */ + unsigned char rssi; /* rssi threshold */ unsigned char hc_rssi; /* rssi of last hc frame */ unsigned char hc_rssi_chan; /* channel of hc rssi value */ }; diff -u --recursive --new-file v1.3.86/linux/include/linux/isdn.h linux/include/linux/isdn.h --- v1.3.86/linux/include/linux/isdn.h Mon Feb 26 11:58:16 1996 +++ linux/include/linux/isdn.h Fri Apr 12 09:49:46 1996 @@ -102,7 +102,7 @@ #define ISDN_USAGE_EXCLUSIVE 64 /* This bit is set, if channel is exclusive */ #define ISDN_USAGE_OUTGOING 128 /* This bit is set, if channel is outgoing */ -#define ISDN_MODEM_ANZREG 20 /* Number of Medem-Registers */ +#define ISDN_MODEM_ANZREG 20 /* Number of Modem-Registers */ #define ISDN_MSNLEN 20 typedef struct { @@ -240,7 +240,7 @@ #define ISDN_NET_CALLBACK 0x04 /* callback incoming phonenumber */ #define ISDN_NET_CLONE 0x08 /* clone a tmp interface when called */ #define ISDN_NET_TMP 0x10 /* tmp interface until getting an IP */ -#define ISDN_NET_DYNAMIC 0x20 /* this link is dynamically allocted */ +#define ISDN_NET_DYNAMIC 0x20 /* this link is dynamically allocated */ #define ISDN_NET_MAGIC 0x49344C02 /* for paranoia-checking */ /* Phone-list-element */ @@ -263,7 +263,7 @@ int flags; /* Connection-flags */ int dialstate; /* State for dialing */ int dialretry; /* Counter for Dialout-retries */ - int dialmax; /* Max. Nuber of Dial-retries */ + int dialmax; /* Max. Number of Dial-retries */ char msn[ISDN_MSNLEN]; /* MSNs/EAZs for this interface */ int dtimer; /* Timeout-counter for dialing */ u_char p_encap; /* Packet encapsulation */ @@ -405,7 +405,7 @@ char mdmcmd[255]; /* Modem-Commandbuffer */ } atemu; -/* Descripion of one ISDN-tty */ +/* Description of one ISDN-tty */ typedef struct { int msr[ISDN_MAX_CHANNELS]; /* Modem-statusregister */ int mlr[ISDN_MAX_CHANNELS]; /* Line-statusregister */ diff -u --recursive --new-file v1.3.86/linux/include/linux/mcdx.h linux/include/linux/mcdx.h --- v1.3.86/linux/include/linux/mcdx.h Fri Mar 22 09:42:18 1996 +++ linux/include/linux/mcdx.h Fri Apr 12 09:49:46 1996 @@ -26,7 +26,7 @@ * Jon Tombs, Bjorn Ekwall (module support) * Daniel v. Mosnenck (he sent me the Technical and Programming Reference) * Gerd Knorr (he lent me his PhotoCD) - * Nils Faerber and Roger E. Wolff (extensivly tested the LU portion) + * Nils Faerber and Roger E. Wolff (extensively tested the LU portion) * Andreas Kies (testing the mysterious hang up's) * ... somebody forgotten? * diff -u --recursive --new-file v1.3.86/linux/include/linux/mm.h linux/include/linux/mm.h --- v1.3.86/linux/include/linux/mm.h Mon Mar 25 10:22:43 1996 +++ linux/include/linux/mm.h Fri Apr 12 12:40:37 1996 @@ -9,6 +9,7 @@ extern unsigned long high_memory; #include +#include #ifdef __KERNEL__ @@ -115,17 +116,8 @@ * page-cache. -- sct */ typedef struct page { - unsigned int count; - unsigned dirty:16, - age:8, - uptodate:1, - error:1, - referenced:1, - locked:1, - free_after:1, - dma:1, - unused:1, - reserved:1; + atomic_t count; + unsigned flags; /* atomic flags, some possibly updated asynchronously */ struct wait_queue *wait; struct page *next; @@ -137,8 +129,29 @@ struct page *prev; struct page *prev_hash; struct buffer_head * buffers; + unsigned dirty:16, + age:8; } mem_map_t; +/* Page flag bit values */ +#define PG_locked 0 +#define PG_error 1 +#define PG_referenced 2 +#define PG_uptodate 3 +#define PG_freeafter 4 +#define PG_DMA 5 +#define PG_reserved 31 + +/* Make it prettier to test the above... */ +#define PageLocked(page) (test_bit(PG_locked, &(page)->flags)) +#define PageError(page) (test_bit(PG_error, &(page)->flags)) +#define PageReferenced(page) (test_bit(PG_referenced, &(page)->flags)) +#define PageDirty(page) (test_bit(PG_dirty, &(page)->flags)) +#define PageUptodate(page) (test_bit(PG_uptodate, &(page)->flags)) +#define PageFreeafter(page) (test_bit(PG_freeafter, &(page)->flags)) +#define PageDMA(page) (test_bit(PG_DMA, &(page)->flags)) +#define PageReserved(page) (test_bit(PG_reserved, &(page)->flags)) + extern mem_map_t * mem_map; /* @@ -251,21 +264,22 @@ static inline struct vm_area_struct * find_vma (struct task_struct * task, unsigned long addr) { struct vm_area_struct * result = NULL; - struct vm_area_struct * tree; - if (!task->mm) - return NULL; - for (tree = task->mm->mmap_avl ; ; ) { - if (tree == avl_empty) - return result; - if (tree->vm_end > addr) { - if (tree->vm_start <= addr) - return tree; - result = tree; - tree = tree->vm_avl_left; - } else - tree = tree->vm_avl_right; + if (task->mm) { + struct vm_area_struct * tree = task->mm->mmap_avl; + for (;;) { + if (tree == avl_empty) + break; + if (tree->vm_end > addr) { + result = tree; + if (tree->vm_start <= addr) + break; + tree = tree->vm_avl_left; + } else + tree = tree->vm_avl_right; + } } + return result; } /* Look up the first VMA which intersects the interval start_addr..end_addr-1, diff -u --recursive --new-file v1.3.86/linux/include/linux/mman.h linux/include/linux/mman.h --- v1.3.86/linux/include/linux/mman.h Mon Dec 11 10:15:39 1995 +++ linux/include/linux/mman.h Fri Apr 12 10:04:15 1996 @@ -3,4 +3,6 @@ #include +#define MREMAP_MAYMOVE 1 + #endif /* _LINUX_MMAN_H */ diff -u --recursive --new-file v1.3.86/linux/include/linux/netdevice.h linux/include/linux/netdevice.h --- v1.3.86/linux/include/linux/netdevice.h Mon Mar 25 10:24:33 1996 +++ linux/include/linux/netdevice.h Fri Apr 12 12:42:43 1996 @@ -269,7 +269,7 @@ } /* - * This almost never occurs, isnt in performance critical paths + * This almost never occurs, isn't in performance critical paths * and we can thus be relaxed about it */ diff -u --recursive --new-file v1.3.86/linux/include/linux/nfs_fs.h linux/include/linux/nfs_fs.h --- v1.3.86/linux/include/linux/nfs_fs.h Tue Apr 2 13:32:22 1996 +++ linux/include/linux/nfs_fs.h Thu Apr 11 09:20:34 1996 @@ -43,6 +43,7 @@ #define NFS_SERVER(inode) (&(inode)->i_sb->u.nfs_sb.s_server) #define NFS_FH(inode) (&(inode)->u.nfs_i.fhandle) +#define NFS_RENAMED_DIR(inode) ((inode)->u.nfs_i.silly_rename_dir) #define NFS_READTIME(inode) ((inode)->u.nfs_i.read_cache_jiffies) #define NFS_OLDMTIME(inode) ((inode)->u.nfs_i.read_cache_mtime) #define NFS_CACHEINV(inode) \ @@ -123,6 +124,7 @@ /* linux/fs/nfs/dir.c */ extern struct inode_operations nfs_dir_inode_operations; +extern void nfs_sillyrename_cleanup(struct inode *); extern void nfs_kfree_cache(void); /* linux/fs/nfs/symlink.c */ diff -u --recursive --new-file v1.3.86/linux/include/linux/nfs_fs_i.h linux/include/linux/nfs_fs_i.h --- v1.3.86/linux/include/linux/nfs_fs_i.h Tue Mar 12 16:08:22 1996 +++ linux/include/linux/nfs_fs_i.h Thu Apr 11 09:20:34 1996 @@ -22,6 +22,12 @@ */ unsigned long read_cache_jiffies; unsigned long read_cache_mtime; + /* + * This is to support the clandestine rename on unlink. + * Instead of the directory inode, we might as well keep its + * NFS FH, but that requires a kmalloc. + */ + struct inode *silly_rename_dir; }; #endif diff -u --recursive --new-file v1.3.86/linux/include/linux/pagemap.h linux/include/linux/pagemap.h --- v1.3.86/linux/include/linux/pagemap.h Mon Mar 25 10:22:43 1996 +++ linux/include/linux/pagemap.h Fri Apr 12 12:40:37 1996 @@ -47,7 +47,6 @@ static inline struct page * find_page(struct inode * inode, unsigned long offset) { struct page *page; - unsigned long flags; for (page = page_hash(inode, offset); page ; page = page->next_hash) { if (page->inode != inode) @@ -55,11 +54,8 @@ if (page->offset != offset) continue; /* Found the page. */ - save_flags(flags); - cli(); - page->referenced = 1; - page->count++; - restore_flags(flags); + atomic_inc(&page->count); + set_bit(PG_referenced, &page->flags); break; } return page; @@ -84,7 +80,7 @@ struct page **p = &page_hash(inode,page->offset); page_cache_size++; - page->referenced = 1; + set_bit(PG_referenced, &page->flags); page->age = PAGE_AGE_VALUE; page->prev_hash = NULL; if ((page->next_hash = *p) != NULL) @@ -123,7 +119,7 @@ extern void __wait_on_page(struct page *); static inline void wait_on_page(struct page * page) { - if (page->locked) + if (PageLocked(page)) __wait_on_page(page); } diff -u --recursive --new-file v1.3.86/linux/include/linux/pci.h linux/include/linux/pci.h --- v1.3.86/linux/include/linux/pci.h Mon Apr 8 19:01:46 1996 +++ linux/include/linux/pci.h Fri Apr 12 09:49:46 1996 @@ -23,7 +23,7 @@ /* PROCEDURE TO REPORT NEW PCI DEVICES * We are trying to collect informations on new PCI devices, using - * the standart PCI identification procedure. If some warning is + * the standard PCI identification procedure. If some warning is * displayed at boot time, please report * - /proc/pci * - your exact hardware description. Try to find out diff -u --recursive --new-file v1.3.86/linux/include/linux/proc_fs.h linux/include/linux/proc_fs.h --- v1.3.86/linux/include/linux/proc_fs.h Mon Apr 8 19:01:46 1996 +++ linux/include/linux/proc_fs.h Fri Apr 12 12:40:46 1996 @@ -131,7 +131,7 @@ PROC_SCSI_PPA, PROC_SCSI_SCSI_DEBUG, PROC_SCSI_NOT_PRESENT, - PROC_SCSI_FILE, /* I'm asuming here that we */ + PROC_SCSI_FILE, /* I'm assuming here that we */ PROC_SCSI_LAST = (PROC_SCSI_FILE + 16) /* won't ever see more than */ }; /* 16 HBAs in one machine */ diff -u --recursive --new-file v1.3.86/linux/include/linux/quota.h linux/include/linux/quota.h --- v1.3.86/linux/include/linux/quota.h Wed Feb 7 08:04:32 1996 +++ linux/include/linux/quota.h Fri Apr 12 10:33:25 1996 @@ -70,8 +70,6 @@ #define USRQUOTA 0 /* element used for user quotas */ #define GRPQUOTA 1 /* element used for group quotas */ -#include - /* * Definitions for the default names of the quotas files. */ @@ -150,8 +148,10 @@ #ifdef __KERNEL__ +#include + /* - * Maximum lenght of a message generated in the quota system, + * Maximum length of a message generated in the quota system, * that needs to be kicked onto the tty. */ #define MAX_QUOTA_MESSAGE 75 diff -u --recursive --new-file v1.3.86/linux/include/linux/rpcsock.h linux/include/linux/rpcsock.h --- v1.3.86/linux/include/linux/rpcsock.h Tue Apr 2 13:32:22 1996 +++ linux/include/linux/rpcsock.h Fri Apr 12 09:49:46 1996 @@ -1,7 +1,7 @@ /* * rpcsock.h Declarations for the RPC call interface. * - * Coypright (C) 1995, 1996 Olaf Kirch + * Copyright (C) 1995, 1996 Olaf Kirch */ diff -u --recursive --new-file v1.3.86/linux/include/linux/scc.h linux/include/linux/scc.h --- v1.3.86/linux/include/linux/scc.h Wed Feb 21 08:33:22 1996 +++ linux/include/linux/scc.h Fri Apr 12 09:49:46 1996 @@ -163,7 +163,7 @@ long spints; /* Special receiver interrupts */ long txframes; /* Packets sent */ - long rxframes; /* Number of Frames Actally Received */ + long rxframes; /* Number of Frames Actually Received */ long rxerrs; /* CRC Errors */ long txerrs; /* KISS errors */ @@ -192,7 +192,7 @@ }; struct ioctl_command { - int command; /* one of the KISS-Commands devined above */ + int command; /* one of the KISS-Commands defined above */ unsigned param; /* KISS-Param */ }; diff -u --recursive --new-file v1.3.86/linux/include/linux/sdla.h linux/include/linux/sdla.h --- v1.3.86/linux/include/linux/sdla.h Wed Apr 10 17:02:26 1996 +++ linux/include/linux/sdla.h Fri Apr 12 09:49:47 1996 @@ -67,7 +67,7 @@ #define SDLA_WINDOW_SIZE 0x2000 #define SDLA_ADDR_MASK 0x1FFF -/* largest handlable block of data */ +/* largest handleable block of data */ #define SDLA_MAX_DATA 4080 #define SDLA_MAX_MTU 4072 /* MAX_DATA - sizeof(fradhdr) */ #define SDLA_MAX_DLCI 24 diff -u --recursive --new-file v1.3.86/linux/include/linux/sjcd.h linux/include/linux/sjcd.h --- v1.3.86/linux/include/linux/sjcd.h Tue Feb 13 10:30:25 1996 +++ linux/include/linux/sjcd.h Fri Apr 12 09:49:47 1996 @@ -113,8 +113,8 @@ #define S_READ_DATA( port, buf, nr ) insb( port, buf, nr ) /* - * We assume that there are no audio disks with TOC lenght more than this - * number (I personally have never seen disks with morethan 20 fragments). + * We assume that there are no audio disks with TOC length more than this + * number (I personally have never seen disks with more than 20 fragments). */ #define SJCD_MAX_TRACKS 100 diff -u --recursive --new-file v1.3.86/linux/include/linux/smbno.h linux/include/linux/smbno.h --- v1.3.86/linux/include/linux/smbno.h Sat Jul 1 19:00:19 1995 +++ linux/include/linux/smbno.h Fri Apr 12 09:49:47 1996 @@ -45,7 +45,7 @@ #define ERRnotconnected 233 /* No process on other end of named pipe */ #define ERRmoredata 234 /* More data to be returned */ #define ERROR_EAS_DIDNT_FIT 275 /* Extended attributes didn't fit */ -#define ERROR_EAS_NOT_SUPPORTED 282 /* Extended attributes not suppored */ +#define ERROR_EAS_NOT_SUPPORTED 282 /* Extended attributes not supported */ /* Error codes for the ERRSRV class */ diff -u --recursive --new-file v1.3.86/linux/include/linux/socket.h linux/include/linux/socket.h --- v1.3.86/linux/include/linux/socket.h Sun Mar 31 00:13:18 1996 +++ linux/include/linux/socket.h Fri Apr 12 09:49:47 1996 @@ -78,7 +78,7 @@ #define PF_MAX AF_MAX -/* Maximum queue length specificable by listen. */ +/* Maximum queue length specifiable by listen. */ #define SOMAXCONN 128 /* Flags we can use with send/ and recv. */ diff -u --recursive --new-file v1.3.86/linux/include/linux/soundcard.h linux/include/linux/soundcard.h --- v1.3.86/linux/include/linux/soundcard.h Sun Mar 24 22:49:45 1996 +++ linux/include/linux/soundcard.h Fri Apr 12 09:49:47 1996 @@ -140,7 +140,7 @@ * Sample loading mechanism for internal synthesizers (/dev/sequencer) * The following patch_info structure has been designed to support * Gravis UltraSound. It tries to be universal format for uploading - * sample based patches but is propably too limited. + * sample based patches but is probably too limited. */ struct patch_info { @@ -575,7 +575,7 @@ * Buffer status queries. */ typedef struct audio_buf_info { - int fragments; /* # of available fragments (partially usend ones not counted) */ + int fragments; /* # of available fragments (partially used ones not counted) */ int fragstotal; /* Total # of fragments allocated */ int fragsize; /* Size of a fragment in bytes */ @@ -722,7 +722,7 @@ /* * The AD1848 codec and compatibles have three line level inputs * (line, aux1 and aux2). Since each card manufacturer have assigned - * different meanings to these inputs, it's inpractical to assign + * different meanings to these inputs, it's impractical to assign * specific meanings (line, cd, synth etc.) to them. */ #define SOUND_MIXER_LINE1 14 /* Input source 1 (aux1) */ @@ -1077,7 +1077,7 @@ #define SEQ_PANNING(dev, voice, pos) SEQ_CONTROL(dev, voice, CTL_PAN, (pos+128) / 2) /* - * Timing and syncronization macros + * Timing and synchronization macros */ #define _TIMER_EVENT(ev, parm) {_SEQ_NEEDBUF(8);\ diff -u --recursive --new-file v1.3.86/linux/include/linux/sysctl.h linux/include/linux/sysctl.h --- v1.3.86/linux/include/linux/sysctl.h Tue Apr 2 13:32:22 1996 +++ linux/include/linux/sysctl.h Fri Apr 12 09:49:47 1996 @@ -62,7 +62,7 @@ /* CTL_VM names: */ #define VM_SWAPCTL 1 /* struct: Set vm swapping control */ -#define VM_KSWAPD 2 /* struct: control background pagout */ +#define VM_KSWAPD 2 /* struct: control background pageout */ #define VM_FREEPG 3 /* struct: Set free page thresholds */ #define VM_BDFLUSH 4 /* struct: Control buffer cache flushing */ #define VM_MAXID 5 diff -u --recursive --new-file v1.3.86/linux/include/linux/timex.h linux/include/linux/timex.h --- v1.3.86/linux/include/linux/timex.h Sun Nov 26 10:52:28 1995 +++ linux/include/linux/timex.h Fri Apr 12 09:49:47 1996 @@ -202,7 +202,7 @@ #define TIME_INS 1 /* insert leap second */ #define TIME_DEL 2 /* delete leap second */ #define TIME_OOP 3 /* leap second in progress */ -#define TIME_WAIT 4 /* leap second has occured */ +#define TIME_WAIT 4 /* leap second has occurred */ #define TIME_ERROR 5 /* clock not synchronized */ #define TIME_BAD TIME_ERROR /* bw compat */ diff -u --recursive --new-file v1.3.86/linux/include/linux/ultrasound.h linux/include/linux/ultrasound.h --- v1.3.86/linux/include/linux/ultrasound.h Sun Mar 24 22:49:45 1996 +++ linux/include/linux/ultrasound.h Fri Apr 12 09:49:47 1996 @@ -50,7 +50,7 @@ * _GUS_VOICEOFF - Stops voice (no parameters) * _GUS_VOICEFADE - Stops the voice smoothly. * _GUS_VOICEMODE - Alters the voice mode, don't start or stop voice (P1=voice mode) - * _GUS_VOICEBALA - Sets voice balence (P1, 0=left, 7=middle and 15=right, default 7) + * _GUS_VOICEBALA - Sets voice balance (P1, 0=left, 7=middle and 15=right, default 7) * _GUS_VOICEFREQ - Sets voice (sample) playback frequency (P1=Hz) * _GUS_VOICEVOL - Sets voice volume (P1=volume, 0xfff=max, 0xeff=half, 0x000=off) * _GUS_VOICEVOL2 - Sets voice volume (P1=volume, 0xfff=max, 0xeff=half, 0x000=off) diff -u --recursive --new-file v1.3.86/linux/include/linux/wrapper.h linux/include/linux/wrapper.h --- v1.3.86/linux/include/linux/wrapper.h Wed Jan 17 09:33:33 1996 +++ linux/include/linux/wrapper.h Fri Apr 12 10:33:25 1996 @@ -33,8 +33,8 @@ #define vma_get_end(v) v->vm_end #define vma_get_page_prot(v) v->vm_page_prot -#define mem_map_reserve(p) mem_map[p].reserved = 1 -#define mem_map_unreserve(p) mem_map[p].reserved = 0 +#define mem_map_reserve(p) set_bit(PG_reserved, &mem_map[p].flags) +#define mem_map_unreserve(p) clear_bit(PG_reserved, &mem_map[p].flags) #define mem_map_inc_count(p) mem_map[p].count++ #define mem_map_dec_count(p) mem_map[p].count-- #endif diff -u --recursive --new-file v1.3.86/linux/include/net/ax25call.h linux/include/net/ax25call.h --- v1.3.86/linux/include/net/ax25call.h Tue Jun 6 11:22:17 1995 +++ linux/include/net/ax25call.h Fri Apr 12 09:49:47 1996 @@ -1,2 +1,2 @@ -/* Seperate to keep compilation of protocols.c simpler */ +/* Separate to keep compilation of protocols.c simpler */ extern void ax25_proto_init(struct net_proto *pro); diff -u --recursive --new-file v1.3.86/linux/include/net/br.h linux/include/net/br.h --- v1.3.86/linux/include/net/br.h Wed Apr 10 17:02:26 1996 +++ linux/include/net/br.h Fri Apr 12 09:49:47 1996 @@ -32,7 +32,7 @@ /* * the following defines are the initial values used when the * bridge is booted. These may be overridden when this bridge is - * not the root bridge. These are the reccomended default values + * not the root bridge. These are the recommended default values * from the 802.1d specification. */ #define BRIDGE_MAX_AGE 20 diff -u --recursive --new-file v1.3.86/linux/include/net/netrom.h linux/include/net/netrom.h --- v1.3.86/linux/include/net/netrom.h Wed Sep 27 13:07:32 1995 +++ linux/include/net/netrom.h Fri Apr 12 09:49:47 1996 @@ -40,7 +40,7 @@ #define NR_DEFAULT_N2 3 /* Number of Retries */ #define NR_DEFAULT_T4 (180 * PR_SLOWHZ) /* Transport Busy Delay */ #define NR_DEFAULT_WINDOW 4 /* Default Window Size */ -#define NR_DEFAULT_OBS 6 /* Default Obscolesence Count */ +#define NR_DEFAULT_OBS 6 /* Default Obsolescence Count */ #define NR_DEFAULT_QUAL 10 /* Default Neighbour Quality */ #define NR_DEFAULT_TTL 16 /* Default Time To Live */ #define NR_MODULUS 256 diff -u --recursive --new-file v1.3.86/linux/include/net/nrcall.h linux/include/net/nrcall.h --- v1.3.86/linux/include/net/nrcall.h Tue Jun 6 11:22:17 1995 +++ linux/include/net/nrcall.h Fri Apr 12 09:49:47 1996 @@ -1,2 +1,2 @@ -/* Seperate to keep compilation of protocols.c simpler */ +/* Separate to keep compilation of protocols.c simpler */ extern void nr_proto_init(struct net_proto *pro); diff -u --recursive --new-file v1.3.86/linux/include/net/route.h linux/include/net/route.h --- v1.3.86/linux/include/net/route.h Mon Mar 25 10:26:32 1996 +++ linux/include/net/route.h Fri Apr 12 12:45:54 1996 @@ -55,7 +55,7 @@ * Prevents LRU trashing, entries considered equivalent, * if the difference between last use times is less then this number. */ -#define RT_CACHE_BUBBLE_THRESHOULD (HZ*5) +#define RT_CACHE_BUBBLE_THRESHOLD (HZ*5) #include diff -u --recursive --new-file v1.3.86/linux/include/net/sock.h linux/include/net/sock.h --- v1.3.86/linux/include/net/sock.h Tue Apr 2 13:32:22 1996 +++ linux/include/net/sock.h Fri Apr 12 15:01:02 1996 @@ -164,6 +164,7 @@ __u32 acked_seq; __u32 copied_seq; __u32 rcv_ack_seq; + unsigned short rcv_ack_cnt; /* count of same ack */ __u32 window_seq; __u32 fin_seq; __u32 urg_seq; @@ -288,7 +289,7 @@ struct tcphdr dummy_th; struct timer_list keepalive_timer; /* TCP keepalive hack */ struct timer_list retransmit_timer; /* TCP retransmit timer */ - struct timer_list ack_timer; /* TCP delayed ack timer */ + struct timer_list delack_timer; /* TCP delayed ack timer */ int ip_xmit_timeout; /* Why the timeout is running */ struct rtable *ip_route_cache; /* Cached output route */ unsigned char ip_hdrincl; /* Include headers ? */ diff -u --recursive --new-file v1.3.86/linux/include/net/tcp.h linux/include/net/tcp.h --- v1.3.86/linux/include/net/tcp.h Wed Apr 10 17:02:26 1996 +++ linux/include/net/tcp.h Fri Apr 12 15:04:10 1996 @@ -30,6 +30,7 @@ stacks do signed 16bit maths! */ #define MIN_WINDOW 2048 #define MAX_ACK_BACKLOG 2 +#define MAX_DUP_ACKS 2 #define MIN_WRITE_SPACE 2048 #define TCP_WINDOW_DIFF 2048 @@ -150,6 +151,7 @@ extern void tcp_send_synack(struct sock *, struct sock *, struct sk_buff *); extern void tcp_send_skb(struct sock *, struct sk_buff *); extern void tcp_send_ack(struct sock *sk); +extern void tcp_send_delayed_ack(struct sock *sk, int timeout); extern void tcp_send_reset(unsigned long saddr, unsigned long daddr, struct tcphdr *th, struct proto *prot, struct options *opt, struct device *dev, int tos, int ttl); @@ -162,6 +164,7 @@ /* tcp_timer.c */ #define tcp_reset_msl_timer(x,y,z) reset_timer(x,y,z) extern void tcp_reset_xmit_timer(struct sock *, int, unsigned long); +extern void tcp_delack_timer(unsigned long); extern void tcp_retransmit_timer(unsigned long); /* @@ -180,93 +183,78 @@ return tv.tv_usec+tv.tv_sec*1000000; } -/* - * This function returns the amount that we can raise the - * usable window based on the following constraints - * - * 1. The window can never be shrunk once it is offered (RFC 793) - * 2. We limit memory per socket - * 3. No reason to raise the window if the other side has - * lots of room to play with. - */ - -static __inline__ unsigned short tcp_raise_window(struct sock *sk) +static __inline__ int tcp_old_window(struct sock * sk) { - long free_space; - long window; - - - /* - * compute the actual window i.e. - * old_window - received_bytes_on_that_win. - */ - window = sk->window - (sk->acked_seq - sk->lastwin_seq); - - free_space = sock_rspace(sk); - if (free_space > 1024) - free_space &= ~0x3FF; /* make free space a multiple of 1024 */ - - if(sk->window_clamp) - free_space = min(sk->window_clamp, free_space); - - if (sk->mss == 0) - sk->mss = sk->mtu; - - if ( window < 0 ) { - window = 0; - printk(KERN_DEBUG "TRW: win < 0 w=%d 1=%u 2=%u\n", - sk->window, sk->acked_seq, sk->lastwin_seq); - } - - if ( (free_space - window) >= min(sk->mss, MAX_WINDOW/2) ) - return ((free_space - window) / sk->mss) * sk->mss; - - return 0; + return sk->window - (sk->acked_seq - sk->lastwin_seq); } -static __inline__ unsigned short tcp_select_window(struct sock *sk) +static __inline__ int tcp_new_window(struct sock * sk) { - long free_space = sock_rspace(sk); - long window; + int window = sock_rspace(sk); + + if (window > 1024) + window &= ~0x3FF; /* make free space a multiple of 1024 */ - if (free_space > 1024) - free_space &= ~0x3FF; /* make free space a multiple of 1024 */ + if (sk->window_clamp && sk->window_clamp < window) + window = sk->window_clamp; - if (sk->window_clamp) - free_space = min(sk->window_clamp, free_space); - /* - * compute the actual window i.e. - * old_window - received_bytes_on_that_win + * RFC 1122 says: + * + * "the suggested [SWS] avoidance algoritm for the receiver is to keep + * RECV.NEXT + RCV.WIN fixed until: + * RCV.BUFF - RCV.USER - RCV.WINDOW >= min(1/2 RCV.BUFF, MSS)" + * + * Experiments against BSD and Solaris machines show that following + * these rules results in the BSD and Solaris machines making very + * bad guesses about how much data they can have in flight. + * + * Instead we follow the BSD lead and offer a window that gives + * the size of the current free space, truncated to a multiple + * of 1024 bytes. If the window is smaller than + * min(sk->mss, MAX_WINDOW/2) + * then we adversize the window as having size 0, unless this + * would shrink the window we offered last time. + * This results in as much as double the throughput as the original + * implementation. */ if (sk->mss == 0) sk->mss = sk->mtu; - window = sk->window - (sk->acked_seq - sk->lastwin_seq); + /* BSD style SWS avoidance + * Note that RFC1122 only says we must do silly window avoidance, + * it does not require that we use the suggested algorithm. + */ - if ( window < 0 ) { + if (window < min(sk->mss, MAX_WINDOW/2)) window = 0; - printk(KERN_DEBUG "TSW: win < 0 w=%d 1=%u 2=%u\n", - sk->window, sk->acked_seq, sk->lastwin_seq); - } - /* - * RFC 1122: - * "the suggested [SWS] avoidance algoritm for the receiver is to keep - * RECV.NEXT + RCV.WIN fixed until: - * RCV.BUFF - RCV.USER - RCV.WINDOW >= min(1/2 RCV.BUFF, MSS)" - * - * i.e. don't raise the right edge of the window until you can't raise - * it MSS bytes - */ + return window; +} - if ( (free_space - window) >= min(sk->mss, MAX_WINDOW/2) ) - window += ((free_space - window) / sk->mss) * sk->mss; +/* + * Return true if we should raise the window when we + * have cleaned up the receive queue. We don't want to + * do this normally, only if it makes sense to avoid + * zero window probes.. + * + * We do this only if we can raise the window noticeably. + */ +static __inline__ int tcp_raise_window(struct sock * sk) +{ + return tcp_new_window(sk) >= 2*tcp_old_window(sk); +} - sk->window = window; - sk->lastwin_seq = sk->acked_seq; +static __inline__ unsigned short tcp_select_window(struct sock *sk) +{ + int window = tcp_new_window(sk); + /* Don't allow a shrinking window */ + if (window > tcp_old_window(sk)) { + sk->window = window; + sk->lastwin_seq = sk->acked_seq; + } return sk->window; } @@ -328,7 +316,7 @@ case TCP_CLOSE: tcp_cache_zap(); /* Should be about 2 rtt's */ - reset_timer(sk, TIME_DONE, min(sk->rtt * 2, TCP_DONE_TIME)); + reset_timer(sk, TIME_DONE, min(sk->rtt * 2, TCP_DONE_TIME)); /* fall through */ default: if (oldstate==TCP_ESTABLISHED) diff -u --recursive --new-file v1.3.86/linux/init/main.c linux/init/main.c --- v1.3.86/linux/init/main.c Mon Apr 8 19:01:46 1996 +++ linux/init/main.c Fri Apr 12 09:49:47 1996 @@ -386,7 +386,7 @@ } /* this should be approx 2 Bo*oMips to start (note initial shift), and will - still work even if initally too large, it will just take slightly longer */ + still work even if initially too large, it will just take slightly longer */ unsigned long loops_per_sec = (1<<12); /* This is the number of bits of precision for the loops_per_second. Each diff -u --recursive --new-file v1.3.86/linux/ipc/msg.c linux/ipc/msg.c --- v1.3.86/linux/ipc/msg.c Sat Mar 9 15:41:12 1996 +++ linux/ipc/msg.c Fri Apr 12 09:49:47 1996 @@ -417,7 +417,7 @@ /* * If the IPC_KERNELD flag is set, the key is forced to IPC_PRIVATE, - * and a designated kerneld message queue is created/refered to + * and a designated kerneld message queue is created/referred to */ if ((msgflg & IPC_KERNELD)) { int i; @@ -599,7 +599,7 @@ return -EPERM; /* * There is only one kerneld message queue, - * mark it as non-existant + * mark it as non-existent */ if ((kerneld_msqid >= 0) && (msqid == kerneld_msqid)) kerneld_msqid = -1; diff -u --recursive --new-file v1.3.86/linux/ipc/shm.c linux/ipc/shm.c --- v1.3.86/linux/ipc/shm.c Wed Apr 3 16:06:57 1996 +++ linux/ipc/shm.c Thu Apr 11 14:29:41 1996 @@ -712,7 +712,7 @@ pte_val(page) = shp->shm_pages[idx]; if (!pte_present(page)) goto check_table; - if (dma && !mem_map[MAP_NR(pte_page(page))].dma) + if (dma && !PageDMA(MAP_NR(pte_page(page)) + mem_map)) goto check_table; swap_attempts++; diff -u --recursive --new-file v1.3.86/linux/kernel/ksyms.c linux/kernel/ksyms.c --- v1.3.86/linux/kernel/ksyms.c Tue Apr 2 13:32:23 1996 +++ linux/kernel/ksyms.c Fri Apr 12 09:49:47 1996 @@ -354,7 +354,7 @@ X(disk_name), /* for md.c */ #endif - /* bimfm_aout */ + /* binfmt_aout */ X(get_write_access), X(put_write_access), diff -u --recursive --new-file v1.3.86/linux/kernel/module.c linux/kernel/module.c --- v1.3.86/linux/kernel/module.c Sun Mar 24 20:07:01 1996 +++ linux/kernel/module.c Fri Apr 12 09:49:47 1996 @@ -175,7 +175,7 @@ if (codesize & MOD_AUTOCLEAN) { /* * set autoclean marker from codesize... - * set useage count to "zero" + * set usage count to "zero" */ codesize &= ~MOD_AUTOCLEAN; GET_USE_COUNT(mp) = MOD_AUTOCLEAN; diff -u --recursive --new-file v1.3.86/linux/kernel/panic.c linux/kernel/panic.c --- v1.3.86/linux/kernel/panic.c Fri Mar 8 08:11:47 1996 +++ linux/kernel/panic.c Fri Apr 12 09:49:47 1996 @@ -48,7 +48,7 @@ { /* * Delay timeout seconds before rebooting the machine. - * We can't use the "normal" timers since we just paniced.. + * We can't use the "normal" timers since we just panicked.. */ printk(KERN_EMERG "Rebooting in %d seconds..",panic_timeout); for(i = 0; i < (panic_timeout*1000); i++) diff -u --recursive --new-file v1.3.86/linux/kernel/sched.c linux/kernel/sched.c --- v1.3.86/linux/kernel/sched.c Fri Apr 5 13:35:28 1996 +++ linux/kernel/sched.c Fri Apr 12 09:49:48 1996 @@ -219,7 +219,7 @@ } /* - * This is the function that decides how desireable a process is.. + * This is the function that decides how desirable a process is.. * You can weigh different processes against each other depending * on what CPU they've run on lately etc to try to handle cache * and TLB miss penalties. @@ -1099,7 +1099,7 @@ /* * This has been replaced by sys_setpriority. Maybe it should be - * moved into the arch depedent tree for those ports that require + * moved into the arch dependent tree for those ports that require * it for backward compatibility? */ asmlinkage int sys_nice(int increment) diff -u --recursive --new-file v1.3.86/linux/kernel/sys.c linux/kernel/sys.c --- v1.3.86/linux/kernel/sys.c Sun Mar 24 20:07:01 1996 +++ linux/kernel/sys.c Fri Apr 12 09:49:48 1996 @@ -778,7 +778,7 @@ /* * Move these to arch dependent dir since they are for - * backward compatiblity only? + * backward compatibility only? */ asmlinkage int sys_uname(struct old_utsname * name) { diff -u --recursive --new-file v1.3.86/linux/kernel/sysctl.c linux/kernel/sysctl.c --- v1.3.86/linux/kernel/sysctl.c Tue Apr 2 13:32:23 1996 +++ linux/kernel/sysctl.c Fri Apr 12 09:49:48 1996 @@ -331,7 +331,7 @@ /* * This function only checks permission for changing the security level - * If the tests are successfull, the actual change is done by + * If the tests are successful, the actual change is done by * do_sysctl_strategy */ static int do_securelevel_strategy (ctl_table *table, diff -u --recursive --new-file v1.3.86/linux/lib/inflate.c linux/lib/inflate.c --- v1.3.86/linux/lib/inflate.c Thu Dec 14 08:16:52 1995 +++ linux/lib/inflate.c Fri Apr 12 09:49:48 1996 @@ -45,7 +45,7 @@ codes are customized to the probabilities in the current block, and so can code it much better than the pre-determined fixed codes. - The Huffman codes themselves are decoded using a mutli-level table + The Huffman codes themselves are decoded using a multi-level table lookup, in order to maximize the speed of decoding plus the speed of building the decoding tables. See the comments below that precede the lbits and dbits tuning parameters. diff -u --recursive --new-file v1.3.86/linux/mm/filemap.c linux/mm/filemap.c --- v1.3.86/linux/mm/filemap.c Wed Apr 10 17:02:26 1996 +++ linux/mm/filemap.c Fri Apr 12 09:49:48 1996 @@ -53,7 +53,7 @@ p = &inode->i_pages; while ((page = *p) != NULL) { - if (page->locked) { + if (PageLocked(page)) { p = &page->next; continue; } @@ -86,7 +86,7 @@ /* page wholly truncated - free it */ if (offset >= start) { - if (page->locked) { + if (PageLocked(page)) { wait_on_page(page); goto repeat; } @@ -118,10 +118,11 @@ priority = (limit<<2) >> priority; page = mem_map + clock; - while (priority-- > 0) { - if (page->locked) + do { + priority--; + if (PageLocked(page)) goto next; - if (dma && !page->dma) + if (dma && !PageDMA(page)) goto next; /* First of all, regenerate the page's referenced bit from any buffers in the page */ @@ -131,7 +132,7 @@ do { if (buffer_touched(tmp)) { clear_bit(BH_Touched, &tmp->b_state); - page->referenced = 1; + set_bit(PG_referenced, &page->flags); } tmp = tmp->b_this_page; } while (tmp != bh); @@ -142,21 +143,32 @@ no page is currently in both the page cache and the buffer cache; we'd have to modify the following test to allow for that case. */ - if (page->count > 1) - page->referenced = 1; - else if (page->referenced) - page->referenced = 0; - else if (page->count) { - /* The page is an old, unshared page --- try - to discard it. */ - if (page->inode) { - remove_page_from_hash_queue(page); - remove_page_from_inode_queue(page); - free_page(page_address(page)); - return 1; - } - if (bh && try_to_free_buffer(bh, &bh, 6)) - return 1; + + switch (page->count) { + case 1: + /* If it has been referenced recently, don't free it */ + if (clear_bit(PG_referenced, &page->flags)) + break; + + /* is it a page cache page? */ + if (page->inode) { + remove_page_from_hash_queue(page); + remove_page_from_inode_queue(page); + free_page(page_address(page)); + return 1; + } + + /* is it a buffer cache page? */ + if (bh && try_to_free_buffer(bh, &bh, 6)) + return 1; + break; + + default: + /* more than one users: we can't throw it away */ + set_bit(PG_referenced, &page->flags); + /* fall through */ + case 0: + /* nothing */ } next: page++; @@ -165,7 +177,7 @@ clock = 0; page = mem_map; } - } + } while (priority > 0); return 0; } @@ -223,6 +235,16 @@ } while (count); } +static inline void add_to_page_cache(struct page * page, + struct inode * inode, unsigned long offset) +{ + page->count++; + page->flags &= ~((1 << PG_uptodate) | (1 << PG_error)); + page->offset = offset; + add_page_to_inode_queue(inode, page); + add_page_to_hash_queue(inode, page); +} + /* * Try to read ahead in the file. "page_cache" is a potentially free page * that we could use for the cache (if it is 0 we can try to create one, @@ -250,15 +272,8 @@ * Ok, add the new page to the hash-queues... */ page = mem_map + MAP_NR(page_cache); - page->count++; - page->uptodate = 0; - page->error = 0; - page->offset = offset; - add_page_to_inode_queue(inode, page); - add_page_to_hash_queue(inode, page); - + add_to_page_cache(page, inode, offset); inode->i_op->readpage(inode, page); - free_page(page_cache); return 0; #else @@ -278,7 +293,7 @@ repeat: run_task_queue(&tq_disk); current->state = TASK_UNINTERRUPTIBLE; - if (page->locked) { + if (PageLocked(page)) { schedule(); goto repeat; } @@ -297,11 +312,120 @@ * of the logic when it comes to error handling etc. */ #define MAX_READAHEAD (PAGE_SIZE*8) +#define MIN_READAHEAD (PAGE_SIZE) + +static inline unsigned long generic_file_readahead(struct file * filp, struct inode * inode, + int try_async, unsigned long pos, struct page * page, + unsigned long page_cache) +{ + unsigned long max_ahead, ahead; + unsigned long rapos, ppos; + + ppos = pos & PAGE_MASK; +/* + * If the current page is locked, try some synchronous read-ahead in order + * to avoid too small IO requests. + */ + if (PageLocked(page)) { + max_ahead = filp->f_ramax; + rapos = ppos; +/* try_async = 1 */ /* Seems questionnable */ + } +/* + * The current page is not locked + * It may be the moment to try asynchronous read-ahead. + */ + else { +/* + * Compute the position of the last page we have tried to read + */ + rapos = filp->f_rapos & PAGE_MASK; + if (rapos) rapos -= PAGE_SIZE; +/* + * If asynchronous is the good tactics and if the current position is + * inside the previous read-ahead window, + * check the last red page: + * - if locked, previous IO request is probably not complete, and we will + * not try to do another IO request. + * - if not locked, previous IO request is probably complete, and it is the + * good moment to try a new asynchronous read-ahead request. + * try_async = 2 means that we have to force unplug of the device in + * order to force call to the strategy routine of the disk driver and + * start IO asynchronously. + */ + if (try_async == 1 && pos <= filp->f_rapos && + pos + filp->f_ralen >= filp->f_rapos) { + struct page *a_page; +/* + * Add ONE page to max_ahead in order to try to have the same IO max size as + * synchronous read-ahead (MAX_READAHEAD + 1)*PAGE_SIZE. + */ + max_ahead = filp->f_ramax + PAGE_SIZE; + + if (rapos < inode->i_size) { + a_page = find_page(inode, rapos); + if (a_page) { + if (PageLocked(a_page)) + max_ahead = 0; + a_page->count--; + } + } + else + max_ahead = 0; + try_async = 2; + } + else { + max_ahead = 0; + } + } + +/* + * Try to read pages. + * We hope that ll_rw_blk() plug/unplug, coalescence and sort will work fine + * enough to avoid too bad actuals IO requests. + */ + ahead = 0; + while (ahead < max_ahead) { + ahead += PAGE_SIZE; + page_cache = try_to_read_ahead(inode, rapos + ahead, page_cache); + } +/* + * If we tried to read some pages, + * Store the length of the current read-ahead window. + * If necessary, + * Try to force unplug of the device in order to start an asynchronous + * read IO. + */ + if (ahead > 0) { + filp->f_ralen = ahead; + if (try_async == 2) { +/* + * Schedule() should be changed to run_task_queue(...) + */ + run_task_queue(&tq_disk); + try_async = 1; + } + } +/* + * Compute the new read-ahead position. + * It is the position of the next byte. + */ + filp->f_rapos = rapos + ahead + PAGE_SIZE; +/* + * Wait on the page if necessary + */ + if (PageLocked(page)) { + __wait_on_page(page); + } + return page_cache; +} + + int generic_file_read(struct inode * inode, struct file * filp, char * buf, int count) { int error, read; unsigned long pos, page_cache; - unsigned long ra_pos, ra_end; /* read-ahead */ + int try_async; if (count <= 0) return 0; @@ -310,13 +434,67 @@ page_cache = 0; pos = filp->f_pos; - ra_pos = filp->f_reada; - ra_end = MAX_READAHEAD; - if (!ra_pos) { - ra_pos = (pos + PAGE_SIZE) & PAGE_MASK; - ra_end = 0; +/* + * Dont beleive f_reada + * -------------------- + * f_reada is set to 0 by seek operations. + * If we beleive f_reada, small seek ops break asynchronous read-ahead. + * That may be quite bad for small seeks or rewrites operations. + * I prefer to check if the current position is inside the previous read-ahead + * window. + * If that's true, I assume that the file accesses are sequential enough to + * continue asynchronous read-ahead. + */ + if (pos <= filp->f_rapos && pos + filp->f_ralen >= filp->f_rapos) { + filp->f_reada = 1; + } +/* + * Do minimum read-ahead at the beginning of the file. + * Some tools only read the start of the file only. + * Break read-ahead if the file position is after the previous read ahead + * position or if read-ahead position is 0. + */ + else if (pos+count < MIN_READAHEAD || !filp->f_rapos || + pos > filp->f_rapos) { + filp->f_reada = 0; + } + +/* + * Now f_reada = 1 means that asynchronous read-ahead is the good tactics. + * Will try asynchrous read-ahead as soon as possible. + * Double the max read ahead size each time. + * That euristic avoid to do some large IO for files that are not really + * accessed sequentialy. + */ + if (filp->f_reada) { + try_async = 1; + filp->f_ramax += filp->f_ramax; + } +/* + * f_reada = 0 means that asynchronous read_ahead is quite bad. + * Will not try asynchronous read-ahead first. + * Reset to zero, read-ahead context. + */ + else { + try_async = 0; + filp->f_rapos = 0; + filp->f_ralen = 0; + filp->f_ramax = 0; } - ra_end += pos + count; + +/* + * Compute a good value for read-ahead max + * Try first some value near count. + * Do at least MIN_READAHEAD and at most MAX_READAHEAD. + * (Should be a little reworked) + */ + if (filp->f_ramax < count) + filp->f_ramax = count & PAGE_MASK; + + if (filp->f_ramax < MIN_READAHEAD) + filp->f_ramax = MIN_READAHEAD; + else if (filp->f_ramax > MAX_READAHEAD) + filp->f_ramax = MAX_READAHEAD; for (;;) { struct page *page; @@ -360,24 +538,9 @@ if (nr > count) nr = count; - /* - * We may want to do read-ahead.. Do this only - * if we're waiting for the current page to be - * filled in, and if - * - we're going to read more than this page - * - if "f_reada" is set - */ - if (page->locked) { - while (ra_pos < ra_end) { - page_cache = try_to_read_ahead(inode, ra_pos, page_cache); - ra_pos += PAGE_SIZE; - if (!page->locked) - goto unlocked_page; - } - __wait_on_page(page); - } -unlocked_page: - if (!page->uptodate) + page_cache = generic_file_readahead(filp, inode, try_async, pos, page, page_cache); + + if (!PageUptodate(page)) goto read_page; if (nr > inode->i_size - pos) nr = inode->i_size - pos; @@ -399,12 +562,7 @@ addr = page_cache; page = mem_map + MAP_NR(page_cache); page_cache = 0; - page->count++; - page->uptodate = 0; - page->error = 0; - page->offset = pos & PAGE_MASK; - add_page_to_inode_queue(inode, page); - add_page_to_hash_queue(inode, page); + add_to_page_cache(page, inode, pos & PAGE_MASK); /* * Error handling is tricky. If we get a read error, @@ -422,32 +580,17 @@ break; } - if (read) { - error = read; - -#ifdef WE_SHOULD_DO_SOME_EXTRA_CHECKS - /* - * Start some extra read-ahead if we haven't already - * read ahead enough.. - */ - while (ra_pos < ra_end) { - page_cache = try_to_read_ahead(inode, ra_pos, page_cache); - ra_pos += PAGE_SIZE; - } - run_task_queue(&tq_disk); -#endif - - filp->f_pos = pos; - filp->f_reada = ra_pos; - if (!IS_RDONLY(inode)) { - inode->i_atime = CURRENT_TIME; - inode->i_dirt = 1; - } - } + filp->f_pos = pos; + filp->f_reada = 1; if (page_cache) free_page(page_cache); - - return error; + if (!IS_RDONLY(inode)) { + inode->i_atime = CURRENT_TIME; + inode->i_dirt = 1; + } + if (!read) + read = error; + return read; } /* @@ -470,14 +613,9 @@ return 0; page = mem_map + MAP_NR(new_page); new_page = 0; - page->count++; - page->uptodate = 0; - page->error = 0; - page->offset = offset; - add_page_to_inode_queue(inode, page); - add_page_to_hash_queue(inode, page); + add_to_page_cache(page, inode, offset); inode->i_op->readpage(inode, page); - if (page->locked) + if (PageLocked(page)) new_page = try_to_read_ahead(inode, offset + PAGE_SIZE, 0); found_page: if (new_page) @@ -490,7 +628,7 @@ /* * Semantics for shared and private memory areas are different past the end * of the file. A shared mapping past the last page of the file is an error - * and results in a SIBGUS, while a private mapping just maps in a zero page. + * and results in a SIGBUS, while a private mapping just maps in a zero page. */ static unsigned long filemap_nopage(struct vm_area_struct * area, unsigned long address, int no_share) { diff -u --recursive --new-file v1.3.86/linux/mm/memory.c linux/mm/memory.c --- v1.3.86/linux/mm/memory.c Fri Apr 5 13:35:28 1996 +++ linux/mm/memory.c Thu Apr 11 15:26:39 1996 @@ -195,7 +195,7 @@ return; } page_nr = MAP_NR(pte_page(pte)); - if (page_nr >= MAP_NR(high_memory) || mem_map[page_nr].reserved) { + if (page_nr >= MAP_NR(high_memory) || PageReserved(mem_map+page_nr)) { set_pte(new_pte, pte); return; } @@ -308,7 +308,7 @@ return; if (pte_present(page)) { unsigned long addr = pte_page(page); - if (addr >= high_memory || mem_map[MAP_NR(addr)].reserved) + if (addr >= high_memory || PageReserved(mem_map+MAP_NR(addr))) return; free_page(addr); if (current->mm->rss <= 0) @@ -467,7 +467,7 @@ do { pte_t oldpage = *pte; pte_clear(pte); - if (offset >= high_memory || mem_map[MAP_NR(offset)].reserved) + if (offset >= high_memory || PageReserved(mem_map+MAP_NR(offset))) set_pte(pte, mk_pte(offset, prot)); forget_pte(oldpage); address += PAGE_SIZE; @@ -624,7 +624,7 @@ */ if (mem_map[MAP_NR(old_page)].count != 1) { if (new_page) { - if (mem_map[MAP_NR(old_page)].reserved) + if (PageReserved(mem_map + MAP_NR(old_page))) ++vma->vm_mm->rss; copy_page(old_page,new_page); flush_page_to_ram(old_page); @@ -677,18 +677,14 @@ * case where we use a fake user buffer with get_fs/set_fs()) we * don't expect to find the address in the user vm map. */ - if (!size || get_fs() == get_ds()) + if (!size || get_fs() == KERNEL_DS) return 0; vma = find_vma(current, start); if (!vma) goto bad_area; - if (vma->vm_start <= start) - goto good_area; - if (!(vma->vm_flags & VM_GROWSDOWN)) - goto bad_area; - if (expand_stack(vma, start)) - goto bad_area; + if (vma->vm_start > start) + goto check_stack; good_area: if (type == VERIFY_WRITE) @@ -742,6 +738,12 @@ goto bad_area;; } return 0; + +check_stack: + if (!(vma->vm_flags & VM_GROWSDOWN)) + goto bad_area; + if (expand_stack(vma, start)) + goto good_area; bad_area: return -EFAULT; diff -u --recursive --new-file v1.3.86/linux/mm/mremap.c linux/mm/mremap.c --- v1.3.86/linux/mm/mremap.c Wed Apr 3 16:06:57 1996 +++ linux/mm/mremap.c Fri Apr 12 10:30:11 1996 @@ -155,11 +155,11 @@ /* * Expand (or shrink) an existing mapping, potentially moving it at the - * same time (controlled by the "may_move" flag and available VM space) + * same time (controlled by the MREMAP_MAYMOVE flag and available VM space) */ asmlinkage unsigned long sys_mremap(unsigned long addr, unsigned long old_len, unsigned long new_len, - int may_move) + unsigned long flags) { struct vm_area_struct *vma; @@ -215,7 +215,7 @@ * We weren't able to just expand or shrink the area, * we need to create a new one and move it.. */ - if (!may_move) - return -ENOMEM; - return move_vma(vma, addr, old_len, new_len); + if (flags & MREMAP_MAYMOVE) + return move_vma(vma, addr, old_len, new_len); + return -ENOMEM; } diff -u --recursive --new-file v1.3.86/linux/mm/page_alloc.c linux/mm/page_alloc.c --- v1.3.86/linux/mm/page_alloc.c Wed Mar 13 18:55:52 1996 +++ linux/mm/page_alloc.c Thu Apr 11 13:54:04 1996 @@ -89,6 +89,10 @@ { unsigned long index = map_nr >> (1 + order); unsigned long mask = (~0UL) << order; + unsigned long flags; + + save_flags(flags); + cli(); #define list(x) (mem_map+(x)) @@ -104,23 +108,10 @@ map_nr &= mask; } add_mem_queue(&free_area[order].list, list(map_nr)); -#undef list -} -static inline void check_free_buffers(mem_map_t * map) -{ - struct buffer_head * bh; +#undef list - bh = map->buffers; - if (bh) { - struct buffer_head *tmp = bh; - do { - if (tmp->b_list == BUF_SHARED - && tmp->b_dev != B_FREE) - refile_buffer(tmp); - tmp = tmp->b_this_page; - } while (tmp != bh); - } + restore_flags(flags); } void free_pages(unsigned long addr, unsigned long order) @@ -129,24 +120,13 @@ if (map_nr < MAP_NR(high_memory)) { mem_map_t * map = mem_map + map_nr; - if (map->reserved) + if (PageReserved(map)) return; - if (map->count) { - unsigned long flag; - save_flags(flag); - cli(); - if (!--map->count) { - free_pages_ok(map_nr, order); - delete_from_swap_cache(map_nr); - } - restore_flags(flag); - if (map->count == 1) - check_free_buffers(map); + if (atomic_dec_and_test(&map->count)) { + delete_from_swap_cache(map_nr); + free_pages_ok(map_nr, order); return; } - printk("Trying to free free memory (%08lx): memory probably corrupted\n",addr); - printk("PC = %p\n", __builtin_return_address(0)); - return; } } @@ -155,7 +135,7 @@ */ #define MARK_USED(index, order, area) \ change_bit((index) >> (1+(order)), (area)->map) -#define CAN_DMA(x) ((x)->dma) +#define CAN_DMA(x) (PageDMA(x)) #define ADDRESS(x) (PAGE_OFFSET + ((x) << PAGE_SHIFT)) #define RMQUEUE(order, dma) \ do { struct free_area_struct * area = free_area+order; \ @@ -282,8 +262,7 @@ memset(mem_map, 0, start_mem - (unsigned long) mem_map); do { --p; - p->dma = 1; - p->reserved = 1; + p->flags = (1 << PG_DMA) | (1 << PG_reserved); } while (p > mem_map); for (i = 0 ; i < NR_MEM_LISTS ; i++) { diff -u --recursive --new-file v1.3.86/linux/mm/page_io.c linux/mm/page_io.c --- v1.3.86/linux/mm/page_io.c Sun Feb 25 11:17:59 1996 +++ linux/mm/page_io.c Thu Apr 11 13:52:03 1996 @@ -64,7 +64,7 @@ if (p->swap_device) { if (!wait) { page->count++; - page->free_after = 1; + set_bit(PG_freeafter, &page->flags); nr_async_pages++; } ll_rw_page(rw,p->swap_device,offset,buf); diff -u --recursive --new-file v1.3.86/linux/mm/swap.c linux/mm/swap.c --- v1.3.86/linux/mm/swap.c Mon Jan 22 22:16:07 1996 +++ linux/mm/swap.c Fri Apr 12 09:49:48 1996 @@ -48,7 +48,7 @@ /* * Constants for the page aging mechanism: the maximum age (actually, - * the maximum "youthfulness"); the quanta by which pages rejuvinate + * the maximum "youthfulness"); the quanta by which pages rejuvenate * and age; and the initial age for new pages. */ diff -u --recursive --new-file v1.3.86/linux/mm/vmscan.c linux/mm/vmscan.c --- v1.3.86/linux/mm/vmscan.c Wed Apr 3 16:06:57 1996 +++ linux/mm/vmscan.c Fri Apr 12 09:49:48 1996 @@ -83,11 +83,12 @@ return 0; page_map = mem_map + MAP_NR(page); - if (page_map->reserved || page_map->locked || - (dma && !page_map->dma)) + if (PageReserved(page_map) + || PageLocked(page_map) + || (dma && !PageDMA(page_map))) return 0; /* Deal with page aging. Pages age from being unused; they - * rejuvinate on being accessed. Only swap old pages (age==0 + * rejuvenate on being accessed. Only swap old pages (age==0 * is oldest). */ if ((pte_dirty(pte) && delete_from_swap_cache(MAP_NR(page))) || pte_young(pte)) { diff -u --recursive --new-file v1.3.86/linux/net/Changes linux/net/Changes --- v1.3.86/linux/net/Changes Wed Feb 7 08:55:43 1996 +++ linux/net/Changes Fri Apr 12 09:49:48 1996 @@ -30,7 +30,7 @@ o Fixed ip_build_xmit loopback bugs [TESTED] o Fixes for SIOCGSTAMP on SOCK_PACKET [TESTED] o Perfect hash on net_bh(). [TESTED] -o Sonix ISDN driver. [SEPERATED/SENT] +o Sonix ISDN driver. [SEPARATED/SENT] o Use ip_build_xmit for raw sockets [TESTED] o 3c501 fixed for speed [TESTED] ------->>>>> ALPHA 002 <<<<<-------- @@ -40,7 +40,7 @@ o Massive loopback device bug fixed [TESTED] ------->>>>> ALPHA 003 <<<<<---------- o Revised code layout [TESTED] -o More bug fixes (tracroute etc) [TESTED] +o More bug fixes (traceroute etc) [TESTED] ------->>>>> ALPHA 004 <<<<<---------- o IP build xmit fragment fixes [TESTED] o TCP SWS probe fix [TESTED] diff -u --recursive --new-file v1.3.86/linux/net/Makefile linux/net/Makefile --- v1.3.86/linux/net/Makefile Wed Apr 10 17:02:26 1996 +++ linux/net/Makefile Thu Apr 11 09:23:49 1996 @@ -9,9 +9,13 @@ MOD_SUB_DIRS := ipv4 ALL_SUB_DIRS := 802 ax25 bridge core ethernet ipv4 ipx unix appletalk netrom -SUB_DIRS := 802 core ethernet unix +SUB_DIRS := core ethernet unix MOD_LIST_NAME := NET_MISC_MODULES +ifeq ($(CONFIG_NET),y) +SUB_DIRS += 802 +endif + ifeq ($(CONFIG_INET),y) SUB_DIRS += ipv4 endif @@ -46,8 +50,10 @@ L_TARGET := network.a L_OBJS := socket.o protocols.o sysctl_net.o $(join $(SUB_DIRS),$(SUB_DIRS:%=/%.o)) +ifeq ($(CONFIG_NET),y) ifeq ($(CONFIG_MODULES),y) LX_OBJS = netsyms.o +endif endif M_OBJS := diff -u --recursive --new-file v1.3.86/linux/net/TUNABLE linux/net/TUNABLE --- v1.3.86/linux/net/TUNABLE Tue Dec 26 06:03:01 1995 +++ linux/net/TUNABLE Fri Apr 12 09:49:48 1996 @@ -51,7 +51,7 @@ PORT_MASQ_BEGIN First port reserved for masquerade (tunable) PORT_MASQ_END Last port used for masquerade (tunable) MASQUERADE_EXPIRE_TCP_FIN Time we keep a masquerade for after a FIN -MASUQERADE_EXPIRE_UDP Time we keep a UDP masquerade for (tunable) +MASQUERADE_EXPIRE_UDP Time we keep a UDP masquerade for (tunable) MAXVIFS Maximum mrouted vifs (1-32) MFC_LINES Lines in the multicast router cache (tunable) SK_RMEM_MAX Max memory a socket owns for receive (tunable) diff -u --recursive --new-file v1.3.86/linux/net/appletalk/aarp.c linux/net/appletalk/aarp.c --- v1.3.86/linux/net/appletalk/aarp.c Mon Mar 25 09:00:04 1996 +++ linux/net/appletalk/aarp.c Fri Apr 12 09:49:48 1996 @@ -11,7 +11,7 @@ * * FIXME: * We ought to handle the retransmits with a single list and a - * seperate fast timer for when it is needed. + * separate fast timer for when it is needed. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -449,7 +449,7 @@ { skb_pull(skb,sizeof(struct ddpehdr)-4); /* - * The uper two remaining bytes are the port + * The upper two remaining bytes are the port * numbers we just happen to need. Now put the * length in the lower two. */ diff -u --recursive --new-file v1.3.86/linux/net/appletalk/ddp.c linux/net/appletalk/ddp.c --- v1.3.86/linux/net/appletalk/ddp.c Wed Apr 10 17:02:26 1996 +++ linux/net/appletalk/ddp.c Fri Apr 12 09:49:48 1996 @@ -19,7 +19,7 @@ * Alan Cox : Added firewall hooks. * Alan Cox : Supports new ARPHRD_LOOPBACK * Christer Weinigel : Routing and /proc fixes. - * Bradford Johnson : Locatalk. + * Bradford Johnson : Localtalk. * Tom Dyas : Module support. * Alan Cox : Hooks for PPP (based on the * localtalk hook). @@ -381,7 +381,7 @@ return 0; } /* - * If it didnt like our faked request then fail: + * If it didn't like our faked request then fail: * This should check against -ENOIOCTLCMD and fall * through. That needs us to fix all the devices up * properly. We can then also dump the localtalk test. @@ -704,7 +704,7 @@ } /* - * A device event has occured. Watch for devices going down and + * A device event has occurred. Watch for devices going down and * delete our use of them (iface and route). */ @@ -996,7 +996,7 @@ /* * Generic fcntl calls are already dealt with. If we don't need funny ones - * this is the all you need. Async I/O is also seperate. + * this is the all you need. Async I/O is also separate. */ static int atalk_fcntl(struct socket *sock, unsigned int cmd, unsigned long arg) @@ -1306,7 +1306,7 @@ if(addr->sat_family!=AF_APPLETALK) return -EAFNOSUPPORT; -#if 0 /* Netatalk doesnt check this */ +#if 0 /* Netatalk doesn't check this */ if(addr->sat_addr.s_node==ATADDR_BCAST && !sk->broadcast) return -EPERM; #endif @@ -1412,7 +1412,7 @@ /* * Fix up the length field [Ok this is horrible but otherwise * I end up with unions of bit fields and messy bit field order - * compiler/endian dependancies..] + * compiler/endian dependencies..] */ *((__u16 *)ddp)=ntohs(*((__u16 *)ddp)); @@ -1655,7 +1655,7 @@ return(-EINVAL); if(usat->sat_family != AF_APPLETALK) return -EINVAL; -#if 0 /* netatalk doesnt implement this check */ +#if 0 /* netatalk doesn't implement this check */ if(usat->sat_addr.s_node==ATADDR_BCAST && !sk->broadcast) return -EPERM; #endif @@ -1723,7 +1723,7 @@ /* * Fix up the length field [Ok this is horrible but otherwise * I end up with unions of bit fields and messy bit field order - * compiler/endian dependancies.. + * compiler/endian dependencies.. */ *((__u16 *)ddp)=ntohs(*((__u16 *)ddp)); diff -u --recursive --new-file v1.3.86/linux/net/ax25/af_ax25.c linux/net/ax25/af_ax25.c --- v1.3.86/linux/net/ax25/af_ax25.c Wed Apr 10 17:02:26 1996 +++ linux/net/ax25/af_ax25.c Fri Apr 12 09:49:48 1996 @@ -74,7 +74,7 @@ * "Most Buggiest Code You've Ever Seen" (TM) * HaJo(DD8NE) Implementation of a T5 (idle) timer * Joerg(DL1BKE) Renamed T5 to IDLE and changed behaviour: - * the timer gets reloaded on every received or transmited + * the timer gets reloaded on every received or transmitted * I frame for IP or NETROM. The idle timer is not active * on "vanilla AX.25" connections. Furthermore added PACLEN * to provide AX.25-layer based fragmentation (like WAMPES) @@ -85,7 +85,7 @@ * To do: * Restructure the ax25_rcv code to be cleaner/faster and * copy only when needed. - * Consider better arbitary protocol support. + * Consider better arbitrary protocol support. */ #include @@ -348,7 +348,7 @@ } /* - * Look for any matching address - RAW sockets can bind to arbitary names + * Look for any matching address - RAW sockets can bind to arbitrary names */ static struct sock *ax25_addr_match(ax25_address *addr) { @@ -393,7 +393,7 @@ /* * Deferred destroy. */ -void ax25_destory_socket(ax25_cb *); +void ax25_destroy_socket(ax25_cb *); /* * Handler for deferred kills. @@ -1670,7 +1670,7 @@ */ skb_pull(skb, size_ax25_addr(&dp)); - /* For our port addreses ? */ + /* For our port addresses ? */ if (ax25cmp(&dest, dev_addr) == 0) mine = 1; diff -u --recursive --new-file v1.3.86/linux/net/ax25/ax25_in.c linux/net/ax25/ax25_in.c --- v1.3.86/linux/net/ax25/ax25_in.c Tue Apr 2 13:32:23 1996 +++ linux/net/ax25/ax25_in.c Fri Apr 12 09:49:48 1996 @@ -107,7 +107,7 @@ skbn->data = skb_put(skbn, hdrlen); /* get space for info */ memcpy(skbn->data, skbo->data, hdrlen); /* copy address field */ skb_pull(skbo, hdrlen + 2); /* start of data */ - skb_pull(skbn, hdrlen + 1); /* dito */ + skb_pull(skbn, hdrlen + 1); /* ditto */ /* copy data from first fragment */ diff -u --recursive --new-file v1.3.86/linux/net/ax25/ax25_out.c linux/net/ax25/ax25_out.c --- v1.3.86/linux/net/ax25/ax25_out.c Tue Apr 2 13:32:23 1996 +++ linux/net/ax25/ax25_out.c Fri Apr 12 09:49:48 1996 @@ -400,7 +400,7 @@ /* The FLEXNET DAMA master implementation refuses to send us ANY */ /* I frame for this connection if we send a REJ here, probably */ /* due to it's frame collector scheme? A simple RR or RNR will */ - /* invoke the retransmission, and in fact REJs are superflous */ + /* invoke the retransmission, and in fact REJs are superfluous */ /* in DAMA mode anyway... */ #if 0 diff -u --recursive --new-file v1.3.86/linux/net/ax25/ax25_route.c linux/net/ax25/ax25_route.c --- v1.3.86/linux/net/ax25/ax25_route.c Tue Apr 2 13:32:23 1996 +++ linux/net/ax25/ax25_route.c Fri Apr 12 09:49:49 1996 @@ -17,7 +17,7 @@ * * History * AX.25 020 Jonathan(G4KLX) First go. - * AX.25 022 Jonathan(G4KLX) Added the actual meat to this - we now have a nice mheard list. + * AX.25 022 Jonathan(G4KLX) Added the actual meat to this - we now have a nice heard list. * AX.25 025 Alan(GW4PTS) First cut at autobinding by route scan. * AX.25 028b Jonathan(G4KLX) Extracted AX25 control block from the * sock structure. Device removal now @@ -110,7 +110,7 @@ * - try to alloc a new entry * - overwrite the oldest, not manually added entry if this fails. * - * * updated on receiption of frames directed to us _only_ + * * updated on reception of frames directed to us _only_ * */ diff -u --recursive --new-file v1.3.86/linux/net/ax25/ax25_subr.c linux/net/ax25/ax25_subr.c --- v1.3.86/linux/net/ax25/ax25_subr.c Wed Apr 10 17:02:27 1996 +++ linux/net/ax25/ax25_subr.c Fri Apr 12 09:49:49 1996 @@ -31,7 +31,7 @@ * Killed a silly bug in the DAMA code. * Joerg(DL1BKE) Found the real bug in ax25.h, sri. * AX.25 032 Joerg(DL1BKE) Added ax25_queue_length to count the number of - * enqeued buffers of a socket.. + * enqueued buffers of a socket.. */ #include @@ -521,7 +521,7 @@ * need a driver level request to switch duplex mode, that does either * SCC changing, PI config or KISS as required. * - * Not to mention this request isnt currently reliable. + * Not to mention this request isn't currently reliable. */ void ax25_kiss_cmd(ax25_cb *ax25, unsigned char cmd, unsigned char param) diff -u --recursive --new-file v1.3.86/linux/net/ax25/ax25_timer.c linux/net/ax25/ax25_timer.c --- v1.3.86/linux/net/ax25/ax25_timer.c Tue Apr 2 13:32:24 1996 +++ linux/net/ax25/ax25_timer.c Fri Apr 12 09:49:49 1996 @@ -97,7 +97,7 @@ switch (ax25->state) { case AX25_STATE_0: /* Magic here: If we listen() and a new link dies before it - is accepted() it isnt 'dead' so doesnt get removed. */ + is accepted() it isn't 'dead' so doesn't get removed. */ if (ax25->sk == NULL || ax25->sk->destroy || (ax25->sk->state == TCP_LISTEN && ax25->sk->dead)) { del_timer(&ax25->timer); ax25_destroy_socket(ax25); diff -u --recursive --new-file v1.3.86/linux/net/bridge/br.c linux/net/bridge/br.c --- v1.3.86/linux/net/bridge/br.c Wed Apr 10 17:02:27 1996 +++ linux/net/bridge/br.c Fri Apr 12 09:49:49 1996 @@ -69,7 +69,7 @@ /* * the following structure is required so that we receive - * event notifications when network deviced are enabled and + * event notifications when network devices are enabled and * disabled (ifconfig up and down). */ static struct notifier_block br_dev_notifier={ @@ -81,7 +81,7 @@ /** Elements of Procedure (4.6) **/ /* - * this section of code was gratiously borrowed from the IEEE 802.1d + * this section of code was graciously borrowed from the IEEE 802.1d * specification section 4.9.1 starting on pg 69. It has been * modified somewhat to fit within out framework and structure. It * implements the spanning tree algorithm that is the heart of the diff -u --recursive --new-file v1.3.86/linux/net/core/net_alias.c linux/net/core/net_alias.c --- v1.3.86/linux/net/core/net_alias.c Wed Feb 21 08:33:26 1996 +++ linux/net/core/net_alias.c Fri Apr 12 09:49:49 1996 @@ -115,7 +115,7 @@ /* * hashing code for alias_info->hash_tab entries - * 4 bytes -> 1/2 byte using xor condimented by af + * 4 bytes -> 1/2 byte using xor complemented by af */ static __inline__ unsigned @@ -1106,7 +1106,7 @@ /* * select closest (main or alias) device to addresses given. if no - * further info is available, return main_dev (for easier calling arrangment). + * further info is available, return main_dev (for easier calling arrangement). * * Should be called early at xxx_rcv() time for device selection */ diff -u --recursive --new-file v1.3.86/linux/net/ethernet/eth.c linux/net/ethernet/eth.c --- v1.3.86/linux/net/ethernet/eth.c Fri Mar 1 07:22:56 1996 +++ linux/net/ethernet/eth.c Fri Apr 12 09:49:49 1996 @@ -206,7 +206,7 @@ /* * This is a magic hack to spot IPX packets. Older Novell breaks * the protocol design and runs IPX over 802.3 without an 802.2 LLC - * layer. We look for FFFF which isnt a used 802.2 SSAP/DSAP. This + * layer. We look for FFFF which isn't a used 802.2 SSAP/DSAP. This * won't work for fault tolerant netware but does for the rest. */ if (*(unsigned short *)rawp == 0xFFFF) diff -u --recursive --new-file v1.3.86/linux/net/ipv4/af_inet.c linux/net/ipv4/af_inet.c --- v1.3.86/linux/net/ipv4/af_inet.c Wed Apr 10 17:02:27 1996 +++ linux/net/ipv4/af_inet.c Fri Apr 12 10:40:15 1996 @@ -307,6 +307,7 @@ */ delete_timer(sk); + del_timer(&sk->delack_timer); del_timer(&sk->retransmit_timer); /* @@ -673,6 +674,7 @@ sk->prot = prot; sk->sleep = sock->wait; init_timer(&sk->timer); + init_timer(&sk->delack_timer); init_timer(&sk->retransmit_timer); sk->timer.data = (unsigned long)sk; sk->timer.function = &net_timer; diff -u --recursive --new-file v1.3.86/linux/net/ipv4/arp.c linux/net/ipv4/arp.c --- v1.3.86/linux/net/ipv4/arp.c Tue Apr 2 13:32:24 1996 +++ linux/net/ipv4/arp.c Fri Apr 12 09:49:49 1996 @@ -51,7 +51,7 @@ * Alan Cox : Missing unlock in device events. * Eckes : ARP ioctl control errors. * Alexey Kuznetsov: Arp free fix. - * Manuel Rodriguez: Gratutious ARP. + * Manuel Rodriguez: Gratuitous ARP. * Jonathan Layes : Added arpd support through kerneld * message queue (960314) */ @@ -901,7 +901,7 @@ in_ntoa(entry->ip)); /* Can't flush the skb, because RFC1122 says to hang on to */ /* at least one from any unresolved entry. --MS */ - /* Whats happened is that someone has 'unresolved' the entry + /* What's happened is that someone has 'unresolved' the entry as we got to use it - this 'can't happen' -- AC */ return; } @@ -1906,7 +1906,7 @@ dev = dev1; } - /* this needs to be checked only for dev=dev1 but it doesnt hurt */ + /* this needs to be checked only for dev=dev1 but it doesn't hurt */ if (r->arp_ha.sa_family != dev->type) return -EINVAL; @@ -2148,7 +2148,7 @@ case SIOCSARP: return arp_req_set(&r, dev); case OLD_SIOCDARP: - /* old SIOCDARP destoyes both + /* old SIOCDARP destroys both * normal and proxy mappings */ r.arp_flags &= ~ATF_PUBL; diff -u --recursive --new-file v1.3.86/linux/net/ipv4/icmp.c linux/net/ipv4/icmp.c --- v1.3.86/linux/net/ipv4/icmp.c Wed Apr 10 17:02:27 1996 +++ linux/net/ipv4/icmp.c Fri Apr 12 09:49:49 1996 @@ -117,7 +117,7 @@ struct icmp_mib icmp_statistics; /* An array of errno for error messages from dest unreach. */ -/* RFC 1122: 3.2.2.1 States that NET_UNREACH, HOS_UNREACH and SR_FAIELD MUST be considered 'transient errrs'. */ +/* RFC 1122: 3.2.2.1 States that NET_UNREACH, HOS_UNREACH and SR_FAIELD MUST be considered 'transient errs'. */ struct icmp_err icmp_err_convert[] = { { ENETUNREACH, 0 }, /* ICMP_NET_UNREACH */ @@ -136,7 +136,7 @@ }; /* - * A spare long used to speed up statistics udpating + * A spare long used to speed up statistics updating */ unsigned long dummy; diff -u --recursive --new-file v1.3.86/linux/net/ipv4/igmp.c linux/net/ipv4/igmp.c --- v1.3.86/linux/net/ipv4/igmp.c Sun Mar 31 00:13:19 1996 +++ linux/net/ipv4/igmp.c Fri Apr 12 09:49:49 1996 @@ -5,7 +5,7 @@ * been a further revision of this protocol since which is now supported. * * If you have trouble with this module be careful what gcc you have used, - * the older version didnt come out right using gcc 2.5.8, the newer one + * the older version didn't come out right using gcc 2.5.8, the newer one * seems to fall out with gcc 2.6.2. * * Authors: @@ -40,7 +40,7 @@ * the mrouted version on that device. * Chih-Jen Chang : Added the max_resp_time parameter to * Tsu-Sheng Tsao igmp_heard_query(). Using this parameter - * to identify the multicast router verion + * to identify the multicast router version * and do what the IGMP version 2 specified. * Chih-Jen Chang : Added a timer to revert to IGMP V2 router * Tsu-Sheng Tsao if the specified time expired. diff -u --recursive --new-file v1.3.86/linux/net/ipv4/ip_forward.c linux/net/ipv4/ip_forward.c --- v1.3.86/linux/net/ipv4/ip_forward.c Mon Apr 8 19:01:47 1996 +++ linux/net/ipv4/ip_forward.c Fri Apr 12 09:49:49 1996 @@ -216,7 +216,7 @@ #ifndef CONFIG_IP_NO_ICMP_REDIRECT if (dev == dev2 && !((iph->saddr^dev->pa_addr)&dev->pa_mask) && - /* The daddr!=raddr test isnt obvious - what its doing + /* The daddr!=raddr test isn't obvious - what its doing is avoiding sending a frame the receiver will not believe anyway.. */ iph->daddr != raddr/*ANK*/ && !opt->srr) diff -u --recursive --new-file v1.3.86/linux/net/ipv4/ip_fw.c linux/net/ipv4/ip_fw.c --- v1.3.86/linux/net/ipv4/ip_fw.c Wed Apr 10 17:02:27 1996 +++ linux/net/ipv4/ip_fw.c Fri Apr 12 09:49:49 1996 @@ -39,7 +39,7 @@ * * Copyright (c) 1994 Pauline Middelink * - * The pieces which added masquerading functionality are totaly + * The pieces which added masquerading functionality are totally * my responsibility and have nothing to with the original authors * copyright or doing. * diff -u --recursive --new-file v1.3.86/linux/net/ipv4/ip_input.c linux/net/ipv4/ip_input.c --- v1.3.86/linux/net/ipv4/ip_input.c Wed Apr 10 17:02:27 1996 +++ linux/net/ipv4/ip_input.c Fri Apr 12 09:49:49 1996 @@ -75,7 +75,7 @@ * Arnt Gulbrandsen : ip_build_xmit * Alan Cox : Per socket routing cache * Alan Cox : Fixed routing cache, added header cache. - * Alan Cox : Loopback didnt work right in original ip_build_xmit - fixed it. + * Alan Cox : Loopback didn't work right in original ip_build_xmit - fixed it. * Alan Cox : Only send ICMP_REDIRECT if src/dest are the same net. * Alan Cox : Incoming IP option handling. * Alan Cox : Set saddr on raw output frames as per BSD. @@ -572,7 +572,7 @@ #ifdef CONFIG_IP_MROUTE /* * Forward the last copy to the multicast router. If - * there is a pending raw deliery however make a copy + * there is a pending raw delivery however make a copy * and forward that. */ diff -u --recursive --new-file v1.3.86/linux/net/ipv4/ip_masq_app.c linux/net/ipv4/ip_masq_app.c --- v1.3.86/linux/net/ipv4/ip_masq_app.c Wed Apr 10 17:02:28 1996 +++ linux/net/ipv4/ip_masq_app.c Fri Apr 12 09:49:49 1996 @@ -271,12 +271,12 @@ if(after(ack_seq,ms_seq->init_seq)) { th->ack_seq = htonl(ack_seq-ms_seq->delta); #if DEBUG_CONFIG_IP_MASQ_APP - printk("masq_fix_ack_seq() : substracted delta (%d) from ack_seq\n",ms_seq->delta); + printk("masq_fix_ack_seq() : subtracted delta (%d) from ack_seq\n",ms_seq->delta); #endif } else { th->ack_seq = htonl(ack_seq-ms_seq->previous_delta); #if DEBUG_CONFIG_IP_MASQ_APP - printk("masq_fix_ack_seq() : substracted previous_delta (%d) from ack_seq\n",ms_seq->previous_delta); + printk("masq_fix_ack_seq() : subtracted previous_delta (%d) from ack_seq\n",ms_seq->previous_delta); #endif } } diff -u --recursive --new-file v1.3.86/linux/net/ipv4/ip_options.c linux/net/ipv4/ip_options.c --- v1.3.86/linux/net/ipv4/ip_options.c Wed Apr 10 17:02:28 1996 +++ linux/net/ipv4/ip_options.c Fri Apr 12 09:49:49 1996 @@ -226,7 +226,7 @@ } /* - * Verify options and fill pointers in struct optinos. + * Verify options and fill pointers in struct options. * Caller should clear *opt, and set opt->data. * If opt == NULL, then skb->data should point to IP header. */ diff -u --recursive --new-file v1.3.86/linux/net/ipv4/ip_output.c linux/net/ipv4/ip_output.c --- v1.3.86/linux/net/ipv4/ip_output.c Wed Apr 10 17:02:28 1996 +++ linux/net/ipv4/ip_output.c Fri Apr 12 09:49:49 1996 @@ -548,7 +548,7 @@ * * The callback has five args, an arbitrary pointer (copy of frag), * the source IP address (may depend on the routing table), the - * destination adddress (char *), the offset to copy from, and the + * destination address (char *), the offset to copy from, and the * length to be copied. * */ @@ -1068,7 +1068,7 @@ ip_rt_flush(dev); } /* - * Join the intial group if multicast. + * Join the initial group if multicast. */ if(event==NETDEV_UP) { diff -u --recursive --new-file v1.3.86/linux/net/ipv4/ipmr.c linux/net/ipv4/ipmr.c --- v1.3.86/linux/net/ipv4/ipmr.c Wed Feb 7 08:55:46 1996 +++ linux/net/ipv4/ipmr.c Fri Apr 12 09:49:50 1996 @@ -50,7 +50,7 @@ #include /* - * Multicast router conrol variables + * Multicast router control variables */ static struct vif_device vif_table[MAXVIFS]; /* Devices */ diff -u --recursive --new-file v1.3.86/linux/net/ipv4/packet.c linux/net/ipv4/packet.c --- v1.3.86/linux/net/ipv4/packet.c Sat Mar 16 13:52:11 1996 +++ linux/net/ipv4/packet.c Fri Apr 12 09:49:50 1996 @@ -6,7 +6,7 @@ * PACKET - implements raw packet sockets. * * Doesn't belong in IP but its currently too hooked into ip - * to seperate. + * to separate. * * Version: @(#)packet.c 1.0.6 05/25/93 * diff -u --recursive --new-file v1.3.86/linux/net/ipv4/route.c linux/net/ipv4/route.c --- v1.3.86/linux/net/ipv4/route.c Sun Mar 31 00:13:19 1996 +++ linux/net/ipv4/route.c Fri Apr 12 09:49:50 1996 @@ -38,7 +38,7 @@ * Alexey Kuznetsov : Massive rework to support tree based routing, * routing caches and better behaviour. * - * Olaf Erb : irtt wasnt being copied right. + * Olaf Erb : irtt wasn't being copied right. * Bjorn Ekwall : Kerneld route support. * Alan Cox : Multicast fixed (I hope) * Pavel Krauz : Limited broadcast fixed @@ -466,7 +466,7 @@ * If you want to increase MTU for some net (local subnet) * use "route add .... mss xxx". * - * The MTU isnt currently always used and computed as it + * The MTU isn't currently always used and computed as it * should be as far as I can tell. [Still verifying this is right] */ if ((flags & RTF_GATEWAY) && mss > 576) @@ -981,7 +981,7 @@ } /* - * RT "bottom half" handlers. Called with masked inetrrupts. + * RT "bottom half" handlers. Called with masked interrupts. */ static __inline__ void rt_kick_free_queue(void) @@ -1087,7 +1087,7 @@ * LRU ordering. */ - if (rth->rt_lastuse + RT_CACHE_BUBBLE_THRESHOULD < rth_next->rt_lastuse || + if (rth->rt_lastuse + RT_CACHE_BUBBLE_THRESHOLD < rth_next->rt_lastuse || (rth->rt_lastuse < rth_next->rt_lastuse && rth->rt_use < rth_next->rt_use)) { diff -u --recursive --new-file v1.3.86/linux/net/ipv4/tcp.c linux/net/ipv4/tcp.c --- v1.3.86/linux/net/ipv4/tcp.c Wed Apr 10 17:02:28 1996 +++ linux/net/ipv4/tcp.c Fri Apr 12 15:01:02 1996 @@ -19,63 +19,63 @@ * Arnt Gulbrandsen, * Jorge Cwik, * - * Fixes: + * Fixes: * Alan Cox : Numerous verify_area() calls * Alan Cox : Set the ACK bit on a reset * Alan Cox : Stopped it crashing if it closed while - * sk->inuse=1 and was trying to connect + * sk->inuse=1 and was trying to connect * (tcp_err()). * Alan Cox : All icmp error handling was broken * pointers passed where wrong and the * socket was looked up backwards. Nobody * tested any icmp error code obviously. - * Alan Cox : tcp_err() now handled properly. It - * wakes people on errors. select + * Alan Cox : tcp_err() now handled properly. It + * wakes people on errors. select * behaves and the icmp error race * has gone by moving it into sock.c - * Alan Cox : tcp_send_reset() fixed to work for - * everything not just packets for + * Alan Cox : tcp_send_reset() fixed to work for + * everything not just packets for * unknown sockets. * Alan Cox : tcp option processing. - * Alan Cox : Reset tweaked (still not 100%) [Had + * Alan Cox : Reset tweaked (still not 100%) [Had * syn rule wrong] * Herp Rosmanith : More reset fixes - * Alan Cox : No longer acks invalid rst frames. + * Alan Cox : No longer acks invalid rst frames. * Acking any kind of RST is right out. - * Alan Cox : Sets an ignore me flag on an rst - * receive otherwise odd bits of prattle + * Alan Cox : Sets an ignore me flag on an rst + * receive otherwise odd bits of prattle * escape still - * Alan Cox : Fixed another acking RST frame bug. + * Alan Cox : Fixed another acking RST frame bug. * Should stop LAN workplace lockups. - * Alan Cox : Some tidyups using the new skb list + * Alan Cox : Some tidyups using the new skb list * facilities * Alan Cox : sk->keepopen now seems to work * Alan Cox : Pulls options out correctly on accepts * Alan Cox : Fixed assorted sk->rqueue->next errors * Alan Cox : PSH doesn't end a TCP read. Switched a * bit to skb ops. - * Alan Cox : Tidied tcp_data to avoid a potential + * Alan Cox : Tidied tcp_data to avoid a potential * nasty. - * Alan Cox : Added some better commenting, as the + * Alan Cox : Added some better commenting, as the * tcp is hard to follow * Alan Cox : Removed incorrect check for 20 * psh * Michael O'Reilly : ack < copied bug fix. * Johannes Stille : Misc tcp fixes (not all in yet). * Alan Cox : FIN with no memory -> CRASH - * Alan Cox : Added socket option proto entries. + * Alan Cox : Added socket option proto entries. * Also added awareness of them to accept. * Alan Cox : Added TCP options (SOL_TCP) - * Alan Cox : Switched wakeup calls to callbacks, - * so the kernel can layer network + * Alan Cox : Switched wakeup calls to callbacks, + * so the kernel can layer network * sockets. * Alan Cox : Use ip_tos/ip_ttl settings. * Alan Cox : Handle FIN (more) properly (we hope). - * Alan Cox : RST frames sent on unsynchronised + * Alan Cox : RST frames sent on unsynchronised * state ack error. * Alan Cox : Put in missing check for SYN bit. - * Alan Cox : Added tcp_select_window() aka NET2E + * Alan Cox : Added tcp_select_window() aka NET2E * window non shrink trick. - * Alan Cox : Added a couple of small NET2E timer + * Alan Cox : Added a couple of small NET2E timer * fixes * Charles Hedrick : TCP fixes * Toomas Tamm : TCP window fixes @@ -89,7 +89,7 @@ * Adam Caldwell : Assorted timer/timing errors * Matthew Dillon : Fixed another RST bug * Alan Cox : Move to kernel side addressing changes. - * Alan Cox : Beginning work on TCP fastpathing + * Alan Cox : Beginning work on TCP fastpathing * (not yet usable) * Arnt Gulbrandsen: Turbocharged tcp_check() routine. * Alan Cox : TCP fast path debugging @@ -97,21 +97,21 @@ * Michael Riepe : Bug in tcp_check() * Matt Dillon : More TCP improvements and RST bug fixes * Matt Dillon : Yet more small nasties remove from the - * TCP code (Be very nice to this man if + * TCP code (Be very nice to this man if * tcp finally works 100%) 8) - * Alan Cox : BSD accept semantics. + * Alan Cox : BSD accept semantics. * Alan Cox : Reset on closedown bug. * Peter De Schrijver : ENOTCONN check missing in tcp_sendto(). - * Michael Pall : Handle select() after URG properly in + * Michael Pall : Handle select() after URG properly in * all cases. - * Michael Pall : Undo the last fix in tcp_read_urg() + * Michael Pall : Undo the last fix in tcp_read_urg() * (multi URG PUSH broke rlogin). - * Michael Pall : Fix the multi URG PUSH problem in - * tcp_readable(), select() after URG + * Michael Pall : Fix the multi URG PUSH problem in + * tcp_readable(), select() after URG * works now. - * Michael Pall : recv(...,MSG_OOB) never blocks in the + * Michael Pall : recv(...,MSG_OOB) never blocks in the * BSD api. - * Alan Cox : Changed the semantics of sk->socket to + * Alan Cox : Changed the semantics of sk->socket to * fix a race and a signal problem with * accept() and async I/O. * Alan Cox : Relaxed the rules on tcp_sendto(). @@ -128,23 +128,23 @@ * Alan Cox : Reset tracing code. * Alan Cox : Spurious resets on shutdown. * Alan Cox : Giant 15 minute/60 second timer error - * Alan Cox : Small whoops in selecting before an + * Alan Cox : Small whoops in selecting before an * accept. - * Alan Cox : Kept the state trace facility since + * Alan Cox : Kept the state trace facility since * it's handy for debugging. * Alan Cox : More reset handler fixes. - * Alan Cox : Started rewriting the code based on - * the RFC's for other useful protocol - * references see: Comer, KA9Q NOS, and - * for a reference on the difference + * Alan Cox : Started rewriting the code based on + * the RFC's for other useful protocol + * references see: Comer, KA9Q NOS, and + * for a reference on the difference * between specifications and how BSD * works see the 4.4lite source. - * A.N.Kuznetsov : Don't time wait on completion of tidy + * A.N.Kuznetsov : Don't time wait on completion of tidy * close. * Linus Torvalds : Fin/Shutdown & copied_seq changes. * Linus Torvalds : Fixed BSD port reuse to work first syn - * Alan Cox : Reimplemented timers as per the RFC - * and using multiple timers for sanity. + * Alan Cox : Reimplemented timers as per the RFC + * and using multiple timers for sanity. * Alan Cox : Small bug fixes, and a lot of new * comments. * Alan Cox : Fixed dual reader crash by locking @@ -164,7 +164,7 @@ * Alan Cox : Per route irtt. * Matt Day : Select() match BSD precisely on error * Alan Cox : New buffers - * Marc Tamsky : Various sk->prot->retransmits and + * Marc Tamsky : Various sk->prot->retransmits and * sk->retransmits misupdating fixed. * Fixed tcp_write_timeout: stuck close, * and TCP syn retries gets used now. @@ -180,14 +180,26 @@ * Alan Cox : Small hooks for enSKIP. * Alexey Kuznetsov: Path MTU discovery. * Alan Cox : Support soft errors. - * Alan Cox : Fix MTU discovery pathalogical case + * Alan Cox : Fix MTU discovery pathological case * when the remote claims no mtu! * Marc Tamsky : TCP_CLOSE fix. - * Colin (G3TNE) : Send a reset on syn ack replies in + * Colin (G3TNE) : Send a reset on syn ack replies in * window but wrong (fixes NT lpd problems) * Pedro Roque : Better TCP window handling, delayed ack. - * Joerg Reuter : No modification of locked buffers in + * Joerg Reuter : No modification of locked buffers in * tcp_do_retransmit() + * Eric Schenk : Changed receiver side silly window + * avoidance algorithm to BSD style + * algorithm. This doubles throughput + * against machines running Solaris, + * and seems to result in general + * improvement. + * Eric Schenk : Changed receiver side silly window + * avoidance algorithm to BSD style + * algorithm. This doubles throughput + * against machines running Solaris, + * and seems to result in general + * improvement. * * To Fix: * Fast path the code. Two things here - fix the window calculation @@ -209,7 +221,7 @@ * tcp_data/tcp_read as well as the window shrink crud. * Separate out duplicated code - tcp_alloc_skb, tcp_build_ack * tcp_queue_skb seem obvious routines to extract. - * + * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version @@ -246,7 +258,7 @@ * TCP_LAST_ACK out side has shutdown after remote has * shutdown. There may still be data in our * buffer that we have to finish sending - * + * * TCP_CLOSE socket is finished */ @@ -256,7 +268,7 @@ * for violations and the like. tcp.c is just too big... If I say something * "does?" or "doesn't?", it means I'm not sure, and will have to hash it out * with Alan. -- MS 950903 - * + * * Use of PSH (4.2.2.2) * MAY aggregate data sent without the PSH flag. (does) * MAY queue data received without the PSH flag. (does) @@ -266,12 +278,12 @@ * MUST set PSH on last segment (does) * MAY pass received PSH to application layer (doesn't) * SHOULD send maximum-sized segment whenever possible. (almost always does) - * + * * Window Size (4.2.2.3, 4.2.2.16) * MUST treat window size as an unsigned number (does) * SHOULD treat window size as a 32-bit number (does not) * MUST NOT shrink window once it is offered (does not normally) - * + * * Urgent Pointer (4.2.2.4) * **MUST point urgent pointer to last byte of urgent data (not right * after). (doesn't, to be like BSD) @@ -282,11 +294,11 @@ * **MUST support urgent data sequence of arbitrary length. (doesn't, but * it's sort of tricky to fix, as urg_ptr is a 16-bit quantity) * [Follows BSD 1 byte of urgent data] - * + * * TCP Options (4.2.2.5) * MUST be able to receive TCP options in any segment. (does) * MUST ignore unsupported options (does) - * + * * Maximum Segment Size Option (4.2.2.6) * MUST implement both sending and receiving MSS. (does) * SHOULD send an MSS with every SYN where receive MSS != 536 (MAY send @@ -295,72 +307,72 @@ * MUST calculate "effective send MSS" correctly: * min(physical_MTU, remote_MSS+20) - sizeof(tcphdr) - sizeof(ipopts) * (does - but allows operator override) - * + * * TCP Checksum (4.2.2.7) * MUST generate and check TCP checksum. (does) - * + * * Initial Sequence Number Selection (4.2.2.8) * MUST use the RFC 793 clock selection mechanism. (doesn't, but it's * OK: RFC 793 specifies a 250KHz clock, while we use 1MHz, which is * necessary for 10Mbps networks - and harder than BSD to spoof!) - * + * * Simultaneous Open Attempts (4.2.2.10) * MUST support simultaneous open attempts (does) - * + * * Recovery from Old Duplicate SYN (4.2.2.11) * MUST keep track of active vs. passive open (does) - * + * * RST segment (4.2.2.12) * SHOULD allow an RST segment to contain data (does, but doesn't do * anything with it, which is standard) - * + * * Closing a Connection (4.2.2.13) - * MUST inform application of whether connectin was closed by RST or + * MUST inform application of whether connection was closed by RST or * normal close. (does) * MAY allow "half-duplex" close (treat connection as closed for the * local app, even before handshake is done). (does) * MUST linger in TIME_WAIT for 2 * MSL (does) - * + * * Retransmission Timeout (4.2.2.15) * MUST implement Jacobson's slow start and congestion avoidance - * stuff. (does) - * + * stuff. (does) + * * Probing Zero Windows (4.2.2.17) * MUST support probing of zero windows. (does) * MAY keep offered window closed indefinitely. (does) * MUST allow remote window to stay closed indefinitely. (does) - * + * * Passive Open Calls (4.2.2.18) * MUST NOT let new passive open affect other connections. (doesn't) * MUST support passive opens (LISTENs) concurrently. (does) - * + * * Time to Live (4.2.2.19) * MUST make TCP TTL configurable. (does - IP_TTL option) - * + * * Event Processing (4.2.2.20) * SHOULD queue out-of-order segments. (does) * MUST aggregate ACK segments whenever possible. (does but badly) - * + * * Retransmission Timeout Calculation (4.2.3.1) * MUST implement Karn's algorithm and Jacobson's algorithm for RTO * calculation. (does, or at least explains them in the comments 8*b) * SHOULD initialize RTO to 0 and RTT to 3. (does) - * + * * When to Send an ACK Segment (4.2.3.2) * SHOULD implement delayed ACK. (does) * MUST keep ACK delay < 0.5 sec. (does) - * + * * When to Send a Window Update (4.2.3.3) * MUST implement receiver-side SWS. (does) - * + * * When to Send Data (4.2.3.4) * MUST implement sender-side SWS. (does) * SHOULD implement Nagle algorithm. (does) - * + * * TCP Connection Failures (4.2.3.5) * MUST handle excessive retransmissions "properly" (see the RFC). (does) * SHOULD inform application layer of soft errors. (does) - * + * * TCP Keep-Alives (4.2.3.6) * MAY provide keep-alives. (does) * MUST make keep-alives configurable on a per-connection basis. (does) @@ -370,19 +382,19 @@ * MUST NOT interpret failure to ACK keep-alive packet as dead * connection. (doesn't) * SHOULD send keep-alive with no data. (does) - * + * * TCP Multihoming (4.2.3.7) * MUST get source address from IP layer before sending first * SYN. (does) * MUST use same local address for all segments of a connection. (does) - * + * * IP Options (4.2.3.8) * MUST ignore unsupported IP options. (does) * MAY support Time Stamp and Record Route. (does) * MUST allow application to specify a source route. (does) - * MUST allow receieved Source Route option to set route for all future + * MUST allow received Source Route option to set route for all future * segments on this connection. (does not (security issues)) - * + * * ICMP messages (4.2.3.9) * MUST act on ICMP errors. (does) * MUST slow transmission upon receipt of a Source Quench. (does) @@ -393,20 +405,20 @@ * application. (does) * SHOULD abort connection upon receipt of hard Destination Unreachable * messages (2, 3, 4). (does) - * + * * Remote Address Validation (4.2.3.10) * MUST reject as an error OPEN for invalid remote IP address. (does) * MUST ignore SYN with invalid source address. (does) * MUST silently discard incoming SYN for broadcast/multicast - * address. (does) - * + * address. (does) + * * Asynchronous Reports (4.2.4.1) * MUST provide mechanism for reporting soft errors to application * layer. (does) - * + * * Type of Service (4.2.4.2) * MUST allow application layer to set Type of Service. (does IP_TOS) - * + * * (Whew. -- MS 950903) **/ @@ -433,7 +445,7 @@ /* * Find someone to 'accept'. Must be called with * the socket locked or with interrupts disabled - */ + */ static struct sk_buff *tcp_find_established(struct sock *s) { @@ -460,7 +472,7 @@ struct sk_buff *skb; unsigned long flags; save_flags(flags); - cli(); + cli(); skb=tcp_find_established(s); if(skb!=NULL) skb_unlink(skb); /* Take it off the queue */ @@ -468,17 +480,17 @@ return skb; } -/* +/* * This routine closes sockets which have been at least partially * opened, but not yet accepted. Currently it is only called by - * tcp_close, and timeout mirrors the value there. + * tcp_close, and timeout mirrors the value there. */ -static void tcp_close_pending (struct sock *sk) +static void tcp_close_pending (struct sock *sk) { struct sk_buff *skb; - while ((skb = skb_dequeue(&sk->receive_queue)) != NULL) + while ((skb = skb_dequeue(&sk->receive_queue)) != NULL) { tcp_close(skb->sk, 0); kfree_skb(skb, FREE_READ); @@ -487,7 +499,7 @@ } /* - * Enter the time wait state. + * Enter the time wait state. */ void tcp_time_wait(struct sock *sk) @@ -514,20 +526,20 @@ { struct tcphdr *th = (struct tcphdr *)header; struct sock *sk; - + /* * This one is _WRONG_. FIXME urgently. */ -#ifndef CONFIG_NO_PATH_MTU_DISCOVERY +#ifndef CONFIG_NO_PATH_MTU_DISCOVERY struct iphdr *iph=(struct iphdr *)(header-sizeof(struct iphdr)); -#endif +#endif th =(struct tcphdr *)header; sk = get_sock(&tcp_prot, th->source, daddr, th->dest, saddr); - if (sk == NULL) + if (sk == NULL) return; - - if (type == ICMP_SOURCE_QUENCH) + + if (type == ICMP_SOURCE_QUENCH) { /* * FIXME: @@ -538,7 +550,7 @@ sk->cong_window--; return; } - + if (type == ICMP_PARAMETERPROB) { sk->err=EPROTO; @@ -573,11 +585,11 @@ */ if (code < 13) - { + { if(icmp_err_convert[code].fatal || sk->state == TCP_SYN_SENT || sk->state == TCP_SYN_RECV) { sk->err = icmp_err_convert[code].errno; - if (sk->state == TCP_SYN_SENT || sk->state == TCP_SYN_RECV) + if (sk->state == TCP_SYN_SENT || sk->state == TCP_SYN_RECV) { tcp_statistics.TcpAttemptFails++; tcp_set_state(sk,TCP_CLOSE); @@ -612,29 +624,29 @@ if (sk == NULL || (skb = skb_peek(&sk->receive_queue)) == NULL) { restore_flags(flags); - if(sk && sk->debug) + if(sk && sk->debug) printk("empty\n"); return(0); } - + counted = sk->copied_seq; /* Where we are at the moment */ amount = 0; - - /* - * Do until a push or until we are out of data. + + /* + * Do until a push or until we are out of data. */ - - do + + do { if (before(counted, skb->seq)) /* Found a hole so stops here */ break; sum = skb->len - (counted - skb->seq); /* Length - header but start from where we are up to (avoid overlaps) */ if (skb->h.th->syn) sum++; - if (sum > 0) + if (sum > 0) { /* Add it up, move on */ amount += sum; - if (skb->h.th->syn) + if (skb->h.th->syn) amount--; counted += sum; } @@ -707,7 +719,7 @@ if (sk->shutdown & RCV_SHUTDOWN) return 1; - + if (sk->acked_seq == sk->copied_seq) break; @@ -720,7 +732,7 @@ case SEL_OUT: if (sk->err) return 1; - if (sk->shutdown & SEND_SHUTDOWN) + if (sk->shutdown & SEND_SHUTDOWN) return 0; if (sk->state == TCP_SYN_SENT || sk->state == TCP_SYN_RECV) break; @@ -745,7 +757,7 @@ int tcp_ioctl(struct sock *sk, int cmd, unsigned long arg) { int err; - switch(cmd) + switch(cmd) { case TIOCINQ: @@ -755,7 +767,7 @@ { unsigned long amount; - if (sk->state == TCP_LISTEN) + if (sk->state == TCP_LISTEN) return(-EINVAL); lock_sock(sk); @@ -796,13 +808,13 @@ /* - * This routine computes a TCP checksum. + * This routine computes a TCP checksum. * * Modified January 1995 from a go-faster DOS routine by * Jorge Cwik */ #undef DEBUG_TCP_CHECK -void tcp_send_check(struct tcphdr *th, unsigned long saddr, +void tcp_send_check(struct tcphdr *th, unsigned long saddr, unsigned long daddr, int len, struct sk_buff *skb) { #ifdef DEBUG_TCP_CHECK @@ -829,22 +841,17 @@ } -/* - * This routine builds a generic TCP header. +/* + * This routine builds a generic TCP header. */ - -extern __inline int tcp_build_header(struct tcphdr *th, struct sock *sk, int push) -{ +static inline int tcp_build_header(struct tcphdr *th, struct sock *sk, int push) +{ memcpy(th,(void *) &(sk->dummy_th), sizeof(*th)); + th->psh = (push == 0) ? 1 : 0; th->seq = htonl(sk->write_seq); - th->psh =(push == 0) ? 1 : 0; - sk->ack_backlog = 0; - sk->bytes_rcv = 0; - sk->ack_timed = 0; th->ack_seq = htonl(sk->acked_seq); - sk->window = tcp_select_window(sk); - th->window = htons(sk->window); + th->window = htons(tcp_select_window(sk)); return(sizeof(*th)); } @@ -855,10 +862,10 @@ static void wait_for_tcp_connect(struct sock * sk) { release_sock(sk); - cli(); - if (sk->state != TCP_ESTABLISHED && sk->state != TCP_CLOSE_WAIT && sk->err == 0) + cli(); + if (sk->state != TCP_ESTABLISHED && sk->state != TCP_CLOSE_WAIT && sk->err == 0) { - interruptible_sleep_on(sk->sleep); + interruptible_sleep_on(sk->sleep); } sti(); lock_sock(sk); @@ -873,7 +880,7 @@ cli(); if (sk->wmem_alloc*2 > sk->sndbuf && (sk->state == TCP_ESTABLISHED||sk->state == TCP_CLOSE_WAIT) - && sk->err == 0) + && sk->err == 0) { sk->socket->flags &= ~SO_NOSPACE; interruptible_sleep_on(sk->sleep); @@ -901,65 +908,65 @@ struct proto *prot; struct device *dev = NULL; unsigned char *from; - + /* * Ok commence sending */ - + while(iovctmsg_iovlen) { seglen=msg->msg_iov[iovct].iov_len; from=msg->msg_iov[iovct++].iov_base; prot = sk->prot; - while(seglen > 0) + while(seglen > 0) { /* * Stop on errors */ - if (sk->err) + if (sk->err) { - if (copied) + if (copied) return copied; return sock_error(sk); } /* - * Make sure that we are established. + * Make sure that we are established. */ - if (sk->shutdown & SEND_SHUTDOWN) + if (sk->shutdown & SEND_SHUTDOWN) { if (copied) return copied; return -EPIPE; } - /* + /* * Wait for a connection to finish. */ - while (sk->state != TCP_ESTABLISHED && sk->state != TCP_CLOSE_WAIT) + while (sk->state != TCP_ESTABLISHED && sk->state != TCP_CLOSE_WAIT) { if (copied) return copied; - if (sk->err) + if (sk->err) return sock_error(sk); - + if (sk->state != TCP_SYN_SENT && sk->state != TCP_SYN_RECV) { if (sk->keepopen) send_sig(SIGPIPE, current, 0); return -EPIPE; } - + if (nonblock) return -EAGAIN; if (current->signal & ~current->blocked) return -ERESTARTSYS; - + wait_for_tcp_connect(sk); } - + /* * The following code can result in copy <= if sk->mss is ever * decreased. It shouldn't be. sk->mss is min(sk->mtu, sk->max_window). @@ -971,9 +978,9 @@ * before the exchange of SYN's. If the initial ack from the other * end has a window of 0, max_window and thus mss will both be 0. */ - - /* - * Now we need to check if we have a half built packet. + + /* + * Now we need to check if we have a half built packet. */ #ifndef CONFIG_NO_PATH_MTU_DISCOVERY /* @@ -981,7 +988,7 @@ * but it works... I do not know why 8) --ANK * * Really, we should rebuild all the queues... - * It's difficult. Temprorary hack is to send all + * It's difficult. Temporary hack is to send all * queued segments with allowed fragmentation. */ { @@ -993,18 +1000,18 @@ } } #endif - - if ((skb = tcp_dequeue_partial(sk)) != NULL) + + if ((skb = tcp_dequeue_partial(sk)) != NULL) { int tcp_size; tcp_size = skb->tail - (unsigned char *)(skb->h.th + 1); - + /* Add more stuff to the end of skb->len */ - if (!(flags & MSG_OOB)) + if (!(flags & MSG_OOB)) { copy = min(sk->mss - tcp_size, seglen); - if (copy <= 0) + if (copy <= 0) { printk("TCP: **bug**: \"copy\" <= 0\n"); return -EFAULT; @@ -1031,7 +1038,7 @@ * host, don't use it. This is sender side * silly window prevention, as specified in RFC1122. * (Note that this is different than earlier versions of - * SWS prevention, e.g. RFC813.). What we actually do is + * SWS prevention, e.g. RFC813.). What we actually do is * use the whole MSS. Since the results in the right * edge of the packet being outside the window, it will * be queued for later rather than sent. @@ -1042,37 +1049,37 @@ copy = sk->mss; if (copy > seglen) copy = seglen; - if (copy <= 0) + if (copy <= 0) { printk("TCP: **bug**: copy=%d, sk->mss=%d\n", copy, sk->mss); return -EFAULT; } /* - * We should really check the window here also. + * We should really check the window here also. */ - + send_tmp = NULL; - if (copy < sk->mss && !(flags & MSG_OOB) && sk->packets_out) + if (copy < sk->mss && !(flags & MSG_OOB) && sk->packets_out) { skb = sock_wmalloc(sk, sk->mtu + 128 + prot->max_header + 15, 0, GFP_KERNEL); send_tmp = skb; - } - else + } + else { skb = sock_wmalloc(sk, copy + prot->max_header + 15 , 0, GFP_KERNEL); } - + /* - * If we didn't get any memory, we need to sleep. + * If we didn't get any memory, we need to sleep. */ - - if (skb == NULL) + + if (skb == NULL) { sk->socket->flags |= SO_NOSPACE; - if (nonblock) + if (nonblock) { - if (copied) + if (copied) return copied; return -EAGAIN; } @@ -1091,18 +1098,18 @@ skb->sk = sk; skb->free = 0; skb->localroute = sk->localroute|(flags&MSG_DONTROUTE); - + /* * FIXME: we need to optimize this. * Perhaps some hints here would be good. */ - + tmp = prot->build_header(skb, sk->saddr, sk->daddr, &dev, IPPROTO_TCP, sk->opt, skb->truesize,sk->ip_tos,sk->ip_ttl,&sk->ip_route_cache); - if (tmp < 0 ) + if (tmp < 0 ) { sock_wfree(sk, skb); - if (copied) + if (copied) return(copied); return(tmp); } @@ -1112,15 +1119,15 @@ skb->dev = dev; skb->h.th =(struct tcphdr *)skb_put(skb,sizeof(struct tcphdr)); tmp = tcp_build_header(skb->h.th, sk, seglen-copy); - if (tmp < 0) + if (tmp < 0) { sock_wfree(sk, skb); - if (copied) + if (copied) return(copied); return(tmp); } - - if (flags & MSG_OOB) + + if (flags & MSG_OOB) { skb->h.th->urg = 1; skb->h.th->urg_ptr = ntohs(copy); @@ -1128,15 +1135,15 @@ skb->csum = csum_partial_copy_fromuser(from, skb_put(skb,copy), copy, 0); - + from += copy; copied += copy; len -= copy; seglen -= copy; skb->free = 0; sk->write_seq += copy; - - if (send_tmp != NULL) + + if (send_tmp != NULL) { tcp_enqueue_partial(send_tmp, sk); continue; @@ -1158,7 +1165,7 @@ /* * Do sanity checking for sendmsg/sendto/send */ - + if (flags & ~(MSG_OOB|MSG_DONTROUTE)) goto out; if (msg->msg_name) { @@ -1166,15 +1173,15 @@ if (msg->msg_namelen < sizeof(*addr)) goto out; - if (addr->sin_family && addr->sin_family != AF_INET) + if (addr->sin_family && addr->sin_family != AF_INET) goto out; retval = -ENOTCONN; if(sk->state == TCP_CLOSE) goto out; retval = -EISCONN; - if (addr->sin_port != sk->dummy_th.dest) + if (addr->sin_port != sk->dummy_th.dest) goto out; - if (addr->sin_addr.s_addr != sk->daddr) + if (addr->sin_addr.s_addr != sk->daddr) goto out; } @@ -1202,17 +1209,17 @@ out: return retval; } - + /* - * Send an ack if one is backlogged at this point. + * Send an ack if one is backlogged at this point. * - * This is called for delayed acks also. + * This is called for delayed acks also. */ - + void tcp_read_wakeup(struct sock *sk) { - if (!sk->ack_backlog) + if (!sk->ack_backlog) return; /* @@ -1220,7 +1227,7 @@ * from the closed destination. */ if ((sk->state == TCP_CLOSE) || (sk->state == TCP_TIME_WAIT)) - return; + return; tcp_send_ack(sk); } @@ -1230,7 +1237,7 @@ * Handle reading urgent data. BSD has very simple semantics for * this, no blocking and very strange errors 8) */ - + static int tcp_recv_urg(struct sock * sk, int nonblock, struct msghdr *msg, int len, int flags, int *addr_len) { @@ -1239,13 +1246,13 @@ */ if (sk->urginline || !sk->urg_data || sk->urg_data == URG_READ) return -EINVAL; /* Yes this is right ! */ - - if (sk->err) + + if (sk->err) return sock_error(sk); - - if (sk->state == TCP_CLOSE || sk->done) + + if (sk->state == TCP_CLOSE || sk->done) { - if (!sk->done) + if (!sk->done) { sk->done = 1; return 0; @@ -1253,13 +1260,13 @@ return -ENOTCONN; } - if (sk->shutdown & RCV_SHUTDOWN) + if (sk->shutdown & RCV_SHUTDOWN) { sk->done = 1; return 0; } lock_sock(sk); - if (sk->urg_data & URG_VALID) + if (sk->urg_data & URG_VALID) { char c = sk->urg_data; if (!(flags & MSG_PEEK)) @@ -1278,7 +1285,7 @@ return 1; } release_sock(sk); - + /* * Fixed the recv(..., MSG_OOB) behaviour. BSD docs and * the available implementations agree in this case: @@ -1294,7 +1301,7 @@ * must be called with interrupts disabled or with the * socket locked so that the sk_buff queue operation is ok. */ - + static inline void tcp_eat_skb(struct sock *sk, struct sk_buff * skb) { skb->sk = sk; @@ -1303,38 +1310,37 @@ } /* - * FIXME: - * This routine frees used buffers. - * It should consider sending an ACK to let the - * other end know we now have a bigger window. + * FIXME: + * This routine frees used buffers. + * It should consider sending an ACK to let the + * other end know we now have a bigger window. */ static void cleanup_rbuf(struct sock *sk) { - struct sk_buff *skb; - /* * NOTE! The socket must be locked, so that we don't get * a messed-up receive queue. */ - while ((skb=skb_peek(&sk->receive_queue)) != NULL) { + while (!skb_queue_empty(&sk->receive_queue)) { + struct sk_buff *skb = sk->receive_queue.next; if (!skb->used || skb->users) break; tcp_eat_skb(sk, skb); } - /* If we raised the window due to cleaning up, tell the world.. */ - if (tcp_raise_window(sk)) { - sk->ack_backlog++; - tcp_read_wakeup(sk); - } -} + /* + * Tell the world if we raised the window. + */ + if (tcp_raise_window(sk)) + tcp_send_ack(sk); +} /* - * This routine copies from a sock struct into the user buffer. + * This routine copies from a sock struct into the user buffer. */ - + static int tcp_recvmsg(struct sock *sk, struct msghdr *msg, int len, int nonblock, int flags, int *addr_len) { @@ -1344,26 +1350,26 @@ volatile u32 *seq; /* So gcc doesn't overoptimise */ unsigned long used; - /* - * This error should be checked. + /* + * This error should be checked. */ - + if (sk->state == TCP_LISTEN) return -ENOTCONN; /* - * Urgent data needs to be handled specially. + * Urgent data needs to be handled specially. */ - + if (flags & MSG_OOB) return tcp_recv_urg(sk, nonblock, msg, len, flags, addr_len); /* * Copying sequence to update. This is volatile to handle - * the multi-reader case neatly (memcpy_to/fromfs might be + * the multi-reader case neatly (memcpy_to/fromfs might be * inline and thus not flush cached variables otherwise). */ - + peek_seq = sk->copied_seq; seq = &sk->copied_seq; if (flags & MSG_PEEK) @@ -1371,15 +1377,15 @@ add_wait_queue(sk->sleep, &wait); lock_sock(sk); - while (len > 0) + while (len > 0) { struct sk_buff * skb; u32 offset; - + /* * Are we at urgent data? Stop if we have read anything. */ - + if (copied && sk->urg_data && sk->urg_seq == *seq) break; @@ -1397,11 +1403,11 @@ /* * Next get a buffer. */ - + current->state = TASK_INTERRUPTIBLE; skb = skb_peek(&sk->receive_queue); - do + do { if (!skb) break; @@ -1423,15 +1429,15 @@ if (copied) break; - if (sk->err) + if (sk->err) { copied = sock_error(sk); break; } - if (sk->state == TCP_CLOSE) + if (sk->state == TCP_CLOSE) { - if (!sk->done) + if (!sk->done) { sk->done = 1; break; @@ -1440,13 +1446,13 @@ break; } - if (sk->shutdown & RCV_SHUTDOWN) + if (sk->shutdown & RCV_SHUTDOWN) { sk->done = 1; break; } - - if (nonblock) + + if (nonblock) { copied = -EAGAIN; break; @@ -1463,32 +1469,32 @@ found_ok_skb: /* * Lock the buffer. We can be fairly relaxed as - * an interrupt will never steal a buffer we are + * an interrupt will never steal a buffer we are * using unless I've missed something serious in * tcp_data. */ - + skb->users++; - + /* - * Ok so how much can we use ? + * Ok so how much can we use ? */ - + used = skb->len - offset; if (len < used) used = len; /* - * Do we have urgent data here? + * Do we have urgent data here? */ - - if (sk->urg_data) + + if (sk->urg_data) { u32 urg_offset = sk->urg_seq - *seq; - if (urg_offset < used) + if (urg_offset < used) { - if (!urg_offset) + if (!urg_offset) { - if (!sk->urginline) + if (!sk->urginline) { ++*seq; offset++; @@ -1499,12 +1505,12 @@ used = urg_offset; } } - + /* * Copy it - We _MUST_ update *seq first so that we * don't ever double read when we have dual readers */ - + *seq += used; /* @@ -1512,25 +1518,25 @@ * do a second read it relies on the skb->users to avoid * a crash when cleanup_rbuf() gets called. */ - + memcpy_toiovec(msg->msg_iov,((unsigned char *)skb->h.th) + skb->h.th->doff*4 + offset, used); copied += used; len -= used; - + /* * We now will not sleep again until we are finished * with skb. Sorry if you are doing the SMP port * but you'll just have to fix it neatly ;) */ - + skb->users --; - + if (after(sk->copied_seq,sk->urg_seq)) sk->urg_data = 0; if (used + offset < skb->len) continue; - + /* * Process the FIN. */ @@ -1541,24 +1547,24 @@ continue; skb->used = 1; if (!skb->users) - tcp_eat_skb(sk, skb); + tcp_eat_skb(sk, skb); continue; found_fin_ok: ++*seq; if (flags & MSG_PEEK) break; - + /* * All is done */ - + skb->used = 1; sk->shutdown |= RCV_SHUTDOWN; break; } - + if(copied>0 && msg->msg_name) { struct sockaddr_in *sin=(struct sockaddr_in *)msg->msg_name; @@ -1568,7 +1574,7 @@ } if(addr_len) *addr_len=sizeof(struct sockaddr_in); - + remove_wait_queue(sk->sleep, &wait); current->state = TASK_RUNNING; @@ -1582,11 +1588,11 @@ /* * State processing on a close. This implements the state shift for - * sending our FIN frame. Note that we only send a FIN for some + * sending our FIN frame. Note that we only send a FIN for some * states. A shutdown() may have already sent the FIN, or we may be * closed. */ - + static int tcp_close_state(struct sock *sk, int dead) { int ns=TCP_CLOSE; @@ -1613,9 +1619,9 @@ ns=TCP_LAST_ACK; send_fin=1; } - + tcp_set_state(sk,ns); - + /* * This is a (useful) BSD violating of the RFC. There is a * problem with TCP as specified in that the other end could @@ -1633,7 +1639,7 @@ else tcp_reset_msl_timer(sk, TIME_CLOSE, TCP_FIN_TIMEOUT); } - + return send_fin; } @@ -1650,18 +1656,18 @@ * Tim MacKenzie(tym@dibbler.cs.monash.edu.au) 4 Dec '92. */ - if (!(how & SEND_SHUTDOWN)) + if (!(how & SEND_SHUTDOWN)) return; - + /* * If we've already sent a FIN, or it's a closed state */ - + if (sk->state == TCP_FIN_WAIT1 || sk->state == TCP_FIN_WAIT2 || sk->state == TCP_CLOSING || sk->state == TCP_LAST_ACK || - sk->state == TCP_TIME_WAIT || + sk->state == TCP_TIME_WAIT || sk->state == TCP_CLOSE || sk->state == TCP_LISTEN ) @@ -1677,19 +1683,19 @@ sk->shutdown |= SEND_SHUTDOWN; /* - * Clear out any half completed packets. + * Clear out any half completed packets. */ if (sk->partial) tcp_send_partial(sk); - + /* * FIN if needed */ - + if (tcp_close_state(sk,0)) tcp_send_fin(sk); - + release_sock(sk); } @@ -1697,7 +1703,7 @@ /* * Return 1 if we still have things to send in our buffers. */ - + static inline int closing(struct sock * sk) { switch (sk->state) { @@ -1715,12 +1721,12 @@ struct sk_buff *skb; /* - * We need to grab some memory, and put together a FIN, + * We need to grab some memory, and put together a FIN, * and then put it into the queue to be sent. */ - + lock_sock(sk); - + tcp_cache_zap(); if(sk->state == TCP_LISTEN) { @@ -1731,11 +1737,11 @@ sk->dead = 1; return; } - + sk->keepopen = 1; sk->shutdown = SHUTDOWN_MASK; - if (!sk->dead) + if (!sk->dead) sk->state_change(sk); /* @@ -1743,22 +1749,22 @@ * descriptor close, not protocol-sourced closes, because the * reader process may not have drained the data yet! */ - + while((skb=skb_dequeue(&sk->receive_queue))!=NULL) kfree_skb(skb, FREE_READ); /* - * Get rid off any half-completed packets. + * Get rid off any half-completed packets. */ - if (sk->partial) + if (sk->partial) tcp_send_partial(sk); - + /* * Timeout is not the same thing - however the code likes * to send both the same way (sigh). */ - + if (tcp_close_state(sk,1)==1) { tcp_send_fin(sk); @@ -1771,7 +1777,7 @@ while(closing(sk) && current->timeout) { interruptible_sleep_on(sk->sleep); - if (current->signal & ~current->blocked) + if (current->signal & ~current->blocked) { break; } @@ -1792,32 +1798,32 @@ /* - * This will accept the next outstanding connection. + * This will accept the next outstanding connection. */ - + static struct sock *tcp_accept(struct sock *sk, int flags) { struct sock *newsk; struct sk_buff *skb; - + /* * We need to make sure that this socket is listening, * and that it has something pending. */ - if (sk->state != TCP_LISTEN) + if (sk->state != TCP_LISTEN) { sk->err = EINVAL; - return(NULL); + return(NULL); } /* Avoid the race. */ cli(); lock_sock(sk); - while((skb = tcp_dequeue_established(sk)) == NULL) + while((skb = tcp_dequeue_established(sk)) == NULL) { - if (flags & O_NONBLOCK) + if (flags & O_NONBLOCK) { sti(); release_sock(sk); @@ -1827,7 +1833,7 @@ release_sock(sk); interruptible_sleep_on(sk->sleep); - if (current->signal & ~current->blocked) + if (current->signal & ~current->blocked) { sti(); sk->err = ERESTARTSYS; @@ -1838,7 +1844,7 @@ sti(); /* - * Now all we need to do is return skb->sk. + * Now all we need to do is return skb->sk. */ newsk = skb->sk; @@ -1850,9 +1856,9 @@ } /* - * This will initiate an outgoing connection. + * This will initiate an outgoing connection. */ - + static int tcp_connect(struct sock *sk, struct sockaddr_in *usin, int addr_len) { struct sk_buff *buff; @@ -1863,47 +1869,48 @@ struct tcphdr *t1; struct rtable *rt; - if (sk->state != TCP_CLOSE) + if (sk->state != TCP_CLOSE) return(-EISCONN); /* * Don't allow a double connect. */ - + if(sk->daddr) return -EINVAL; - - if (addr_len < 8) + + if (addr_len < 8) return(-EINVAL); - if (usin->sin_family && usin->sin_family != AF_INET) + if (usin->sin_family && usin->sin_family != AF_INET) return(-EAFNOSUPPORT); /* * connect() to INADDR_ANY means loopback (BSD'ism). */ - + if(usin->sin_addr.s_addr==INADDR_ANY) usin->sin_addr.s_addr=ip_my_addr(); - + /* - * Don't want a TCP connection going to a broadcast address + * Don't want a TCP connection going to a broadcast address */ - if ((atype=ip_chk_addr(usin->sin_addr.s_addr)) == IS_BROADCAST || atype==IS_MULTICAST) + if ((atype=ip_chk_addr(usin->sin_addr.s_addr)) == IS_BROADCAST || atype==IS_MULTICAST) return -ENETUNREACH; - + lock_sock(sk); sk->daddr = usin->sin_addr.s_addr; sk->write_seq = tcp_init_seq(); sk->window_seq = sk->write_seq; sk->rcv_ack_seq = sk->write_seq -1; + sk->rcv_ack_cnt = 1; sk->err = 0; sk->dummy_th.dest = usin->sin_port; release_sock(sk); buff = sock_wmalloc(sk,MAX_SYN_SIZE,0, GFP_KERNEL); - if (buff == NULL) + if (buff == NULL) { return(-ENOMEM); } @@ -1911,15 +1918,15 @@ buff->sk = sk; buff->free = 0; buff->localroute = sk->localroute; - + /* * Put in the IP header and routing stuff. */ - + tmp = sk->prot->build_header(buff, sk->saddr, sk->daddr, &dev, IPPROTO_TCP, NULL, MAX_SYN_SIZE,sk->ip_tos,sk->ip_ttl,&sk->ip_route_cache); - if (tmp < 0) + if (tmp < 0) { sock_wfree(sk, buff); release_sock(sk); @@ -1941,7 +1948,7 @@ t1->syn = 1; t1->doff = 6; /* use 512 or whatever user asked for */ - + if(rt!=NULL && (rt->rt_flags&RTF_WINDOW)) sk->window_clamp=rt->rt_window; else @@ -1951,20 +1958,20 @@ sk->mtu = sk->user_mss; else if (rt) sk->mtu = rt->rt_mtu - sizeof(struct iphdr) - sizeof(struct tcphdr); - else + else sk->mtu = 576 - sizeof(struct iphdr) - sizeof(struct tcphdr); /* - * but not bigger than device MTU + * but not bigger than device MTU */ if(sk->mtu <32) sk->mtu = 32; /* Sanity limit */ - + sk->mtu = min(sk->mtu, dev->mtu - sizeof(struct iphdr) - sizeof(struct tcphdr)); #ifdef CONFIG_SKIP - + /* * SKIP devices set their MTU to 65535. This is so they can take packets * unfragmented to security process then fragment. They could lie to the @@ -1973,13 +1980,13 @@ * * [IPHDR][IPSP][Security data][Modified TCP data][Security data] */ - + if(skip_pick_mtu!=NULL) /* If SKIP is loaded.. */ sk->mtu=skip_pick_mtu(sk->mtu,dev); #endif - + /* - * Put in the TCP options to say MTU. + * Put in the TCP options to say MTU. */ ptr = skb_put(buff,4); @@ -1992,7 +1999,7 @@ sizeof(struct tcphdr) + 4, buff); /* - * This must go first otherwise a really quick response will get reset. + * This must go first otherwise a really quick response will get reset. */ tcp_cache_zap(); @@ -2001,25 +2008,27 @@ sk->rto = rt->rt_irtt; else sk->rto = TCP_TIMEOUT_INIT; - sk->retransmit_timer.function=&tcp_retransmit_timer; + sk->delack_timer.function = tcp_delack_timer; + sk->delack_timer.data = (unsigned long) sk; + sk->retransmit_timer.function = tcp_retransmit_timer; sk->retransmit_timer.data = (unsigned long)sk; tcp_reset_xmit_timer(sk, TIME_WRITE, sk->rto); /* Timer for repeating the SYN until an answer */ - sk->retransmits = 0; /* Now works the right way instead of a hacked + sk->retransmits = 0; /* Now works the right way instead of a hacked initial setting */ - sk->prot->queue_xmit(sk, dev, buff, 0); + sk->prot->queue_xmit(sk, dev, buff, 0); tcp_reset_xmit_timer(sk, TIME_WRITE, sk->rto); tcp_statistics.TcpActiveOpens++; tcp_statistics.TcpOutSegs++; - + release_sock(sk); return(0); } /* - * Socket option code for TCP. + * Socket option code for TCP. */ - + int tcp_setsockopt(struct sock *sk, int level, int optname, char *optval, int optlen) { int val,err; @@ -2027,13 +2036,13 @@ if(level!=SOL_TCP) return ip_setsockopt(sk,level,optname,optval,optlen); - if (optval == NULL) + if (optval == NULL) return(-EINVAL); err=verify_area(VERIFY_READ, optval, sizeof(int)); if(err) return err; - + val = get_user((int *)optval); switch(optname) @@ -2062,7 +2071,7 @@ if(level!=SOL_TCP) return ip_getsockopt(sk,level,optname,optval,optlen); - + switch(optname) { case TCP_MAXSEG: @@ -2085,7 +2094,7 @@ put_user(val,(int *)optval); return(0); -} +} struct proto tcp_prot = { diff -u --recursive --new-file v1.3.86/linux/net/ipv4/tcp_input.c linux/net/ipv4/tcp_input.c --- v1.3.86/linux/net/ipv4/tcp_input.c Wed Apr 10 17:02:28 1996 +++ linux/net/ipv4/tcp_input.c Fri Apr 12 15:03:36 1996 @@ -26,15 +26,13 @@ #include #include -#include - /* - * Policy code extracted so its now seperate + * Policy code extracted so its now separate */ /* * Called each time to estimate the delayed ack timeout. This is - * how it should be done so a fast link isnt impacted by ack delay. + * how it should be done so a fast link isn't impacted by ack delay. */ extern __inline__ void tcp_delack_estimator(struct sock *sk) @@ -156,8 +154,8 @@ * React to a out-of-window TCP sequence number in an incoming packet */ -static void bad_tcp_sequence(struct sock *sk, struct tcphdr *th, short len, - struct options *opt, unsigned long saddr, struct device *dev) +static void bad_tcp_sequence(struct sock *sk, struct tcphdr *th, u32 end_seq, + struct device *dev) { if (th->rst) return; @@ -175,16 +173,24 @@ return; } - /* - * 4.3reno machines look for these kind of acks so they can do fast - * recovery. Three identical 'old' acks lets it know that one frame has - * been lost and should be resent. Because this is before the whole window - * of data has timed out it can take one lost frame per window without - * stalling. [See Jacobson RFC1323, Stevens TCP/IP illus vol2] - * - * We also should be spotting triple bad sequences. + /* + * We got out of sequence data. + * This turns out to be tricky. If the packet ends at the + * edge of the window, then we MUST ack the packet, + * otherwise a lost ACK packet can stall the TCP. + * We deal with this case in tcp_queue(). + * On the other hand, if the packet is further to the + * left of the window, then we are looking a retransmitted + * packet. If we ACK it we can get into a situation that + * will later induce a fast retransmit of another packet. + * This can end up eating up half our bandwidth. */ - tcp_send_ack(sk); + + /* This case is NOT supposed to be able + * to happen. Test for it? + */ + if (sk->acked_seq == end_seq) + printk("Impossible out of sequence data case.\n"); return; } @@ -438,9 +444,12 @@ init_timer(&newsk->timer); newsk->timer.data = (unsigned long)newsk; newsk->timer.function = &net_timer; + init_timer(&newsk->delack_timer); + newsk->delack_timer.data = (unsigned long)newsk; + newsk->delack_timer.function = tcp_delack_timer; init_timer(&newsk->retransmit_timer); newsk->retransmit_timer.data = (unsigned long)newsk; - newsk->retransmit_timer.function=&tcp_retransmit_timer; + newsk->retransmit_timer.function = tcp_retransmit_timer; newsk->dummy_th.source = skb->h.th->dest; newsk->dummy_th.dest = skb->h.th->source; @@ -600,6 +609,7 @@ * in shutdown state * 2 - data from retransmit queue was acked and removed * 4 - window shrunk or data from retransmit queue was acked and removed + * 8 - we want to do a fast retransmit. One packet only. */ if(sk->zapped) @@ -654,11 +664,6 @@ } /* - * Update the right hand window edge of the host - */ - sk->window_seq = window_seq; - - /* * Pipe has emptied */ if (sk->send_tail == NULL || sk->send_head == NULL) @@ -707,10 +712,29 @@ } /* - * Remember the highest ack received. + * Remember the highest ack received and update the + * right hand window edge of the host. + * We do a bit of work here to track number of times we've + * seen this ack without a change in the right edge of the + * window. This will allow us to do fast retransmits. */ - - sk->rcv_ack_seq = ack; + + if (sk->rcv_ack_seq == ack && sk->window_seq == window_seq) + { + /* + * We only want to short cut this once, many + * ACKs may still come, we'll do a normal transmit + * for these ACKs. + */ + if (++sk->rcv_ack_cnt == MAX_DUP_ACKS+1) + flag |= 8; /* flag for a fast retransmit */ + } + else + { + sk->window_seq = window_seq; + sk->rcv_ack_seq = ack; + sk->rcv_ack_cnt = 1; + } /* * We passed data and got it acked, remove any soft error @@ -891,17 +915,9 @@ break; default: /* - * Must check send_head, write_queue, and ack_backlog - * to determine which timeout to use. + * Reset the xmit timer - state has changed. */ - if (sk->send_head || skb_peek(&sk->write_queue) != NULL || sk->ack_backlog) { - tcp_reset_xmit_timer(sk, TIME_WRITE, sk->rto); - } else if (sk->keepopen) { - tcp_reset_xmit_timer(sk, TIME_KEEPOPEN, TCP_TIMEOUT_LEN); - } else { - del_timer(&sk->retransmit_timer); - sk->ip_xmit_timeout = 0; - } + tcp_reset_xmit_timer(sk, 0, 0); break; } } @@ -911,8 +927,10 @@ * packets immediately (end of Nagle rule application). */ - if (sk->packets_out == 0 && sk->partial != NULL && - skb_peek(&sk->write_queue) == NULL && sk->send_head == NULL) + if (sk->packets_out == 0 + && sk->partial != NULL + && skb_queue_empty(&sk->write_queue) + && sk->send_head == NULL) { flag |= 1; tcp_send_partial(sk); @@ -1030,6 +1048,7 @@ if (((!flag) || (flag&4)) && sk->send_head != NULL && (((flag&2) && sk->retransmits) || + (flag&8) || (sk->send_head->when + sk->rto < jiffies))) { if(sk->send_head->when + sk->rto < jiffies) @@ -1209,61 +1228,102 @@ u32 ack_seq; tcp_insert_skb(skb, &sk->receive_queue); + /* * Did we get anything new to ack? */ ack_seq = sk->acked_seq; - if (!after(skb->seq, ack_seq) && after(skb->end_seq, ack_seq)) { - struct sk_buff_head * list = &sk->receive_queue; - struct sk_buff * next; - ack_seq = tcp_queue_ack(skb, sk); - /* - * Do we have any old packets to ack that the above - * made visible? (Go forward from skb) - */ - next = skb->next; - while (next != (struct sk_buff *) list) { - if (after(next->seq, ack_seq)) - break; - if (after(next->end_seq, ack_seq)) - ack_seq = tcp_queue_ack(next, sk); - next = next->next; + + if (!after(skb->seq, ack_seq)) { + if (after(skb->end_seq, ack_seq)) { + /* the packet stradles our window end */ + struct sk_buff_head * list = &sk->receive_queue; + struct sk_buff * next; + ack_seq = tcp_queue_ack(skb, sk); + + /* + * Do we have any old packets to ack that the above + * made visible? (Go forward from skb) + */ + next = skb->next; + while (next != (struct sk_buff *) list) { + if (after(next->seq, ack_seq)) + break; + if (after(next->end_seq, ack_seq)) + ack_seq = tcp_queue_ack(next, sk); + next = next->next; + } + + /* + * Ok, we found new data, update acked_seq as + * necessary (and possibly send the actual + * ACK packet). + */ + sk->acked_seq = ack_seq; + + } else { + if (sk->debug) + printk("Ack duplicate packet.\n"); + tcp_send_ack(sk); + return; } - /* - * Ok, we found new data, update acked_seq as - * necessary (and possibly send the actual - * ACK packet). - */ - sk->acked_seq = ack_seq; /* - * rules for delaying an ack: - * - delay time <= 0.5 HZ - * - must send at least every 2 full sized packets - * - we don't have a window update to send - * - * We handle the window update in the actual read - * side, so we only have to worry about the first two. + * Delay the ack if possible. Send ack's to + * fin frames immediately as there shouldn't be + * anything more to come. */ if (!sk->delay_acks || th->fin) { tcp_send_ack(sk); + } else { + /* + * If psh is set we assume it's an + * interactive session that wants quick + * acks to avoid nagling too much. + */ + int delay = HZ/2; + if (th->psh) + delay = HZ/10; + tcp_send_delayed_ack(sk, delay); } - else - { - int timeout = sk->ato; - if (timeout > HZ/2) - timeout = HZ/2; - if (sk->bytes_rcv > sk->max_unacked) { - timeout = 0; - mark_bh(TIMER_BH); - } - sk->ack_backlog++; - if(sk->debug) - printk("Ack queued.\n"); - tcp_reset_xmit_timer(sk, TIME_WRITE, timeout); - } + + /* + * Tell the user we have some more data. + */ + + if (!sk->dead) + sk->data_ready(sk,0); + + } + else + { + /* + * If we've missed a packet, send an ack. + * Also start a timer to send another. + * + * 4.3reno machines look for these kind of acks so + * they can do fast recovery. Three identical 'old' + * acks lets it know that one frame has been lost + * and should be resent. Because this is before the + * whole window of data has timed out it can take + * one lost frame per window without stalling. + * [See Jacobson RFC1323, Stevens TCP/IP illus vol2] + * + * We also should be spotting triple bad sequences. + * [We now do this.] + * + */ + + if (!skb->acked) + { + if(sk->debug) + printk("Ack past end of seq packet.\n"); + tcp_send_ack(sk); + sk->ack_backlog++; + tcp_reset_xmit_timer(sk, TIME_WRITE, min(sk->ato, HZ/2)); + } } } @@ -1362,28 +1422,6 @@ tcp_queue(skb, sk, th); - /* - * If we've missed a packet, send an ack. - * Also start a timer to send another. - */ - - if (!skb->acked) - { - tcp_send_ack(sk); - sk->ack_backlog++; - tcp_reset_xmit_timer(sk, TIME_WRITE, min(sk->ato, HZ/2)); - } - - /* - * Now tell the user we may have some data. - */ - - if (!sk->dead) - { - if(sk->debug) - printk("Data wakeup.\n"); - sk->data_ready(sk,0); - } return(0); } @@ -1809,7 +1847,7 @@ if (!tcp_sequence(sk, skb->seq, skb->end_seq-th->syn)) { - bad_tcp_sequence(sk, th, len, opt, saddr, dev); + bad_tcp_sequence(sk, th, skb->end_seq-th->syn, dev); kfree_skb(skb, FREE_READ); return 0; } diff -u --recursive --new-file v1.3.86/linux/net/ipv4/tcp_output.c linux/net/ipv4/tcp_output.c --- v1.3.86/linux/net/ipv4/tcp_output.c Wed Apr 10 17:02:28 1996 +++ linux/net/ipv4/tcp_output.c Fri Apr 12 14:42:28 1996 @@ -23,6 +23,19 @@ #include #include +#include + +/* + * Get rid of any delayed acks, we sent one already.. + */ +static __inline__ void clear_delayed_acks(struct sock * sk) +{ + sk->ack_timed = 0; + sk->ack_backlog = 0; + sk->bytes_rcv = 0; + del_timer(&sk->delack_timer); +} + /* * This is the main buffer sending routine. We queue the buffer * having checked it is sane seeming. @@ -106,7 +119,7 @@ /* * This is going straight out */ - + clear_delayed_acks(sk); th->ack_seq = htonl(sk->acked_seq); th->window = htons(tcp_select_window(sk)); @@ -122,10 +135,6 @@ sk->prot->queue_xmit(sk, skb->dev, skb, 0); - - sk->ack_backlog = 0; - sk->bytes_rcv = 0; - /* * Set for next retransmit based on expected ACK time. * FIXME: We set this every time which means our @@ -290,10 +299,8 @@ */ sk->prot->queue_xmit(sk, skb->dev, skb, skb->free); - - - sk->ack_backlog = 0; - sk->bytes_rcv = 0; + + clear_delayed_acks(sk); /* * Again we slide the timer wrongly @@ -339,7 +346,7 @@ /* (the skb_pull() changes skb->data while we may */ /* actually try to send the data. Ouch. A side */ /* effect is that we'll send some unnecessary data, */ - /* but the alternative is disasterous... */ + /* but the alternative is disastrous... */ if (skb_device_locked(skb)) break; @@ -429,8 +436,7 @@ */ th->ack_seq = htonl(sk->acked_seq); - sk->ack_backlog = 0; - sk->bytes_rcv = 0; + clear_delayed_acks(sk); th->window = ntohs(tcp_select_window(sk)); tcp_send_check(th, sk->saddr, sk->daddr, size, skb); @@ -631,7 +637,7 @@ buff->end_seq = sk->write_seq; t1->seq = htonl(buff->seq); t1->ack_seq = htonl(sk->acked_seq); - t1->window = htons(sk->window=tcp_select_window(sk)); + t1->window = htons(tcp_select_window(sk)); t1->fin = 1; tcp_send_check(t1, sk->saddr, sk->daddr, sizeof(*t1), buff); @@ -747,6 +753,39 @@ } /* + * Set up the timers for sending a delayed ack.. + * + * rules for delaying an ack: + * - delay time <= 0.5 HZ + * - must send at least every 2 full sized packets + * - we don't have a window update to send + */ +void tcp_send_delayed_ack(struct sock * sk, int max_timeout) +{ + unsigned long timeout, now; + + /* Calculate new timeout */ + now = jiffies; + timeout = sk->ato; + if (timeout > max_timeout) + timeout = max_timeout; + timeout += now; + if (sk->bytes_rcv > sk->max_unacked) { + timeout = now; + mark_bh(TIMER_BH); + } + + /* Use new timeout only if there wasn't a older one earlier */ + if (!del_timer(&sk->delack_timer) || timeout < sk->delack_timer.expires) + sk->delack_timer.expires = timeout; + + sk->ack_backlog++; + add_timer(&sk->delack_timer); +} + + + +/* * This routine sends an ack and also updates the window. */ @@ -765,10 +804,8 @@ * is on we are just doing an ACK timeout and need to switch * to a keepalive. */ - - sk->ack_backlog = 0; - sk->bytes_rcv = 0; - sk->ack_timed = 0; + + clear_delayed_acks(sk); if (sk->send_head == NULL && skb_queue_empty(&sk->write_queue) @@ -794,12 +831,8 @@ * bandwidth on slow links to send a spare ack than * resend packets. */ - - sk->ack_backlog++; - if (sk->ip_xmit_timeout != TIME_WRITE && tcp_connected(sk->state)) - { - tcp_reset_xmit_timer(sk, TIME_WRITE, HZ); - } + + tcp_send_delayed_ack(sk, HZ/2); return; } @@ -829,12 +862,10 @@ * Fill in the packet and send it */ - sk->window = tcp_select_window(sk); - memcpy(t1, &sk->dummy_th, sizeof(*t1)); t1->seq = htonl(sk->sent_seq); t1->ack_seq = htonl(sk->acked_seq); - t1->window = htons(sk->window); + t1->window = htons(tcp_select_window(sk)); tcp_send_check(t1, sk->saddr, sk->daddr, sizeof(*t1), buff); if (sk->debug) @@ -879,7 +910,7 @@ /* * We are probing the opening of a window * but the window size is != 0 - * must have been a result SWS advoidance ( sender ) + * must have been a result SWS avoidance ( sender ) */ struct iphdr *iph; diff -u --recursive --new-file v1.3.86/linux/net/ipv4/tcp_timer.c linux/net/ipv4/tcp_timer.c --- v1.3.86/linux/net/ipv4/tcp_timer.c Sun Mar 10 09:28:57 1996 +++ linux/net/ipv4/tcp_timer.c Thu Apr 11 17:32:17 1996 @@ -22,21 +22,73 @@ #include +void tcp_delack_timer(unsigned long data) +{ + tcp_send_ack((struct sock *) data); +} + /* * Reset the retransmission timer + * + * We currently ignore the why/when parameters, and decide on + * our own how long we should wait on our own.. */ void tcp_reset_xmit_timer(struct sock *sk, int why, unsigned long when) { - del_timer(&sk->retransmit_timer); - sk->ip_xmit_timeout = why; - if((long)when < 0) - { - when=3; - printk("Error: Negative timer in xmit_timer\n"); + unsigned long now = jiffies; + + when = ~0UL; + why = -1; + + /* + * Was an old timer event active? + */ + if (del_timer(&sk->retransmit_timer)) { + why = sk->ip_xmit_timeout; + when = sk->retransmit_timer.expires; + } + + /* + * Keepopen processing? + */ + if (sk->keepopen) { + unsigned long new_when = now + TCP_TIMEOUT_LEN; + if (new_when < when) { + when = new_when; + why = TIME_KEEPOPEN; + } + } + + /* + * Retransmission? + */ + if (sk->send_head) { + struct sk_buff * skb = sk->send_head; + unsigned long new_when = skb->when + sk->rto; + if (new_when < when) { + when = new_when; + why = TIME_WRITE; + } + } else if (!skb_queue_empty(&sk->write_queue)) { + /* + * Zero window probe? + */ + struct sk_buff * skb = sk->write_queue.next; + if (before(sk->window_seq, skb->end_seq)) { + unsigned long new_when = now + TIME_PROBE0; + if (new_when < when) { + when = new_when; + why = TIME_PROBE0; + } + } + } + + if (why >= 0) { + sk->ip_xmit_timeout = why; + sk->retransmit_timer.expires = when; + add_timer(&sk->retransmit_timer); } - sk->retransmit_timer.expires=jiffies+when; - add_timer(&sk->retransmit_timer); } /* @@ -170,46 +222,6 @@ return 1; } -/* - * It could be we got here because we needed to send an ack, - * so we need to check for that and not just normal retransmit. - */ -static void tcp_time_write_timeout(struct sock * sk) -{ - struct sk_buff *skb; - unsigned long flags; - - save_flags(flags); - cli(); - skb = sk->send_head; - if (!skb) { - if (sk->ack_backlog) - tcp_read_wakeup(sk); - restore_flags(flags); - return; - } - - /* - * Kicked by a delayed ack. Reset timer - * correctly now - */ - if (jiffies < skb->when + sk->rto) - { - if (sk->ack_backlog) - tcp_read_wakeup(sk); - tcp_reset_xmit_timer (sk, TIME_WRITE, skb->when + sk->rto - jiffies); - restore_flags(flags); - return; - } - - restore_flags(flags); - /* - * Retransmission - */ - sk->prot->retransmit (sk, 0); - tcp_write_timeout(sk); -} - /* * The TCP retransmit timer. This lacks a few small details. @@ -255,27 +267,25 @@ /* Window probing */ case TIME_PROBE0: tcp_send_probe0(sk); - tcp_write_timeout(sk); + tcp_reset_xmit_timer(sk, 0, 0); /* get us going again */ break; /* Retransmitting */ case TIME_WRITE: - tcp_time_write_timeout(sk); + sk->prot->retransmit (sk, 0); + tcp_write_timeout(sk); + tcp_reset_xmit_timer(sk, 0, 0); /* get us going again */ break; /* Sending Keepalives */ case TIME_KEEPOPEN: - /* - * this reset_timer() call is a hack, this is not - * how KEEPOPEN is supposed to work. - */ - tcp_reset_xmit_timer (sk, TIME_KEEPOPEN, TCP_TIMEOUT_LEN); /* Send something to keep the connection open. */ if (sk->prot->write_wakeup) sk->prot->write_wakeup (sk); sk->retransmits++; sk->prot->retransmits++; tcp_write_timeout(sk); + tcp_reset_xmit_timer (sk, 0, 0); break; default: diff -u --recursive --new-file v1.3.86/linux/net/ipv4/udp.c linux/net/ipv4/udp.c --- v1.3.86/linux/net/ipv4/udp.c Tue Feb 20 13:51:44 1996 +++ linux/net/ipv4/udp.c Fri Apr 12 09:49:50 1996 @@ -45,7 +45,7 @@ * Arnt Gulbrandsen : New udp_send and stuff * Alan Cox : Cache last socket * Alan Cox : Route cache - * Jon Peatfield : Minor efficientcy fix to sendto(). + * Jon Peatfield : Minor efficiency fix to sendto(). * Mike Shaver : RFC1122 checks. * Alan Cox : Nonblocking error fix. * @@ -58,7 +58,7 @@ /* RFC1122 Status: 4.1.3.1 (Ports): - SHOULD send ICMP_PORT_UNREACHABLE in reponse to datagrams to + SHOULD send ICMP_PORT_UNREACHABLE in response to datagrams to an un-listened port. (OK) 4.1.3.2 (IP Options) MUST pass IP options from IP -> application (OK) @@ -73,7 +73,7 @@ 4.1.3.5 (UDP Multihoming) MUST allow application to specify source address (OK) SHOULD be able to communicate the chosen src addr up to application - when application doesn't choose (NOT YET - doesnt seem to be in the BSD API) + when application doesn't choose (NOT YET - doesn't seem to be in the BSD API) [Does opening a SOCK_PACKET and snooping your output count 8)] 4.1.3.6 (Invalid Addresses) MUST discard invalid source addresses (NOT YET -- will be implemented @@ -262,7 +262,7 @@ } /* - * Uncheckummed UDP is sufficiently criticial to stuff like ATM video conferencing + * Unchecksummed UDP is sufficiently critical to stuff like ATM video conferencing * that we use two routines for this for speed. Probably we ought to have a CONFIG_FAST_NET * set for >10Mb/second boards to activate this sort of coding. Timing needed to verify if * this is a valid decision. @@ -640,7 +640,7 @@ go and stomp on the garbage sender... */ /* RFC1122: OK. Discards the bad packet silently (as far as */ - /* the network is concered, anyway) as per 4.1.3.4 (MUST). */ + /* the network is concerned, anyway) as per 4.1.3.4 (MUST). */ NETDEBUG(printk("UDP: bad checksum. From %08lX:%d to %08lX:%d ulen %d\n", ntohl(saddr),ntohs(uh->source), diff -u --recursive --new-file v1.3.86/linux/net/ipx/af_ipx.c linux/net/ipx/af_ipx.c --- v1.3.86/linux/net/ipx/af_ipx.c Wed Apr 10 17:02:28 1996 +++ linux/net/ipx/af_ipx.c Fri Apr 12 09:49:51 1996 @@ -1226,7 +1226,7 @@ sum=(sum&0xffff)+(sum>>16); /* - * It's a pitty there's no concept of carry in C + * It's a pity there's no concept of carry in C */ if(sum>=0x10000) @@ -1505,7 +1505,7 @@ s->protinfo.af_ipx.dest_addr.node[5], htons(s->protinfo.af_ipx.dest_addr.sock)); } - len += sprintf (buffer+len,"%08lX %08lX ", + len += sprintf (buffer+len,"%08X %08X ", s->wmem_alloc, s->rmem_alloc); len += sprintf (buffer+len,"%02X %03d\n", s->state, SOCK_INODE(s->socket)->i_uid); diff -u --recursive --new-file v1.3.86/linux/net/netrom/af_netrom.c linux/net/netrom/af_netrom.c --- v1.3.86/linux/net/netrom/af_netrom.c Wed Apr 10 17:02:29 1996 +++ linux/net/netrom/af_netrom.c Fri Apr 12 09:49:51 1996 @@ -219,7 +219,7 @@ /* * Deferred destroy. */ -void nr_destory_socket(struct sock *); +void nr_destroy_socket(struct sock *); /* * Handler for deferred kills. diff -u --recursive --new-file v1.3.86/linux/net/netrom/nr_timer.c linux/net/netrom/nr_timer.c --- v1.3.86/linux/net/netrom/nr_timer.c Wed Sep 27 13:07:34 1995 +++ linux/net/netrom/nr_timer.c Fri Apr 12 09:49:51 1996 @@ -90,7 +90,7 @@ switch (sk->nr->state) { case NR_STATE_0: /* Magic here: If we listen() and a new link dies before it - is accepted() it isnt 'dead' so doesnt get removed. */ + is accepted() it isn't 'dead' so doesn't get removed. */ if (sk->destroy || (sk->state == TCP_LISTEN && sk->dead)) { del_timer(&sk->timer); nr_destroy_socket(sk); diff -u --recursive --new-file v1.3.86/linux/net/socket.c linux/net/socket.c --- v1.3.86/linux/net/socket.c Sun Mar 31 00:13:19 1996 +++ linux/net/socket.c Thu Apr 11 09:20:34 1996 @@ -34,6 +34,7 @@ * stuff. * Alan Cox : sendmsg/recvmsg basics. * Tom Dyas : Export net symbols. + * Marcin Dalecki : Fixed problems with CONFIG_NET="n". * * * This program is free software; you can redistribute it and/or @@ -75,7 +76,7 @@ #include #include -#ifdef CONFIG_MODULES +#if defined(CONFIG_MODULES) && defined(CONFIG_NET) extern void export_net_symbols(void); #endif @@ -1421,7 +1422,7 @@ * Export networking symbols to the world. */ -#ifdef CONFIG_MODULES +#if defined(CONFIG_MODULES) && defined(CONFIG_NET) export_net_symbols(); #endif } diff -u --recursive --new-file v1.3.86/linux/net/sysctl_net.c linux/net/sysctl_net.c --- v1.3.86/linux/net/sysctl_net.c Tue Apr 2 13:32:24 1996 +++ linux/net/sysctl_net.c Thu Apr 11 09:20:34 1996 @@ -29,13 +29,19 @@ extern ctl_table ax25_table[]; #endif -extern ctl_table core_table[], ether_table[], e802_table[], unix_table[]; +extern ctl_table core_table[], unix_table[]; + +#ifdef CONFIG_NET +extern ctl_table ether_table[], e802_table[]; +#endif ctl_table net_table[] = { - {NET_CORE, "core", NULL, 0, 0555, core_table}, - {NET_ETHER, "ethernet", NULL, 0, 0555, ether_table}, - {NET_802, "802", NULL, 0, 0555, e802_table}, + {NET_CORE, "core", NULL, 0, 0555, core_table}, {NET_UNIX, "unix", NULL, 0, 0555, unix_table}, +#ifdef CONFIG_NET + {NET_802, "802", NULL, 0, 0555, e802_table}, + {NET_ETHER, "ethernet", NULL, 0, 0555, ether_table}, +#endif #ifdef CONFIG_INET {NET_IPV4, "ipv4", NULL, 0, 0555, ipv4_table}, #endif diff -u --recursive --new-file v1.3.86/linux/net/unix/af_unix.c linux/net/unix/af_unix.c --- v1.3.86/linux/net/unix/af_unix.c Wed Apr 10 17:02:29 1996 +++ linux/net/unix/af_unix.c Fri Apr 12 09:49:51 1996 @@ -40,8 +40,8 @@ * in the meantime (BSD loses the path and gives up). * accept() returns 0 length path for an unbound connector. BSD returns 16 * and a null first byte in the path (but not for gethost/peername - BSD bug ??) - * socketpair(...SOCK_RAW..) doesnt panic the kernel. - * BSD af_unix apprently has connect forgetting to block properly. + * socketpair(...SOCK_RAW..) doesn't panic the kernel. + * BSD af_unix apparently has connect forgetting to block properly. */ #include @@ -1075,7 +1075,7 @@ msg->msg_accrightslen); if(msg->msg_accrightslencmsg_type!=SCM_RIGHTS || cm->cmsg_level!=SOL_SOCKET || diff -u --recursive --new-file v1.3.86/linux/net/unix/garbage.c linux/net/unix/garbage.c --- v1.3.86/linux/net/unix/garbage.c Mon Mar 25 08:58:28 1996 +++ linux/net/unix/garbage.c Fri Apr 12 09:49:51 1996 @@ -10,7 +10,7 @@ * enable it. The bold can add it in themselves. * * Chopped about by Alan Cox 22/3/96 to make it fit the AF_UNIX socket problem. - * If it doesnt work blame me, it worked when Barak sent it. + * If it doesn't work blame me, it worked when Barak sent it. * * Assumptions: * diff -u --recursive --new-file v1.3.86/linux/scripts/Menuconfig linux/scripts/Menuconfig --- v1.3.86/linux/scripts/Menuconfig Thu Mar 28 17:34:35 1996 +++ linux/scripts/Menuconfig Fri Apr 12 09:49:51 1996 @@ -166,7 +166,7 @@ # function choice () { # - # Need to remember params cause the're gonna get reset. + # Need to remember params cause they're gonna get reset. # title=$1 choices=$2 @@ -393,7 +393,7 @@ } # -# Create a dialog for entering a hexidecimal into a kernel option. +# Create a dialog for entering a hexadecimal into a kernel option. # function l_hex () { while true @@ -430,7 +430,7 @@ # function l_choice () { # - # Need to remember params cause the're gonna get reset. + # Need to remember params cause they're gonna get reset. # title="$1" choices="$2" @@ -597,7 +597,7 @@ # environment in order for all of this to work. Leaving # them on the disk as executables screws up the recursion # in activate_menu(), among other things. Once they are - # sourced we can disgard them. + # sourced we can discard them. # for i in MCmenu* do @@ -629,7 +629,7 @@ case "$ret" in 0|3|4|5) - defaults="$selection$defaults" #psuedo stack + defaults="$selection$defaults" #pseudo stack case "$ret" in 0) eval $selection ;; 3) eval $selection y ;; @@ -1033,7 +1033,7 @@ Use the key to move from the input field to the buttons below it." inputbox_instructions_hex="\ -Please enter a hexidecimal value. \ +Please enter a hexadecimal value. \ Use the key to move from the input field to the buttons below it." backtitle="Linux Kernel Configuration" diff -u --recursive --new-file v1.3.86/linux/scripts/README.Menuconfig linux/scripts/README.Menuconfig --- v1.3.86/linux/scripts/README.Menuconfig Wed Mar 27 08:19:29 1996 +++ linux/scripts/README.Menuconfig Fri Apr 12 09:49:51 1996 @@ -9,7 +9,7 @@ Some may be made into loadable runtime modules. Some features may be completely removed altogether. There are also certain kernel parameters which are not really features, but must be -entered in as decimal or hexidecimal numbers or possibly text. +entered in as decimal or hexadecimal numbers or possibly text. Menu items beginning with (*), (M) or ( ) represent features configured to be built in, modularized or removed respectively. @@ -76,7 +76,7 @@ Data Entry ----------- o Enter the requested information and press - If you are entering hexidecimal values, it is not necessary to + If you are entering hexadecimal values, it is not necessary to add the '0x' prefix to the entry. o For help, use the or cursor keys to highlight the help option @@ -131,7 +131,7 @@ If you use Menuconfig in an XTERM window make sure you have your $TERM variable set to point to a xterm definition which supports color. Otherwise, Menuconfig will look rather bad. Menuconfig will not -display correctly in a RXVT window because rxvt display's only one +display correctly in a RXVT window because rxvt displays only one intensity of color, bright. Menuconfig will display larger menus on screens or xterms which are @@ -157,8 +157,8 @@ are brave, you may tinker with color.h to tune the colors to your preference. -COMPATABILITY ISSUE: - There have been some compatability problems reported with +COMPATIBILITY ISSUE: + There have been some compatibility problems reported with older versions of bash and sed. I am trying to work these out but it is preferable that you upgrade those utilities. diff -u --recursive --new-file v1.3.86/linux/scripts/depend.awk linux/scripts/depend.awk --- v1.3.86/linux/scripts/depend.awk Tue Jan 23 21:20:34 1996 +++ linux/scripts/depend.awk Fri Apr 12 09:49:51 1996 @@ -1,8 +1,8 @@ # This is an awk script which does dependencies. We do NOT want it to -# recursivly follow #include directives. +# recursively follow #include directives. # # The HPATH environment variable should be set to indicate where to look -# for include files. The -I infront of the path is optional. +# for include files. The -I in front of the path is optional. # # Surely there is a more elegant way to see if a file exists. Anyone know diff -u --recursive --new-file v1.3.86/linux/scripts/lxdialog/dialog.h linux/scripts/lxdialog/dialog.h --- v1.3.86/linux/scripts/lxdialog/dialog.h Sun Feb 25 11:17:58 1996 +++ linux/scripts/lxdialog/dialog.h Fri Apr 12 09:49:51 1996 @@ -145,11 +145,11 @@ extern unsigned char dialog_input_result[]; int dialog_inputbox (const char *title, const char *prompt, int height, int width, const char *init); -int dialog_guage (const char *title, const char *prompt, int height, int width, +int dialog_gauge (const char *title, const char *prompt, int height, int width, int percent); /* - * This is the base for fictious keys, which activate + * This is the base for fictitious keys, which activate * the buttons. * * Mouse-generated keys are the following: diff -u --recursive --new-file v1.3.86/linux/scripts/tail.tk linux/scripts/tail.tk --- v1.3.86/linux/scripts/tail.tk Mon Apr 8 19:01:48 1996 +++ linux/scripts/tail.tk Fri Apr 12 09:49:51 1996 @@ -10,7 +10,7 @@ frame .f0_bot.l # -# Read the users settings from .config. These wil override whatever is +# Read the user's settings from .config. These will override whatever is # in config.in. Don't do this if the user specified a -D to force # the defaults. # diff -u --recursive --new-file v1.3.86/linux/scripts/tkcond.c linux/scripts/tkcond.c --- v1.3.86/linux/scripts/tkcond.c Sun Mar 17 09:58:21 1996 +++ linux/scripts/tkcond.c Fri Apr 12 09:49:51 1996 @@ -19,7 +19,7 @@ * This file contains the code to further process the conditions from * the "ifdef" clauses. * - * The conditions are assumed to be one of the folowing formats + * The conditions are assumed to be one of the following formats * * simple_condition:= "$VARIABLE" == y/n/m * simple_condition:= "$VARIABLE != y/n/m @@ -94,7 +94,7 @@ /* * Walk all of the conditions, and look for choice values. Convert - * the tokens into something more digestable. + * the tokens into something more digestible. */ void fix_choice_cond() { @@ -120,7 +120,7 @@ /* * Look ahead for what we are comparing this to. There should - * be one operator inbetween. + * be one operator in between. */ cond2 = cond->next->next; strcpy(tmpbuf, cond->variable.cfg->label);