diff -u --recursive --new-file v2.3.4/linux/Documentation/isdn/CREDITS linux/Documentation/isdn/CREDITS --- v2.3.4/linux/Documentation/isdn/CREDITS Wed Apr 1 16:20:56 1998 +++ linux/Documentation/isdn/CREDITS Wed Jun 2 11:29:13 1999 @@ -5,7 +5,7 @@ Thomas Bogendörfer (tsbogend@bigbug.franken.de) Tester, lots of bugfixes and hints. -Alan Cox (alan@cymru.net) +Alan Cox (alan@redhat.com) For help getting into standard-kernel. Henner Eisen (eis@baty.hanse.de) diff -u --recursive --new-file v2.3.4/linux/Documentation/kernel-parameters.txt linux/Documentation/kernel-parameters.txt --- v2.3.4/linux/Documentation/kernel-parameters.txt Wed Dec 31 16:00:00 1969 +++ linux/Documentation/kernel-parameters.txt Wed Jun 2 11:32:45 1999 @@ -0,0 +1,336 @@ +June 1999 Kernel Parameters v2.2.9 + ~~~~~~~~~~~~~~~~~ + +The following is a consolidated list of the kernel parameters as defined +in the file init/main.c and sorted into English Dictionary order (defined +as ignoring all punctuation and sorting digits before letters in a case +insensitive manner), and with descriptions where known. + +The text in square brackets at the beginning of the description state the +restrictions on the kernel for the said kernel parameter to be valid. The +restrictions referred to are that the relevant option is valid if: + + APIC APIC support is enabled. + APM Automatic Power Management support is enabled. + AX25 Appropriate AX.25 support is enabled. + CD Appropriate CD support is enabled. + EIDE EIDE/ATAPI support is enabled. + FB The frame buffer device is enabled. + HW Appropriate hardware is enabled. + ISDN Appropriate ISDN support is enabled. + JOY Appropriate joystick support is enabled. + LPT Printer support is enabled. + MCA MCA bus support is enabled. + MDA The MDA console is enabled. + MOUSE Appropriate mouse support is enabled. + NET Appropriate network support is enabled. + NFS Appropriate NFS support is enabled. + PARIDE The ParIDE subsystem is enabled. + PCI PCI bus support is enabled. + PCMCIA The PCMCIA subsystem is enabled. + PNP Plug & Play support is enabled. + PS2 Appropriate PS/2 support is enabled. + RAM RAMdisc support is enabled. + SCSI Appropriate SCSI support is enabled. + SERIAL Serial support is enabled. + SMP The kernel is an SMP kernel. + SOUND Appropriate sound system support is enabled. + VGA The VGA console has been enabled. + VT Virtual terminal support is enabled. + XT IBM PC/XT support is enabled. + +In addition, the following text indicates that the option: + + BUGS= Relates to possible processor bugs on the said processor. + KNL Is a kernel start-up parameter. + +Note that ALL kernel parameters listed below are CASE SENSITIVE, and that +a trailing = on the name of any parameter states that that parameter will +be entered as an environment variable, whereas its absence indicates that +it will appear as a kernel argument readable via /proc/cmdline by programs +running once the system is up. + + 53c7xx= [HW,SCSI] + + adb_buttons= [HW,MOUSE] + + advansys= [HW,SCSI] + + aha152x= [HW,SCSI] + + aha1542= [HW,SCSI] + + aic7xxx= [HW,SCSI] + + AM53C974= [HW,SCSI] + + apm= [APM] Automatic Power Management. + + arcrimi= [HW,NET] + + atamouse= [HW,MOUSE] Atari Mouse. + + atascsi= [HW,SCSI] Atari SCSI. + + aztcd= [HW,CD] Aztec CD driver. + + baycom_par= [HW,AX25] BayCom Parallel Port AX.25 Modem. + + baycom_ser_fdx= [HW,AX25] BayCom Serial Port AX.25 Modem in Full + Duplex Mode. + + baycom_ser_hdx= [HW,AX25] BayCom Serial Port AX.25 Modem in Half + Duplex Mode. + + bmouse= [HW,MOUSE,PS2] Bus mouse. + + BusLogic= [HW,SCSI] + + cdu31a= [HW,CD] + + cm206= [HW,CD] + + com20020= [HW,NET] + + com90io= [HW,NET] + + com90xx= [HW,NET] + + console= + + cyclades= [HW,SERIAL] Cyclades multi-serial port adapter. + + debug [KNL] Enable kernel debugging. + + decnet= [HW,NET] + + digi= [HW,SERIAL] + + digiepca= [HW,SERIAL] + + dmascc= [HW,AX25,SERIAL] AX.25 Z80SCC driver with DMA + support available. + + dmasound= [HW,SOUND] + + dtc3181e= [HW,SCSI] + + eata= [HW,SCSI] + + eda= [HW,PS2] + + edb= [HW,PS2] + + ether= [HW,NET] Ethernet. + + fd_mcs= [HW,SCSI] + + fdomain= [HW,SCSI] + + floppy= [HW] + + ftape= [HW] Floppy Tape subsystem. + + gdth= [HW,SCSI] + + gscd= [HW,CD] + + gvp11= [HW,SCSI] + + hd= [EIDE] IDE and EIDE hard drive subsystem. + + hfmodem= [HW,AX25] + + HiSax= [HW,ISDN] + + hisax= [HW,ISDN] + + ibmmcascsi= [HW,MCA,SCSI] IBM MicroChannel SCSI adapter. + + icn= [HW,ISDN] + + in2000= [HW,SCSI] + + init= [KNL] + + ip= [PNP] + + isp16= [HW,CD] + + js_14= [HW,JOY] + + js_am= [HW,JOY] + + js_an= [HW,JOY] + + js_as= [HW.JOY] + + js_console= [HW,JOY] + + js_console2= [HW,JOY] + + js_console3= [HW,JOY] + + js_db9= [HW,JOY] + + js_db9_2= [HW,JOY] + + js_db9_3= [HW,JOY] + + js_tg= [HW,JOY] + + js_tg_2= [HW,JOY] + + js_tg_3= [HW,JOY] + + kbd-reset [VT] + + load_ramdisk= [RAM] + + lp= [LPT] Parallel Printer. + + ltpc= [HW] + + mac5380= [HW,SCSI] + + maxcpus= [SMP] States the maximum number of processors that + an SMP kernel should make use of. + + max_scsi_luns= [SCSI] + + mca-pentium [BUGS=ix86] + + mcd= [HW,CD] + + mcdx= [HW,CD] + + md= [HW] + + mdacon= [MDA] + + msmouse= [HW,MOUSE] Microsoft Mouse. + + ncr5380= [HW,SCSI] + + ncr53c400= [HW,SCSI] + + ncr53c400a= [HW,SCSI] + + ncr53c406a= [HW,SCSI] + + ncr53c8xx= [HW,SCSI] + + nfsaddrs= [NFS] + + nfsroot= [NFS] + + no387 [BUGS=ix86] Tells the kernel to use the 387 maths + emulation library even if a 387 maths coprocessor + is present. + + noapic [SMP,APIC] Tells the kernel not to make use of any + APIC that may be present on the system. + + no-halt [BUGS=ix86] + + noinitrd [RAM] Tells the kernel not to load any configured + initial ramdisc. + + no-scroll [VGA] + + nosmp [SMP] Tells an SMP kernel to act as a UP kernel. + + optcd= [HW,CD] + + panic= + + parport= [HW,LP] + + pas16= [HW,SCSI] + + pcbit= [HW,ISDN] + + pcd. [PARIDE] + + pci= [PCI] + + pd. [PARIDE] + + pf. [PARIDE] + + pg. [PARIDE] + + pirq= [SMP,APIC] + + plip= [LP,NET] Parallel port network link. + + profile= + + prompt_ramdisk= [RAM] Whether to prompt for ramdisk before loading + its contents into memory. + + pt. [PARIDE] + + ramdisk= [RAM] + + ramdisk_size= [RAM] + + ramdisk_start= [RAM] + + reboot= [BUGS=ix86] + + reserve= + + riscom8= [HW,SERIAL] + + ro [KNL] Mount root device read-only on boot. + + root= + + rw [KNL] Mount root device read-write on boot. + + sbpcd= [HW,CD] Soundblaster CD adapter. + + scsi_logging= [SCSI] + + sjcd= [HW,CD] + + sonycd535= [HW,CD] + + sound= [SOUND] + + soundmodem= [HW,AX25,SOUND] Sound cards used as AX.25 modems. + + specialix= [HW,SERIAL] Specialix multi-serial port adapter. + + st= [HW] + + st0x= [HW,SCSI] + + stram_swap= [HW] + + sym53c416= [HW,SCSI] + + sym53c8xx= [HW,SCSI] + + t128= [HW,SCSI] + + tmc8xx= [HW,SCSI] + + tmscsim= [HW,SCSI] + + tp720= [HW,PS2] + + u14-34f= [HW,SCSI] + + video= [FB] + + wd33c93= [HW,SCSI] + + wd7000= [HW,SCSI] + + wdt= [HW] + + xd= [HW,XT] + + xd_geo= [HW,XT] diff -u --recursive --new-file v2.3.4/linux/Documentation/video4linux/bttv/CONTRIBUTORS linux/Documentation/video4linux/bttv/CONTRIBUTORS --- v2.3.4/linux/Documentation/video4linux/bttv/CONTRIBUTORS Sun Aug 23 13:32:25 1998 +++ linux/Documentation/video4linux/bttv/CONTRIBUTORS Wed Jun 2 11:29:13 1999 @@ -3,7 +3,7 @@ Michael Chu AverMedia fix and more flexible card recognition -Alan Cox +Alan Cox Video4Linux interface and 2.1.x kernel adaptation Chris Kleitsch diff -u --recursive --new-file v2.3.4/linux/Documentation/video4linux/bttv/README.WINVIEW linux/Documentation/video4linux/bttv/README.WINVIEW --- v2.3.4/linux/Documentation/video4linux/bttv/README.WINVIEW Wed Dec 31 16:00:00 1969 +++ linux/Documentation/video4linux/bttv/README.WINVIEW Wed Jun 2 14:11:24 1999 @@ -0,0 +1,33 @@ + +Support for the Leadtek WinView 601 TV/FM by Jon Tombs + +This card is basically the same as all the rest (Bt484A, Philips tuner), +the main difference is that they have attached a programmable attenuator to 3 +GPIO lines in order to give some volume control. They have also stuck an +infra-red remote control decoded on the board, I will add support for this +when I get time (it simple generates an interrupt for each key press, with +the key code is placed in the GPIO port). + +I don't yet have any application to test the radio support. The tuner +frequency setting should work but it is possible that the audio multiplexer +is wrong. If it doesn't work, send me email. + + +- No Thanks to Leadtek they refused to answer any questions about their +hardware. The driver was written by visual inspection of the card. If you +use this driver, send an email insult to them, and tell them you won't +continue buying their hardware unless they support Linux. + +- Little thanks to Princeton Technology Corp (http://www.princeton.com.tw) +who make the audio attenuator. Their publicly available data-sheet available +on their web site doesn't include the chip programming information! Hidden +on their server are the full data-sheets, but don't ask how I found it. + +To use the driver I use the following options, the tuner and pll settings might +be different in your country + +insmod videodev +insmod i2c scan=1 i2c_debug=0 verbose=0 +insmod tuner type=1 debug=0 +insmod bttv pll=1 radio=1 card=17 + diff -u --recursive --new-file v2.3.4/linux/Makefile linux/Makefile --- v2.3.4/linux/Makefile Mon May 31 22:28:04 1999 +++ linux/Makefile Tue Jun 1 00:26:29 1999 @@ -1,6 +1,6 @@ VERSION = 2 PATCHLEVEL = 3 -SUBLEVEL = 4 +SUBLEVEL = 5 EXTRAVERSION = ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/) diff -u --recursive --new-file v2.3.4/linux/arch/i386/defconfig linux/arch/i386/defconfig --- v2.3.4/linux/arch/i386/defconfig Mon May 31 22:28:04 1999 +++ linux/arch/i386/defconfig Tue Jun 1 00:27:29 1999 @@ -302,9 +302,9 @@ CONFIG_USB_UHCI=y # CONFIG_USB_OHCI is not set # CONFIG_USB_OHCI_HCD is not set +CONFIG_USB_HUB=y CONFIG_USB_MOUSE=y CONFIG_USB_KBD=y -CONFIG_USB_HUB=y # CONFIG_USB_AUDIO is not set # CONFIG_USB_ACM is not set # CONFIG_USB_PRINTER is not set @@ -350,6 +350,7 @@ # CONFIG_MAC_PARTITION is not set # CONFIG_SMD_DISKLABEL is not set # CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_SGI_DISKLABEL is not set # CONFIG_NLS is not set # diff -u --recursive --new-file v2.3.4/linux/arch/i386/kernel/smp.c linux/arch/i386/kernel/smp.c --- v2.3.4/linux/arch/i386/kernel/smp.c Mon May 10 10:32:45 1999 +++ linux/arch/i386/kernel/smp.c Wed Jun 2 11:29:13 1999 @@ -2,7 +2,7 @@ * Intel MP v1.1/v1.4 specification support routines for multi-pentium * hosts. * - * (c) 1995 Alan Cox, CymruNET Ltd + * (c) 1995 Alan Cox, Building #3 * (c) 1998 Ingo Molnar * * Supported by Caldera http://www.caldera.com. diff -u --recursive --new-file v2.3.4/linux/drivers/acorn/block/ide-ics.c linux/drivers/acorn/block/ide-ics.c --- v2.3.4/linux/drivers/acorn/block/ide-ics.c Thu Dec 17 09:07:45 1998 +++ linux/drivers/acorn/block/ide-ics.c Tue Jun 1 23:25:48 1999 @@ -8,6 +8,7 @@ * 12-09-1997 RMK Added interrupt enable/disable */ +#include #include #include #include diff -u --recursive --new-file v2.3.4/linux/drivers/char/acquirewdt.c linux/drivers/char/acquirewdt.c --- v2.3.4/linux/drivers/char/acquirewdt.c Mon Aug 24 13:02:43 1998 +++ linux/drivers/char/acquirewdt.c Wed Jun 2 11:29:13 1999 @@ -3,8 +3,8 @@ * * Based on wdt.c. Original copyright messages: * - * (c) Copyright 1996 Alan Cox , All Rights Reserved. - * http://www.cymru.net + * (c) Copyright 1996 Alan Cox , All Rights Reserved. + * http://www.redhat.com * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -15,7 +15,7 @@ * warranty for any of this software. This material is provided * "AS-IS" and at no charge. * - * (c) Copyright 1995 Alan Cox + * (c) Copyright 1995 Alan Cox * */ diff -u --recursive --new-file v2.3.4/linux/drivers/char/pc110pad.c linux/drivers/char/pc110pad.c --- v2.3.4/linux/drivers/char/pc110pad.c Fri May 14 18:55:17 1999 +++ linux/drivers/char/pc110pad.c Wed Jun 2 11:29:13 1999 @@ -9,11 +9,11 @@ * This is read internally and used to synthesize a stream of * triples in the form expected from a PS/2 device. * - * 0.0 1997-05-16 Alan Cox - Pad reader + * 0.0 1997-05-16 Alan Cox - Pad reader * 0.1 1997-05-19 Robin O'Leary - PS/2 emulation * 0.2 1997-06-03 Robin O'Leary - tap gesture - * 0.3 1997-06-27 Alan Cox - 2.1 commit - * 0.4 1997-11-09 Alan Cox - Single Unix VFS API changes + * 0.3 1997-06-27 Alan Cox - 2.1 commit + * 0.4 1997-11-09 Alan Cox - Single Unix VFS API changes */ #include diff -u --recursive --new-file v2.3.4/linux/drivers/char/pms.c linux/drivers/char/pms.c --- v2.3.4/linux/drivers/char/pms.c Thu Dec 31 17:07:10 1998 +++ linux/drivers/char/pms.c Wed Jun 2 11:29:13 1999 @@ -10,7 +10,7 @@ * 14478 Potsdam, Germany * * Most of this code is directly derived from his userspace driver. - * His driver works so send any reports to alan@cymru.net unless the + * His driver works so send any reports to alan@redhat.com unless the * userspace driver also doesnt work for you... */ diff -u --recursive --new-file v2.3.4/linux/drivers/char/softdog.c linux/drivers/char/softdog.c --- v2.3.4/linux/drivers/char/softdog.c Sat Apr 24 17:49:37 1999 +++ linux/drivers/char/softdog.c Wed Jun 2 11:29:13 1999 @@ -1,8 +1,8 @@ /* * SoftDog 0.05: A Software Watchdog Device * - * (c) Copyright 1996 Alan Cox , All Rights Reserved. - * http://www.cymru.net + * (c) Copyright 1996 Alan Cox , All Rights Reserved. + * http://www.redhat.com * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License diff -u --recursive --new-file v2.3.4/linux/drivers/char/videodev.c linux/drivers/char/videodev.c --- v2.3.4/linux/drivers/char/videodev.c Thu Apr 15 05:42:40 1999 +++ linux/drivers/char/videodev.c Wed Jun 2 11:29:13 1999 @@ -9,7 +9,7 @@ * as published by the Free Software Foundation; either version * 2 of the License, or (at your option) any later version. * - * Author: Alan Cox, + * Author: Alan Cox, * * Fixes: */ diff -u --recursive --new-file v2.3.4/linux/drivers/char/wdt.c linux/drivers/char/wdt.c --- v2.3.4/linux/drivers/char/wdt.c Sat Oct 17 15:52:18 1998 +++ linux/drivers/char/wdt.c Wed Jun 2 11:29:13 1999 @@ -1,8 +1,8 @@ /* * Industrial Computer Source WDT500/501 driver for Linux 2.1.x * - * (c) Copyright 1996-1997 Alan Cox , All Rights Reserved. - * http://www.cymru.net + * (c) Copyright 1996-1997 Alan Cox , All Rights Reserved. + * http://www.redhat.com * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -15,7 +15,7 @@ * * (c) Copyright 1995 Alan Cox * - * Release 0.07. + * Release 0.08. * * Fixes * Dave Gregorich : Modularisation and minor bugs @@ -24,6 +24,8 @@ * Matt Crocker). * Alan Cox : Added wdt= boot option * Alan Cox : Cleaned up copy/user stuff + * Tim Hockin : Added insmod parameters, comment cleanup + * Parameterized timeout */ #include diff -u --recursive --new-file v2.3.4/linux/drivers/isdn/avmb1/b1pci.c linux/drivers/isdn/avmb1/b1pci.c --- v2.3.4/linux/drivers/isdn/avmb1/b1pci.c Mon May 31 22:28:05 1999 +++ linux/drivers/isdn/avmb1/b1pci.c Tue Jun 1 23:25:48 1999 @@ -46,6 +46,7 @@ */ #include +#include #include #include #include diff -u --recursive --new-file v2.3.4/linux/drivers/isdn/hisax/hscx_irq.c linux/drivers/isdn/hisax/hscx_irq.c --- v2.3.4/linux/drivers/isdn/hisax/hscx_irq.c Mon May 31 22:28:05 1999 +++ linux/drivers/isdn/hisax/hscx_irq.c Tue Jun 1 23:25:48 1999 @@ -42,6 +42,8 @@ * */ +#include + static inline void waitforCEC(struct IsdnCardState *cs, int hscx) diff -u --recursive --new-file v2.3.4/linux/drivers/isdn/hisax/telespci.c linux/drivers/isdn/hisax/telespci.c --- v2.3.4/linux/drivers/isdn/hisax/telespci.c Mon May 31 22:28:05 1999 +++ linux/drivers/isdn/hisax/telespci.c Tue Jun 1 23:25:48 1999 @@ -24,6 +24,7 @@ */ #define __NO_VERSION__ #include +#include #include "hisax.h" #include "isac.h" #include "hscx.h" diff -u --recursive --new-file v2.3.4/linux/drivers/misc/parport_ax.c linux/drivers/misc/parport_ax.c --- v2.3.4/linux/drivers/misc/parport_ax.c Mon Mar 15 16:11:30 1999 +++ linux/drivers/misc/parport_ax.c Tue Jun 1 23:25:48 1999 @@ -11,6 +11,7 @@ * Grant Guenther */ +#include #include #include #include diff -u --recursive --new-file v2.3.4/linux/drivers/misc/parport_procfs.c linux/drivers/misc/parport_procfs.c --- v2.3.4/linux/drivers/misc/parport_procfs.c Thu Jan 7 09:28:47 1999 +++ linux/drivers/misc/parport_procfs.c Tue Jun 1 23:25:48 1999 @@ -12,6 +12,7 @@ * Cleaned up include files - Russell King */ +#include #include #include #include diff -u --recursive --new-file v2.3.4/linux/drivers/misc/parport_share.c linux/drivers/misc/parport_share.c --- v2.3.4/linux/drivers/misc/parport_share.c Mon May 31 22:28:05 1999 +++ linux/drivers/misc/parport_share.c Tue Jun 1 23:25:48 1999 @@ -15,6 +15,8 @@ #include +#include + #include #include diff -u --recursive --new-file v2.3.4/linux/drivers/net/ptifddi.c linux/drivers/net/ptifddi.c --- v2.3.4/linux/drivers/net/ptifddi.c Tue Feb 10 12:56:45 1998 +++ linux/drivers/net/ptifddi.c Tue Jun 1 23:25:48 1999 @@ -8,6 +8,7 @@ static char *version = "ptifddi.c:v1.0 10/Dec/96 David S. Miller (davem@caipfs.rutgers.edu)\n"; +#include #include #include "ptifddi.h" diff -u --recursive --new-file v2.3.4/linux/drivers/net/shaper.c linux/drivers/net/shaper.c --- v2.3.4/linux/drivers/net/shaper.c Fri May 14 18:55:20 1999 +++ linux/drivers/net/shaper.c Wed Jun 2 11:29:13 1999 @@ -1,8 +1,8 @@ /* * Simple traffic shaper for Linux NET3. * - * (c) Copyright 1996 Alan Cox , All Rights Reserved. - * http://www.cymru.net + * (c) Copyright 1996 Alan Cox , All Rights Reserved. + * http://www.redhat.com * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License diff -u --recursive --new-file v2.3.4/linux/drivers/sbus/dvma.c linux/drivers/sbus/dvma.c --- v2.3.4/linux/drivers/sbus/dvma.c Sun Oct 4 10:22:44 1998 +++ linux/drivers/sbus/dvma.c Tue Jun 1 23:25:48 1999 @@ -4,6 +4,7 @@ */ #include +#include #include #include #include diff -u --recursive --new-file v2.3.4/linux/drivers/sound/audio.c linux/drivers/sound/audio.c --- v2.3.4/linux/drivers/sound/audio.c Mon Apr 12 16:18:27 1999 +++ linux/drivers/sound/audio.c Tue Jun 1 23:25:48 1999 @@ -20,10 +20,12 @@ * Thomas Sailer : use more logical O_NONBLOCK semantics * Daniel Rodriksson: reworked the use of the device specific copy_user * still generic + * Horst von Brand: Add missing #include */ #include #include +#include #include #include "sound_config.h" diff -u --recursive --new-file v2.3.4/linux/drivers/sound/bin2hex.c linux/drivers/sound/bin2hex.c --- v2.3.4/linux/drivers/sound/bin2hex.c Thu Mar 12 10:52:09 1998 +++ linux/drivers/sound/bin2hex.c Tue Jun 1 23:25:48 1999 @@ -1,4 +1,5 @@ #include +#include int main( int argc, const char * argv [] ) { diff -u --recursive --new-file v2.3.4/linux/drivers/sound/hex2hex.c linux/drivers/sound/hex2hex.c --- v2.3.4/linux/drivers/sound/hex2hex.c Thu May 14 10:33:17 1998 +++ linux/drivers/sound/hex2hex.c Tue Jun 1 23:25:48 1999 @@ -5,6 +5,7 @@ */ #include +#include #include #define ABANDON(why) { fprintf(stderr, "%s\n", why); exit(1); } diff -u --recursive --new-file v2.3.4/linux/drivers/sound/sound_timer.c linux/drivers/sound/sound_timer.c --- v2.3.4/linux/drivers/sound/sound_timer.c Thu May 14 10:33:17 1998 +++ linux/drivers/sound/sound_timer.c Tue Jun 1 23:25:48 1999 @@ -12,6 +12,7 @@ * Thomas Sailer : ioctl code reworked (vmalloc/vfree removed) */ #include +#include #include "sound_config.h" diff -u --recursive --new-file v2.3.4/linux/drivers/video/fbcmap.c linux/drivers/video/fbcmap.c --- v2.3.4/linux/drivers/video/fbcmap.c Tue Sep 29 20:56:33 1998 +++ linux/drivers/video/fbcmap.c Tue Jun 1 23:25:48 1999 @@ -8,6 +8,7 @@ * more details. */ +#include #include #include #include diff -u --recursive --new-file v2.3.4/linux/fs/binfmt_aout.c linux/fs/binfmt_aout.c --- v2.3.4/linux/fs/binfmt_aout.c Mon May 31 22:28:06 1999 +++ linux/fs/binfmt_aout.c Wed Jun 2 13:49:49 1999 @@ -307,7 +307,6 @@ struct file * file; int fd; unsigned long error; - unsigned long p = bprm->p; unsigned long fd_offset; unsigned long rlim; int retval; @@ -468,14 +467,18 @@ set_brk(current->mm->start_brk, current->mm->brk); - p = setup_arg_pages(p, bprm); + retval = setup_arg_pages(bprm); + if (retval < 0) { + /* Someone check-me: is this error path enough? */ + send_sig(SIGKILL, current, 0); + return retval; + } - p = (unsigned long) create_aout_tables((char *)p, bprm); - current->mm->start_stack = p; + current->mm->start_stack = create_aout_tables(bprm->p, bprm); #ifdef __alpha__ regs->gp = ex.a_gpvalue; #endif - start_thread(regs, ex.a_entry, p); + start_thread(regs, ex.a_entry, current->mm->start_stack); if (current->flags & PF_PTRACED) send_sig(SIGTRAP, current, 0); return 0; diff -u --recursive --new-file v2.3.4/linux/fs/binfmt_elf.c linux/fs/binfmt_elf.c --- v2.3.4/linux/fs/binfmt_elf.c Mon May 31 22:28:06 1999 +++ linux/fs/binfmt_elf.c Wed Jun 2 13:49:52 1999 @@ -573,13 +573,12 @@ passed_p = passed_fileno; if (elf_interpreter) { - bprm->p = copy_strings(1,&passed_p,bprm->page,bprm->p,2); + retval = copy_strings_kernel(1,&passed_p,bprm); + if (retval) + goto out_free_dentry; bprm->argc++; } } - retval = -E2BIG; - if (!bprm->p) - goto out_free_dentry; } /* Flush all traces of the currently running executable */ @@ -601,7 +600,7 @@ /* Do this so that we can load the interpreter, if need be. We will change some of these later */ current->mm->rss = 0; - bprm->p = setup_arg_pages(bprm->p, bprm); + setup_arg_pages(bprm); /* XXX: check error */ current->mm->start_stack = bprm->p; /* Try and get dynamic programs out of the way of the default mmap diff -u --recursive --new-file v2.3.4/linux/fs/binfmt_em86.c linux/fs/binfmt_em86.c --- v2.3.4/linux/fs/binfmt_em86.c Thu Aug 20 14:32:48 1998 +++ linux/fs/binfmt_em86.c Wed Jun 2 13:49:55 1999 @@ -65,16 +65,18 @@ * user environment and arguments are stored. */ remove_arg_zero(bprm); - bprm->p = copy_strings(1, &bprm->filename, bprm->page, bprm->p, 2); + retval = copy_strings_kernel(1, &bprm->filename, bprm); + if (retval < 0) return retval; bprm->argc++; if (i_arg) { - bprm->p = copy_strings(1, &i_arg, bprm->page, bprm->p, 2); + retval = copy_strings_kernel(1, &i_arg, bprm); + if (retval < 0) return retval; bprm->argc++; } - bprm->p = copy_strings(1, &i_name, bprm->page, bprm->p, 2); + retval = copy_strings_kernel(1, &i_name, bprm); + if (retval < 0) return retval; bprm->argc++; - if (!bprm->p) - return -E2BIG; + /* * OK, now restart the process with the interpreter's inode. * Note that we use open_namei() as the name is now in kernel diff -u --recursive --new-file v2.3.4/linux/fs/binfmt_java.c linux/fs/binfmt_java.c --- v2.3.4/linux/fs/binfmt_java.c Thu Aug 20 14:32:48 1998 +++ linux/fs/binfmt_java.c Wed Jun 2 13:49:58 1999 @@ -67,15 +67,18 @@ i_name++; else i_name = bprm->filename; - bprm->p = copy_strings(1, &i_name, bprm->page, bprm->p, 2); + + retval = copy_strings_kernel(1, &i_name, bprm); + if (retval < 0) + return retval; bprm->argc++; i_name = binfmt_java_interpreter; - bprm->p = copy_strings(1, &i_name, bprm->page, bprm->p, 2); + retval = copy_strings_kernel(1, &i_name, bprm); + if (retval < 0) + return retval; bprm->argc++; - if (!bprm->p) - return -E2BIG; /* * OK, now restart the process with the interpreter's dentry. */ @@ -114,15 +117,15 @@ */ remove_arg_zero(bprm); i_name = bprm->filename; - bprm->p = copy_strings(1, &i_name, bprm->page, bprm->p, 2); + retval = copy_strings_kernel(1, &i_name, bprm); + if (retval < 0) return retval; bprm->argc++; i_name = binfmt_java_appletviewer; - bprm->p = copy_strings(1, &i_name, bprm->page, bprm->p, 2); + retval = copy_strings_kernel(1, &i_name, bprm); + if (retval < 0) return retval; bprm->argc++; - if (!bprm->p) - return -E2BIG; /* * OK, now restart the process with the interpreter's dentry. */ diff -u --recursive --new-file v2.3.4/linux/fs/binfmt_misc.c linux/fs/binfmt_misc.c --- v2.3.4/linux/fs/binfmt_misc.c Sat Jan 2 17:55:06 1999 +++ linux/fs/binfmt_misc.c Wed Jun 2 13:50:01 1999 @@ -210,13 +210,12 @@ /* Build args for interpreter */ remove_arg_zero(bprm); - bprm->p = copy_strings(1, &bprm->filename, bprm->page, bprm->p, 2); + retval = copy_strings_kernel(1, &bprm->filename, bprm); + if (retval < 0) goto _ret; bprm->argc++; - bprm->p = copy_strings(1, &iname_addr, bprm->page, bprm->p, 2); + retval = copy_strings_kernel(1, &iname_addr, bprm); + if (retval < 0) goto _ret; bprm->argc++; - retval = -E2BIG; - if (!bprm->p) - goto _ret; bprm->filename = iname; /* for binfmt_script */ dentry = open_namei(iname, 0, 0); diff -u --recursive --new-file v2.3.4/linux/fs/binfmt_script.c linux/fs/binfmt_script.c --- v2.3.4/linux/fs/binfmt_script.c Thu Aug 20 14:32:48 1998 +++ linux/fs/binfmt_script.c Wed Jun 2 13:50:04 1999 @@ -66,16 +66,17 @@ * user environment and arguments are stored. */ remove_arg_zero(bprm); - bprm->p = copy_strings(1, &bprm->filename, bprm->page, bprm->p, 2); + retval = copy_strings_kernel(1, &bprm->filename, bprm); + if (retval < 0) return retval; bprm->argc++; if (i_arg) { - bprm->p = copy_strings(1, &i_arg, bprm->page, bprm->p, 2); + retval = copy_strings_kernel(1, &i_arg, bprm); + if (retval < 0) return retval; bprm->argc++; } - bprm->p = copy_strings(1, &i_name, bprm->page, bprm->p, 2); + retval = copy_strings_kernel(1, &i_name, bprm); + if (retval) return retval; bprm->argc++; - if (!bprm->p) - return -E2BIG; /* * OK, now restart the process with the interpreter's dentry. */ diff -u --recursive --new-file v2.3.4/linux/fs/coda/cnode.c linux/fs/coda/cnode.c --- v2.3.4/linux/fs/coda/cnode.c Fri May 14 18:55:24 1999 +++ linux/fs/coda/cnode.c Tue Jun 1 23:25:47 1999 @@ -3,6 +3,7 @@ */ #include +#include #include #include diff -u --recursive --new-file v2.3.4/linux/fs/coda/psdev.c linux/fs/coda/psdev.c --- v2.3.4/linux/fs/coda/psdev.c Fri May 14 18:55:24 1999 +++ linux/fs/coda/psdev.c Wed Jun 2 11:29:13 1999 @@ -2,7 +2,7 @@ * An implementation of a loadable kernel mode driver providing * multiple kernel/user space bidirectional communications links. * - * Author: Alan Cox + * Author: Alan Cox * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License diff -u --recursive --new-file v2.3.4/linux/fs/devpts/inode.c linux/fs/devpts/inode.c --- v2.3.4/linux/fs/devpts/inode.c Thu Aug 20 18:33:50 1998 +++ linux/fs/devpts/inode.c Tue Jun 1 23:25:47 1999 @@ -12,6 +12,7 @@ #include +#include #include #include #include diff -u --recursive --new-file v2.3.4/linux/fs/efs/namei.c linux/fs/efs/namei.c --- v2.3.4/linux/fs/efs/namei.c Sat May 15 23:46:04 1999 +++ linux/fs/efs/namei.c Tue Jun 1 23:25:48 1999 @@ -6,6 +6,7 @@ * Portions derived from work (c) 1995,1996 Christian Vogelgsang. */ +#include #include static efs_ino_t efs_find_entry(struct inode *inode, const char *name, int len) { diff -u --recursive --new-file v2.3.4/linux/fs/efs/symlink.c linux/fs/efs/symlink.c --- v2.3.4/linux/fs/efs/symlink.c Sat May 15 23:46:04 1999 +++ linux/fs/efs/symlink.c Tue Jun 1 23:25:48 1999 @@ -6,6 +6,7 @@ * Portions derived from work (c) 1995,1996 Christian Vogelgsang. */ +#include #include #include diff -u --recursive --new-file v2.3.4/linux/fs/exec.c linux/fs/exec.c --- v2.3.4/linux/fs/exec.c Mon May 31 22:28:06 1999 +++ linux/fs/exec.c Wed Jun 2 13:50:07 1999 @@ -222,78 +222,64 @@ } /* - * 'copy_string()' copies argument/envelope strings from user + * 'copy_strings()' copies argument/envelope strings from user * memory to free pages in kernel mem. These are in a format ready * to be put directly into the top of new user memory. - * - * Modified by TYT, 11/24/91 to add the from_kmem argument, which specifies - * whether the string and the string array are from user or kernel segments: - * - * from_kmem argv * argv ** - * 0 user space user space - * 1 kernel space user space - * 2 kernel space kernel space - * - * We do this by playing games with the fs segment register. Since it - * is expensive to load a segment register, we try to avoid calling - * set_fs() unless we absolutely have to. - */ -unsigned long copy_strings(int argc,char ** argv,unsigned long *page, - unsigned long p, int from_kmem) -{ - char *str; - mm_segment_t old_fs; - - if (!p) - return 0; /* bullet-proofing */ - old_fs = get_fs(); - if (from_kmem==2) - set_fs(KERNEL_DS); + */ +int copy_strings(int argc,char ** argv, struct linux_binprm *bprm) +{ while (argc-- > 0) { + char *str; int len; unsigned long pos; - if (from_kmem == 1) - set_fs(KERNEL_DS); - get_user(str, argv+argc); - if (!str) - panic("VFS: argc is wrong"); - if (from_kmem == 1) - set_fs(old_fs); - len = strlen_user(str); /* includes the '\0' */ - if (p < len) { /* this shouldn't happen - 128kB */ - set_fs(old_fs); - return 0; - } - p -= len; - pos = p; + if (get_user(str, argv+argc) || !str || !(len = strlen_user(str))) + return -EFAULT; + if (bprm->p < len) + return -E2BIG; + + bprm->p -= len; + /* XXX: add architecture specific overflow check here. */ + + pos = bprm->p; while (len) { char *pag; int offset, bytes_to_copy; offset = pos % PAGE_SIZE; - if (!(pag = (char *) page[pos/PAGE_SIZE]) && - !(pag = (char *) page[pos/PAGE_SIZE] = - (unsigned long *) get_free_page(GFP_USER))) { - if (from_kmem==2) - set_fs(old_fs); - return 0; - } + if (!(pag = (char *) bprm->page[pos/PAGE_SIZE]) && + !(pag = (char *) bprm->page[pos/PAGE_SIZE] = + (unsigned long *) get_free_page(GFP_USER))) + return -ENOMEM; + bytes_to_copy = PAGE_SIZE - offset; if (bytes_to_copy > len) bytes_to_copy = len; - copy_from_user(pag + offset, str, bytes_to_copy); + if (copy_from_user(pag + offset, str, bytes_to_copy)) + return -EFAULT; + pos += bytes_to_copy; str += bytes_to_copy; len -= bytes_to_copy; } } - if (from_kmem==2) - set_fs(old_fs); - return p; + return 0; } -unsigned long setup_arg_pages(unsigned long p, struct linux_binprm * bprm) +/* + * Like copy_strings, but get argv and its values from kernel memory. + */ +int copy_strings_kernel(int argc,char ** argv, struct linux_binprm *bprm) +{ + int r; + mm_segment_t oldfs = get_fs(); + set_fs(KERNEL_DS); + r = copy_strings(argc, argv, bprm); + set_fs(oldfs); + return r; +} + +int setup_arg_pages(struct linux_binprm *bprm) { unsigned long stack_base; struct vm_area_struct *mpnt; @@ -301,15 +287,18 @@ stack_base = STACK_TOP - MAX_ARG_PAGES*PAGE_SIZE; - p += stack_base; + bprm->p += stack_base; if (bprm->loader) bprm->loader += stack_base; bprm->exec += stack_base; mpnt = kmem_cache_alloc(vm_area_cachep, SLAB_KERNEL); - if (mpnt) { + if (!mpnt) + return -ENOMEM; + + { mpnt->vm_mm = current->mm; - mpnt->vm_start = PAGE_MASK & (unsigned long) p; + mpnt->vm_start = PAGE_MASK & (unsigned long) bprm->p; mpnt->vm_end = STACK_TOP; mpnt->vm_page_prot = PAGE_COPY; mpnt->vm_flags = VM_STACK_FLAGS; @@ -319,7 +308,7 @@ mpnt->vm_pte = 0; insert_vm_struct(current->mm, mpnt); current->mm->total_vm = (mpnt->vm_end - mpnt->vm_start) >> PAGE_SHIFT; - } + } for (i = 0 ; i < MAX_ARG_PAGES ; i++) { if (bprm->page[i]) { @@ -328,7 +317,8 @@ } stack_base += PAGE_SIZE; } - return p; + + return 0; } /* @@ -804,8 +794,7 @@ int i; bprm.p = PAGE_SIZE*MAX_ARG_PAGES-sizeof(void *); - for (i=0 ; i= 0) { - bprm.p = copy_strings(1, &bprm.filename, bprm.page, bprm.p, 2); - bprm.exec = bprm.p; - bprm.p = copy_strings(bprm.envc,envp,bprm.page,bprm.p,0); - bprm.p = copy_strings(bprm.argc,argv,bprm.page,bprm.p,0); - if (!bprm.p) - retval = -E2BIG; - } + if (retval < 0) + goto out; - if (retval >= 0) - retval = search_binary_handler(&bprm,regs); + retval = copy_strings_kernel(1, &bprm.filename, &bprm); + if (retval < 0) + goto out; + + bprm.exec = bprm.p; + retval = copy_strings(bprm.envc, envp, &bprm); + if (retval < 0) + goto out; + + retval = copy_strings(bprm.argc, argv, &bprm); + if (retval < 0) + goto out; + + retval = search_binary_handler(&bprm,regs); if (retval >= 0) /* execve success */ return retval; +out: /* Something went wrong, return the inode and free the argument pages*/ if (bprm.dentry) dput(bprm.dentry); + /* Assumes that free_page() can take a NULL argument. */ + /* I hope this is ok for all architectures */ for (i=0 ; i #include #include #include diff -u --recursive --new-file v2.3.4/linux/fs/hpfs/buffer.c linux/fs/hpfs/buffer.c --- v2.3.4/linux/fs/hpfs/buffer.c Sat May 15 23:46:04 1999 +++ linux/fs/hpfs/buffer.c Tue Jun 1 23:25:47 1999 @@ -6,6 +6,7 @@ * general buffer i/o */ +#include #include "hpfs_fn.h" void hpfs_lock_creation(struct super_block *s) diff -u --recursive --new-file v2.3.4/linux/fs/hpfs/ea.c linux/fs/hpfs/ea.c --- v2.3.4/linux/fs/hpfs/ea.c Sat May 15 23:46:04 1999 +++ linux/fs/hpfs/ea.c Tue Jun 1 23:25:47 1999 @@ -6,6 +6,7 @@ * handling extended attributes */ +#include #include "hpfs_fn.h" /* Remove external extended attributes. ano specifies wheter a is a diff -u --recursive --new-file v2.3.4/linux/fs/hpfs/file.c linux/fs/hpfs/file.c --- v2.3.4/linux/fs/hpfs/file.c Mon May 17 09:55:22 1999 +++ linux/fs/hpfs/file.c Tue Jun 1 23:25:47 1999 @@ -6,6 +6,7 @@ * file VFS functions */ +#include #include "hpfs_fn.h" int hpfs_open(struct inode *i, struct file *f) diff -u --recursive --new-file v2.3.4/linux/fs/hpfs/name.c linux/fs/hpfs/name.c --- v2.3.4/linux/fs/hpfs/name.c Mon May 17 09:55:22 1999 +++ linux/fs/hpfs/name.c Tue Jun 1 23:25:47 1999 @@ -6,6 +6,7 @@ * operations with filenames */ +#include #include "hpfs_fn.h" char *text_postfix[]={ diff -u --recursive --new-file v2.3.4/linux/fs/hpfs/namei.c linux/fs/hpfs/namei.c --- v2.3.4/linux/fs/hpfs/namei.c Mon May 17 09:55:22 1999 +++ linux/fs/hpfs/namei.c Tue Jun 1 23:25:47 1999 @@ -6,6 +6,7 @@ * adding & removing files & directories */ +#include #include "hpfs_fn.h" int hpfs_mkdir(struct inode *dir, struct dentry *dentry, int mode) diff -u --recursive --new-file v2.3.4/linux/fs/hpfs/super.c linux/fs/hpfs/super.c --- v2.3.4/linux/fs/hpfs/super.c Mon May 17 09:55:22 1999 +++ linux/fs/hpfs/super.c Tue Jun 1 23:25:47 1999 @@ -6,6 +6,7 @@ * mouning, unmounting, error handling */ +#include #include "hpfs_fn.h" #include diff -u --recursive --new-file v2.3.4/linux/fs/isofs/symlink.c linux/fs/isofs/symlink.c --- v2.3.4/linux/fs/isofs/symlink.c Sat Sep 19 13:42:23 1998 +++ linux/fs/isofs/symlink.c Tue Jun 1 23:25:47 1999 @@ -9,6 +9,7 @@ * extensions to iso9660 */ +#include #include #include #include diff -u --recursive --new-file v2.3.4/linux/fs/lockd/svcshare.c linux/fs/lockd/svcshare.c --- v2.3.4/linux/fs/lockd/svcshare.c Mon Apr 7 11:35:30 1997 +++ linux/fs/lockd/svcshare.c Tue Jun 1 23:25:47 1999 @@ -8,6 +8,7 @@ #include #include +#include #include #include diff -u --recursive --new-file v2.3.4/linux/fs/lockd/svcsubs.c linux/fs/lockd/svcsubs.c --- v2.3.4/linux/fs/lockd/svcsubs.c Fri May 14 18:55:24 1999 +++ linux/fs/lockd/svcsubs.c Tue Jun 1 23:25:47 1999 @@ -7,6 +7,7 @@ */ #include +#include #include #include #include diff -u --recursive --new-file v2.3.4/linux/fs/ncpfs/file.c linux/fs/ncpfs/file.c --- v2.3.4/linux/fs/ncpfs/file.c Sat May 15 23:46:04 1999 +++ linux/fs/ncpfs/file.c Wed Jun 2 11:30:24 1999 @@ -21,7 +21,7 @@ #include #include "ncplib_kernel.h" -static inline int min(int a, int b) +static inline unsigned int min(unsigned int a, unsigned int b) { return a < b ? a : b; } @@ -99,9 +99,10 @@ struct inode *inode = dentry->d_inode; size_t already_read = 0; off_t pos; - int bufsize, error; + size_t bufsize; + int error; void* freepage; - int freelen; + size_t freelen; DPRINTK(KERN_DEBUG "ncp_file_read: enter %s/%s\n", dentry->d_parent->d_name.name, dentry->d_name.name); @@ -121,10 +122,12 @@ goto out; } - pos = file->f_pos; + pos = *ppos; +/* leave it out on server ... if (pos + count > inode->i_size) { count = inode->i_size - pos; } +*/ error = 0; if (!count) /* size_t is never < 0 */ goto out; @@ -146,7 +149,7 @@ /* First read in as much as possible for each bufsize. */ while (already_read < count) { int read_this_time; - int to_read = min(bufsize - (pos % bufsize), + size_t to_read = min(bufsize - (pos % bufsize), count - already_read); error = ncp_read_bounce(NCP_SERVER(inode), @@ -162,13 +165,13 @@ buf += read_this_time; already_read += read_this_time; - if (read_this_time < to_read) { + if (read_this_time != to_read) { break; } } kfree(freepage); - file->f_pos = pos; + *ppos = pos; if (!IS_RDONLY(inode)) { inode->i_atime = CURRENT_TIME; @@ -187,7 +190,8 @@ struct inode *inode = dentry->d_inode; size_t already_written = 0; off_t pos; - int bufsize, errno; + size_t bufsize; + int errno; void* bouncebuffer; DPRINTK(KERN_DEBUG "ncp_file_write: enter %s/%s\n", @@ -213,7 +217,7 @@ printk(KERN_ERR "ncp_file_write: open failed, error=%d\n", errno); return errno; } - pos = file->f_pos; + pos = *ppos; if (file->f_flags & O_APPEND) { pos = inode->i_size; @@ -227,7 +231,7 @@ return -EIO; /* -ENOMEM */ while (already_written < count) { int written_this_time; - int to_write = min(bufsize - (pos % bufsize), + size_t to_write = min(bufsize - (pos % bufsize), count - already_written); if (copy_from_user(bouncebuffer, buf, to_write)) { @@ -244,14 +248,14 @@ buf += written_this_time; already_written += written_this_time; - if (written_this_time < to_write) { + if (written_this_time != to_write) { break; } } kfree(bouncebuffer); inode->i_mtime = inode->i_atime = CURRENT_TIME; - file->f_pos = pos; + *ppos = pos; if (pos > inode->i_size) { inode->i_size = pos; diff -u --recursive --new-file v2.3.4/linux/fs/nfs/file.c linux/fs/nfs/file.c --- v2.3.4/linux/fs/nfs/file.c Sat May 8 20:01:19 1999 +++ linux/fs/nfs/file.c Wed Jun 2 13:46:59 1999 @@ -27,6 +27,7 @@ #include #include +#include #include #include @@ -75,7 +76,7 @@ NULL, /* truncate */ NULL, /* permission */ NULL, /* smap */ - nfs_updatepage, /* updatepage */ + NULL, /* updatepage */ nfs_revalidate, /* revalidate */ }; @@ -156,6 +157,25 @@ return status; } +/* + * This does the "real" work of the write. The generic routine has + * allocated the page, locked it, done all the page alignment stuff + * calculations etc. Now we should just copy the data from user + * space and write it back to the real medium.. + * + * If the writer ends up delaying the write, the writer needs to + * increment the page use counts until he is done with the page. + */ +static long nfs_write_one_page(struct file *file, struct page *page, unsigned long offset, unsigned long bytes, const char * buf) +{ + long status; + + bytes -= copy_from_user((u8*)page_address(page) + offset, buf, bytes); + status = -EFAULT; + if (bytes) + status = nfs_updatepage(file, page, offset, bytes); + return status; +} /* * Write to a file (through the page cache). @@ -182,7 +202,7 @@ if (!count) goto out; - result = generic_file_write(file, buf, count, ppos); + result = generic_file_write(file, buf, count, ppos, nfs_write_one_page); out: return result; diff -u --recursive --new-file v2.3.4/linux/fs/nfs/write.c linux/fs/nfs/write.c --- v2.3.4/linux/fs/nfs/write.c Fri May 14 18:55:26 1999 +++ linux/fs/nfs/write.c Tue Jun 1 10:41:07 1999 @@ -408,17 +408,17 @@ * things with a page scheduled for an RPC call (e.g. invalidate it). */ int -nfs_updatepage(struct file *file, struct page *page, unsigned long offset, unsigned int count, int sync) +nfs_updatepage(struct file *file, struct page *page, unsigned long offset, unsigned int count) { struct dentry *dentry = file->f_dentry; struct inode *inode = dentry->d_inode; struct nfs_wreq *req; - int synchronous = sync; + int synchronous = file->f_flags & O_SYNC; int retval; - dprintk("NFS: nfs_updatepage(%s/%s %d@%ld, sync=%d)\n", + dprintk("NFS: nfs_updatepage(%s/%s %d@%ld)\n", dentry->d_parent->d_name.name, dentry->d_name.name, - count, page->offset+offset, sync); + count, page->offset+offset); /* * Try to find a corresponding request on the writeback queue. @@ -454,7 +454,7 @@ file->f_count++; /* Schedule request */ - synchronous = schedule_write_request(req, sync); + synchronous = schedule_write_request(req, synchronous); updated: if (req->wb_bytes == PAGE_SIZE) diff -u --recursive --new-file v2.3.4/linux/fs/ntfs/util.c linux/fs/ntfs/util.c --- v2.3.4/linux/fs/ntfs/util.c Sat Jan 2 10:24:46 1999 +++ linux/fs/ntfs/util.c Tue Jun 1 23:25:47 1999 @@ -12,6 +12,7 @@ #include "struct.h" #include "util.h" +#include #include /* FreeBSD doesn't seem to have EILSEQ in errno.h */ #ifndef EILSEQ diff -u --recursive --new-file v2.3.4/linux/fs/qnx4/inode.c linux/fs/qnx4/inode.c --- v2.3.4/linux/fs/qnx4/inode.c Fri May 14 18:55:26 1999 +++ linux/fs/qnx4/inode.c Tue Jun 1 23:25:47 1999 @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include diff -u --recursive --new-file v2.3.4/linux/fs/qnx4/symlinks.c linux/fs/qnx4/symlinks.c --- v2.3.4/linux/fs/qnx4/symlinks.c Mon Jan 4 11:42:43 1999 +++ linux/fs/qnx4/symlinks.c Tue Jun 1 23:25:47 1999 @@ -13,6 +13,7 @@ /* THIS FILE HAS TO BE REWRITTEN */ +#include #include #include #include diff -u --recursive --new-file v2.3.4/linux/fs/smbfs/file.c linux/fs/smbfs/file.c --- v2.3.4/linux/fs/smbfs/file.c Wed Feb 17 15:59:32 1999 +++ linux/fs/smbfs/file.c Wed Jun 2 13:46:59 1999 @@ -188,13 +188,13 @@ } static int -smb_updatepage(struct file *file, struct page *page, unsigned long offset, unsigned int count, int sync) +smb_updatepage(struct file *file, struct page *page, unsigned long offset, unsigned int count) { struct dentry *dentry = file->f_dentry; - pr_debug("SMBFS: smb_updatepage(%s/%s %d@%ld, sync=%d)\n", + pr_debug("SMBFS: smb_updatepage(%s/%s %d@%ld)\n", dentry->d_parent->d_name.name, dentry->d_name.name, - count, page->offset+offset, sync); + count, page->offset+offset); return smb_writepage_sync(dentry, page, offset, count); } @@ -256,6 +256,26 @@ return status; } +/* + * This does the "real" work of the write. The generic routine has + * allocated the page, locked it, done all the page alignment stuff + * calculations etc. Now we should just copy the data from user + * space and write it back to the real medium.. + * + * If the writer ends up delaying the write, the writer needs to + * increment the page use counts until he is done with the page. + */ +static long smb_write_one_page(struct file *file, struct page *page, unsigned long offset, unsigned long bytes, const char * buf) +{ + long status; + + bytes -= copy_from_user((u8*)page_address(page) + offset, buf, bytes); + status = -EFAULT; + if (bytes) + status = smb_updatepage(file, page, offset, bytes); + return status; +} + /* * Write to a file (through the page cache). */ @@ -287,7 +307,7 @@ if (count > 0) { - result = generic_file_write(file, buf, count, ppos); + result = generic_file_write(file, buf, count, ppos, smb_write_one_page); #ifdef SMBFS_DEBUG_VERBOSE printk("smb_file_write: pos=%ld, size=%ld, mtime=%ld, atime=%ld\n", (long) file->f_pos, dentry->d_inode->i_size, dentry->d_inode->i_mtime, @@ -386,6 +406,6 @@ NULL, /* truncate */ smb_file_permission, /* permission */ NULL, /* smap */ - smb_updatepage, /* updatepage */ + NULL, /* updatepage */ smb_revalidate_inode, /* revalidate */ }; diff -u --recursive --new-file v2.3.4/linux/fs/ufs/util.c linux/fs/ufs/util.c --- v2.3.4/linux/fs/ufs/util.c Fri Oct 16 11:53:20 1998 +++ linux/fs/ufs/util.c Tue Jun 1 23:25:47 1999 @@ -6,6 +6,7 @@ * Charles University, Faculty of Mathematics and Physics */ +#include #include #include diff -u --recursive --new-file v2.3.4/linux/include/asm-i386/locks.h linux/include/asm-i386/locks.h --- v2.3.4/linux/include/asm-i386/locks.h Mon Jan 11 10:11:58 1999 +++ linux/include/asm-i386/locks.h Wed Jun 2 11:29:13 1999 @@ -2,7 +2,7 @@ * SMP locks primitives for building ix86 locks * (not yet used). * - * Alan Cox, alan@cymru.net, 1995 + * Alan Cox, alan@redhat.com, 1995 */ /* diff -u --recursive --new-file v2.3.4/linux/include/asm-i386/softirq.h linux/include/asm-i386/softirq.h --- v2.3.4/linux/include/asm-i386/softirq.h Mon May 31 22:28:06 1999 +++ linux/include/asm-i386/softirq.h Wed Jun 2 13:54:53 1999 @@ -6,6 +6,15 @@ extern unsigned int local_bh_count[NR_CPUS]; +#define cpu_bh_disable(cpu) do { local_bh_count[(cpu)]++; barrier(); } while (0) +#define cpu_bh_enable(cpu) do { barrier(); local_bh_count[(cpu)]--; } while (0) + +#define cpu_bh_trylock(cpu) (local_bh_count[(cpu)] ? 0 : (local_bh_count[(cpu)] = 1)) +#define cpu_bh_endlock(cpu) (local_bh_count[(cpu)] = 0) + +#define local_bh_disable() cpu_bh_disable(smp_processor_id()) +#define local_bh_enable() cpu_bh_enable(smp_processor_id()) + #define get_active_bhs() (bh_mask & bh_active) #define clear_active_bhs(x) atomic_clear_mask((x),&bh_active) @@ -40,13 +49,6 @@ extern void synchronize_bh(void); -/* - * This is suboptimal. We only need to disable bh's locally - * on this CPU... - */ -#define local_bh_disable() atomic_inc(&global_bh_lock) -#define local_bh_enable() atomic_dec(&global_bh_lock) - static inline void start_bh_atomic(void) { atomic_inc(&global_bh_lock); @@ -61,19 +63,20 @@ /* These are for the IRQs testing the lock */ static inline int softirq_trylock(int cpu) { - if (!test_and_set_bit(0,&global_bh_count)) { - if (atomic_read(&global_bh_lock) == 0) { - ++local_bh_count[cpu]; - return 1; + if (cpu_bh_trylock(cpu)) { + if (!test_and_set_bit(0,&global_bh_count)) { + if (atomic_read(&global_bh_lock) == 0) + return 1; + clear_bit(0,&global_bh_count); } - clear_bit(0,&global_bh_count); + cpu_bh_endlock(cpu); } return 0; } static inline void softirq_endlock(int cpu) { - local_bh_count[cpu]--; + cpu_bh_enable(cpu); clear_bit(0,&global_bh_count); } @@ -81,22 +84,19 @@ extern inline void start_bh_atomic(void) { - local_bh_count[smp_processor_id()]++; + local_bh_disable(); barrier(); } extern inline void end_bh_atomic(void) { barrier(); - local_bh_count[smp_processor_id()]--; + local_bh_enable(); } -#define local_bh_disable() (local_bh_count[smp_processor_id()]++) -#define local_bh_enable() (local_bh_count[smp_processor_id()]--) - /* These are for the irq's testing the lock */ -#define softirq_trylock(cpu) (local_bh_count[cpu] ? 0 : (local_bh_count[cpu]=1)) -#define softirq_endlock(cpu) (local_bh_count[cpu] = 0) +#define softirq_trylock(cpu) (cpu_bh_trylock(cpu)) +#define softirq_endlock(cpu) (cpu_bh_endlock(cpu)) #define synchronize_bh() barrier() #endif /* SMP */ diff -u --recursive --new-file v2.3.4/linux/include/linux/binfmts.h linux/include/linux/binfmts.h --- v2.3.4/linux/include/linux/binfmts.h Tue May 11 13:04:00 1999 +++ linux/include/linux/binfmts.h Wed Jun 2 13:54:56 1999 @@ -19,7 +19,7 @@ struct linux_binprm{ char buf[128]; unsigned long page[MAX_ARG_PAGES]; - unsigned long p; + unsigned long p; /* current top of mem */ int sh_bang; int java; /* Java binary, prevent recursive invocation */ struct dentry * dentry; @@ -63,14 +63,16 @@ extern void remove_arg_zero(struct linux_binprm *); extern int search_binary_handler(struct linux_binprm *,struct pt_regs *); extern int flush_old_exec(struct linux_binprm * bprm); -extern unsigned long setup_arg_pages(unsigned long p, struct linux_binprm * bprm); -extern unsigned long copy_strings(int argc,char ** argv,unsigned long *page, - unsigned long p, int from_kmem); - +extern int setup_arg_pages(struct linux_binprm * bprm); +extern int copy_strings(int argc,char ** argv,struct linux_binprm *bprm); +extern int copy_strings_kernel(int argc,char ** argv,struct linux_binprm *bprm); extern void compute_creds(struct linux_binprm *binprm); -/* this eventually goes away */ + +#if 0 +/* this went away now */ #define change_ldt(a,b) setup_arg_pages(a,b) +#endif #endif /* __KERNEL__ */ #endif /* _LINUX_BINFMTS_H */ diff -u --recursive --new-file v2.3.4/linux/include/linux/fs.h linux/include/linux/fs.h --- v2.3.4/linux/include/linux/fs.h Mon May 17 09:55:23 1999 +++ linux/include/linux/fs.h Wed Jun 2 13:54:54 1999 @@ -625,7 +625,7 @@ void (*truncate) (struct inode *); int (*permission) (struct inode *, int); int (*smap) (struct inode *,int); - int (*updatepage) (struct file *, struct page *, unsigned long, unsigned int, int); + int (*updatepage) (struct file *, struct page *, unsigned long, unsigned int); int (*revalidate) (struct dentry *); }; @@ -874,10 +874,12 @@ extern int brw_page(int, struct page *, kdev_t, int [], int, int); +typedef long (*writepage_t)(struct file *, struct page *, unsigned long, unsigned long, const char *); + extern int generic_readpage(struct file *, struct page *); extern int generic_file_mmap(struct file *, struct vm_area_struct *); extern ssize_t generic_file_read(struct file *, char *, size_t, loff_t *); -extern ssize_t generic_file_write(struct file *, const char*, size_t, loff_t*); +extern ssize_t generic_file_write(struct file *, const char*, size_t, loff_t *, writepage_t); extern struct super_block *get_super(kdev_t dev); extern void put_super(kdev_t dev); diff -u --recursive --new-file v2.3.4/linux/include/linux/if_ether.h linux/include/linux/if_ether.h --- v2.3.4/linux/include/linux/if_ether.h Wed Dec 16 13:35:50 1998 +++ linux/include/linux/if_ether.h Wed Jun 2 11:29:13 1999 @@ -9,7 +9,7 @@ * * Author: Fred N. van Kempen, * Donald Becker, - * Alan Cox, + * Alan Cox, * Steve Whitehouse, * * This program is free software; you can redistribute it and/or diff -u --recursive --new-file v2.3.4/linux/include/linux/if_fddi.h linux/include/linux/if_fddi.h --- v2.3.4/linux/include/linux/if_fddi.h Fri May 8 00:08:02 1998 +++ linux/include/linux/if_fddi.h Wed Jun 2 11:29:13 1999 @@ -12,7 +12,7 @@ * if_fddi.h is based on previous if_ether.h and if_tr.h work by * Fred N. van Kempen, * Donald Becker, - * Alan Cox, + * Alan Cox, * Steve Whitehouse, * Peter De Schrijver, * diff -u --recursive --new-file v2.3.4/linux/include/linux/if_hippi.h linux/include/linux/if_hippi.h --- v2.3.4/linux/include/linux/if_hippi.h Tue May 11 13:03:59 1999 +++ linux/include/linux/if_hippi.h Wed Jun 2 13:54:53 1999 @@ -9,7 +9,7 @@ * * Author: Fred N. van Kempen, * Donald Becker, - * Alan Cox, + * Alan Cox, * Steve Whitehouse, * Jes Sorensen, * diff -u --recursive --new-file v2.3.4/linux/include/linux/nfs_fs.h linux/include/linux/nfs_fs.h --- v2.3.4/linux/include/linux/nfs_fs.h Fri May 14 18:55:29 1999 +++ linux/include/linux/nfs_fs.h Wed Jun 2 13:54:59 1999 @@ -228,7 +228,7 @@ * back first.. */ extern void nfs_inval(struct inode *); -extern int nfs_updatepage(struct file *, struct page *, unsigned long, unsigned int, int); +extern int nfs_updatepage(struct file *, struct page *, unsigned long, unsigned int); /* * linux/fs/nfs/read.c diff -u --recursive --new-file v2.3.4/linux/include/linux/smp.h linux/include/linux/smp.h --- v2.3.4/linux/include/linux/smp.h Tue May 11 13:03:59 1999 +++ linux/include/linux/smp.h Wed Jun 2 13:54:53 1999 @@ -3,7 +3,7 @@ /* * Generic SMP support - * Alan Cox. + * Alan Cox. */ #ifdef __SMP__ diff -u --recursive --new-file v2.3.4/linux/init/main.c linux/init/main.c --- v2.3.4/linux/init/main.c Sat May 15 23:46:05 1999 +++ linux/init/main.c Tue Jun 1 23:25:48 1999 @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include diff -u --recursive --new-file v2.3.4/linux/mm/filemap.c linux/mm/filemap.c --- v2.3.4/linux/mm/filemap.c Mon May 31 22:28:07 1999 +++ linux/mm/filemap.c Wed Jun 2 13:47:49 1999 @@ -1425,7 +1425,8 @@ */ ssize_t generic_file_write(struct file *file, const char *buf, - size_t count, loff_t *ppos) + size_t count, loff_t *ppos, + writepage_t write_one_page) { struct dentry *dentry = file->f_dentry; struct inode *inode = dentry->d_inode; @@ -1434,10 +1435,7 @@ struct page *page, **hash; unsigned long page_cache = 0; unsigned long written; - long status, sync; - - if (!inode->i_op || !inode->i_op->updatepage) - return -EIO; + long status; if (file->f_error) { int error = file->f_error; @@ -1445,7 +1443,6 @@ return error; } - sync = file->f_flags & O_SYNC; written = 0; if (file->f_flags & O_APPEND) @@ -1501,15 +1498,7 @@ wait_on_page(page); set_bit(PG_locked, &page->flags); - /* - * Do the real work.. If the writer ends up delaying the write, - * the writer needs to increment the page use counts until he - * is done with the page. - */ - bytes -= copy_from_user((u8*)page_address(page) + offset, buf, bytes); - status = -EFAULT; - if (bytes) - status = inode->i_op->updatepage(file, page, offset, bytes, sync); + status = write_one_page(file, page, offset, bytes, buf); /* Mark it unlocked again and drop the page.. */ clear_bit(PG_locked, &page->flags); diff -u --recursive --new-file v2.3.4/linux/net/802/llc_macinit.c linux/net/802/llc_macinit.c --- v2.3.4/linux/net/802/llc_macinit.c Fri Feb 20 18:28:23 1998 +++ linux/net/802/llc_macinit.c Tue Jun 1 23:25:48 1999 @@ -17,6 +17,8 @@ * Alan Cox : Chainsawed to Linux format * Added llc_ to names * Started restructuring handlers + * + * Horst von Brand : Add #include */ #include @@ -24,6 +26,7 @@ #include #include #include +#include #include #include #include diff -u --recursive --new-file v2.3.4/linux/net/core/datagram.c linux/net/core/datagram.c --- v2.3.4/linux/net/core/datagram.c Mon May 31 22:28:07 1999 +++ linux/net/core/datagram.c Wed Jun 2 11:29:13 1999 @@ -6,7 +6,7 @@ * This is used because UDP, RAW, PACKET, DDP, IPX, AX.25 and NetROM layer all have identical poll code and mostly * identical recvmsg() code. So we share it here. The poll was shared before but buried in udp.c so I moved it. * - * Authors: Alan Cox . (datagram_poll() from old udp.c code) + * Authors: Alan Cox . (datagram_poll() from old udp.c code) * * Fixes: * Alan Cox : NULL return from skb_peek_copy() understood diff -u --recursive --new-file v2.3.4/linux/net/core/dev.c linux/net/core/dev.c --- v2.3.4/linux/net/core/dev.c Mon May 31 22:28:07 1999 +++ linux/net/core/dev.c Tue Jun 1 10:07:39 1999 @@ -453,11 +453,8 @@ dev_do_clear_fastroute(dev); } else { read_lock_bh(&dev_base_lock); - for (dev = dev_base; dev; dev = dev->next) { - read_unlock_bh(&dev_base_lock); + for (dev = dev_base; dev; dev = dev->next) dev_do_clear_fastroute(dev); - read_lock_bh(&dev_base_lock); - } read_unlock_bh(&dev_base_lock); } } @@ -1128,8 +1125,13 @@ if (copy_from_user(&ifc, arg, sizeof(struct ifconf))) return -EFAULT; - pos = ifc.ifc_buf; len = ifc.ifc_len; + if (ifc.ifc_buf) { + pos = (char *) kmalloc(len, GFP_KERNEL); + if(pos == NULL) + return -ENOBUFS; + } else + pos = NULL; /* * Loop over the interfaces, and write an info block for each. @@ -1138,7 +1140,6 @@ total = 0; read_lock_bh(&dev_base_lock); for (dev = dev_base; dev != NULL; dev = dev->next) { - read_unlock_bh(&dev_base_lock); for (i=0; iiflink = -1; if (dev->init && dev->init(dev)) { @@ -2026,15 +2030,12 @@ *dp = dev->next; } else { dp = &dev->next; - write_unlock_bh(&dev_base_lock); dev->ifindex = dev_new_index(); - write_lock_bh(&dev_base_lock); if (dev->iflink == -1) dev->iflink = dev->ifindex; dev_init_scheduler(dev); } } - write_unlock_bh(&dev_base_lock); #ifdef CONFIG_PROC_FS proc_net_register(&proc_net_dev); diff -u --recursive --new-file v2.3.4/linux/net/core/neighbour.c linux/net/core/neighbour.c --- v2.3.4/linux/net/core/neighbour.c Thu Apr 22 19:45:19 1999 +++ linux/net/core/neighbour.c Tue Jun 1 23:25:48 1999 @@ -12,10 +12,12 @@ * * Fixes: * Vitaly E. Lavrov releasing NULL neighbor in neigh_add. + * Horst von Brand Add #include */ #include #include +#include #include #include #include diff -u --recursive --new-file v2.3.4/linux/net/decnet/dn_dev.c linux/net/decnet/dn_dev.c --- v2.3.4/linux/net/decnet/dn_dev.c Mon May 31 22:28:07 1999 +++ linux/net/decnet/dn_dev.c Tue Jun 1 10:07:39 1999 @@ -1189,15 +1189,14 @@ { struct dn_dev *dn_db = (struct dn_dev *)dev->dn_ptr; struct dn_ifaddr *ifa; - char buffer[DN_IFREQ_SIZE]; - struct ifreq *ifr = (struct ifreq *)buffer; + struct ifreq *ifr = (struct ifreq *)buf; int done = 0; if ((dn_db == NULL) || ((ifa = dn_db->ifa_list) == NULL)) return 0; for(; ifa; ifa = ifa->ifa_next) { - if (!buf) { + if (!ifr) { done += sizeof(DN_IFREQ_SIZE); continue; } @@ -1214,10 +1213,7 @@ (*(struct sockaddr_dn *) &ifr->ifr_addr).sdn_add.a_len = 2; (*(dn_address *)(*(struct sockaddr_dn *) &ifr->ifr_addr).sdn_add.a_addr) = ifa->ifa_local; - if (copy_to_user(buf, ifr, DN_IFREQ_SIZE)) - return -EFAULT; - - buf += DN_IFREQ_SIZE; + ifr = (struct ifreq *)((char *)ifr + DN_IFREQ_SIZE); len -= DN_IFREQ_SIZE; done += DN_IFREQ_SIZE; } diff -u --recursive --new-file v2.3.4/linux/net/ethernet/eth.c linux/net/ethernet/eth.c --- v2.3.4/linux/net/ethernet/eth.c Mon May 31 22:28:07 1999 +++ linux/net/ethernet/eth.c Tue Jun 1 09:43:41 1999 @@ -67,7 +67,7 @@ if (!str || !*str) return; - read_lock_bh(&dev_base_lock); + d = dev_base; while (d) { @@ -85,7 +85,6 @@ } d=d->next; } - read_unlock_bh(&dev_base_lock); } diff -u --recursive --new-file v2.3.4/linux/net/ipv4/devinet.c linux/net/ipv4/devinet.c --- v2.3.4/linux/net/ipv4/devinet.c Mon May 31 22:28:07 1999 +++ linux/net/ipv4/devinet.c Tue Jun 1 10:07:39 1999 @@ -1,7 +1,7 @@ /* * NET3 IP device support routines. * - * Version: $Id: devinet.c,v 1.29 1999/05/27 00:37:57 davem Exp $ + * Version: $Id: devinet.c,v 1.30 1999/06/01 07:49:59 davem Exp $ * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -607,31 +607,29 @@ { struct in_device *in_dev = dev->ip_ptr; struct in_ifaddr *ifa; - struct ifreq ifr; + struct ifreq *ifr = (struct ifreq *) buf; int done=0; if (in_dev==NULL || (ifa=in_dev->ifa_list)==NULL) return 0; for ( ; ifa; ifa = ifa->ifa_next) { - if (!buf) { + if (!ifr) { done += sizeof(ifr); continue; } if (len < (int) sizeof(ifr)) return done; - memset(&ifr, 0, sizeof(struct ifreq)); + memset(ifr, 0, sizeof(struct ifreq)); if (ifa->ifa_label) - strcpy(ifr.ifr_name, ifa->ifa_label); + strcpy(ifr->ifr_name, ifa->ifa_label); else - strcpy(ifr.ifr_name, dev->name); + strcpy(ifr->ifr_name, dev->name); - (*(struct sockaddr_in *) &ifr.ifr_addr).sin_family = AF_INET; - (*(struct sockaddr_in *) &ifr.ifr_addr).sin_addr.s_addr = ifa->ifa_local; + (*(struct sockaddr_in *) &ifr->ifr_addr).sin_family = AF_INET; + (*(struct sockaddr_in *) &ifr->ifr_addr).sin_addr.s_addr = ifa->ifa_local; - if (copy_to_user(buf, &ifr, sizeof(struct ifreq))) - return -EFAULT; - buf += sizeof(struct ifreq); + ifr++; len -= sizeof(struct ifreq); done += sizeof(struct ifreq); } diff -u --recursive --new-file v2.3.4/linux/net/ipv4/icmp.c linux/net/ipv4/icmp.c --- v2.3.4/linux/net/ipv4/icmp.c Mon May 31 22:28:07 1999 +++ linux/net/ipv4/icmp.c Wed Jun 2 11:29:13 1999 @@ -1,7 +1,7 @@ /* * NET3: Implementation of the ICMP protocol layer. * - * Alan Cox, + * Alan Cox, * * Version: $Id: icmp.c,v 1.54 1999/05/30 01:16:22 davem Exp $ * diff -u --recursive --new-file v2.3.4/linux/net/ipv4/ip_masq_quake.c linux/net/ipv4/ip_masq_quake.c --- v2.3.4/linux/net/ipv4/ip_masq_quake.c Fri May 14 18:55:31 1999 +++ linux/net/ipv4/ip_masq_quake.c Tue Jun 1 23:25:48 1999 @@ -12,6 +12,7 @@ * http://www.gamers.org/dEngine/quake/spec/ * Harald Hoyer : Check for QUAKE-STRING * Juan Jose Ciarlante : litl bits for 2.1 + * Horst von Brand : Add #include * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -24,6 +25,7 @@ #include #include #include +#include #include #include #include diff -u --recursive --new-file v2.3.4/linux/net/ipv4/ip_masq_vdolive.c linux/net/ipv4/ip_masq_vdolive.c --- v2.3.4/linux/net/ipv4/ip_masq_vdolive.c Tue Oct 27 09:57:19 1998 +++ linux/net/ipv4/ip_masq_vdolive.c Tue Jun 1 23:25:48 1999 @@ -10,6 +10,9 @@ * Fixes: Minor changes for 2.1 by * Steven Clarke , Planet Online Ltd * + * Add missing #include + * Horst von Brand + * * 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 @@ -25,6 +28,7 @@ #include #include #include +#include #include #include #include diff -u --recursive --new-file v2.3.4/linux/net/ipv4/ip_options.c linux/net/ipv4/ip_options.c --- v2.3.4/linux/net/ipv4/ip_options.c Sun Mar 21 07:22:00 1999 +++ linux/net/ipv4/ip_options.c Tue Jun 1 16:44:27 1999 @@ -452,7 +452,6 @@ error: if (skb) { icmp_send(skb, ICMP_PARAMETERPROB, 0, htonl((pp_ptr-iph)<<24)); - kfree_skb(skb); } return -EINVAL; } diff -u --recursive --new-file v2.3.4/linux/net/ipv4/ipmr.c linux/net/ipv4/ipmr.c --- v2.3.4/linux/net/ipv4/ipmr.c Thu Mar 25 09:23:34 1999 +++ linux/net/ipv4/ipmr.c Wed Jun 2 11:29:13 1999 @@ -1,7 +1,7 @@ /* * IP multicast routing support for mrouted 3.6/3.8 * - * (c) 1995 Alan Cox, + * (c) 1995 Alan Cox, * Linux Consultancy and Custom Driver Development * * This program is free software; you can redistribute it and/or diff -u --recursive --new-file v2.3.4/linux/net/ipv4/tcp_input.c linux/net/ipv4/tcp_input.c --- v2.3.4/linux/net/ipv4/tcp_input.c Mon May 31 22:28:07 1999 +++ linux/net/ipv4/tcp_input.c Tue Jun 1 10:18:56 1999 @@ -2321,8 +2321,8 @@ !(th->fin && TCP_SKB_CB(skb)->end_seq == tp->rcv_nxt)) { if (!th->rst) { tcp_send_ack(sk); - goto discard; } + goto discard; } /* step 2: check RST bit */ diff -u --recursive --new-file v2.3.4/linux/net/ipv6/ip6_fw.c linux/net/ipv6/ip6_fw.c --- v2.3.4/linux/net/ipv6/ip6_fw.c Thu Aug 27 19:33:09 1998 +++ linux/net/ipv6/ip6_fw.c Tue Jun 1 23:25:48 1999 @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include diff -u --recursive --new-file v2.3.4/linux/net/ipv6/ip6_output.c linux/net/ipv6/ip6_output.c --- v2.3.4/linux/net/ipv6/ip6_output.c Thu Apr 22 19:45:20 1999 +++ linux/net/ipv6/ip6_output.c Tue Jun 1 23:25:48 1999 @@ -20,11 +20,13 @@ * route changes now work. * ip6_forward does not confuse sniffers. * etc. - * + * + * H. von Brand : Added missing #include */ #include #include +#include #include #include #include diff -u --recursive --new-file v2.3.4/linux/net/ipv6/mcast.c linux/net/ipv6/mcast.c --- v2.3.4/linux/net/ipv6/mcast.c Mon May 31 22:28:07 1999 +++ linux/net/ipv6/mcast.c Tue Jun 1 23:25:48 1999 @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include diff -u --recursive --new-file v2.3.4/linux/net/ipv6/reassembly.c linux/net/ipv6/reassembly.c --- v2.3.4/linux/net/ipv6/reassembly.c Thu Aug 27 19:33:09 1998 +++ linux/net/ipv6/reassembly.c Tue Jun 1 23:25:48 1999 @@ -19,9 +19,12 @@ * Fixes: * Andi Kleen Make it work with multiple hosts. * More RFC compliance. + * + * Horst von Brand Add missing #include */ #include #include +#include #include #include #include diff -u --recursive --new-file v2.3.4/linux/net/irda/discovery.c linux/net/irda/discovery.c --- v2.3.4/linux/net/irda/discovery.c Mon May 31 22:28:07 1999 +++ linux/net/irda/discovery.c Tue Jun 1 23:25:48 1999 @@ -8,6 +8,8 @@ * Created at: Tue Apr 6 15:33:50 1999 * Modified at: Sun May 9 22:40:43 1999 * Modified by: Dag Brattli + * Modified at: Fri May 28 3:11 CST 1999 + * Modified by: Horst von Brand * * Copyright (c) 1999 Dag Brattli, All Rights Reserved. * @@ -28,6 +30,7 @@ * ********************************************************************/ +#include #include #include diff -u --recursive --new-file v2.3.4/linux/net/irda/irda_device.c linux/net/irda/irda_device.c --- v2.3.4/linux/net/irda/irda_device.c Mon May 31 22:28:07 1999 +++ linux/net/irda/irda_device.c Tue Jun 1 23:25:48 1999 @@ -8,6 +8,8 @@ * Created at: Wed Sep 2 20:22:08 1998 * Modified at: Mon May 10 23:02:47 1999 * Modified by: Dag Brattli + * Modified at: Fri May 28 3:11 CST 1999 + * Modified by: Horst von Brand * * Copyright (c) 1998-1999 Dag Brattli, All Rights Reserved. * @@ -23,6 +25,7 @@ ********************************************************************/ #include +#include #include #include #include diff -u --recursive --new-file v2.3.4/linux/net/irda/irlap_comp.c linux/net/irda/irlap_comp.c --- v2.3.4/linux/net/irda/irlap_comp.c Mon May 31 22:28:07 1999 +++ linux/net/irda/irlap_comp.c Tue Jun 1 23:25:48 1999 @@ -8,6 +8,8 @@ * Created at: Fri Oct 9 09:18:07 1998 * Modified at: Sun May 9 11:37:06 1999 * Modified by: Dag Brattli + * Modified at: Fri May 28 3:11 CST 1999 + * Modified by: Horst von Brand * Sources: ppp.c, isdn_ppp.c * * Copyright (c) 1998-1999 Dag Brattli, All Rights Reserved. @@ -22,6 +24,8 @@ * provided "AS-IS" and at no charge. * ********************************************************************/ + +#include #include #include diff -u --recursive --new-file v2.3.4/linux/net/irda/wrapper.c linux/net/irda/wrapper.c --- v2.3.4/linux/net/irda/wrapper.c Mon May 31 22:28:07 1999 +++ linux/net/irda/wrapper.c Tue Jun 1 23:25:48 1999 @@ -8,6 +8,8 @@ * Created at: Mon Aug 4 20:40:53 1997 * Modified at: Sun May 2 21:58:00 1999 * Modified by: Dag Brattli + * Modified at: Fri May 28 3:11 CST 1999 + * Modified by: Horst von Brand * * Copyright (c) 1998-1999 Dag Brattli , * All Rights Reserved. @@ -24,6 +26,7 @@ ********************************************************************/ #include +#include #include #include diff -u --recursive --new-file v2.3.4/linux/net/netlink/af_netlink.c linux/net/netlink/af_netlink.c --- v2.3.4/linux/net/netlink/af_netlink.c Mon May 17 09:55:23 1999 +++ linux/net/netlink/af_netlink.c Wed Jun 2 11:29:13 1999 @@ -1,7 +1,7 @@ /* * NETLINK Kernel-user communication protocol. * - * Authors: Alan Cox + * Authors: Alan Cox * Alexey Kuznetsov * * This program is free software; you can redistribute it and/or diff -u --recursive --new-file v2.3.4/linux/net/netlink/netlink_dev.c linux/net/netlink/netlink_dev.c --- v2.3.4/linux/net/netlink/netlink_dev.c Thu Aug 27 19:33:09 1998 +++ linux/net/netlink/netlink_dev.c Wed Jun 2 11:29:13 1999 @@ -2,7 +2,7 @@ * NETLINK An implementation of a loadable kernel mode driver providing * multiple kernel/user space bidirectional communications links. * - * Author: Alan Cox + * Author: Alan Cox * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License diff -u --recursive --new-file v2.3.4/linux/net/sunrpc/auth.c linux/net/sunrpc/auth.c --- v2.3.4/linux/net/sunrpc/auth.c Mon Mar 22 08:00:15 1999 +++ linux/net/sunrpc/auth.c Tue Jun 1 23:25:48 1999 @@ -4,9 +4,12 @@ * Generic RPC authentication API. * * Copyright (C) 1996, Olaf Kirch + * + * Modified May 1999, Horst von Brand */ #include +#include #include #include #include diff -u --recursive --new-file v2.3.4/linux/net/sunrpc/auth_unix.c linux/net/sunrpc/auth_unix.c --- v2.3.4/linux/net/sunrpc/auth_unix.c Mon Mar 22 08:00:15 1999 +++ linux/net/sunrpc/auth_unix.c Tue Jun 1 23:25:48 1999 @@ -4,9 +4,12 @@ * UNIX-style authentication; no AUTH_SHORT support * * Copyright (C) 1996, Olaf Kirch + * + * Modified May 1999 Horst von Brand */ #include +#include #include #include #include diff -u --recursive --new-file v2.3.4/linux/net/x25/af_x25.c linux/net/x25/af_x25.c --- v2.3.4/linux/net/x25/af_x25.c Mon May 31 22:28:07 1999 +++ linux/net/x25/af_x25.c Tue Jun 1 09:43:41 1999 @@ -1342,11 +1342,8 @@ #if defined(CONFIG_LLC) || defined(CONFIG_LLC_MODULE) || dev->type == ARPHRD_ETHER #endif - )) { - read_unlock_bh(&dev_base_lock); + )) x25_link_device_up(dev); - read_lock_bh(&dev_base_lock); - } } read_unlock_bh(&dev_base_lock);