]> git.neil.brown.name Git - history.git/commitdiff
Import 2.3.35pre3 2.3.35pre3
authorLinus Torvalds <torvalds@linuxfoundation.org>
Fri, 23 Nov 2007 20:29:33 +0000 (15:29 -0500)
committerLinus Torvalds <torvalds@linuxfoundation.org>
Fri, 23 Nov 2007 20:29:33 +0000 (15:29 -0500)
38 files changed:
arch/sparc/config.in
arch/sparc/mm/srmmu.c
arch/sparc64/config.in
drivers/pcmcia/pci_socket.c
drivers/pcmcia/yenta.c
drivers/scsi/esp.c
include/linux/qnx4_fs_i.h
include/linux/qnx4_fs_sb.h
include/linux/qnxtypes.h
include/linux/skbuff.h
net/core/dev.c
net/core/skbuff.c
net/core/sock.c
net/ipv4/af_inet.c
net/ipv4/arp.c
net/ipv4/fib_frontend.c
net/ipv4/icmp.c
net/ipv4/igmp.c
net/ipv4/ip_output.c
net/ipv4/ipmr.c
net/ipv4/proc.c
net/ipv4/raw.c
net/ipv4/route.c
net/ipv4/tcp.c
net/ipv4/tcp_input.c
net/ipv4/tcp_ipv4.c
net/ipv4/udp.c
net/ipv6/addrconf.c
net/ipv6/af_inet6.c
net/ipv6/mcast.c
net/ipv6/proc.c
net/ipv6/raw.c
net/ipv6/route.c
net/ipv6/tcp_ipv6.c
net/ipv6/udp.c
net/netsyms.c
net/packet/af_packet.c
net/unix/af_unix.c

index 1521dfaa7e5b2f809b23c3cf56f2d1af18f54327..9ed06dc1f9b5213a439371d09947d81fbcc8606f 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: config.in,v 1.78 1999/12/20 05:01:36 davem Exp $
+# $Id: config.in,v 1.79 1999/12/23 01:46:00 davem Exp $
 # For a description of the syntax of this configuration file,
 # see the Configure script.
 #
@@ -143,7 +143,7 @@ if [ "$CONFIG_SCSI" != "n" ]; then
    mainmenu_option next_comment
    comment 'SCSI low-level drivers'
 
-   bool 'Sparc ESP Scsi Driver' CONFIG_SCSI_SUNESP $CONFIG_SCSI
+   tristate 'Sparc ESP Scsi Driver' CONFIG_SCSI_SUNESP $CONFIG_SCSI
    tristate 'PTI Qlogic,ISP Driver' CONFIG_SCSI_QLOGICPTI $CONFIG_SCSI
    endmenu
 fi
index 2fc45e12964842085ff678883e431a5322a38849..c365cf0d5bacac226b90d1813a4f30e90c593fd1 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: srmmu.c,v 1.198 1999/11/14 06:15:14 zaitcev Exp $
+/* $Id: srmmu.c,v 1.199 1999/12/23 02:00:51 davem Exp $
  * srmmu.c:  SRMMU specific routines for memory management.
  *
  * Copyright (C) 1995 David S. Miller  (davem@caip.rutgers.edu)
@@ -1560,7 +1560,8 @@ static unsigned long __init map_spbank(unsigned long vbase, int sp_entry)
        srmmu_map[srmmu_bank].vbase = vbase;
        srmmu_map[srmmu_bank].pbase = sp_banks[sp_entry].base_addr;
        srmmu_map[srmmu_bank].size = sp_banks[sp_entry].num_bytes;
-       srmmu_bank++;
+       if (srmmu_map[srmmu_bank].size)
+               srmmu_bank++;
        map_spbank_last_pa = pstart - SRMMU_PGDIR_SIZE;
        return vstart;
 }
index 78a76cddf18d80bae186171412bf25cebb29a31c..c1ef4664814121de2bbee75db2f12cbd079404c6 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: config.in,v 1.85 1999/12/20 05:01:56 davem Exp $
+# $Id: config.in,v 1.86 1999/12/23 01:46:09 davem Exp $
 # For a description of the syntax of this configuration file,
 # see the Configure script.
 #
@@ -145,7 +145,7 @@ if [ "$CONFIG_SCSI" != "n" ]; then
    mainmenu_option next_comment
    comment 'SCSI low-level drivers'
 
-   bool 'Sparc ESP Scsi Driver' CONFIG_SCSI_SUNESP $CONFIG_SCSI
+   tristate 'Sparc ESP Scsi Driver' CONFIG_SCSI_SUNESP $CONFIG_SCSI
    tristate 'PTI Qlogic, ISP Driver' CONFIG_SCSI_QLOGICPTI $CONFIG_SCSI
 
    if [ "$CONFIG_PCI" != "n" ]; then
index 7e1cb00a521a9e6e4c8694075e815ff4623e9c83..914b6efc77f96c45c9e0b1a78267ea490a8af1fd 100644 (file)
@@ -30,6 +30,7 @@
 
 static struct pci_simple_probe_entry controller_list[] = {
        { PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_1225, 0, 0, &yenta_operations },
+       { 0x1180, 0x0475, 0, 0, &yenta_operations },
        { 0, 0, 0, 0, NULL }
 };
 
index 3be0e5958f422a9eec313abdd67f5a25a095aa89..2ecf03886c83d65ed9596b6737b9e4bbc9c1cebc 100644 (file)
 static int yenta_inquire(pci_socket_t *socket, socket_cap_t *cap)
 {
        cap->features = SS_CAP_PAGE_REGS | SS_CAP_PCCARD | SS_CAP_CARDBUS;
-       cap->irq_mask = 0;
-       cap->map_size = 0;
+       cap->irq_mask = 0xdeb8;         /* irq 15,14,12,11,10,9,7,5,4,3 */
+       cap->map_size = 0x1000;
        cap->pci_irq = socket->irq;
-       cap->cardbus = 1;
+       cap->cardbus = 0;
        cap->cb_bus = NULL;
        cap->bus = NULL;
 
@@ -36,7 +36,7 @@ printk("yenta_inquire()\n");
 }
 
 /*
- * Silly interface. We convert the cardbus status to a internal status,
+ * Silly interface. We convert the cardbus status to a internal status,
  * and we probably really should keep it in cardbus status form and
  * only convert for old-style 16-bit PCMCIA cards..
  */
@@ -265,7 +265,7 @@ static int yenta_get_mem_map(pci_socket_t *socket, struct pccard_mem_map *mem)
        mem->speed  = (stop & I365_MEM_WS0) ? 1 : 0;
        mem->speed += (stop & I365_MEM_WS1) ? 2 : 0;
        mem->speed = to_ns(mem->speed);
-       stop = ((u_long)(stop & 0x0fff) << 12) + 0x0fff;
+       stop = ((stop & 0x0fff) << 12) + 0x0fff;
 
        offset = exca_readw(socket, I365_MEM(map) + I365_W_OFF);
        mem->flags |= (offset & I365_MEM_WRPROT) ? MAP_WRPROT : 0;
@@ -353,13 +353,31 @@ static void yenta_proc_setup(pci_socket_t *socket, struct proc_dir_entry *base)
 
 static void yenta_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
-       pci_socket_t *sock = (pci_socket_t *) dev_id;
-       u32 event = readl(sock->base + CB_SOCKET_EVENT);
+       u8 csc;
+       u32 cb_event;
+       unsigned int events;
+       pci_socket_t *socket = (pci_socket_t *) dev_id;
 
        /* Clear interrupt status for the event */
-       writel(event, sock->base +CB_SOCKET_EVENT);
+       cb_event = cb_readl(socket, CB_SOCKET_EVENT);
+       cb_writel(socket, CB_SOCKET_EVENT, cb_event);
 
-       printk("Socket interrupt event %08x\n", event);
+       csc = exca_readb(socket, I365_CSC);
+
+       events = (cb_event & (CB_CD1EVENT | CB_CD2EVENT)) ? SS_DETECT : 0 ;
+       events |= (csc & I365_CSC_DETECT) ? SS_DETECT : 0;
+       if (exca_readb(socket, I365_INTCTL) & I365_PC_IOCARD) {
+               events |= (csc & I365_CSC_STSCHG) ? SS_STSCHG : 0;
+       } else {
+               events |= (csc & I365_CSC_BVD1) ? SS_BATDEAD : 0;
+               events |= (csc & I365_CSC_BVD2) ? SS_BATWARN : 0;
+               events |= (csc & I365_CSC_READY) ? SS_READY : 0;
+       }
+
+       printk("Socket interrupt event %08x (%08x %02x)\n", events, cb_event, csc);
+
+       if (events && socket->handler)
+               socket->handler(socket->info, events);
 }
 
 /*
index cf0a79190a002857bf41b261618020b61b6b5259..b03d413169dbfedbe97286b340a7c6d276bec6d4 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: esp.c,v 1.88 1999/12/21 02:38:07 davem Exp $
+/* $Id: esp.c,v 1.89 1999/12/23 01:46:14 davem Exp $
  * esp.c:  EnhancedScsiProcessor Sun SCSI driver code.
  *
  * Copyright (C) 1995, 1998 David S. Miller (davem@caip.rutgers.edu)
@@ -40,6 +40,8 @@
 #include <asm/irq.h>
 #include <asm/idprom.h>
 
+#include <linux/module.h>
+
 #define DEBUG_ESP
 /* #define DEBUG_ESP_HME */
 /* #define DEBUG_ESP_DATA */
@@ -4337,3 +4339,11 @@ static void esp_intr(int irq, void *dev_id, struct pt_regs *pregs)
        }
        spin_unlock_irqrestore(&esp->lock, flags);
 }
+
+#ifdef MODULE
+Scsi_Host_Template driver_template = SCSI_SPARC_ESP;
+
+#include "scsi_module.c"
+
+EXPORT_NO_SYMBOLS;
+#endif /* MODULE */
index 83d53e5294758dd6395247150c34229aa6abc6a0..5582c81215c4c4fc025d15e3c60821fe79f3b671 100644 (file)
  */
 struct qnx4_inode_info {
        char i_reserved[16];    /* 16 */
-       off_t i_size;           /*  4 */
-       _xtnt_t i_first_xtnt;   /*  8 */
+       qnx4_off_t i_size;              /*  4 */
+       qnx4_xtnt_t i_first_xtnt;       /*  8 */
        long i_xblk;            /*  4 */
        time_t i_ftime;         /*  4 */
        time_t i_mtime;         /*  4 */
        time_t i_atime;         /*  4 */
        time_t i_ctime;         /*  4 */
-       _nxtnt_t i_num_xtnts;   /*  2 */
+       qnx4_nxtnt_t i_num_xtnts;       /*  2 */
        mode_t i_mode;          /*  2 */
-       muid_t i_uid;           /*  2 */
-       mgid_t i_gid;           /*  2 */
-       nlink_t i_nlink;        /*  2 */
+       qnx4_muid_t i_uid;              /*  2 */
+       qnx4_mgid_t i_gid;              /*  2 */
+       qnx4_nlink_t i_nlink;   /*  2 */
        char i_zero[4];         /*  4 */
-       _ftype_t i_type;        /*  1 */
+       qnx4_ftype_t i_type;    /*  1 */
        unsigned char i_status; /*  1 */
 };
 
index 9f28d3cb041d1f30b3a3f951740638225fb44f50..35abd99f124836e75de3d9b41ddf02c354d799c2 100644 (file)
@@ -11,7 +11,7 @@
 #ifndef _QNX4_FS_SB
 #define _QNX4_FS_SB
 
-#include <linux/qnxtypes.h>
+#include <linux/qnx4_fs.h>
 
 /*
  * qnx4 super-block data in memory
index 054da0d1db8477e35bdfd7c0b08343d0f93cf255..0a700e1cd8f7c2a576d54df1b27d4430c52e7539 100644 (file)
 #ifndef _QNX4TYPES_H
 #define _QNX4TYPES_H
 
-typedef unsigned short _nxtnt_t;
-typedef unsigned char _ftype_t;
+typedef unsigned short qnx4_nxtnt_t;
+typedef unsigned char qnx4_ftype_t;
 
 typedef struct {
        long xtnt_blk;
        long xtnt_size;
-} _xtnt_t;
+} qnx4_xtnt_t;
 
-typedef unsigned short muid_t;
-typedef unsigned short mgid_t;
-typedef unsigned long qnx_off_t;
-typedef unsigned short qnx_nlink_t;
+typedef unsigned short qnx4_muid_t;
+typedef unsigned short qnx4_mgid_t;
+typedef unsigned long qnx4_off_t;
+typedef unsigned short qnx4_nlink_t;
 
 #endif
index 27232bd5bb8e33864a7a9fe9ffc3d4a8cc349da9..8eeaf9185c82ce54e11d6c2af53ac35f23ac7cd4 100644 (file)
@@ -168,19 +168,25 @@ extern struct sk_buff *           alloc_skb(unsigned int size, int priority);
 extern struct sk_buff *                dev_alloc_skb(unsigned int size);
 extern void                    kfree_skbmem(struct sk_buff *skb);
 extern struct sk_buff *                skb_clone(struct sk_buff *skb, int priority);
-extern struct sk_buff *                skb_copy(struct sk_buff *skb, int priority);
-extern struct sk_buff *                skb_realloc_headroom(struct sk_buff *skb, int newheadroom);
+extern struct sk_buff *                skb_copy(const struct sk_buff *skb, int priority);
+extern struct sk_buff *                skb_copy_expand(const struct sk_buff *skb, 
+                                               int newheadroom,
+                                               int newtailroom,
+                                               int priority);
 #define dev_kfree_skb(a)       kfree_skb(a)
 extern unsigned char *         skb_put(struct sk_buff *skb, unsigned int len);
 extern unsigned char *         skb_push(struct sk_buff *skb, unsigned int len);
 extern unsigned char *         skb_pull(struct sk_buff *skb, unsigned int len);
-extern int                     skb_headroom(struct sk_buff *skb);
-extern int                     skb_tailroom(struct sk_buff *skb);
+extern int                     skb_headroom(const struct sk_buff *skb);
+extern int                     skb_tailroom(const struct sk_buff *skb);
 extern void                    skb_reserve(struct sk_buff *skb, unsigned int len);
 extern void                    skb_trim(struct sk_buff *skb, unsigned int len);
 extern void    skb_over_panic(struct sk_buff *skb, int len, void *here);
 extern void    skb_under_panic(struct sk_buff *skb, int len, void *here);
 
+/* Backwards compatibility */
+#define skb_realloc_headroom(skb, nhr) skb_copy_expand(skb, nhr, skb_tailroom(skb), GFP_ATOMIC)
+
 /* Internal */
 extern __inline__ atomic_t *skb_datarefp(struct sk_buff *skb)
 {
@@ -534,12 +540,12 @@ extern __inline__ unsigned char * skb_pull(struct sk_buff *skb, unsigned int len
        return __skb_pull(skb,len);
 }
 
-extern __inline__ int skb_headroom(struct sk_buff *skb)
+extern __inline__ int skb_headroom(const struct sk_buff *skb)
 {
        return skb->data-skb->head;
 }
 
-extern __inline__ int skb_tailroom(struct sk_buff *skb)
+extern __inline__ int skb_tailroom(const struct sk_buff *skb)
 {
        return skb->end-skb->tail;
 }
index bd367468ef3e2a189668fd32987f06375ba8cafe..698a59cfc25a00ba3e4abac4c147d9cbe0bfafaa 100644 (file)
@@ -55,7 +55,7 @@
  *             Adam Sulmicki   :       Bug Fix : Network Device Unload
  *                                     A network device unload needs to purge
  *                                     the backlog queue.
- *     Paul Rusty Russel       :       SIOCSIFNAME
+ *     Paul Rusty Russell      :       SIOCSIFNAME
  */
 
 #include <asm/uaccess.h>
index 7c8a332e212e840d8730cc93242852e0634889ef..a7f689938fb87b7bd69f5ea8f11e775d68877492 100644 (file)
@@ -4,7 +4,7 @@
  *     Authors:        Alan Cox <iiitac@pyr.swan.ac.uk>
  *                     Florian La Roche <rzsfl@rz.uni-sb.de>
  *
- *     Version:        $Id: skbuff.c,v 1.60 1999/08/23 07:02:01 davem Exp $
+ *     Version:        $Id: skbuff.c,v 1.62 1999/12/23 02:13:42 davem Exp $
  *
  *     Fixes:  
  *             Alan Cox        :       Fixed the worst of the load balancer bugs.
@@ -275,14 +275,48 @@ struct sk_buff *skb_clone(struct sk_buff *skb, int gfp_mask)
        return n;
 }
 
+static void copy_skb_header(struct sk_buff *new, const struct sk_buff *old)
+{
+       /*
+        *      Shift between the two data areas in bytes
+        */
+       unsigned long offset = new->data - old->data;
+
+       new->list=NULL;
+       new->sk=NULL;
+       new->dev=old->dev;
+       new->rx_dev=NULL;
+       new->priority=old->priority;
+       new->protocol=old->protocol;
+       new->dst=dst_clone(old->dst);
+       new->h.raw=old->h.raw+offset;
+       new->nh.raw=old->nh.raw+offset;
+       new->mac.raw=old->mac.raw+offset;
+       memcpy(new->cb, old->cb, sizeof(old->cb));
+       new->used=old->used;
+       new->is_clone=0;
+       atomic_set(&new->users, 1);
+       new->pkt_type=old->pkt_type;
+       new->stamp=old->stamp;
+       new->destructor = NULL;
+       new->security=old->security;
+#ifdef CONFIG_NETFILTER
+       new->nfmark=old->nfmark;
+       new->nfreason=old->nfreason;
+       new->nfcache=old->nfcache;
+#ifdef CONFIG_NETFILTER_DEBUG
+       new->nf_debug=old->nf_debug;
+#endif
+#endif
+}
+
 /*
  *     This is slower, and copies the whole data area 
  */
  
-struct sk_buff *skb_copy(struct sk_buff *skb, int gfp_mask)
+struct sk_buff *skb_copy(const struct sk_buff *skb, int gfp_mask)
 {
        struct sk_buff *n;
-       unsigned long offset;
 
        /*
         *      Allocate the copy buffer
@@ -292,12 +326,6 @@ struct sk_buff *skb_copy(struct sk_buff *skb, int gfp_mask)
        if(n==NULL)
                return NULL;
 
-       /*
-        *      Shift between the two data areas in bytes
-        */
-        
-       offset=n->head-skb->head;
-
        /* Set the data pointer */
        skb_reserve(n,skb->data-skb->head);
        /* Set the tail pointer and length */
@@ -305,86 +333,35 @@ struct sk_buff *skb_copy(struct sk_buff *skb, int gfp_mask)
        /* Copy the bytes */
        memcpy(n->head,skb->head,skb->end-skb->head);
        n->csum = skb->csum;
-       n->list=NULL;
-       n->sk=NULL;
-       n->dev=skb->dev;
-       n->rx_dev=NULL;
-       n->priority=skb->priority;
-       n->protocol=skb->protocol;
-       n->dst=dst_clone(skb->dst);
-       n->h.raw=skb->h.raw+offset;
-       n->nh.raw=skb->nh.raw+offset;
-       n->mac.raw=skb->mac.raw+offset;
-       memcpy(n->cb, skb->cb, sizeof(skb->cb));
-       n->used=skb->used;
-       n->is_clone=0;
-       atomic_set(&n->users, 1);
-       n->pkt_type=skb->pkt_type;
-       n->stamp=skb->stamp;
-       n->destructor = NULL;
-       n->security=skb->security;
-#ifdef CONFIG_NETFILTER
-       n->nfmark=skb->nfmark;
-       n->nfreason=skb->nfreason;
-       n->nfcache=skb->nfcache;
-#ifdef CONFIG_NETFILTER_DEBUG
-       n->nf_debug=skb->nf_debug;
-#endif
-#endif
+       copy_skb_header(n, skb);
+
        return n;
 }
 
-struct sk_buff *skb_realloc_headroom(struct sk_buff *skb, int newheadroom)
+struct sk_buff *skb_copy_expand(const struct sk_buff *skb,
+                               int newheadroom,
+                               int newtailroom,
+                               int gfp_mask)
 {
        struct sk_buff *n;
-       unsigned long offset;
 
        /*
         *      Allocate the copy buffer
         */
         
-       n=alloc_skb((skb->end-skb->data)+newheadroom, GFP_ATOMIC);
+       n=alloc_skb(newheadroom + (skb->tail - skb->data) + newtailroom,
+                   gfp_mask);
        if(n==NULL)
                return NULL;
 
        skb_reserve(n,newheadroom);
 
-       /*
-        *      Shift between the two data areas in bytes
-        */
-        
-       offset=n->data-skb->data;
-
        /* Set the tail pointer and length */
        skb_put(n,skb->len);
-       /* Copy the bytes */
-       memcpy(n->data,skb->data,skb->len);
-       n->list=NULL;
-       n->sk=NULL;
-       n->priority=skb->priority;
-       n->protocol=skb->protocol;
-       n->dev=skb->dev;
-       n->rx_dev=NULL;
-       n->dst=dst_clone(skb->dst);
-       n->h.raw=skb->h.raw+offset;
-       n->nh.raw=skb->nh.raw+offset;
-       n->mac.raw=skb->mac.raw+offset;
-       memcpy(n->cb, skb->cb, sizeof(skb->cb));
-       n->used=skb->used;
-       n->is_clone=0;
-       atomic_set(&n->users, 1);
-       n->pkt_type=skb->pkt_type;
-       n->stamp=skb->stamp;
-       n->destructor = NULL;
-       n->security=skb->security;
-#ifdef CONFIG_NETFILTER
-       n->nfmark=skb->nfmark;
-       n->nfreason=skb->nfreason;
-       n->nfcache=skb->nfcache;
-#ifdef CONFIG_NETFILTER_DEBUG
-       n->nf_debug=skb->nf_debug;
-#endif
-#endif
+       /* Copy the bytes: data pointers must point to same data. */
+       memcpy(n->data - skb_headroom(skb), skb->head, skb->end-skb->head);
+
+       copy_skb_header(n, skb);
        return n;
 }
 
index 15b0ec64fee312d31747ad427da56b8415b1543a..e069ca898f474c2e9ae5f74ae75c4b2cf2a8112c 100644 (file)
@@ -7,7 +7,7 @@
  *             handler for protocols to use and generic option handler.
  *
  *
- * Version:    $Id: sock.c,v 1.86 1999/09/01 08:11:49 davem Exp $
+ * Version:    $Id: sock.c,v 1.87 1999/11/23 08:56:59 davem Exp $
  *
  * Authors:    Ross Biro, <bir7@leland.Stanford.Edu>
  *             Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
index 95ee577e99355a080f351176152e9f35912288d7..b0d08ebe7a961431a567bc2d422df3191e62ff34 100644 (file)
@@ -5,7 +5,7 @@
  *
  *             PF_INET protocol family socket handler.
  *
- * Version:    $Id: af_inet.c,v 1.97 1999/09/08 03:46:46 davem Exp $
+ * Version:    $Id: af_inet.c,v 1.100 1999/12/21 04:05:02 davem Exp $
  *
  * Authors:    Ross Biro, <bir7@leland.Stanford.Edu>
  *             Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
index f4272338b61758b7af369c471c8abab4c07a964f..591f3cceba5e4bec3d91e6e0a12bf2daf383b263 100644 (file)
@@ -1,6 +1,6 @@
 /* linux/net/inet/arp.c
  *
- * Version:    $Id: arp.c,v 1.81 1999/08/30 10:17:05 davem Exp $
+ * Version:    $Id: arp.c,v 1.83 1999/12/15 22:39:03 davem Exp $
  *
  * Copyright (C) 1994 by Florian  La Roche
  *
index d48704cc6e3a6f4273d64af04ec6df4d07757581..0ae574a64e1aff982ade1ec345df50df36630b1a 100644 (file)
@@ -5,7 +5,7 @@
  *
  *             IPv4 Forwarding Information Base: FIB frontend.
  *
- * Version:    $Id: fib_frontend.c,v 1.19 1999/08/31 07:03:23 davem Exp $
+ * Version:    $Id: fib_frontend.c,v 1.21 1999/12/15 22:39:07 davem Exp $
  *
  * Authors:    Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru>
  *
index 4d24ed4132e18af1ede573331e0e82e460396de1..24ee69e0569456d4903e28d2c1e65d1abb9bc9db 100644 (file)
@@ -3,7 +3,7 @@
  *     
  *             Alan Cox, <alan@redhat.com>
  *
- *     Version: $Id: icmp.c,v 1.61 1999/08/31 07:03:33 davem Exp $
+ *     Version: $Id: icmp.c,v 1.62 1999/12/23 01:43:37 davem Exp $
  *
  *     This program is free software; you can redistribute it and/or
  *     modify it under the terms of the GNU General Public License
@@ -483,7 +483,7 @@ static int icmp_glue_bits(const void *p, char *to, unsigned int offset, unsigned
        unsigned long csum;
 
        if (offset) {
-               icmp_param->csum=csum_partial_copy(icmp_param->data_ptr+offset-sizeof(struct icmphdr), 
+               icmp_param->csum=csum_partial_copy_nocheck(icmp_param->data_ptr+offset-sizeof(struct icmphdr), 
                                to, fraglen,icmp_param->csum);
                return 0;
        }
@@ -493,10 +493,10 @@ static int icmp_glue_bits(const void *p, char *to, unsigned int offset, unsigned
         *      the other fragments first, so that we get the checksum
         *      for the whole packet here.
         */
-       csum = csum_partial_copy((void *)&icmp_param->icmph,
+       csum = csum_partial_copy_nocheck((void *)&icmp_param->icmph,
                to, sizeof(struct icmphdr), 
                icmp_param->csum);
-       csum = csum_partial_copy(icmp_param->data_ptr,
+       csum = csum_partial_copy_nocheck(icmp_param->data_ptr,
                to+sizeof(struct icmphdr),
                fraglen-sizeof(struct icmphdr), csum);
        icmph=(struct icmphdr *)to;
index 5f4ab1078346e7c01fd44d03c4831dbeaf65891e..749e4eb468c92a565df790f4856e92b0f2a92eaa 100644 (file)
@@ -8,7 +8,7 @@
  *     the older version didn't come out right using gcc 2.5.8, the newer one
  *     seems to fall out with gcc 2.6.2.
  *
- *     Version: $Id: igmp.c,v 1.34 1999/08/20 11:05:12 davem Exp $
+ *     Version: $Id: igmp.c,v 1.35 1999/12/15 22:39:10 davem Exp $
  *
  *     Authors:
  *             Alan Cox <Alan.Cox@linux.org>
index 73e3869cd457bd8d3d3c177f5c8c8311ca34bf0f..12749c4b10f99dc6387e36c2abed67fb7adc3b70 100644 (file)
@@ -5,7 +5,7 @@
  *
  *             The Internet Protocol (IP) output module.
  *
- * Version:    $Id: ip_output.c,v 1.72 1999/09/07 02:31:15 davem Exp $
+ * Version:    $Id: ip_output.c,v 1.75 1999/12/21 04:05:04 davem Exp $
  *
  * Authors:    Ross Biro, <bir7@leland.Stanford.Edu>
  *             Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
index 86393bfda0373748236da950d693a4504a7e54de..4c1ac3c9483c319cc3dd3b51ae8033eea0642a67 100644 (file)
@@ -9,7 +9,7 @@
  *     as published by the Free Software Foundation; either version
  *     2 of the License, or (at your option) any later version.
  *
- *     Version: $Id: ipmr.c,v 1.46 1999/08/31 07:03:44 davem Exp $
+ *     Version: $Id: ipmr.c,v 1.48 1999/12/15 22:39:16 davem Exp $
  *
  *     Fixes:
  *     Michael Chastain        :       Incorrect size of copying.
index e2068a3abe48e9d03a8247e88fc022079c0e24a0..520f6ef8189fe5f4a6635f96193fc66b7d08e1ff 100644 (file)
@@ -7,7 +7,7 @@
  *             PROC file system.  It is mainly used for debugging and
  *             statistics.
  *
- * Version:    $Id: proc.c,v 1.36 1999/07/02 11:26:34 davem Exp $
+ * Version:    $Id: proc.c,v 1.37 1999/12/15 22:39:19 davem Exp $
  *
  * Authors:    Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
  *             Gerald J. Heim, <heim@peanuts.informatik.uni-tuebingen.de>
index d445521764ed61a9a6cca328d860dca03e452f09..20a41f13f2ddad17bc9765444e284cab5fb6d1a7 100644 (file)
@@ -5,7 +5,7 @@
  *
  *             RAW - implementation of IP "raw" sockets.
  *
- * Version:    $Id: raw.c,v 1.43 1999/08/20 11:05:57 davem Exp $
+ * Version:    $Id: raw.c,v 1.44 1999/12/15 22:39:21 davem Exp $
  *
  * Authors:    Ross Biro, <bir7@leland.Stanford.Edu>
  *             Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
index 33b27036fe48c163984bc9274c8ee420b3d7118d..b16f5eb1e31d101a8788e46af796525054d22ac5 100644 (file)
@@ -5,7 +5,7 @@
  *
  *             ROUTE - implementation of the IP router.
  *
- * Version:    $Id: route.c,v 1.72 1999/08/30 10:17:12 davem Exp $
+ * Version:    $Id: route.c,v 1.75 1999/12/23 01:41:44 davem Exp $
  *
  * Authors:    Ross Biro, <bir7@leland.Stanford.Edu>
  *             Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
@@ -736,7 +736,7 @@ void ip_rt_redirect(u32 old_gw, u32 daddr, u32 new_gw,
                                        goto do_next;
                                }
 
-                               rt_del(hash, rt);
+                               rt_del(hash, rth);
                                if (!rt_intern_hash(hash, rt, &rt))
                                        ip_rt_put(rt);
                                goto do_next;
index 4135d4c89efcd8e83ecbc536b54016e21d857ba8..a8654f0ae81f5ad165f204893472797a491c40eb 100644 (file)
@@ -5,7 +5,7 @@
  *
  *             Implementation of the Transmission Control Protocol(TCP).
  *
- * Version:    $Id: tcp.c,v 1.151 1999/09/07 02:31:21 davem Exp $
+ * Version:    $Id: tcp.c,v 1.152 1999/11/23 08:57:03 davem Exp $
  *
  * Authors:    Ross Biro, <bir7@leland.Stanford.Edu>
  *             Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
index 14fa4f80d7944fd8ce6ed6162c28cdea9624970a..45e094b3ecea14815328b242e851ee6cb67500aa 100644 (file)
@@ -5,7 +5,7 @@
  *
  *             Implementation of the Transmission Control Protocol(TCP).
  *
- * Version:    $Id: tcp_input.c,v 1.173 1999/09/07 02:31:27 davem Exp $
+ * Version:    $Id: tcp_input.c,v 1.176 1999/12/20 05:19:46 davem Exp $
  *
  * Authors:    Ross Biro, <bir7@leland.Stanford.Edu>
  *             Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
index 8e2c56654ffca7f1a7efef2d0535de4bbb92ce29..70667548cad9e8ba2fbadf4c170865e1c71a97e2 100644 (file)
@@ -5,7 +5,7 @@
  *
  *             Implementation of the Transmission Control Protocol(TCP).
  *
- * Version:    $Id: tcp_ipv4.c,v 1.189 1999/09/07 02:31:33 davem Exp $
+ * Version:    $Id: tcp_ipv4.c,v 1.192 1999/12/23 02:04:50 davem Exp $
  *
  *             IPv4 specific functions
  *
@@ -528,7 +528,10 @@ __inline__ struct sock *tcp_v4_lookup_listener(u32 daddr, unsigned short hnum, i
        read_lock(&tcp_lhash_lock);
        sk = tcp_listening_hash[tcp_lhashfn(hnum)];
        if (sk) {
-               if (sk->num == hnum && sk->next == NULL)
+               if (sk->num == hnum &&
+                   sk->next == NULL &&
+                   (!sk->rcv_saddr || sk->rcv_saddr == daddr) &&
+                   !sk->bound_dev_if)
                        goto sherry_cache;
                sk = __tcp_v4_lookup_listener(sk, daddr, hnum, dif);
        }
index 518572142a97ea270933814f4c49c87cff15bae8..5672bcbacef55829b8cdf776784c647ae62c24a7 100644 (file)
@@ -5,7 +5,7 @@
  *
  *             The User Datagram Protocol (UDP).
  *
- * Version:    $Id: udp.c,v 1.74 1999/08/20 11:06:12 davem Exp $
+ * Version:    $Id: udp.c,v 1.75 1999/12/15 22:39:34 davem Exp $
  *
  * Authors:    Ross Biro, <bir7@leland.Stanford.Edu>
  *             Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
index d7192096bcc68263f15d687184902e6fb970e9fe..d82ef3846ce50954d31a1b5f635cab5ce7aa2aa6 100644 (file)
@@ -6,7 +6,7 @@
  *     Pedro Roque             <roque@di.fc.ul.pt>     
  *     Alexey Kuznetsov        <kuznet@ms2.inr.ac.ru>
  *
- *     $Id: addrconf.c,v 1.53 1999/08/31 07:03:54 davem Exp $
+ *     $Id: addrconf.c,v 1.55 1999/12/15 22:39:40 davem Exp $
  *
  *     This program is free software; you can redistribute it and/or
  *      modify it under the terms of the GNU General Public License
index 638c1e79d155bdecce45417b4b4718233195a22a..68badee52c2a111361a47e7459bc63afd70a7c76 100644 (file)
@@ -7,7 +7,7 @@
  *
  *     Adapted from linux/net/ipv4/af_inet.c
  *
- *     $Id: af_inet6.c,v 1.47 1999/08/31 07:03:58 davem Exp $
+ *     $Id: af_inet6.c,v 1.49 1999/12/15 22:39:43 davem Exp $
  *
  *     This program is free software; you can redistribute it and/or
  *      modify it under the terms of the GNU General Public License
index 1abc9034640fe2866a3b42111c1efa85775e9020..f8be2fb920359ea0ef4914070d9ab12ce0e9c2ff 100644 (file)
@@ -5,7 +5,7 @@
  *     Authors:
  *     Pedro Roque             <roque@di.fc.ul.pt>     
  *
- *     $Id: mcast.c,v 1.26 1999/08/31 07:04:08 davem Exp $
+ *     $Id: mcast.c,v 1.27 1999/12/09 00:52:49 davem Exp $
  *
  *     Based on linux/ipv4/igmp.c and linux/ipv4/ip_sockglue.c 
  *
index 2e2603668e530eac4335a03a98626b2091d92dec..999ac75fe99c5123e387defd584950ffcf7bf2a9 100644 (file)
@@ -7,7 +7,7 @@
  *             PROC file system.  This is very similar to the IPv4 version,
  *             except it reports the sockets in the INET6 address family.
  *
- * Version:    $Id: proc.c,v 1.11 1999/07/02 11:26:45 davem Exp $
+ * Version:    $Id: proc.c,v 1.12 1999/12/15 22:39:48 davem Exp $
  *
  * Authors:    David S. Miller (davem@caip.rutgers.edu)
  *
index d52c6a129b471bf89245cbe9123f6f23ff4632c1..baa6611b4a9e2d03c2c6be1e779a5a80d81ce823 100644 (file)
@@ -7,7 +7,7 @@
  *
  *     Adapted from linux/net/ipv4/raw.c
  *
- *     $Id: raw.c,v 1.29 1999/08/20 11:06:26 davem Exp $
+ *     $Id: raw.c,v 1.30 1999/12/15 22:39:51 davem Exp $
  *
  *     This program is free software; you can redistribute it and/or
  *      modify it under the terms of the GNU General Public License
index dddc12bc9f9249c19e74d0af6daaa9a8f9a82b25..6e6235fb42e219652aa6160586797d794422e5bc 100644 (file)
@@ -5,7 +5,7 @@
  *     Authors:
  *     Pedro Roque             <roque@di.fc.ul.pt>     
  *
- *     $Id: route.c,v 1.40 1999/08/31 07:04:13 davem Exp $
+ *     $Id: route.c,v 1.42 1999/12/15 22:39:53 davem Exp $
  *
  *     This program is free software; you can redistribute it and/or
  *      modify it under the terms of the GNU General Public License
index 8f7fbb7ba8c6341dda149411a8639f2906a332be..21864c8947871f681dfd8b578ad7d1b346cf0072 100644 (file)
@@ -5,7 +5,7 @@
  *     Authors:
  *     Pedro Roque             <roque@di.fc.ul.pt>     
  *
- *     $Id: tcp_ipv6.c,v 1.112 1999/08/31 07:04:19 davem Exp $
+ *     $Id: tcp_ipv6.c,v 1.113 1999/12/15 22:39:58 davem Exp $
  *
  *     Based on: 
  *     linux/net/ipv4/tcp.c
index 6c2777b32f034df1ab3c67383241ac8ad5048666..c6539ee896f25adf42de87104a1d86922f2f5b1b 100644 (file)
@@ -7,7 +7,7 @@
  *
  *     Based on linux/ipv4/udp.c
  *
- *     $Id: udp.c,v 1.45 1999/08/20 11:06:32 davem Exp $
+ *     $Id: udp.c,v 1.46 1999/12/15 22:40:03 davem Exp $
  *
  *     This program is free software; you can redistribute it and/or
  *      modify it under the terms of the GNU General Public License
index 5b4d573056709db59623aa45633b3e566ed9f11a..97c2f57980ee4a994bccc5de957eb5479ca7ab20 100644 (file)
@@ -150,7 +150,7 @@ EXPORT_SYMBOL(skb_recv_datagram);
 EXPORT_SYMBOL(skb_free_datagram);
 EXPORT_SYMBOL(skb_copy_datagram);
 EXPORT_SYMBOL(skb_copy_datagram_iovec);
-EXPORT_SYMBOL(skb_realloc_headroom);
+EXPORT_SYMBOL(skb_copy_expand);
 EXPORT_SYMBOL(datagram_poll);
 EXPORT_SYMBOL(put_cmsg);
 EXPORT_SYMBOL(sock_kmalloc);
index 0e6617c1f58013b4de9567f73b575baffafbb2d6..eec4d92d752cd15b7948e283ef379ef03f81c94f 100644 (file)
@@ -5,7 +5,7 @@
  *
  *             PACKET - implements raw packet sockets.
  *
- * Version:    $Id: af_packet.c,v 1.24 1999/08/30 12:14:52 davem Exp $
+ * Version:    $Id: af_packet.c,v 1.26 1999/12/20 05:20:02 davem Exp $
  *
  * Authors:    Ross Biro, <bir7@leland.Stanford.Edu>
  *             Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
index 72fae92b95b8a1ad3241c6aac89668e8b6f6e1be..e6b0eb50ce4d831110c9136a414c3f768136bfa1 100644 (file)
@@ -8,7 +8,7 @@
  *             as published by the Free Software Foundation; either version
  *             2 of the License, or (at your option) any later version.
  *
- * Version:    $Id: af_unix.c,v 1.84 1999/09/08 03:47:18 davem Exp $
+ * Version:    $Id: af_unix.c,v 1.87 1999/12/09 00:54:25 davem Exp $
  *
  * Fixes:
  *             Linus Torvalds  :       Assorted bug cures.