diff -ur --new-file old/atm/.kernel new/atm/.kernel
--- old/atm/.kernel	Thu Jun  3 01:03:59 1999
+++ new/atm/.kernel	Thu Jun  3 02:19:54 1999
@@ -1,2 +1,2 @@
 # this file is used to control automated generation of differences
-2.2.9
+2.3.3
diff -ur --new-file old/atm/CHANGES new/atm/CHANGES
--- old/atm/CHANGES	Thu Jun  3 02:06:18 1999
+++ new/atm/CHANGES	Thu Jun  3 04:18:03 1999
@@ -1,3 +1,19 @@
+Version 0.59 to 0.60 (3-JUN-1999)
+====================
+
+New features
+------------
+
+ - upgraded to kernel version 2.3.3 (main change is slightly different wait
+   queue handling; affects all drivers)
+
+Other changes
+-------------
+
+ - mkdiff script now takes .bz2 kernel if no .gz can be found
+ - made a few changes to the Madge drivers to reduce the number of warnings
+
+
 Version 0.58 to 0.59 (3-JUN-1999)
 ====================
 
diff -ur --new-file old/atm/README new/atm/README
--- old/atm/README	Thu Jun  3 01:04:08 1999
+++ new/atm/README	Thu Jun  3 02:20:57 1999
@@ -1,4 +1,4 @@
-ATM on Linux, release 0.59 (alpha)        by Werner Almesberger, EPFL ICA
+ATM on Linux, release 0.60 (alpha)        by Werner Almesberger, EPFL ICA
 ============================================== Werner.Almesberger@epfl.ch
 
 This is experimental software. There are known major bugs and certainly
@@ -9,7 +9,7 @@
 device drivers, source for demons, management and test tools, and some
 documentation.
 
-The kernel patch is relative to the "standard" 2.2.9 kernel.
+The kernel patch is relative to the "standard" 2.3.3 kernel.
 
 Please see  http://icawww1.epfl.ch/linux-atm/info.html  for a list of
 features supported by ATM on Linux.
diff -ur --new-file old/atm/USAGE new/atm/USAGE
--- old/atm/USAGE	Thu Jun  3 02:07:20 1999
+++ new/atm/USAGE	Thu Jun  3 04:20:33 1999
@@ -1,4 +1,4 @@
-%:Usage instructions  -  ATM on Linux, release 0.59
+%:Usage instructions  -  ATM on Linux, release 0.60
 %:-------------------------------------------------
 %:
 %:
@@ -20,9 +20,9 @@
 In order to install this package, you need 
 
   - the package itself  
-    ftp://lrcftp.epfl.ch/pub/linux/atm/dist/atm-0.59.tar.gz  
-  - the Linux kernel, version 2.2.9, e.g. from  
-    ftp://ftp.kernel.org/pub/linux/kernel/v2.2/linux-2.2.9.tar.gz  
+    ftp://lrcftp.epfl.ch/pub/linux/atm/dist/atm-0.60.tar.gz  
+  - the Linux kernel, version 2.3.3, e.g. from  
+    ftp://ftp.kernel.org/pub/linux/kernel/v2.3/linux-2.3.3.tar.gz  
   - Perl, version 4 or 5 
   - if you want memory debugging: MPR version 1.6, e.g. from  
     ftp://sunsite.unc.edu/pub/Linux/devel/lang/c/mpr-1.6.tar.gz  
@@ -36,11 +36,11 @@
 all the files listed above there. Then extract the ATM on Linux 
 distribution:
 
-tar xfz atm-0.59.tar.gz
+tar xfz atm-0.60.tar.gz
 
 and the kernel source:
 
-tar xfz linux-2.2.9.tar.gz
+tar xfz linux-2.3.3.tar.gz
 
 Finally, you can extract the ATM-related patches:
 
diff -ur --new-file old/atm/VERSION new/atm/VERSION
--- old/atm/VERSION	Thu Jun  3 01:03:53 1999
+++ new/atm/VERSION	Thu Jun  3 02:19:59 1999
@@ -1 +1 @@
-0.59
+0.60
diff -ur --new-file old/atm/atm.patch new/atm/atm.patch
--- old/atm/atm.patch	Thu Jun  3 02:07:01 1999
+++ new/atm/atm.patch	Thu Jun  3 04:19:39 1999
@@ -1,5 +1,5 @@
---- ref/Makefile	Wed May 12 17:50:12 1999
-+++ work/Makefile	Thu Jun  3 01:00:37 1999
+--- ref/Makefile	Sat May 15 01:04:47 1999
++++ work/Makefile	Thu Jun  3 02:29:44 1999
 @@ -122,6 +122,10 @@
  
  DRIVERS := $(DRIVERS) drivers/net/net.a
@@ -19,9 +19,9 @@
  	if [ -f SCSI_MODULES  ]; then inst_mod SCSI_MODULES  scsi;  fi; \
  	if [ -f FS_MODULES    ]; then inst_mod FS_MODULES    fs;    fi; \
  	if [ -f NLS_MODULES   ]; then inst_mod NLS_MODULES   fs;    fi; \
---- ref/Documentation/Configure.help	Tue May 11 18:57:14 1999
-+++ work/Documentation/Configure.help	Thu Jun  3 01:00:38 1999
-@@ -3525,6 +3525,217 @@
+--- ref/Documentation/Configure.help	Sun May 16 19:26:44 1999
++++ work/Documentation/Configure.help	Thu Jun  3 02:29:44 1999
+@@ -3696,6 +3696,217 @@
    This is a backward compatibility option, choose Y for now.
    This option will be removed soon.
  
@@ -240,14 +240,14 @@
  CONFIG_SCSI
    If you want to use a SCSI hard disk, SCSI tape drive, SCSI CDROM or
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/Documentation/atm.txt	Thu Jun  3 01:00:38 1999
++++ work/Documentation/atm.txt	Thu Jun  3 02:29:44 1999
 @@ -0,0 +1,4 @@
 +In order to use anything but the most primitive functions of ATM,
 +several user-mode programs are required to assist the kernel. These
 +programs and related material can be found via the ATM on Linux Web
 +page at http://icawww1.epfl.ch/linux-atm/
---- ref/arch/i386/config.in	Mon Apr 26 22:49:17 1999
-+++ work/arch/i386/config.in	Thu Jun  3 01:00:38 1999
+--- ref/arch/i386/config.in	Thu May 13 23:11:52 1999
++++ work/arch/i386/config.in	Thu Jun  3 02:29:44 1999
 @@ -139,6 +139,9 @@
    bool 'Network device support' CONFIG_NETDEVICES
    if [ "$CONFIG_NETDEVICES" = "y" ]; then
@@ -259,7 +259,7 @@
    endmenu
  fi
 --- ref/arch/alpha/config.in	Mon May 10 18:55:21 1999
-+++ work/arch/alpha/config.in	Thu Jun  3 01:00:38 1999
++++ work/arch/alpha/config.in	Thu Jun  3 02:29:44 1999
 @@ -220,6 +220,9 @@
    bool 'Network device support' CONFIG_NETDEVICES
    if [ "$CONFIG_NETDEVICES" = "y" ]; then
@@ -271,7 +271,7 @@
    endmenu
  fi
 --- ref/arch/sparc/config.in	Tue Mar 16 01:10:43 1999
-+++ work/arch/sparc/config.in	Thu Jun  3 01:00:38 1999
++++ work/arch/sparc/config.in	Thu Jun  3 02:29:44 1999
 @@ -173,6 +173,9 @@
  #		bool 'FDDI driver support' CONFIG_FDDI
  #		if [ "$CONFIG_FDDI" = "y" ]; then
@@ -283,7 +283,7 @@
  	endmenu
  fi
 --- ref/drivers/Makefile	Mon May 10 19:18:34 1999
-+++ work/drivers/Makefile	Thu Jun  3 01:01:08 1999
++++ work/drivers/Makefile	Thu Jun  3 02:29:44 1999
 @@ -10,7 +10,7 @@
  SUB_DIRS     := block char net misc sound
  MOD_SUB_DIRS := $(SUB_DIRS)
@@ -306,7 +306,7 @@
  
  ifeq ($(CONFIG_AP1000),y)
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/drivers/atm/Config.in	Thu Jun  3 01:00:38 1999
++++ work/drivers/atm/Config.in	Thu Jun  3 02:29:44 1999
 @@ -0,0 +1,45 @@
 +#
 +# ATM device configuration
@@ -354,7 +354,7 @@
 +  fi
 +fi
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/drivers/atm/Makefile	Thu Jun  3 01:00:39 1999
++++ work/drivers/atm/Makefile	Thu Jun  3 02:29:44 1999
 @@ -0,0 +1,79 @@
 +# File: drivers/atm/Makefile
 +#
@@ -436,8 +436,8 @@
 +
 +include $(TOPDIR)/Rules.make
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/drivers/atm/ambassador.c	Thu Jun  3 01:00:39 1999
-@@ -0,0 +1,2650 @@
++++ work/drivers/atm/ambassador.c	Thu Jun  3 03:53:41 1999
+@@ -0,0 +1,2652 @@
 +/*
 +  Madge Ambassador ATM Adapter driver.
 +  Copyright (C) 1995-1999  Madge Networks Ltd.
@@ -1320,7 +1320,9 @@
 +  
 +  while (irq_ok_old != irq_ok && irq_ok < 100) {
 +    unsigned char pool;
++#ifdef DEBUG_AMBASSADOR
 +    u32 ints = rd_mem (dev, &mem->interrupt);
++#endif
 +    wr_mem (dev, &mem->interrupt, -1);
 +    PRINTD (DBG_IRQ, "FYI: interrupt was %08x, work %u", ints, irq_ok);
 +    irq_ok_old = irq_ok;
@@ -1352,6 +1354,7 @@
 +
 +/********** don't panic... yeah, right **********/
 +
++#ifdef DEBUG_AMBASSADOR
 +static void dont_panic (amb_dev * dev) {
 +  amb_cq * cq = &dev->cq;
 +  amb_txq * txq;
@@ -1402,13 +1405,14 @@
 +  restore_flags (flags);
 +  return;
 +}
++#endif
 +
 +/********** make rate (not quite as much fun as Horizon) **********/
 +
 +static unsigned int make_rate (unsigned int rate, rounding r,
 +			u16 * bits, unsigned int * actual) {
-+  unsigned char exp;
-+  unsigned int man;
++  unsigned char exp = 0; /* silence gcc */
++  unsigned int man = 0;
 +  
 +  PRINTD (DBG_FLOW|DBG_QOS, "make_rate %u", rate);
 +  
@@ -1500,8 +1504,6 @@
 +    
 +    switch (r) {
 +      case round_up: {
-+	exp = 0;
-+	man = 0;
 +	break;
 +      }
 +      case round_down: {
@@ -1509,8 +1511,6 @@
 +	break;
 +      }
 +      case round_nearest: {
-+	exp = 0;
-+	man = 0;
 +	break;
 +      }
 +    }
@@ -1544,8 +1544,8 @@
 +  struct atm_trafprm * txtp;
 +  struct atm_trafprm * rxtp;
 +  u16 tx_rate_bits;
-+  u16 tx_vc_bits;
-+  u16 tx_frame_bits;
++  u16 tx_vc_bits = 0; /* silence gcc */
++  u16 tx_frame_bits = 0;
 +  // int pcr;
 +  
 +  amb_dev * dev = AMB_DEV(atm_vcc->dev);
@@ -2305,7 +2305,8 @@
 +    [adap_run_in_iram]     = 1,
 +    [adap_end_download]    = 1
 +  };
-+  
++
++#if 0 /* unused */
 +  unsigned int command_successes [] = {
 +    [host_memory_test]     = COMMAND_PASSED_TEST,
 +    [read_adapter_memory]  = COMMAND_READ_DATA_OK,
@@ -2319,6 +2320,7 @@
 +    [adap_run_in_iram]     = COMMAND_COMPLETE,
 +    [adap_end_download]    = COMMAND_COMPLETE
 +  };
++#endif
 +  
 +  int decode_loader_error (u32 result) {
 +    int res;
@@ -2628,7 +2630,7 @@
 +  unsigned char pool;
 +  unsigned long timeout;
 +  
-+  inline u32 x (void * addr) {
++  static inline u32 x (void * addr) {
 +    return cpu_to_be32 (virt_to_bus (addr));
 +  }
 +  
@@ -2820,7 +2822,7 @@
 +    
 +    // semaphore for txer/rxer modifications - we cannot use a
 +    // spinlock as the critical region needs to process switches
-+    dev->vcc_sf = MUTEX;
++    init_MUTEX(&dev->vcc_sf);
 +    // queue manipulation spinlocks; we want atomic reads and
 +    // writes to the queue descriptors (handles IRQ and SMP)
 +    // consider replacing "int pending" -> "atomic_t available"
@@ -3089,7 +3091,7 @@
 +
 +#endif
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/drivers/atm/ambassador.h	Thu Jun  3 01:20:13 1999
++++ work/drivers/atm/ambassador.h	Thu Jun  3 02:39:17 1999
 @@ -0,0 +1,687 @@
 +/*
 +  Madge Ambassador ATM Adapter driver.
@@ -3779,7 +3781,7 @@
 +
 +#endif
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/drivers/atm/atmdev_init.c	Thu Jun  3 01:00:39 1999
++++ work/drivers/atm/atmdev_init.c	Thu Jun  3 02:29:45 1999
 @@ -0,0 +1,60 @@
 +/* drivers/atm/atmdev_init.c - ATM device driver initialization */
 + 
@@ -3842,7 +3844,7 @@
 +	return devs;
 +}
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/drivers/atm/atmsar11.data	Thu Jun  3 01:00:39 1999
++++ work/drivers/atm/atmsar11.data	Thu Jun  3 02:29:45 1999
 @@ -0,0 +1,2063 @@
 +/*
 +  Madge Ambassador ATM Adapter microcode.
@@ -5908,17 +5910,17 @@
 +  0x00400008,
 +  0x00000000,
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/drivers/atm/atmsar11.regions	Thu Jun  3 01:00:39 1999
++++ work/drivers/atm/atmsar11.regions	Thu Jun  3 02:29:45 1999
 @@ -0,0 +1,3 @@
 +  { 0x00000080,  993, },
 +  { 0xa0d0d500,   80, },
 +  { 0xa0d0f000,  978, },
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/drivers/atm/atmsar11.start	Thu Jun  3 01:00:39 1999
++++ work/drivers/atm/atmsar11.start	Thu Jun  3 02:29:45 1999
 @@ -0,0 +1 @@
 +  0xa0d0f000
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/drivers/atm/atmtcp.c	Thu Jun  3 01:00:39 1999
++++ work/drivers/atm/atmtcp.c	Thu Jun  3 02:29:45 1999
 @@ -0,0 +1,339 @@
 +/* drivers/atm/atmtcp.c - ATM over TCP "device" driver */
 +
@@ -6260,7 +6262,7 @@
 +#endif
 +    
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/drivers/atm/eni.c	Thu Jun  3 01:00:39 1999
++++ work/drivers/atm/eni.c	Thu Jun  3 03:35:52 1999
 @@ -0,0 +1,2264 @@
 +/* drivers/atm/eni.c - Efficient Networks ENI155P device driver */
 + 
@@ -7164,7 +7166,7 @@
 +	memset(eni_dev->rx_map,0,PAGE_SIZE);
 +	eni_dev->fast = eni_dev->last_fast = NULL;
 +	eni_dev->slow = eni_dev->last_slow = NULL;
-+	eni_dev->rx_wait = NULL;
++	init_waitqueue_head(&eni_dev->rx_wait);
 +	skb_queue_head_init(&eni_dev->rx_queue);
 +	eni_dev->serv_read = eni_in(MID_SERV_WRITE);
 +	eni_out(0,MID_DMA_WR_RX);
@@ -7667,7 +7669,7 @@
 +	eni_dev = ENI_DEV(dev);
 +	eni_dev->lost = 0;
 +	eni_dev->tx_bw = ATM_OC3_PCR;
-+	eni_dev->tx_wait = NULL;
++	init_waitqueue_head(&eni_dev->tx_wait);
 +	eni_dev->ubr = NULL;
 +	skb_queue_head_init(&eni_dev->tx_queue);
 +	eni_out(0,MID_DMA_WR_TX);
@@ -8527,7 +8529,7 @@
 +
 +#endif
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/drivers/atm/eni.h	Thu Jun  3 01:20:01 1999
++++ work/drivers/atm/eni.h	Thu Jun  3 03:36:46 1999
 @@ -0,0 +1,115 @@
 +/* drivers/atm/eni.h - Efficient Networks ENI155P device driver declarations */
 + 
@@ -8603,7 +8605,7 @@
 +	struct eni_tx tx[NR_CHAN];	/* TX channels */
 +	struct eni_tx *ubr;		/* UBR channel */
 +	struct sk_buff_head tx_queue;	/* PDUs currently being TX DMAed*/
-+	struct wait_queue *tx_wait;	/* for close */
++	wait_queue_head_t tx_wait;	/* for close */
 +	int tx_bw;			/* remaining bandwidth */
 +	u32 dma[TX_DMA_BUF*2];		/* DMA request scratch area */
 +	/*-------------------------------- RX part */
@@ -8612,7 +8614,7 @@
 +	struct atm_vcc *slow,*last_slow;
 +	struct atm_vcc **rx_map;	/* for fast lookups */
 +	struct sk_buff_head rx_queue;	/* PDUs currently being RX-DMAed */
-+	struct wait_queue *rx_wait;	/* for close */
++	wait_queue_head_t rx_wait;	/* for close */
 +	/*-------------------------------- statistics */
 +	unsigned long lost;		/* number of lost cells (RX) */
 +	/*-------------------------------- memory management */
@@ -8645,8 +8647,8 @@
 +
 +#endif
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/drivers/atm/horizon.c	Thu Jun  3 01:00:39 1999
-@@ -0,0 +1,3065 @@
++++ work/drivers/atm/horizon.c	Thu Jun  3 03:52:24 1999
+@@ -0,0 +1,3067 @@
 +/*
 +  Madge Horizon ATM Adapter driver.
 +  Copyright (C) 1995-1999  Madge Networks Ltd.
@@ -10473,12 +10475,16 @@
 +
 +/********** shutdown a card **********/
 +
++#ifdef MODULE
++
 +static void hrz_shutdown (const hrz_dev * dev) {
 +  hrz_reset_card (dev);
 +  
 +  GREEN_LED_OFF(dev);
 +}
 +
++#endif
++
 +/********** read the burnt in address **********/
 +
 +static u16 __init read_bia (const hrz_dev * dev, u16 addr) {
@@ -11280,7 +11286,6 @@
 +
 +static int hrz_getsockopt (struct atm_vcc * atm_vcc, int level, int optname,
 +			   void *optval, int optlen) {
-+  hrz_dev * dev = HRZ_DEV(atm_vcc->dev);
 +  PRINTD (DBG_FLOW|DBG_VCC, "hrz_getsockopt");
 +  switch (level) {
 +    case SOL_SOCKET:
@@ -11302,7 +11307,6 @@
 +
 +static int hrz_setsockopt (struct atm_vcc * atm_vcc, int level, int optname,
 +			   void *optval, int optlen) {
-+  hrz_dev * dev = HRZ_DEV(atm_vcc->dev);
 +  PRINTD (DBG_FLOW|DBG_VCC, "hrz_setsockopt");
 +  switch (level) {
 +    case SOL_SOCKET:
@@ -11555,7 +11559,7 @@
 +	// writes to adapter memory (handles IRQ and SMP)
 +	spin_lock_init (&dev->mem_lock);
 +	
-+	dev->tx_queue = 0;
++	init_waitqueue_head(&dev->tx_queue);
 +        
 +        // vpi in 0..4, vci in 6..10
 +        dev->atm_dev->ci_range.vpi_bits = vpi_bits;
@@ -11713,7 +11717,7 @@
 +
 +#endif
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/drivers/atm/horizon.h	Thu Jun  3 01:20:10 1999
++++ work/drivers/atm/horizon.h	Thu Jun  3 03:34:26 1999
 @@ -0,0 +1,506 @@
 +/*
 +  Madge Horizon ATM Adapter driver.
@@ -12138,7 +12142,7 @@
 +  unsigned int        tx_regions; // number of remaining regions
 +
 +  spinlock_t          mem_lock;
-+  struct wait_queue * tx_queue;
++  wait_queue_head_t   tx_queue;
 +
 +  u8                  irq;
 +  u8                  flags;
@@ -12222,7 +12226,7 @@
 +
 +#endif /* DRIVER_ATM_HORIZON_H */
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/drivers/atm/midway.h	Thu Jun  3 01:00:39 1999
++++ work/drivers/atm/midway.h	Thu Jun  3 02:29:45 1999
 @@ -0,0 +1,265 @@
 +/* drivers/atm/midway.h - Efficient Networks Midway (SAR) description */
 + 
@@ -12490,7 +12494,7 @@
 +
 +#endif
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/drivers/atm/nicstar.h	Thu Jun  3 01:00:39 1999
++++ work/drivers/atm/nicstar.h	Thu Jun  3 03:34:32 1999
 @@ -0,0 +1,774 @@
 +/******************************************************************************
 + *
@@ -13174,7 +13178,7 @@
 +   u32 scd;				/* SRAM address of the corresponding
 +                                           SCD */
 +   int tbd_count;			/* Only meaningful on variable rate */
-+   struct wait_queue *scqfull_waitq;
++   wait_queue_head_t scqfull_waitq;
 +   volatile char full;			/* SCQ full indicator */
 +} scq_info;
 +
@@ -13267,7 +13271,7 @@
 +
 +#endif /* _LINUX_NICSTAR_H_ */
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/drivers/atm/nicstar.c	Thu Jun  3 01:00:39 1999
++++ work/drivers/atm/nicstar.c	Thu Jun  3 03:36:31 1999
 @@ -0,0 +1,3054 @@
 +/******************************************************************************
 + *
@@ -14262,7 +14266,7 @@
 +   scq->scd = scd;
 +   scq->num_entries = size / NS_SCQE_SIZE;
 +   scq->tbd_count = 0;
-+   scq->scqfull_waitq = NULL;
++   init_waitqueue_head(&scq->scqfull_waitq);
 +   scq->full = 0;
 +
 +   for (i = 0; i < scq->num_entries; i++)
@@ -16324,7 +16328,7 @@
 +   return (unsigned char) data;
 +}
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/drivers/atm/nicstar.c.old_skb	Thu Jun  3 01:00:39 1999
++++ work/drivers/atm/nicstar.c.old_skb	Thu Jun  3 02:29:45 1999
 @@ -0,0 +1,2883 @@
 +/******************************************************************************
 + *
@@ -19210,7 +19214,7 @@
 +   PRINTK("nicstar: Leaving ns_poll().\n");
 +}
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/drivers/atm/nicstarmac.h	Thu Jun  3 01:00:40 1999
++++ work/drivers/atm/nicstarmac.h	Thu Jun  3 02:29:45 1999
 @@ -0,0 +1,14 @@
 +/******************************************************************************
 + *
@@ -19227,7 +19231,7 @@
 +void nicstar_init_eprom( virt_addr_t base );
 +void nicstar_read_eprom( virt_addr_t, u_int8_t, u_int8_t *, u_int32_t);
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/drivers/atm/nicstarmac.c	Thu Jun  3 01:00:40 1999
++++ work/drivers/atm/nicstarmac.c	Thu Jun  3 02:29:45 1999
 @@ -0,0 +1,269 @@
 +/*
 + * this file included by nicstar.c
@@ -19499,7 +19503,7 @@
 +*/
 +
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/drivers/atm/nicstarmac.copyright	Thu Jun  3 01:00:40 1999
++++ work/drivers/atm/nicstarmac.copyright	Thu Jun  3 02:29:45 1999
 @@ -0,0 +1,61 @@
 +/* nicstar.c  v0.22  Jawaid Bazyar (bazyar@hypermall.com)
 + * nicstar.c, M. Welsh (matt.welsh@cl.cam.ac.uk)
@@ -19563,7 +19567,7 @@
 + *
 + */
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/drivers/atm/suni.c	Thu Jun  3 01:00:40 1999
++++ work/drivers/atm/suni.c	Thu Jun  3 02:29:45 1999
 @@ -0,0 +1,303 @@
 +/* drivers/atm/suni.c - PMC SUNI (PHY) driver */
 + 
@@ -19869,7 +19873,7 @@
 +
 +#endif
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/drivers/atm/suni.h	Thu Jun  3 01:19:59 1999
++++ work/drivers/atm/suni.h	Thu Jun  3 03:36:44 1999
 @@ -0,0 +1,210 @@
 +/* drivers/atm/suni.h - PMC SUNI (PHY) declarations */
 + 
@@ -20082,7 +20086,7 @@
 +
 +#endif
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/drivers/atm/tonga.h	Thu Jun  3 01:00:40 1999
++++ work/drivers/atm/tonga.h	Thu Jun  3 02:29:45 1999
 @@ -0,0 +1,20 @@
 +/* drivers/atm/tonga.h - Efficient Networks Tonga (PCI bridge) declarations */
 + 
@@ -20105,7 +20109,7 @@
 +
 +#endif
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/drivers/atm/uPD98401.h	Thu Jun  3 01:00:40 1999
++++ work/drivers/atm/uPD98401.h	Thu Jun  3 02:29:45 1999
 @@ -0,0 +1,292 @@
 +/* drivers/atm/uPD98401.h - NEC uPD98401 (SAR) declarations */
 + 
@@ -20400,7 +20404,7 @@
 +
 +#endif
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/drivers/atm/uPD98402.c	Thu Jun  3 01:00:40 1999
++++ work/drivers/atm/uPD98402.c	Thu Jun  3 02:29:45 1999
 @@ -0,0 +1,225 @@
 +/* drivers/atm/uPD98402.c - NEC uPD98402 (PHY) declarations */
 + 
@@ -20628,7 +20632,7 @@
 + 
 +#endif
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/drivers/atm/uPD98402.h	Thu Jun  3 01:00:40 1999
++++ work/drivers/atm/uPD98402.h	Thu Jun  3 02:29:45 1999
 @@ -0,0 +1,106 @@
 +/* drivers/atm/uPD98402.h - NEC uPD98402 (PHY) declarations */
 + 
@@ -20737,7 +20741,7 @@
 +
 +#endif
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/drivers/atm/zatm.c	Thu Jun  3 01:00:40 1999
++++ work/drivers/atm/zatm.c	Thu Jun  3 03:36:11 1999
 @@ -0,0 +1,1877 @@
 +/* drivers/atm/zatm.c - ZeitNet ZN122x device driver */
 + 
@@ -21887,7 +21891,7 @@
 +	}
 +	zatm_vcc->tx_chan = chan;
 +	skb_queue_head_init(&zatm_vcc->tx_queue);
-+	zatm_vcc->tx_wait = NULL;
++	init_waitqueue_head(&zatm_vcc->tx_wait);
 +	/* initialize ring */
 +	zatm_vcc->ring = kmalloc(RING_SIZE,GFP_KERNEL);
 +	if (!zatm_vcc->ring) return -ENOMEM;
@@ -22617,7 +22621,7 @@
 + 
 +#endif
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/drivers/atm/zatm.h	Thu Jun  3 01:20:06 1999
++++ work/drivers/atm/zatm.h	Thu Jun  3 03:36:50 1999
 @@ -0,0 +1,137 @@
 +/* drivers/atm/zatm.h - ZeitNet ZN122x device driver declarations */
 +
@@ -22693,7 +22697,7 @@
 +	int tx_chan;			/* TX channel, 0 if none */
 +	int shaper;			/* shaper, <0 if none */
 +	struct sk_buff_head tx_queue;	/* list of buffers in transit */
-+	struct wait_queue *tx_wait;	/* for close */
++	wait_queue_head_t tx_wait;	/* for close */
 +	u32 *ring;			/* transmit ring */
 +	int ring_curr;			/* current write position */
 +	int txing;			/* number of transmits in progress */
@@ -22757,7 +22761,7 @@
 +
 +#endif
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/drivers/atm/zeprom.h	Thu Jun  3 01:00:40 1999
++++ work/drivers/atm/zeprom.h	Thu Jun  3 02:29:45 1999
 @@ -0,0 +1,34 @@
 +/* drivers/atm/zeprom.h - ZeitNet ZN122x EEPROM (NM93C46) declarations */
 +
@@ -22793,8 +22797,8 @@
 +/* No other commands are needed. */
 +
 +#endif
---- ref/drivers/block/genhd.c	Tue Apr 13 01:18:27 1999
-+++ work/drivers/block/genhd.c	Thu Jun  3 01:00:40 1999
+--- ref/drivers/block/genhd.c	Sun May 16 08:43:04 1999
++++ work/drivers/block/genhd.c	Thu Jun  3 02:29:45 1999
 @@ -60,6 +60,7 @@
  extern int blk_dev_init(void);
  extern int scsi_dev_init(void);
@@ -22803,7 +22807,7 @@
  
  #ifdef CONFIG_PPC
  extern void note_bootable_part(kdev_t dev, int part);
-@@ -1349,6 +1350,9 @@
+@@ -1343,6 +1344,9 @@
  #endif
  #ifdef CONFIG_INET
  	net_dev_init();
@@ -22814,7 +22818,7 @@
  #ifdef CONFIG_VT
  	console_map_init();
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/include/linux/arequipa.h	Thu Jun  3 01:26:02 1999
++++ work/include/linux/arequipa.h	Thu Jun  3 03:56:44 1999
 @@ -0,0 +1,63 @@
 +/* arequipa.h - Arequipa interface definitions */
 + 
@@ -22880,7 +22884,7 @@
 +
 +#endif
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/include/linux/atm.h	Thu Jun  3 01:00:40 1999
++++ work/include/linux/atm.h	Thu Jun  3 02:39:02 1999
 @@ -0,0 +1,244 @@
 +/* atm.h - general ATM declarations */
 + 
@@ -23127,7 +23131,7 @@
 +
 +#endif
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/include/linux/atm_eni.h	Thu Jun  3 01:00:40 1999
++++ work/include/linux/atm_eni.h	Thu Jun  3 02:29:46 1999
 @@ -0,0 +1,15 @@
 +/* atm_eni.h - Driver-specific declarations of the ENI driver (for use by
 +	       driver-specific utilities) */
@@ -23145,7 +23149,7 @@
 +
 +#endif
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/include/linux/atm_nicstar.h	Thu Jun  3 01:00:40 1999
++++ work/include/linux/atm_nicstar.h	Thu Jun  3 02:29:46 1999
 @@ -0,0 +1,52 @@
 +/******************************************************************************
 + *
@@ -23200,7 +23204,7 @@
 +
 +#endif /* LINUX_ATM_NICSTAR_H */
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/include/linux/atm_suni.h	Thu Jun  3 01:00:40 1999
++++ work/include/linux/atm_suni.h	Thu Jun  3 02:29:46 1999
 @@ -0,0 +1,19 @@
 +/* atm_suni.h - Driver-specific declarations of the SUNI driver (for use by
 +		driver-specific utilities) */
@@ -23222,7 +23226,7 @@
 +
 +#endif
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/include/linux/atm_tcp.h	Thu Jun  3 01:00:40 1999
++++ work/include/linux/atm_tcp.h	Thu Jun  3 02:29:46 1999
 @@ -0,0 +1,46 @@
 +/* atm_tcp.h - Driver-specific declarations of the ATMTCP driver (for use by
 +	       driver-specific utilities) */
@@ -23271,7 +23275,7 @@
 +
 +#endif
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/include/linux/atm_zatm.h	Thu Jun  3 01:00:40 1999
++++ work/include/linux/atm_zatm.h	Thu Jun  3 02:29:46 1999
 @@ -0,0 +1,54 @@
 +/* atm_zatm.h - Driver-specific declarations of the ZATM driver (for use by
 +		driver-specific utilities) */
@@ -23328,7 +23332,7 @@
 +
 +#endif
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/include/linux/atmarp.h	Thu Jun  3 01:00:40 1999
++++ work/include/linux/atmarp.h	Thu Jun  3 02:29:46 1999
 @@ -0,0 +1,42 @@
 +/* atmarp.h - ATM ARP protocol and kernel-demon interface definitions */
 + 
@@ -23373,7 +23377,7 @@
 +
 +#endif
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/include/linux/atmclip.h	Thu Jun  3 01:00:40 1999
++++ work/include/linux/atmclip.h	Thu Jun  3 02:29:46 1999
 @@ -0,0 +1,25 @@
 +/* atmclip.h - Classical IP over ATM */
 + 
@@ -23401,7 +23405,7 @@
 +
 +#endif
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/include/linux/atmdev.h	Thu Jun  3 01:19:59 1999
++++ work/include/linux/atmdev.h	Thu Jun  3 03:34:58 1999
 @@ -0,0 +1,363 @@
 +/* atmdev.h - ATM device driver declarations and various related items */
 + 
@@ -23531,7 +23535,7 @@
 +
 +#ifdef __KERNEL__
 +
-+#include <linux/sched.h> /* struct wait_queue */
++#include <linux/sched.h> /* wait_queue_head_t */
 +#include <linux/time.h> /* struct timeval */
 +#include <linux/net.h>
 +#include <linux/skbuff.h> /* struct sk_buff */
@@ -23614,8 +23618,8 @@
 +	struct timeval	timestamp;	/* AAL timestamps */
 +	struct sk_buff_head recvq;	/* receive queue */
 +	struct atm_aal_stats *stats;	/* pointer to AAL stats group */
-+	struct wait_queue *sleep;	/* if socket is busy */
-+	struct wait_queue *wsleep;	/* if waiting for write buffer space */
++	wait_queue_head_t sleep;	/* if socket is busy */
++	wait_queue_head_t wsleep;	/* if waiting for write buffer space */
 +	struct atm_vcc	*prev,*next;
 +	/* SVC part --- may move later ------------------------------------- */
 +	short		itf;		/* interface number */
@@ -23767,7 +23771,7 @@
 +
 +#endif
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/include/linux/atmioc.h	Thu Jun  3 01:00:40 1999
++++ work/include/linux/atmioc.h	Thu Jun  3 02:29:46 1999
 @@ -0,0 +1,39 @@
 +/* atmioc.h - ranges for ATM-related ioctl numbers */
 + 
@@ -23809,7 +23813,7 @@
 +
 +#endif
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/include/linux/atmlec.h	Thu Jun  3 01:13:46 1999
++++ work/include/linux/atmlec.h	Thu Jun  3 03:56:44 1999
 @@ -0,0 +1,85 @@
 +/*
 + * 
@@ -23897,7 +23901,7 @@
 +};
 +#endif /* _ATMLEC_H_ */
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/include/linux/atmmpc.h	Thu Jun  3 01:00:40 1999
++++ work/include/linux/atmmpc.h	Thu Jun  3 03:56:44 1999
 @@ -0,0 +1,124 @@
 +#ifndef _ATMMPC_H_
 +#define _ATMMPC_H_
@@ -24024,7 +24028,7 @@
 +#endif /* _ATMMPC_H_ */
 +
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/include/linux/atmsap.h	Thu Jun  3 01:00:40 1999
++++ work/include/linux/atmsap.h	Thu Jun  3 02:29:46 1999
 @@ -0,0 +1,161 @@
 +/* atmsap.h - ATM Service Access Point addressing definitions */
 +
@@ -24188,7 +24192,7 @@
 +
 +#endif
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/include/linux/atmsvc.h	Thu Jun  3 01:00:40 1999
++++ work/include/linux/atmsvc.h	Thu Jun  3 03:56:44 1999
 @@ -0,0 +1,53 @@
 +/* atmsvc.h - ATM signaling kernel-demon interface definitions */
 + 
@@ -24243,8 +24247,8 @@
 +  (tp).min_pcr ? (tp).min_pcr : ATM_MAX_PCR)
 +
 +#endif
---- ref/include/linux/capability.h	Tue May 11 19:35:45 1999
-+++ work/include/linux/capability.h	Thu Jun  3 01:16:56 1999
+--- ref/include/linux/capability.h	Sun May 16 22:18:20 1999
++++ work/include/linux/capability.h	Thu Jun  3 02:32:18 1999
 @@ -131,6 +131,7 @@
  #define CAP_LINUX_IMMUTABLE  9
  
@@ -24261,8 +24265,8 @@
  
  #define CAP_NET_ADMIN        12
  
---- ref/include/linux/if_arp.h	Tue May 11 19:36:40 1999
-+++ work/include/linux/if_arp.h	Thu Jun  3 01:18:26 1999
+--- ref/include/linux/if_arp.h	Sun May 16 22:19:17 1999
++++ work/include/linux/if_arp.h	Thu Jun  3 02:37:33 1999
 @@ -35,6 +35,7 @@
  #define	ARPHRD_ARCNET	7		/* ARCnet			*/
  #define	ARPHRD_APPLETLK	8		/* APPLEtalk			*/
@@ -24282,7 +24286,7 @@
  
  /* ARP ioctl request. */
 --- ref/include/linux/pkt_sched.h	Tue Apr 28 20:10:10 1998
-+++ work/include/linux/pkt_sched.h	Thu Jun  3 01:00:41 1999
++++ work/include/linux/pkt_sched.h	Thu Jun  3 02:29:46 1999
 @@ -274,4 +274,18 @@
  
  #define TCA_CBQ_MAX	TCA_CBQ_POLICE
@@ -24302,8 +24306,8 @@
 +#define TCA_ATM_MAX	TCA_ATM_STATE
 +
  #endif
---- ref/include/linux/skbuff.h	Thu May 13 19:33:17 1999
-+++ work/include/linux/skbuff.h	Thu Jun  3 01:16:59 1999
+--- ref/include/linux/skbuff.h	Sun May 16 22:18:56 1999
++++ work/include/linux/skbuff.h	Thu Jun  3 02:36:07 1999
 @@ -112,6 +112,25 @@
  		__u32	ifield;
  	} private;
@@ -24331,7 +24335,7 @@
  
  /* These are just the default values. This is run time configurable.
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/include/linux/sonet.h	Thu Jun  3 01:00:41 1999
++++ work/include/linux/sonet.h	Thu Jun  3 02:29:46 1999
 @@ -0,0 +1,52 @@
 +/* sonet.h - SONET/SHD physical layer control */
 + 
@@ -24386,7 +24390,7 @@
 +
 +#endif
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/include/net/atmclip.h	Thu Jun  3 01:24:24 1999
++++ work/include/net/atmclip.h	Thu Jun  3 03:55:06 1999
 @@ -0,0 +1,62 @@
 +/* net/atm/atmarp.h - RFC1577 ATM ARP */
 + 
@@ -24450,8 +24454,8 @@
 +int clip_encap(struct atm_vcc *vcc,int mode);
 +
 +#endif
---- ref/include/net/sock.h	Tue May 11 19:36:44 1999
-+++ work/include/net/sock.h	Thu Jun  3 01:18:30 1999
+--- ref/include/net/sock.h	Sun May 16 22:19:21 1999
++++ work/include/net/sock.h	Thu Jun  3 02:37:37 1999
 @@ -85,6 +85,10 @@
  #include <net/irda/irda.h>
  #endif
@@ -24474,7 +24478,7 @@
  #if defined(CONFIG_IRDA) || defined(CONFIG_IRDA_MODULE)
  		struct irda_sock        *irda;
 --- ref/net/Config.in	Thu Feb 25 19:46:47 1999
-+++ work/net/Config.in	Thu Jun  3 01:00:41 1999
++++ work/net/Config.in	Thu Jun  3 02:29:46 1999
 @@ -24,6 +24,27 @@
      fi
    fi
@@ -24504,7 +24508,7 @@
  comment ' '
  tristate 'The IPX protocol' CONFIG_IPX
 --- ref/net/Makefile	Mon Mar 22 20:18:17 1999
-+++ work/net/Makefile	Thu Jun  3 01:00:41 1999
++++ work/net/Makefile	Thu Jun  3 02:29:46 1999
 @@ -10,7 +10,7 @@
  MOD_SUB_DIRS := ipv4
  ALL_SUB_DIRS := 802 ax25 bridge core ethernet ipv4 ipv6 ipx unix appletalk \
@@ -24533,7 +24537,7 @@
  
  ifeq ($(CONFIG_DECNET),y)
 --- ref/net/netsyms.c	Sun Apr 25 02:51:48 1999
-+++ work/net/netsyms.c	Thu Jun  3 01:00:41 1999
++++ work/net/netsyms.c	Thu Jun  3 02:29:46 1999
 @@ -220,6 +220,8 @@
  
  #ifdef CONFIG_BRIDGE 
@@ -24544,7 +24548,7 @@
  
  #ifdef CONFIG_INET
 --- ref/net/protocols.c	Thu Dec 17 18:03:57 1998
-+++ work/net/protocols.c	Thu Jun  3 01:00:41 1999
++++ work/net/protocols.c	Thu Jun  3 02:29:46 1999
 @@ -87,6 +87,10 @@
  extern void rif_init(struct net_proto *);
  #endif
@@ -24569,7 +24573,7 @@
  #ifdef NEED_LLC
    { "802.2LLC", llc_init },				/* 802.2 LLC */
 --- ref/net/ipv4/arp.c	Sun Mar 21 16:22:00 1999
-+++ work/net/ipv4/arp.c	Thu Jun  3 01:02:32 1999
++++ work/net/ipv4/arp.c	Thu Jun  3 02:29:46 1999
 @@ -115,6 +115,9 @@
  #include <net/netrom.h>
  #endif
@@ -24594,7 +24598,7 @@
  	return (dst->neighbour != NULL);
  }
 --- ref/net/sched/Config.in	Sun Mar 21 16:22:00 1999
-+++ work/net/sched/Config.in	Thu Jun  3 01:00:42 1999
++++ work/net/sched/Config.in	Thu Jun  3 02:29:46 1999
 @@ -7,6 +7,9 @@
  tristate 'CSZ packet scheduler' CONFIG_NET_SCH_CSZ
  #tristate 'H-PFQ packet scheduler' CONFIG_NET_SCH_HPFQ
@@ -24606,7 +24610,7 @@
  tristate 'RED queue' CONFIG_NET_SCH_RED
  tristate 'SFQ queue' CONFIG_NET_SCH_SFQ
 --- ref/net/sched/Makefile	Sun Mar 21 16:22:00 1999
-+++ work/net/sched/Makefile	Thu Jun  3 01:00:42 1999
++++ work/net/sched/Makefile	Thu Jun  3 02:29:46 1999
 @@ -7,6 +7,8 @@
  #
  # Note 2! The CFLAGS definition is now in the main makefile...
@@ -24628,7 +24632,7 @@
  
  ifeq ($(CONFIG_NET_CLS_U32), y)
 --- ref/net/sched/sch_api.c	Sun Mar 21 16:22:00 1999
-+++ work/net/sched/sch_api.c	Thu Jun  3 01:00:42 1999
++++ work/net/sched/sch_api.c	Thu Jun  3 02:29:46 1999
 @@ -1150,6 +1150,9 @@
  #ifdef CONFIG_NET_SCH_PRIO
  	INIT_QDISC(prio);
@@ -24640,7 +24644,7 @@
  	tc_filter_init();
  #endif
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/net/sched/sch_atm.c	Thu Jun  3 02:05:55 1999
++++ work/net/sched/sch_atm.c	Thu Jun  3 02:29:46 1999
 @@ -0,0 +1,643 @@
 +/* net/sched/sch_atm.c - ATM VC selection "queueing discipline" */
 +
@@ -25286,7 +25290,7 @@
 +}
 +#endif
 --- ref/net/802/tr.c	Sun Apr 25 02:51:48 1999
-+++ work/net/802/tr.c	Thu Jun  3 01:05:18 1999
++++ work/net/802/tr.c	Thu Jun  3 02:29:46 1999
 @@ -50,7 +50,7 @@
   
  struct rif_cache_s {	
@@ -25307,7 +25311,7 @@
  		entry->last_used=jiffies;
  		rif_table[hash]=entry;
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/net/atm/Makefile	Thu Jun  3 01:00:42 1999
++++ work/net/atm/Makefile	Thu Jun  3 02:29:46 1999
 @@ -0,0 +1,68 @@
 +#
 +# Makefile for the ATM Protocol Families.
@@ -25378,11 +25382,11 @@
 +mpoa.o: mpc.o mpoa_caches.o mpoa_proc.o
 +	ld -r -o mpoa.o mpc.o mpoa_caches.o mpoa_proc.o
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/net/atm/addr.c	Thu Jun  3 01:00:42 1999
-@@ -0,0 +1,159 @@
++++ work/net/atm/addr.c	Thu Jun  3 04:09:33 1999
+@@ -0,0 +1,165 @@
 +/* net/atm/addr.c - Local ATM address registry */
 +
-+/* Written 1995-1998 by Werner Almesberger, EPFL LRC/ICA */
++/* Written 1995-1999 by Werner Almesberger, EPFL LRC/ICA */
 +
 +
 +#include <linux/atm.h>
@@ -25426,7 +25430,7 @@
 +
 +
 +static volatile int local_lock = 0;
-+static struct wait_queue *local_wait = NULL;
++static wait_queue_head_t local_wait;
 +
 +
 +static void lock_local(void)
@@ -25539,12 +25543,18 @@
 +	unlock_local();
 +	return total;
 +}
++
++
++void init_addr(void)
++{
++	init_waitqueue_head(&local_wait);
++}
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/net/atm/addr.h	Thu Jun  3 01:26:02 1999
-@@ -0,0 +1,18 @@
++++ work/net/atm/addr.h	Thu Jun  3 04:09:28 1999
+@@ -0,0 +1,19 @@
 +/* net/atm/addr.h - Local ATM address registry */
 +
-+/* Written 1995-1997 by Werner Almesberger, EPFL LRC */
++/* Written 1995-1999 by Werner Almesberger, EPFL LRC/ICA */
 +
 +
 +#ifndef NET_ATM_ADDR_H
@@ -25558,11 +25568,12 @@
 +int add_addr(struct atm_dev *dev,struct sockaddr_atmsvc *addr);
 +int del_addr(struct atm_dev *dev,struct sockaddr_atmsvc *addr);
 +int get_addr(struct atm_dev *dev,struct sockaddr_atmsvc *u_buf,int size);
++void init_addr(void);
 +
 +#endif
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/net/atm/clip.c	Thu Jun  3 01:00:42 1999
-@@ -0,0 +1,688 @@
++++ work/net/atm/clip.c	Thu Jun  3 04:02:32 1999
+@@ -0,0 +1,686 @@
 +/* net/atm/clip.c - RFC1577 Classical IP over ATM */
 +
 +/* Written 1995-1999 by Werner Almesberger, EPFL LRC/ICA */
@@ -25610,7 +25621,6 @@
 +
 +struct device *clip_devs = NULL;
 +struct atm_vcc *atmarpd = NULL;
-+static struct wait_queue *atmarpd_sleep = NULL;
 +static struct timer_list idle_timer = { NULL, NULL, 0L, 0L, NULL };
 +static int start_timer = 1;
 +
@@ -26184,7 +26194,6 @@
 +	barrier();
 +	unregister_inetaddr_notifier(&clip_inet_notifier);
 +	unregister_netdevice_notifier(&clip_dev_notifier);
-+	wake_up(&atmarpd_sleep);
 +	if (skb_peek(&vcc->recvq))
 +		printk(KERN_ERR "atmarpd_close: closing with requests "
 +		    "pending\n");
@@ -26252,8 +26261,8 @@
 +	return 0;
 +}
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/net/atm/common.c	Thu Jun  3 01:00:42 1999
-@@ -0,0 +1,936 @@
++++ work/net/atm/common.c	Thu Jun  3 03:42:44 1999
+@@ -0,0 +1,937 @@
 +/* net/atm/common.c - ATM sockets (common part for PVC and SVC) */
 +
 +/* Written 1995-1999 by Werner Almesberger, EPFL LRC/ICA */
@@ -26384,7 +26393,8 @@
 +	vcc->vpi = vcc->vci = 0; /* no VCI/VPI yet */
 +	vcc->atm_options = vcc->aal_options = 0;
 +	vcc->timestamp.tv_sec = vcc->timestamp.tv_usec = 0;
-+	vcc->sleep = vcc->wsleep = NULL;
++	init_waitqueue_head(&vcc->sleep);
++	init_waitqueue_head(&vcc->wsleep);
 +	skb_queue_head_init(&vcc->recvq);
 +	skb_queue_head_init(&vcc->listenq);
 +	sock->sk = sk;
@@ -27191,7 +27201,7 @@
 +	return atm_do_getsockopt(sock,level,optname,optval,len);
 +}
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/net/atm/common.h	Thu Jun  3 01:26:02 1999
++++ work/net/atm/common.h	Thu Jun  3 03:56:44 1999
 @@ -0,0 +1,46 @@
 +/* net/atm/common.h - ATM sockets (common part for PVC and SVC) */
 + 
@@ -27240,7 +27250,7 @@
 +
 +#endif
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/net/atm/ipcommon.c	Thu Jun  3 01:00:42 1999
++++ work/net/atm/ipcommon.c	Thu Jun  3 02:29:46 1999
 @@ -0,0 +1,52 @@
 +/* net/atm/ipcommon.c - Common items for all ways of doing IP over ATM */
 +
@@ -27295,7 +27305,7 @@
 +	skb_queue_head_init(from);
 +}
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/net/atm/ipcommon.h	Thu Jun  3 01:26:08 1999
++++ work/net/atm/ipcommon.h	Thu Jun  3 03:56:50 1999
 @@ -0,0 +1,21 @@
 +/* net/atm/ipcommon.h - Common items for all ways of doing IP over ATM */
 +
@@ -27319,7 +27329,7 @@
 +
 +#endif
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/net/atm/atm_misc.c	Thu Jun  3 01:00:42 1999
++++ work/net/atm/atm_misc.c	Thu Jun  3 02:29:46 1999
 @@ -0,0 +1,124 @@
 +/* net/atm/atm_misc.c - Various functions for use by ATM drivers */
 +
@@ -27446,8 +27456,8 @@
 +EXPORT_SYMBOL(atm_find_ci);
 +EXPORT_SYMBOL(atm_pcr_goal);
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/net/atm/lec.c	Thu Jun  3 01:13:03 1999
-@@ -0,0 +1,2182 @@
++++ work/net/atm/lec.c	Thu Jun  3 03:59:45 1999
+@@ -0,0 +1,2184 @@
 +/*
 + * lec.c: Lan Emulation driver 
 + * Marko Kiiskila carnil@cs.tut.fi
@@ -27653,7 +27663,9 @@
 +        struct atm_vcc *send_vcc;
 +	struct lec_arp_table *entry;
 +        unsigned char *nb, *dst;
++#ifdef CONFIG_TR
 +        unsigned char rdesc[ETH_ALEN]; /* Token Ring route descriptor */
++#endif
 +        int is_rdesc;
 +#if DUMP_PACKETS > 0
 +        char buf[300];
@@ -29631,7 +29643,7 @@
 +}
 +
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/net/atm/lec.h	Thu Jun  3 01:26:02 1999
++++ work/net/atm/lec.h	Thu Jun  3 03:56:44 1999
 @@ -0,0 +1,150 @@
 +/*
 + *
@@ -29784,7 +29796,7 @@
 +#endif _LEC_H_
 +
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/net/atm/lec_arpc.h	Thu Jun  3 01:26:02 1999
++++ work/net/atm/lec_arpc.h	Thu Jun  3 03:56:44 1999
 @@ -0,0 +1,116 @@
 +/*
 + * Lec arp cache
@@ -29903,7 +29915,7 @@
 +
 +#endif
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/net/atm/mpc.c	Thu Jun  3 01:00:43 1999
++++ work/net/atm/mpc.c	Thu Jun  3 02:29:46 1999
 @@ -0,0 +1,1470 @@
 +#include <linux/kernel.h>
 +#include <linux/string.h>
@@ -31376,7 +31388,7 @@
 +}
 +#endif /* MODULE */
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/net/atm/mpc.h	Thu Jun  3 01:26:02 1999
++++ work/net/atm/mpc.h	Thu Jun  3 03:56:44 1999
 @@ -0,0 +1,65 @@
 +#ifndef _MPC_H_
 +#define _MPC_H_
@@ -31444,7 +31456,7 @@
 +
 +#endif /* _MPC_H_ */
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/net/atm/mpoa_caches.c	Thu Jun  3 01:00:43 1999
++++ work/net/atm/mpoa_caches.c	Thu Jun  3 02:29:46 1999
 @@ -0,0 +1,557 @@
 +#include <linux/types.h>
 +#include <linux/atmmpc.h>
@@ -32004,7 +32016,7 @@
 +        return;
 +}
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/net/atm/mpoa_caches.h	Thu Jun  3 01:26:02 1999
++++ work/net/atm/mpoa_caches.h	Thu Jun  3 03:56:44 1999
 @@ -0,0 +1,90 @@
 +#ifndef MPOA_CACHES_H
 +#define MPOA_CACHES_H
@@ -32097,7 +32109,7 @@
 +
 +#endif
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/net/atm/mpoa_proc.c	Thu Jun  3 01:00:43 1999
++++ work/net/atm/mpoa_proc.c	Thu Jun  3 02:29:46 1999
 @@ -0,0 +1,391 @@
 +#include <linux/config.h>
 +
@@ -32491,7 +32503,7 @@
 +
 +
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/net/atm/lane_mpoa_init.c	Thu Jun  3 01:00:43 1999
++++ work/net/atm/lane_mpoa_init.c	Thu Jun  3 02:29:46 1999
 @@ -0,0 +1,48 @@
 +#include <linux/config.h>
 +#include <linux/module.h>
@@ -32542,7 +32554,7 @@
 +}        
 +#endif
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/net/atm/proc.c	Thu Jun  3 01:00:43 1999
++++ work/net/atm/proc.c	Thu Jun  3 02:29:46 1999
 @@ -0,0 +1,617 @@
 +/* net/atm/proc.c - ATM /proc interface */
 +
@@ -33162,7 +33174,7 @@
 +	return error;
 +}
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/net/atm/protocols.h	Thu Jun  3 01:00:43 1999
++++ work/net/atm/protocols.h	Thu Jun  3 02:29:46 1999
 @@ -0,0 +1,16 @@
 +/* net/atm/protocols.h - ATM protocol handler entry points */
 +
@@ -33181,7 +33193,7 @@
 +
 +#endif
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/net/atm/pvc.c	Thu Jun  3 01:00:43 1999
++++ work/net/atm/pvc.c	Thu Jun  3 02:29:46 1999
 @@ -0,0 +1,158 @@
 +/* net/atm/pvc.c - ATM PVC sockets */
 +
@@ -33342,7 +33354,7 @@
 +#endif
 +}
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/net/atm/raw.c	Thu Jun  3 01:00:43 1999
++++ work/net/atm/raw.c	Thu Jun  3 02:29:46 1999
 @@ -0,0 +1,80 @@
 +/* net/atm/raw.c - Raw AAL0 and AAL5 transports */
 +
@@ -33425,7 +33437,7 @@
 +	return 0;
 +}
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/net/atm/resources.c	Thu Jun  3 01:00:43 1999
++++ work/net/atm/resources.c	Thu Jun  3 02:29:46 1999
 @@ -0,0 +1,202 @@
 +/* net/atm/resources.c - Staticly allocated resources */
 +
@@ -33630,7 +33642,7 @@
 +EXPORT_SYMBOL(shutdown_atm_dev);
 +EXPORT_SYMBOL(bind_vcc);
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/net/atm/resources.h	Thu Jun  3 01:26:02 1999
++++ work/net/atm/resources.h	Thu Jun  3 03:56:44 1999
 @@ -0,0 +1,32 @@
 +/* net/atm/resources.h - ATM-related resources */
 +
@@ -33665,8 +33677,8 @@
 +
 +#endif
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/net/atm/signaling.c	Thu Jun  3 01:00:43 1999
-@@ -0,0 +1,252 @@
++++ work/net/atm/signaling.c	Thu Jun  3 04:10:19 1999
+@@ -0,0 +1,258 @@
 +/* net/atm/signaling.c - ATM signaling */
 +
 +/* Written 1995-1999 by Werner Almesberger, EPFL LRC/ICA */
@@ -33700,7 +33712,7 @@
 +
 +
 +struct atm_vcc *sigd = NULL;
-+static struct wait_queue *sigd_sleep = NULL;
++static wait_queue_head_t sigd_sleep;
 +
 +
 +static void sigd_put_skb(struct sk_buff *skb)
@@ -33919,12 +33931,18 @@
 +	wake_up(&sigd_sleep);
 +	return 0;
 +}
++
++
++void signaling_init(void)
++{
++	init_waitqueue_head(&sigd_sleep);
++}
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/net/atm/signaling.h	Thu Jun  3 01:26:02 1999
-@@ -0,0 +1,25 @@
++++ work/net/atm/signaling.h	Thu Jun  3 04:04:56 1999
+@@ -0,0 +1,26 @@
 +/* net/atm/signaling.h - ATM signaling */
 + 
-+/* Written 1995,1996 by Werner Almesberger, EPFL LRC */
++/* Written 1995-1999 by Werner Almesberger, EPFL LRC/ICA */
 + 
 +
 +#ifndef NET_ATM_SIGNALING_H
@@ -33945,11 +33963,12 @@
 +    const struct atm_vcc *listen_vcc,const struct sockaddr_atmpvc *pvc,
 +    const struct sockaddr_atmsvc *svc);
 +int sigd_attach(struct atm_vcc *vcc);
++void signaling_init(void);
 +
 +#endif
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/net/atm/svc.c	Thu Jun  3 01:00:43 1999
-@@ -0,0 +1,389 @@
++++ work/net/atm/svc.c	Thu Jun  3 04:10:37 1999
+@@ -0,0 +1,392 @@
 +/* net/atm/svc.c - ATM SVC sockets */
 +
 +/* Written 1995-1999 by Werner Almesberger, EPFL LRC/ICA */
@@ -33975,6 +33994,7 @@
 +#include "resources.h"
 +#include "common.h"		/* common for PVCs and SVCs */
 +#include "signaling.h"
++#include "addr.h"
 +
 +
 +#if 0
@@ -34338,9 +34358,11 @@
 +		printk(KERN_ERR "ATMSVC: can't register");
 +		return;
 +	}
++	signaling_init();
++	init_addr();
 +}
 --- /dev/null	Tue Jan  1 05:00:00 1980
-+++ work/net/atm/tunable.h	Thu Jun  3 01:00:43 1999
++++ work/net/atm/tunable.h	Thu Jun  3 02:29:46 1999
 @@ -0,0 +1,23 @@
 +/* net/atm/tunable.h - Tunable parameters of ATM support */
 +
@@ -34366,7 +34388,7 @@
 +
 +#endif
 --- ref/net/core/skbuff.c	Sun Mar  7 19:12:18 1999
-+++ work/net/core/skbuff.c	Thu Jun  3 01:00:43 1999
++++ work/net/core/skbuff.c	Thu Jun  3 02:29:46 1999
 @@ -61,6 +61,10 @@
  #include <asm/uaccess.h>
  #include <asm/system.h>
diff -ur --new-file old/atm/doc/usage.tex new/atm/doc/usage.tex
--- old/atm/doc/usage.tex	Thu Jun  3 01:03:45 1999
+++ new/atm/doc/usage.tex	Thu Jun  3 02:21:31 1999
@@ -1,7 +1,7 @@
 %def%:=
 
 %:\begin{verbatim}
-%:Usage instructions  -  ATM on Linux, release 0.59
+%:Usage instructions  -  ATM on Linux, release 0.60
 %:-------------------------------------------------
 %:
 %:\end{verbatim}
@@ -38,7 +38,7 @@
 
 \title{ATM on Linux \\
   User's guide \\
-  Release 0.59 (alpha)}
+  Release 0.60 (alpha)}
 \author{Werner Almesberger \\
   {\tt Werner.Almesberger@epfl.ch} \\
   \\
@@ -82,9 +82,9 @@
 In order to install this package, you need
 \begin{itemize}
   \item the package itself
-    \url{ftp://lrcftp.epfl.ch/pub/linux/atm/dist/atm-0.59.tar.gz}
-  \item the Linux kernel, version 2.2.9, e.g. from
-    \url{ftp://ftp.kernel.org/pub/linux/kernel/v2.2/linux-2.2.9.tar.gz}
+    \url{ftp://lrcftp.epfl.ch/pub/linux/atm/dist/atm-0.60.tar.gz}
+  \item the Linux kernel, version 2.3.3, e.g. from
+    \url{ftp://ftp.kernel.org/pub/linux/kernel/v2.3/linux-2.3.3.tar.gz}
   \item Perl, version 4 or 5
   \item if you want memory debugging: MPR version 1.6, e.g. from
     \url{ftp://sunsite.unc.edu/pub/Linux/devel/lang/c/mpr-1.6.tar.gz}
@@ -99,13 +99,13 @@
 distribution:
 
 \begin{verbatim}
-tar xfz atm-0.59.tar.gz
+tar xfz atm-0.60.tar.gz
 \end{verbatim}
 
 and the kernel source:
 
 \begin{verbatim}
-tar xfz linux-2.2.9.tar.gz
+tar xfz linux-2.3.3.tar.gz
 \end{verbatim}
 
 Finally, you can extract the ATM-related patches:
diff -ur --new-file old/atm/doc/usage.txt new/atm/doc/usage.txt
--- old/atm/doc/usage.txt	Thu Jun  3 02:07:20 1999
+++ new/atm/doc/usage.txt	Thu Jun  3 04:20:33 1999
@@ -1,4 +1,4 @@
-%:Usage instructions  -  ATM on Linux, release 0.59
+%:Usage instructions  -  ATM on Linux, release 0.60
 %:-------------------------------------------------
 %:
 %:
@@ -20,9 +20,9 @@
 In order to install this package, you need 
 
   - the package itself  
-    ftp://lrcftp.epfl.ch/pub/linux/atm/dist/atm-0.59.tar.gz  
-  - the Linux kernel, version 2.2.9, e.g. from  
-    ftp://ftp.kernel.org/pub/linux/kernel/v2.2/linux-2.2.9.tar.gz  
+    ftp://lrcftp.epfl.ch/pub/linux/atm/dist/atm-0.60.tar.gz  
+  - the Linux kernel, version 2.3.3, e.g. from  
+    ftp://ftp.kernel.org/pub/linux/kernel/v2.3/linux-2.3.3.tar.gz  
   - Perl, version 4 or 5 
   - if you want memory debugging: MPR version 1.6, e.g. from  
     ftp://sunsite.unc.edu/pub/Linux/devel/lang/c/mpr-1.6.tar.gz  
@@ -36,11 +36,11 @@
 all the files listed above there. Then extract the ATM on Linux 
 distribution:
 
-tar xfz atm-0.59.tar.gz
+tar xfz atm-0.60.tar.gz
 
 and the kernel source:
 
-tar xfz linux-2.2.9.tar.gz
+tar xfz linux-2.3.3.tar.gz
 
 Finally, you can extract the ATM-related patches:
 
diff -ur --new-file old/atm/mkdiff new/atm/mkdiff
--- old/atm/mkdiff	Fri Sep 27 23:24:45 1996
+++ new/atm/mkdiff	Thu Jun  3 04:23:25 1999
@@ -55,17 +55,20 @@
 	read version
 	read version
     } <atm/.kernel || exit 1
-    file=linux-$version.tar.gz
+    file=linux-$version.tar
     for m in `echo $KPATH | tr : ' '`; do
-	if [ -r $m/$file ]; then
+	if [ -r $m/$file.gz -o -r $m/$file.bz2 ]; then
 	    break
 	fi
     done
-    if [ ! -r $m/$file ]; then
+    if [ -r $m/$file.gz ]; then
+	tar xfz $m/$file.gz || exit 1
+    elif [ -r $m/$file.bz2 ]; then
+	bunzip2 < $m/$file.bz2 | tar xf - || exit 1
+    else
 	echo "no kernel $version found in $KPATH" 1>&2
 	exit 1
     fi
-    tar xfz $m/$file || exit 1
     cd linux
     patch -s -p1 <../atm/atm*.patch || exit 1
     find . -name \*.orig -exec rm {} \;