diff -u --recursive --new-file v1.3.7/linux/CREDITS linux/CREDITS --- v1.3.7/linux/CREDITS Fri Jul 7 08:54:43 1995 +++ linux/CREDITS Fri Jul 7 12:29:29 1995 @@ -233,6 +233,13 @@ S: S-143 32 VARBY S: Sweden +N: Paal-Kristian Engstad +E: engstad@funcom.com +D: Wrote smbfs (to mount WfW, NT and OS/2 network drives.) +S: Oscars gt. 35 +S: N-0258 OSLO +S: Norway + N: Doug Evans E: dje@cygnus.com D: Wrote Xenix FS (part of standard kernel since 0.99.15) @@ -451,6 +458,14 @@ N: Rudolf Koenig E: rfkoenig@immd4.informatik.uni-erlangen.de D: The Linux Support Team Erlangen + +N: Markus Kuhn +E: mskuhn@cip.informatik.uni-erlangen.de +W: http://wwwcip.informatik.uni-erlangen.de/user/mskuhn +D: Unicode, time, standards +S: Schlehenweg 9 +S: D-91080 Uttenreuth +S: Germany N: Bas Laarhoven E: bas@vimec.nl diff -u --recursive --new-file v1.3.7/linux/Makefile linux/Makefile --- v1.3.7/linux/Makefile Fri Jul 7 08:54:43 1995 +++ linux/Makefile Fri Jul 7 13:17:32 1995 @@ -1,6 +1,6 @@ VERSION = 1 PATCHLEVEL = 3 -SUBLEVEL = 7 +SUBLEVEL = 8 ARCH = i386 diff -u --recursive --new-file v1.3.7/linux/arch/i386/config.in linux/arch/i386/config.in --- v1.3.7/linux/arch/i386/config.in Fri Jul 7 08:54:44 1995 +++ linux/arch/i386/config.in Thu Jul 6 18:34:23 1995 @@ -112,7 +112,7 @@ bool 'Trantor T128/T128F/T228 SCSI support' CONFIG_SCSI_T128 n bool 'UltraStor SCSI support' CONFIG_SCSI_ULTRASTOR n bool '7000FASST SCSI support' CONFIG_SCSI_7000FASST n -#bool 'EATA ISA/EISA (DPT PM2011/021/012/022/122/322) support' CONFIG_SCSI_EATA n +bool 'EATA ISA/EISA (DPT PM2011/021/012/022/122/322) support' CONFIG_SCSI_EATA n #bool 'SCSI debugging host adapter' CONFIG_SCSI_DEBUG n fi diff -u --recursive --new-file v1.3.7/linux/arch/i386/lib/checksum.c linux/arch/i386/lib/checksum.c --- v1.3.7/linux/arch/i386/lib/checksum.c Fri Jul 7 08:54:44 1995 +++ linux/arch/i386/lib/checksum.c Fri Jul 7 08:54:18 1995 @@ -180,7 +180,7 @@ movw %%cx, (%%edi) leal 2(%%edi), %%edi je 6f - shll $16,%%edx + shll $16,%%ecx 5: movb %%fs:(%%esi), %%cl movb %%cl, (%%edi) 6: addl %%ecx, %%eax @@ -275,7 +275,7 @@ movw %%cx, (%%edi) leal 2(%%edi), %%edi je 6f - shll $16,%%edx + shll $16,%%ecx 5: movb (%%esi), %%cl movb %%cl, (%%edi) 6: addl %%ecx, %%eax diff -u --recursive --new-file v1.3.7/linux/drivers/net/lance.c linux/drivers/net/lance.c --- v1.3.7/linux/drivers/net/lance.c Fri Jul 7 08:54:47 1995 +++ linux/drivers/net/lance.c Fri Jul 7 11:45:45 1995 @@ -1000,7 +1000,6 @@ } skb->dev = dev; skb_reserve(skb,2); /* 16 byte align */ - skb_put(skb,pkt_len); /* Make room */ eth_copy_and_sum(skb_put(skb,pkt_len), (unsigned char *)(lp->rx_ring[entry].base & 0x00ffffff), pkt_len,0); Binary files v1.3.7/linux/drivers/scsi/aic7770 and linux/drivers/scsi/aic7770 differ diff -u --recursive --new-file v1.3.7/linux/drivers/scsi/eata.c linux/drivers/scsi/eata.c --- v1.3.7/linux/drivers/scsi/eata.c Thu Jun 29 19:02:49 1995 +++ linux/drivers/scsi/eata.c Thu Jul 6 18:34:23 1995 @@ -1,6 +1,9 @@ /* * eata.c - Low-level driver for EATA/DMA SCSI host adapters. * + * 6 Jul 1995 rev. 2.01 for linux 1.3.7 + * Update required by the new /proc/scsi support. + * * 11 Mar 1995 rev. 2.00 for linux 1.2.0 * Fixed a bug which prevented media change detection for removable * disk drives. @@ -118,6 +121,7 @@ #include #include #include +#include #include "../block/blk.h" #include "scsi.h" #include "hosts.h" diff -u --recursive --new-file v1.3.7/linux/drivers/scsi/eata.h linux/drivers/scsi/eata.h --- v1.3.7/linux/drivers/scsi/eata.h Thu Jun 29 19:02:49 1995 +++ linux/drivers/scsi/eata.h Thu Jul 6 18:34:23 1995 @@ -7,16 +7,19 @@ #include -#define EATA_VERSION "2.00.00" - int eata2x_detect(Scsi_Host_Template *); int eata2x_queuecommand(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *)); int eata2x_abort(Scsi_Cmnd *); int eata2x_reset(Scsi_Cmnd *); +#define EATA_VERSION "2.01.00" + #define EATA { \ NULL, /* Ptr for modules */ \ NULL, /* usage count for modules */ \ + NULL, \ + "eata2x", \ + PROC_SCSI_EATA2X, \ "EATA/DMA 2.0x rev. " EATA_VERSION " ", \ eata2x_detect, \ NULL, /* Release */ \ diff -u --recursive --new-file v1.3.7/linux/fs/binfmt_elf.c linux/fs/binfmt_elf.c --- v1.3.7/linux/fs/binfmt_elf.c Thu Jun 29 19:02:54 1995 +++ linux/fs/binfmt_elf.c Fri Jul 7 13:11:37 1995 @@ -53,11 +53,17 @@ static int elf_core_dump(long signr, struct pt_regs * regs); extern int dump_fpu (elf_fpregset_t *); +/* + * Please do not change the default core dump format to ELF when most people + * do not have a gdb capable of interpreting ELF core files. Once a gdb has + * been released that understands ELF, *THEN* switch the core dump format. + */ + struct linux_binfmt elf_format = { #ifndef MODULE - NULL, NULL, load_elf_binary, load_elf_library, elf_core_dump + NULL, NULL, load_elf_binary, load_elf_library, aout_core_dump #else - NULL, &mod_use_count_, load_elf_binary, load_elf_library, elf_core_dump + NULL, &mod_use_count_, load_elf_binary, load_elf_library, aout_core_dump #endif }; diff -u --recursive --new-file v1.3.7/linux/fs/exec.c linux/fs/exec.c --- v1.3.7/linux/fs/exec.c Fri Jul 7 08:54:51 1995 +++ linux/fs/exec.c Fri Jul 7 13:14:12 1995 @@ -50,7 +50,6 @@ static int load_aout_binary(struct linux_binprm *, struct pt_regs * regs); static int load_aout_library(int fd); -static int aout_core_dump(long signr, struct pt_regs * regs); extern void dump_thread(struct pt_regs *, struct user *); @@ -163,7 +162,7 @@ * field, which also makes sure the core-dumps won't be recursive if the * dumping of the process results in another error.. */ -static int aout_core_dump(long signr, struct pt_regs * regs) +int aout_core_dump(long signr, struct pt_regs * regs) { struct inode * inode = NULL; struct file file; diff -u --recursive --new-file v1.3.7/linux/fs/ext2/namei.c linux/fs/ext2/namei.c --- v1.3.7/linux/fs/ext2/namei.c Wed Mar 22 10:33:59 1995 +++ linux/fs/ext2/namei.c Fri Jul 7 08:46:20 1995 @@ -759,7 +759,7 @@ for (l = 0; l < inode->i_sb->s_blocksize - 1 && symname [l]; l++) ; - if (l >= EXT2_N_BLOCKS * sizeof (unsigned long)) { + if (l >= EXT2_N_BLOCKS * sizeof (__u32)) { ext2_debug ("l=%d, normal symlink\n", l); diff -u --recursive --new-file v1.3.7/linux/fs/isofs/dir.c linux/fs/isofs/dir.c --- v1.3.7/linux/fs/isofs/dir.c Fri Jul 7 08:54:51 1995 +++ linux/fs/isofs/dir.c Fri Jul 7 13:11:38 1995 @@ -231,6 +231,7 @@ /* rrflag == 1 means that we have a new name (kmalloced) */ if (rrflag == 1) { rrflag = filldir(dirent, name, len, filp->f_pos, inode_number); + dcache_add(inode, name, len, inode_number); kfree(name); /* this was allocated in get_r_r_filename.. */ if (rrflag < 0) break; @@ -243,6 +244,7 @@ len = isofs_name_translate(name, len, tmpname); if (filldir(dirent, tmpname, len, filp->f_pos, inode_number) < 0) break; + dcache_add(inode, tmpname, len, inode_number); filp->f_pos += de_len; continue; } @@ -250,6 +252,7 @@ if (filldir(dirent, name, len, filp->f_pos, inode_number) < 0) break; + dcache_add(inode, name, len, inode_number); filp->f_pos += de_len; continue; } diff -u --recursive --new-file v1.3.7/linux/include/asm-alpha/socket.h linux/include/asm-alpha/socket.h --- v1.3.7/linux/include/asm-alpha/socket.h Thu Jan 1 02:00:00 1970 +++ linux/include/asm-alpha/socket.h Fri Jul 7 13:09:26 1995 @@ -0,0 +1,31 @@ +#ifndef _ASM_SOCKET_H +#define _ASM_SOCKET_H + +/* For setsockoptions(2) */ +/* + * Note: we only bother about making the SOL_SOCKET options + * same as OSF/1, as that's all that "normal" programs are + * likely to set. We don't necessarily want to be binary + * compatible with _everything_. + */ +#define SOL_SOCKET 0xffff + +#define SO_DEBUG 0x0001 +#define SO_REUSEADDR 0x0004 +#define SO_KEEPALIVE 0x0008 +#define SO_DONTROUTE 0x0010 +#define SO_BROADCAST 0x0020 +#define SO_LINGER 0x0080 +#define SO_OOBINLINE 0x0100 +/* To add :#define SO_REUSEPORT 0x0200 */ + +#define SO_TYPE 0x1008 +#define SO_ERROR 0x1007 +#define SO_SNDBUF 0x1001 +#define SO_RCVBUF 0x1002 + +/* linux-specific, might as well be the same as on i386 */ +#define SO_NO_CHECK 11 +#define SO_PRIORITY 12 + +#endif /* _ASM_SOCKET_H */ diff -u --recursive --new-file v1.3.7/linux/include/asm-i386/socket.h linux/include/asm-i386/socket.h --- v1.3.7/linux/include/asm-i386/socket.h Thu Jan 1 02:00:00 1970 +++ linux/include/asm-i386/socket.h Fri Jul 7 13:09:26 1995 @@ -0,0 +1,22 @@ +#ifndef _ASM_SOCKET_H +#define _ASM_SOCKET_H + +/* For setsockoptions(2) */ +#define SOL_SOCKET 1 + +#define SO_DEBUG 1 +#define SO_REUSEADDR 2 +#define SO_TYPE 3 +#define SO_ERROR 4 +#define SO_DONTROUTE 5 +#define SO_BROADCAST 6 +#define SO_SNDBUF 7 +#define SO_RCVBUF 8 +#define SO_KEEPALIVE 9 +#define SO_OOBINLINE 10 +#define SO_NO_CHECK 11 +#define SO_PRIORITY 12 +#define SO_LINGER 13 +/* To add :#define SO_REUSEPORT 14 */ + +#endif /* _ASM_SOCKET_H */ diff -u --recursive --new-file v1.3.7/linux/include/linux/binfmts.h linux/include/linux/binfmts.h --- v1.3.7/linux/include/linux/binfmts.h Fri Jun 16 22:02:55 1995 +++ linux/include/linux/binfmts.h Fri Jul 7 13:14:12 1995 @@ -44,6 +44,7 @@ char * addr, unsigned long count, int to_kmem); extern int open_inode(struct inode * inode, int mode); +extern int aout_core_dump(long signr, struct pt_regs * regs); extern void flush_old_exec(struct linux_binprm * bprm); extern unsigned long setup_arg_pages(unsigned long text_size,unsigned long * page); diff -u --recursive --new-file v1.3.7/linux/include/linux/proc_fs.h linux/include/linux/proc_fs.h --- v1.3.7/linux/include/linux/proc_fs.h Fri Jun 30 16:22:30 1995 +++ linux/include/linux/proc_fs.h Thu Jul 6 18:34:23 1995 @@ -127,6 +127,7 @@ PROC_SCSI_NCR53C7xx, PROC_SCSI_ULTRASTOR, PROC_SCSI_7000FASST, + PROC_SCSI_EATA2X, PROC_SCSI_SCSI_DEBUG, PROC_SCSI_NOT_PRESENT, PROC_SCSI_FILE, /* I'm asuming here that we */ diff -u --recursive --new-file v1.3.7/linux/include/linux/sched.h linux/include/linux/sched.h --- v1.3.7/linux/include/linux/sched.h Fri Jul 7 08:54:54 1995 +++ linux/include/linux/sched.h Fri Jul 7 11:12:17 1995 @@ -225,7 +225,7 @@ * your own risk!. Base=0, limit=0x1fffff (=2MB) */ #define INIT_TASK \ -/* state etc */ { 0,15,15,0,0,0,0, \ +/* state etc */ { 0,15*HZ/100,15*HZ/100,0,0,0,0, \ /* debugregs */ { 0, }, \ /* exec domain */&default_exec_domain, \ /* binfmt */ NULL, \ diff -u --recursive --new-file v1.3.7/linux/include/linux/socket.h linux/include/linux/socket.h --- v1.3.7/linux/include/linux/socket.h Tue Jun 6 11:22:12 1995 +++ linux/include/linux/socket.h Fri Jul 7 13:09:31 1995 @@ -1,6 +1,7 @@ #ifndef _LINUX_SOCKET_H #define _LINUX_SOCKET_H +#include /* arch-dependent defines */ #include /* the SIOCxxx I/O controls */ @@ -59,7 +60,6 @@ #define MSG_DONTROUTE 4 /* Setsockoptions(2) level. Thanks to BSD these must match IPPROTO_xxx */ -#define SOL_SOCKET 1 #define SOL_IP 0 #define SOL_IPX 256 #define SOL_AX25 257 @@ -67,22 +67,6 @@ #define SOL_NETROM 259 #define SOL_TCP 6 #define SOL_UDP 17 - -/* For setsockoptions(2) */ -#define SO_DEBUG 1 -#define SO_REUSEADDR 2 -#define SO_TYPE 3 -#define SO_ERROR 4 -#define SO_DONTROUTE 5 -#define SO_BROADCAST 6 -#define SO_SNDBUF 7 -#define SO_RCVBUF 8 -#define SO_KEEPALIVE 9 -#define SO_OOBINLINE 10 -#define SO_NO_CHECK 11 -#define SO_PRIORITY 12 -#define SO_LINGER 13 -/* To add :#define SO_REUSEPORT 14 */ /* IP options */ #define IP_TOS 1 diff -u --recursive --new-file v1.3.7/linux/kernel/ksyms.c linux/kernel/ksyms.c --- v1.3.7/linux/kernel/ksyms.c Fri Jul 7 08:54:56 1995 +++ linux/kernel/ksyms.c Fri Jul 7 13:11:37 1995 @@ -176,6 +176,7 @@ X(__wait_on_buffer), X(dcache_lookup), X(dcache_add), + X(aout_core_dump), /* device registration */ X(register_chrdev), diff -u --recursive --new-file v1.3.7/linux/net/appletalk/ddp.c linux/net/appletalk/ddp.c --- v1.3.7/linux/net/appletalk/ddp.c Fri Jul 7 08:54:56 1995 +++ linux/net/appletalk/ddp.c Fri Jul 7 13:09:31 1995 @@ -958,7 +958,7 @@ } break; - case SOL_SOCKET: + case SOL_SOCKET: return sock_setsockopt(sk,level,optname,optval,optlen); default: diff -u --recursive --new-file v1.3.7/linux/net/core/dev.c linux/net/core/dev.c --- v1.3.7/linux/net/core/dev.c Fri Jul 7 08:54:56 1995 +++ linux/net/core/dev.c Fri Jul 7 12:31:31 1995 @@ -356,7 +356,8 @@ save_flags(flags); cli(); - if (dev_nit && !where) + if (/*dev_nit && */!where) /* Always keep order. It helps other hosts + far more than it costs us */ { skb_queue_tail(dev->buffs + pri,skb); skb_device_unlock(skb); /* Buffer is on the device queue and can be freed safely */ @@ -381,6 +382,7 @@ if ((skb2 = skb_clone(skb, GFP_ATOMIC)) == NULL) break; skb2->h.raw = skb2->data + dev->hard_header_len; + skb2->mac.raw = skb2->data; ptype->func(skb2, skb->dev, ptype); nitcount--; } diff -u --recursive --new-file v1.3.7/linux/net/core/skbuff.c linux/net/core/skbuff.c --- v1.3.7/linux/net/core/skbuff.c Fri Jul 7 08:54:57 1995 +++ linux/net/core/skbuff.c Fri Jul 7 12:22:10 1995 @@ -613,6 +613,7 @@ n->when=skb->when; n->dev=skb->dev; n->h.raw=skb->h.raw+offset; + n->mac.raw=skb->mac.raw+offset; n->ip_hdr=(struct iphdr *)(((char *)skb->ip_hdr)+offset); n->saddr=skb->saddr; n->daddr=skb->daddr; @@ -674,8 +675,11 @@ struct sk_buff *dev_alloc_skb(unsigned int length) { - struct sk_buff *skb=alloc_skb(length+16, GFP_ATOMIC); - skb_reserve(skb,16); + struct sk_buff *skb; + + skb = alloc_skb(length+16, GFP_ATOMIC); + if (skb) + skb_reserve(skb,16); return skb; } diff -u --recursive --new-file v1.3.7/linux/net/core/sock.c linux/net/core/sock.c --- v1.3.7/linux/net/core/sock.c Fri Jul 7 08:54:57 1995 +++ linux/net/core/sock.c Fri Jul 7 13:09:31 1995 @@ -129,7 +129,7 @@ if(err) return err; - val = get_fs_long((unsigned long *)optval); + val = get_user((int *)optval); valbool = val?1:0; switch(optname) diff -u --recursive --new-file v1.3.7/linux/net/ipv4/af_inet.c linux/net/ipv4/af_inet.c --- v1.3.7/linux/net/ipv4/af_inet.c Fri Jul 7 08:54:57 1995 +++ linux/net/ipv4/af_inet.c Fri Jul 7 11:15:18 1995 @@ -1280,7 +1280,7 @@ { struct sock *sk=(struct sock *)sock->data; int err; - int tmp; + int pid; switch(cmd) { @@ -1289,11 +1289,11 @@ err=verify_area(VERIFY_READ,(int *)arg,sizeof(long)); if(err) return err; - tmp = get_fs_long((int *) arg); + pid = get_user((int *) arg); /* see inet_fcntl */ - if (current->pid != tmp && current->pgrp != -tmp && !suser()) + if (current->pid != pid && current->pgrp != -pid && !suser()) return -EPERM; - sk->proc = tmp; + sk->proc = pid; return(0); case FIOGETOWN: case SIOCGPGRP: diff -u --recursive --new-file v1.3.7/linux/net/ipv4/ip.c linux/net/ipv4/ip.c --- v1.3.7/linux/net/ipv4/ip.c Fri Jul 7 08:54:57 1995 +++ linux/net/ipv4/ip.c Thu Jul 6 18:29:02 1995 @@ -1660,7 +1660,7 @@ extern struct device loopback_dev; struct device *dev=&loopback_dev; int len=skb->len-old_dev->hard_header_len; - struct sk_buff *newskb=dev_alloc_skb(len+dev->hard_header_len); + struct sk_buff *newskb=dev_alloc_skb(len+dev->hard_header_len+15); if(newskb==NULL) return; diff -u --recursive --new-file v1.3.7/linux/net/ipv4/tcp.c linux/net/ipv4/tcp.c --- v1.3.7/linux/net/ipv4/tcp.c Fri Jul 7 08:54:57 1995 +++ linux/net/ipv4/tcp.c Fri Jul 7 13:09:32 1995 @@ -2020,7 +2020,7 @@ while (len > 0) { struct sk_buff * skb; - unsigned long offset; + u32 offset; /* * Are we at urgent data? Stop if we have read anything. @@ -2125,7 +2125,7 @@ if (sk->urg_data) { - unsigned long urg_offset = sk->urg_seq - *seq; + u32 urg_offset = sk->urg_seq - *seq; if (urg_offset < used) { if (!urg_offset) @@ -4085,7 +4085,7 @@ static void tcp_check_urg(struct sock * sk, struct tcphdr * th) { - unsigned long ptr = ntohs(th->urg_ptr); + u32 ptr = ntohs(th->urg_ptr); if (ptr) ptr--; @@ -4118,7 +4118,7 @@ extern __inline__ int tcp_urg(struct sock *sk, struct tcphdr *th, unsigned long saddr, unsigned long len) { - unsigned long ptr; + u32 ptr; /* * Check if we get a new urgent pointer - normally not diff -u --recursive --new-file v1.3.7/linux/net/ipx/af_ipx.c linux/net/ipx/af_ipx.c --- v1.3.7/linux/net/ipx/af_ipx.c Fri Jul 7 08:54:57 1995 +++ linux/net/ipx/af_ipx.c Fri Jul 7 13:09:32 1995 @@ -1298,7 +1298,7 @@ } break; - case SOL_SOCKET: + case SOL_SOCKET: return sock_setsockopt(sk,level,optname,optval,optlen); default: