Commit 6b141b34 authored by Linus Torvalds's avatar Linus Torvalds

Import 1.3.8

parent 2d52d174
...@@ -233,6 +233,13 @@ S: Myrstuguv. 83 ...@@ -233,6 +233,13 @@ S: Myrstuguv. 83
S: S-143 32 VARBY S: S-143 32 VARBY
S: Sweden 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 N: Doug Evans
E: dje@cygnus.com E: dje@cygnus.com
D: Wrote Xenix FS (part of standard kernel since 0.99.15) D: Wrote Xenix FS (part of standard kernel since 0.99.15)
...@@ -452,6 +459,14 @@ N: Rudolf Koenig ...@@ -452,6 +459,14 @@ N: Rudolf Koenig
E: rfkoenig@immd4.informatik.uni-erlangen.de E: rfkoenig@immd4.informatik.uni-erlangen.de
D: The Linux Support Team Erlangen 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 N: Bas Laarhoven
E: bas@vimec.nl E: bas@vimec.nl
D: Loadable modules and ftape driver D: Loadable modules and ftape driver
......
VERSION = 1 VERSION = 1
PATCHLEVEL = 3 PATCHLEVEL = 3
SUBLEVEL = 7 SUBLEVEL = 8
ARCH = i386 ARCH = i386
......
...@@ -112,7 +112,7 @@ bool 'Seagate ST-02 and Future Domain TMC-8xx SCSI support' CONFIG_SCSI_SEAGATE ...@@ -112,7 +112,7 @@ bool 'Seagate ST-02 and Future Domain TMC-8xx SCSI support' CONFIG_SCSI_SEAGATE
bool 'Trantor T128/T128F/T228 SCSI support' CONFIG_SCSI_T128 n bool 'Trantor T128/T128F/T228 SCSI support' CONFIG_SCSI_T128 n
bool 'UltraStor SCSI support' CONFIG_SCSI_ULTRASTOR n bool 'UltraStor SCSI support' CONFIG_SCSI_ULTRASTOR n
bool '7000FASST SCSI support' CONFIG_SCSI_7000FASST 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 #bool 'SCSI debugging host adapter' CONFIG_SCSI_DEBUG n
fi fi
......
...@@ -180,7 +180,7 @@ unsigned int csum_partial_copy_fromuser( char *src, char *dst, ...@@ -180,7 +180,7 @@ unsigned int csum_partial_copy_fromuser( char *src, char *dst,
movw %%cx, (%%edi) movw %%cx, (%%edi)
leal 2(%%edi), %%edi leal 2(%%edi), %%edi
je 6f je 6f
shll $16,%%edx shll $16,%%ecx
5: movb %%fs:(%%esi), %%cl 5: movb %%fs:(%%esi), %%cl
movb %%cl, (%%edi) movb %%cl, (%%edi)
6: addl %%ecx, %%eax 6: addl %%ecx, %%eax
...@@ -275,7 +275,7 @@ unsigned int csum_partial_copy( char *src, char *dst, ...@@ -275,7 +275,7 @@ unsigned int csum_partial_copy( char *src, char *dst,
movw %%cx, (%%edi) movw %%cx, (%%edi)
leal 2(%%edi), %%edi leal 2(%%edi), %%edi
je 6f je 6f
shll $16,%%edx shll $16,%%ecx
5: movb (%%esi), %%cl 5: movb (%%esi), %%cl
movb %%cl, (%%edi) movb %%cl, (%%edi)
6: addl %%ecx, %%eax 6: addl %%ecx, %%eax
......
...@@ -1000,7 +1000,6 @@ lance_rx(struct device *dev) ...@@ -1000,7 +1000,6 @@ lance_rx(struct device *dev)
} }
skb->dev = dev; skb->dev = dev;
skb_reserve(skb,2); /* 16 byte align */ skb_reserve(skb,2); /* 16 byte align */
skb_put(skb,pkt_len); /* Make room */
eth_copy_and_sum(skb_put(skb,pkt_len), eth_copy_and_sum(skb_put(skb,pkt_len),
(unsigned char *)(lp->rx_ring[entry].base & 0x00ffffff), (unsigned char *)(lp->rx_ring[entry].base & 0x00ffffff),
pkt_len,0); pkt_len,0);
......
/* /*
* eata.c - Low-level driver for EATA/DMA SCSI host adapters. * 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 * 11 Mar 1995 rev. 2.00 for linux 1.2.0
* Fixed a bug which prevented media change detection for removable * Fixed a bug which prevented media change detection for removable
* disk drives. * disk drives.
...@@ -118,6 +121,7 @@ ...@@ -118,6 +121,7 @@
#include <linux/ioport.h> #include <linux/ioport.h>
#include <asm/io.h> #include <asm/io.h>
#include <asm/system.h> #include <asm/system.h>
#include <linux/proc_fs.h>
#include "../block/blk.h" #include "../block/blk.h"
#include "scsi.h" #include "scsi.h"
#include "hosts.h" #include "hosts.h"
......
...@@ -7,16 +7,19 @@ ...@@ -7,16 +7,19 @@
#include <linux/scsicam.h> #include <linux/scsicam.h>
#define EATA_VERSION "2.00.00"
int eata2x_detect(Scsi_Host_Template *); int eata2x_detect(Scsi_Host_Template *);
int eata2x_queuecommand(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *)); int eata2x_queuecommand(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *));
int eata2x_abort(Scsi_Cmnd *); int eata2x_abort(Scsi_Cmnd *);
int eata2x_reset(Scsi_Cmnd *); int eata2x_reset(Scsi_Cmnd *);
#define EATA_VERSION "2.01.00"
#define EATA { \ #define EATA { \
NULL, /* Ptr for modules */ \ NULL, /* Ptr for modules */ \
NULL, /* usage count for modules */ \ NULL, /* usage count for modules */ \
NULL, \
"eata2x", \
PROC_SCSI_EATA2X, \
"EATA/DMA 2.0x rev. " EATA_VERSION " ", \ "EATA/DMA 2.0x rev. " EATA_VERSION " ", \
eata2x_detect, \ eata2x_detect, \
NULL, /* Release */ \ NULL, /* Release */ \
......
...@@ -53,11 +53,17 @@ static int load_elf_library(int fd); ...@@ -53,11 +53,17 @@ static int load_elf_library(int fd);
static int elf_core_dump(long signr, struct pt_regs * regs); static int elf_core_dump(long signr, struct pt_regs * regs);
extern int dump_fpu (elf_fpregset_t *); 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 = { struct linux_binfmt elf_format = {
#ifndef MODULE #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 #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 #endif
}; };
......
...@@ -50,7 +50,6 @@ asmlinkage int sys_brk(unsigned long); ...@@ -50,7 +50,6 @@ asmlinkage int sys_brk(unsigned long);
static int load_aout_binary(struct linux_binprm *, struct pt_regs * regs); static int load_aout_binary(struct linux_binprm *, struct pt_regs * regs);
static int load_aout_library(int fd); 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 *); extern void dump_thread(struct pt_regs *, struct user *);
...@@ -163,7 +162,7 @@ if (file.f_op->lseek) { \ ...@@ -163,7 +162,7 @@ if (file.f_op->lseek) { \
* field, which also makes sure the core-dumps won't be recursive if the * field, which also makes sure the core-dumps won't be recursive if the
* dumping of the process results in another error.. * 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 inode * inode = NULL;
struct file file; struct file file;
......
...@@ -759,7 +759,7 @@ int ext2_symlink (struct inode * dir, const char * name, int len, ...@@ -759,7 +759,7 @@ int ext2_symlink (struct inode * dir, const char * name, int len,
for (l = 0; l < inode->i_sb->s_blocksize - 1 && for (l = 0; l < inode->i_sb->s_blocksize - 1 &&
symname [l]; l++) 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); ext2_debug ("l=%d, normal symlink\n", l);
......
...@@ -231,6 +231,7 @@ static int do_isofs_readdir(struct inode *inode, struct file *filp, ...@@ -231,6 +231,7 @@ static int do_isofs_readdir(struct inode *inode, struct file *filp,
/* rrflag == 1 means that we have a new name (kmalloced) */ /* rrflag == 1 means that we have a new name (kmalloced) */
if (rrflag == 1) { if (rrflag == 1) {
rrflag = filldir(dirent, name, len, filp->f_pos, inode_number); 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.. */ kfree(name); /* this was allocated in get_r_r_filename.. */
if (rrflag < 0) if (rrflag < 0)
break; break;
...@@ -243,6 +244,7 @@ static int do_isofs_readdir(struct inode *inode, struct file *filp, ...@@ -243,6 +244,7 @@ static int do_isofs_readdir(struct inode *inode, struct file *filp,
len = isofs_name_translate(name, len, tmpname); len = isofs_name_translate(name, len, tmpname);
if (filldir(dirent, tmpname, len, filp->f_pos, inode_number) < 0) if (filldir(dirent, tmpname, len, filp->f_pos, inode_number) < 0)
break; break;
dcache_add(inode, tmpname, len, inode_number);
filp->f_pos += de_len; filp->f_pos += de_len;
continue; continue;
} }
...@@ -250,6 +252,7 @@ static int do_isofs_readdir(struct inode *inode, struct file *filp, ...@@ -250,6 +252,7 @@ static int do_isofs_readdir(struct inode *inode, struct file *filp,
if (filldir(dirent, name, len, filp->f_pos, inode_number) < 0) if (filldir(dirent, name, len, filp->f_pos, inode_number) < 0)
break; break;
dcache_add(inode, name, len, inode_number);
filp->f_pos += de_len; filp->f_pos += de_len;
continue; continue;
} }
......
#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 */
#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 */
...@@ -44,6 +44,7 @@ extern int read_exec(struct inode *inode, unsigned long offset, ...@@ -44,6 +44,7 @@ extern int read_exec(struct inode *inode, unsigned long offset,
char * addr, unsigned long count, int to_kmem); char * addr, unsigned long count, int to_kmem);
extern int open_inode(struct inode * inode, int mode); 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 void flush_old_exec(struct linux_binprm * bprm);
extern unsigned long setup_arg_pages(unsigned long text_size,unsigned long * page); extern unsigned long setup_arg_pages(unsigned long text_size,unsigned long * page);
......
...@@ -127,6 +127,7 @@ enum scsi_directory_inos { ...@@ -127,6 +127,7 @@ enum scsi_directory_inos {
PROC_SCSI_NCR53C7xx, PROC_SCSI_NCR53C7xx,
PROC_SCSI_ULTRASTOR, PROC_SCSI_ULTRASTOR,
PROC_SCSI_7000FASST, PROC_SCSI_7000FASST,
PROC_SCSI_EATA2X,
PROC_SCSI_SCSI_DEBUG, PROC_SCSI_SCSI_DEBUG,
PROC_SCSI_NOT_PRESENT, PROC_SCSI_NOT_PRESENT,
PROC_SCSI_FILE, /* I'm asuming here that we */ PROC_SCSI_FILE, /* I'm asuming here that we */
......
...@@ -225,7 +225,7 @@ struct task_struct { ...@@ -225,7 +225,7 @@ struct task_struct {
* your own risk!. Base=0, limit=0x1fffff (=2MB) * your own risk!. Base=0, limit=0x1fffff (=2MB)
*/ */
#define INIT_TASK \ #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, }, \ /* debugregs */ { 0, }, \
/* exec domain */&default_exec_domain, \ /* exec domain */&default_exec_domain, \
/* binfmt */ NULL, \ /* binfmt */ NULL, \
......
#ifndef _LINUX_SOCKET_H #ifndef _LINUX_SOCKET_H
#define _LINUX_SOCKET_H #define _LINUX_SOCKET_H
#include <asm/socket.h> /* arch-dependent defines */
#include <linux/sockios.h> /* the SIOCxxx I/O controls */ #include <linux/sockios.h> /* the SIOCxxx I/O controls */
...@@ -59,7 +60,6 @@ struct linger { ...@@ -59,7 +60,6 @@ struct linger {
#define MSG_DONTROUTE 4 #define MSG_DONTROUTE 4
/* Setsockoptions(2) level. Thanks to BSD these must match IPPROTO_xxx */ /* Setsockoptions(2) level. Thanks to BSD these must match IPPROTO_xxx */
#define SOL_SOCKET 1
#define SOL_IP 0 #define SOL_IP 0
#define SOL_IPX 256 #define SOL_IPX 256
#define SOL_AX25 257 #define SOL_AX25 257
...@@ -68,22 +68,6 @@ struct linger { ...@@ -68,22 +68,6 @@ struct linger {
#define SOL_TCP 6 #define SOL_TCP 6
#define SOL_UDP 17 #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 */ /* IP options */
#define IP_TOS 1 #define IP_TOS 1
#define IPTOS_LOWDELAY 0x10 #define IPTOS_LOWDELAY 0x10
......
...@@ -176,6 +176,7 @@ struct symbol_table symbol_table = { ...@@ -176,6 +176,7 @@ struct symbol_table symbol_table = {
X(__wait_on_buffer), X(__wait_on_buffer),
X(dcache_lookup), X(dcache_lookup),
X(dcache_add), X(dcache_add),
X(aout_core_dump),
/* device registration */ /* device registration */
X(register_chrdev), X(register_chrdev),
......
...@@ -356,7 +356,8 @@ void dev_queue_xmit(struct sk_buff *skb, struct device *dev, int pri) ...@@ -356,7 +356,8 @@ void dev_queue_xmit(struct sk_buff *skb, struct device *dev, int pri)
save_flags(flags); save_flags(flags);
cli(); 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_queue_tail(dev->buffs + pri,skb);
skb_device_unlock(skb); /* Buffer is on the device queue and can be freed safely */ skb_device_unlock(skb); /* Buffer is on the device queue and can be freed safely */
...@@ -381,6 +382,7 @@ void dev_queue_xmit(struct sk_buff *skb, struct device *dev, int pri) ...@@ -381,6 +382,7 @@ void dev_queue_xmit(struct sk_buff *skb, struct device *dev, int pri)
if ((skb2 = skb_clone(skb, GFP_ATOMIC)) == NULL) if ((skb2 = skb_clone(skb, GFP_ATOMIC)) == NULL)
break; break;
skb2->h.raw = skb2->data + dev->hard_header_len; skb2->h.raw = skb2->data + dev->hard_header_len;
skb2->mac.raw = skb2->data;
ptype->func(skb2, skb->dev, ptype); ptype->func(skb2, skb->dev, ptype);
nitcount--; nitcount--;
} }
......
...@@ -613,6 +613,7 @@ struct sk_buff *skb_clone(struct sk_buff *skb, int priority) ...@@ -613,6 +613,7 @@ struct sk_buff *skb_clone(struct sk_buff *skb, int priority)
n->when=skb->when; n->when=skb->when;
n->dev=skb->dev; n->dev=skb->dev;
n->h.raw=skb->h.raw+offset; 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->ip_hdr=(struct iphdr *)(((char *)skb->ip_hdr)+offset);
n->saddr=skb->saddr; n->saddr=skb->saddr;
n->daddr=skb->daddr; n->daddr=skb->daddr;
...@@ -674,7 +675,10 @@ void dev_kfree_skb(struct sk_buff *skb, int mode) ...@@ -674,7 +675,10 @@ void dev_kfree_skb(struct sk_buff *skb, int mode)
struct sk_buff *dev_alloc_skb(unsigned int length) struct sk_buff *dev_alloc_skb(unsigned int length)
{ {
struct sk_buff *skb=alloc_skb(length+16, GFP_ATOMIC); struct sk_buff *skb;
skb = alloc_skb(length+16, GFP_ATOMIC);
if (skb)
skb_reserve(skb,16); skb_reserve(skb,16);
return skb; return skb;
} }
......
...@@ -129,7 +129,7 @@ int sock_setsockopt(struct sock *sk, int level, int optname, ...@@ -129,7 +129,7 @@ int sock_setsockopt(struct sock *sk, int level, int optname,
if(err) if(err)
return err; return err;
val = get_fs_long((unsigned long *)optval); val = get_user((int *)optval);
valbool = val?1:0; valbool = val?1:0;
switch(optname) switch(optname)
......
...@@ -1280,7 +1280,7 @@ static int inet_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg) ...@@ -1280,7 +1280,7 @@ static int inet_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
{ {
struct sock *sk=(struct sock *)sock->data; struct sock *sk=(struct sock *)sock->data;
int err; int err;
int tmp; int pid;
switch(cmd) switch(cmd)
{ {
...@@ -1289,11 +1289,11 @@ static int inet_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg) ...@@ -1289,11 +1289,11 @@ static int inet_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
err=verify_area(VERIFY_READ,(int *)arg,sizeof(long)); err=verify_area(VERIFY_READ,(int *)arg,sizeof(long));
if(err) if(err)
return err; return err;
tmp = get_fs_long((int *) arg); pid = get_user((int *) arg);
/* see inet_fcntl */ /* see inet_fcntl */
if (current->pid != tmp && current->pgrp != -tmp && !suser()) if (current->pid != pid && current->pgrp != -pid && !suser())
return -EPERM; return -EPERM;
sk->proc = tmp; sk->proc = pid;
return(0); return(0);
case FIOGETOWN: case FIOGETOWN:
case SIOCGPGRP: case SIOCGPGRP:
......
...@@ -1660,7 +1660,7 @@ static void ip_loopback(struct device *old_dev, struct sk_buff *skb) ...@@ -1660,7 +1660,7 @@ static void ip_loopback(struct device *old_dev, struct sk_buff *skb)
extern struct device loopback_dev; extern struct device loopback_dev;
struct device *dev=&loopback_dev; struct device *dev=&loopback_dev;
int len=skb->len-old_dev->hard_header_len; 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) if(newskb==NULL)
return; return;
......
...@@ -2020,7 +2020,7 @@ static int tcp_read(struct sock *sk, unsigned char *to, ...@@ -2020,7 +2020,7 @@ static int tcp_read(struct sock *sk, unsigned char *to,
while (len > 0) while (len > 0)
{ {
struct sk_buff * skb; struct sk_buff * skb;
unsigned long offset; u32 offset;
/* /*
* Are we at urgent data? Stop if we have read anything. * Are we at urgent data? Stop if we have read anything.
...@@ -2125,7 +2125,7 @@ static int tcp_read(struct sock *sk, unsigned char *to, ...@@ -2125,7 +2125,7 @@ static int tcp_read(struct sock *sk, unsigned char *to,
if (sk->urg_data) 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 < used)
{ {
if (!urg_offset) if (!urg_offset)
...@@ -4085,7 +4085,7 @@ extern __inline__ int tcp_data(struct sk_buff *skb, struct sock *sk, ...@@ -4085,7 +4085,7 @@ extern __inline__ int tcp_data(struct sk_buff *skb, struct sock *sk,
static void tcp_check_urg(struct sock * sk, struct tcphdr * th) 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) if (ptr)
ptr--; ptr--;
...@@ -4118,7 +4118,7 @@ static void tcp_check_urg(struct sock * sk, struct tcphdr * th) ...@@ -4118,7 +4118,7 @@ static void tcp_check_urg(struct sock * sk, struct tcphdr * th)
extern __inline__ int tcp_urg(struct sock *sk, struct tcphdr *th, extern __inline__ int tcp_urg(struct sock *sk, struct tcphdr *th,
unsigned long saddr, unsigned long len) unsigned long saddr, unsigned long len)
{ {
unsigned long ptr; u32 ptr;
/* /*
* Check if we get a new urgent pointer - normally not * Check if we get a new urgent pointer - normally not
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment