diff -ur linux-240pre-orig/arch/i386/boot/bootsect.S linux-240pre/arch/i386/boot/bootsect.S
--- linux-240pre-orig/arch/i386/boot/bootsect.S	Wed Jul 19 00:55:01 2000
+++ linux-240pre/arch/i386/boot/bootsect.S	Mon Jan  1 07:51:37 2001
@@ -233,7 +233,7 @@
 rp_read:
 #ifdef __BIG_KERNEL__
 	bootsect_kludge = 0x220		# 0x200 (size of bootsector) + 0x20 (offset
-	lcall	bootsect_kludge		# of bootsect_kludge in setup.S)
+	lcall	*bootsect_kludge	# of bootsect_kludge in setup.S)
 #else
 	movw	%es, %ax
 	subw	$SYSSEG, %ax
diff -ur linux-240pre-orig/arch/i386/boot/setup.S linux-240pre/arch/i386/boot/setup.S
--- linux-240pre-orig/arch/i386/boot/setup.S	Sat Dec 30 00:07:57 2000
+++ linux-240pre/arch/i386/boot/setup.S	Mon Jan  1 07:51:56 2001
@@ -520,7 +520,7 @@
 	cmpw	$0, %cs:realmode_swtch
 	jz	rmodeswtch_normal
 
-	lcall	%cs:realmode_swtch
+	lcall	*%cs:realmode_swtch
 
 	jmp	rmodeswtch_end
 
diff -ur linux-240pre-orig/arch/i386/kernel/apm.c linux-240pre/arch/i386/kernel/apm.c
--- linux-240pre-orig/arch/i386/kernel/apm.c	Thu Dec  7 07:00:12 2000
+++ linux-240pre/arch/i386/kernel/apm.c	Mon Jan  1 06:50:30 2001
@@ -458,7 +458,7 @@
 	__asm__ __volatile__(APM_DO_ZERO_SEGS
 		"pushl %%edi\n\t"
 		"pushl %%ebp\n\t"
-		"lcall %%cs:" SYMBOL_NAME_STR(apm_bios_entry) "\n\t"
+		"lcall *%%cs:" SYMBOL_NAME_STR(apm_bios_entry) "\n\t"
 		"setc %%al\n\t"
 		"popl %%ebp\n\t"
 		"popl %%edi\n\t"
@@ -495,7 +495,7 @@
 		__asm__ __volatile__(APM_DO_ZERO_SEGS
 			"pushl %%edi\n\t"
 			"pushl %%ebp\n\t"
-			"lcall %%cs:" SYMBOL_NAME_STR(apm_bios_entry) "\n\t"
+			"lcall *%%cs:" SYMBOL_NAME_STR(apm_bios_entry) "\n\t"
 			"setc %%bl\n\t"
 			"popl %%ebp\n\t"
 			"popl %%edi\n\t"
diff -ur linux-240pre-orig/arch/i386/kernel/pci-pc.c linux-240pre/arch/i386/kernel/pci-pc.c
--- linux-240pre-orig/arch/i386/kernel/pci-pc.c	Thu Jun 22 17:17:16 2000
+++ linux-240pre/arch/i386/kernel/pci-pc.c	Mon Jan  1 07:34:34 2001
@@ -318,7 +318,7 @@
 	unsigned long flags;
 
 	__save_flags(flags); __cli();
-	__asm__("lcall (%%edi); cld"
+	__asm__("lcall *(%%edi); cld"
 		: "=a" (return_code),
 		  "=b" (address),
 		  "=c" (length),
@@ -359,7 +359,7 @@
 
 		__save_flags(flags); __cli();
 		__asm__(
-			"lcall (%%edi); cld\n\t"
+			"lcall *(%%edi); cld\n\t"
 			"jc 1f\n\t"
 			"xor %%ah, %%ah\n"
 			"1:"
@@ -404,7 +404,7 @@
 	unsigned short bx;
 	unsigned short ret;
 
-	__asm__("lcall (%%edi); cld\n\t"
+	__asm__("lcall *(%%edi); cld\n\t"
 		"jc 1f\n\t"
 		"xor %%ah, %%ah\n"
 		"1:"
@@ -425,7 +425,7 @@
 	unsigned long ret;
 	unsigned long bx = (dev->bus->number << 8) | dev->devfn;
 
-	__asm__("lcall (%%esi); cld\n\t"
+	__asm__("lcall *(%%esi); cld\n\t"
 		"jc 1f\n\t"
 		"xor %%ah, %%ah\n"
 		"1:"
@@ -443,7 +443,7 @@
 	unsigned long ret;
 	unsigned long bx = (dev->bus->number << 8) | dev->devfn;
 
-	__asm__("lcall (%%esi); cld\n\t"
+	__asm__("lcall *(%%esi); cld\n\t"
 		"jc 1f\n\t"
 		"xor %%ah, %%ah\n"
 		"1:"
@@ -461,7 +461,7 @@
 	unsigned long ret;
 	unsigned long bx = (dev->bus->number << 8) | dev->devfn;
 
-	__asm__("lcall (%%esi); cld\n\t"
+	__asm__("lcall *(%%esi); cld\n\t"
 		"jc 1f\n\t"
 		"xor %%ah, %%ah\n"
 		"1:"
@@ -479,7 +479,7 @@
 	unsigned long ret;
 	unsigned long bx = (dev->bus->number << 8) | dev->devfn;
 
-	__asm__("lcall (%%esi); cld\n\t"
+	__asm__("lcall *(%%esi); cld\n\t"
 		"jc 1f\n\t"
 		"xor %%ah, %%ah\n"
 		"1:"
@@ -497,7 +497,7 @@
 	unsigned long ret;
 	unsigned long bx = (dev->bus->number << 8) | dev->devfn;
 
-	__asm__("lcall (%%esi); cld\n\t"
+	__asm__("lcall *(%%esi); cld\n\t"
 		"jc 1f\n\t"
 		"xor %%ah, %%ah\n"
 		"1:"
@@ -515,7 +515,7 @@
 	unsigned long ret;
 	unsigned long bx = (dev->bus->number << 8) | dev->devfn;
 
-	__asm__("lcall (%%esi); cld\n\t"
+	__asm__("lcall *(%%esi); cld\n\t"
 		"jc 1f\n\t"
 		"xor %%ah, %%ah\n"
 		"1:"
@@ -673,7 +673,7 @@
 	__asm__("push %%es\n\t"
 		"push %%ds\n\t"
 		"pop  %%es\n\t"
-		"lcall (%%esi); cld\n\t"
+		"lcall *(%%esi); cld\n\t"
 		"pop %%es\n\t"
 		"jc 1f\n\t"
 		"xor %%ah, %%ah\n"
@@ -706,7 +706,7 @@
 {
 	int ret;
 
-	__asm__("lcall (%%esi); cld\n\t"
+	__asm__("lcall *(%%esi); cld\n\t"
 		"jc 1f\n\t"
 		"xor %%ah, %%ah\n"
 		"1:"
diff -ur linux-240pre-orig/drivers/net/tulip/media.c linux-240pre/drivers/net/tulip/media.c
--- linux-240pre-orig/drivers/net/tulip/media.c	Mon Jun 19 23:42:39 2000
+++ linux-240pre/drivers/net/tulip/media.c	Mon Jan  1 17:07:07 2001
@@ -263,6 +263,24 @@
 			tulip_mdio_write(dev, tp->phys[phy_num], 4, to_advertise);
 			break;
 		}
+		case 5: case 6: {
+			u16 setup[5];
+			u32 csr13val, csr14val, csr15dir, csr15val;
+			for (i = 0; i < 5; i++)
+				setup[i] = get_u16(&p[i*2 + 1]);
+
+			if (startup && mtable->has_reset) {
+				struct medialeaf *rleaf = &mtable->mleaf[mtable->has_reset];
+				unsigned char *rst = rleaf->leafdata;
+				if (tulip_debug > 1)
+					printk(KERN_DEBUG "%s: Resetting the transceiver.\n",
+						   dev->name);
+				for (i = 0; i < rst[0]; i++)
+					outl(get_u16(rst + 1 + (i<<1)) << 16, ioaddr + CSR15);
+			}
+
+			break;
+		}
 		default:
 			printk(KERN_DEBUG "%s:  Invalid media table selection %d.\n",
 					   dev->name, mleaf->type);
diff -ur linux-240pre-orig/drivers/sound/i810_audio.c linux-240pre/drivers/sound/i810_audio.c
--- linux-240pre-orig/drivers/sound/i810_audio.c	Sat Dec 30 21:23:14 2000
+++ linux-240pre/drivers/sound/i810_audio.c	Mon Jan  1 08:03:01 2001
@@ -144,13 +144,13 @@
 
 #define ENUM_ENGINE(PRE,DIG) 									\
 enum {												\
-	##PRE##_BDBAR =	0x##DIG##0,		/* Buffer Descriptor list Base Address */	\
-	##PRE##_CIV =	0x##DIG##4,		/* Current Index Value */			\
-	##PRE##_LVI =	0x##DIG##5,		/* Last Valid Index */				\
-	##PRE##_SR =	0x##DIG##6,		/* Status Register */				\
-	##PRE##_PICB =	0x##DIG##8,		/* Position In Current Buffer */		\
-	##PRE##_PIV =	0x##DIG##a,		/* Prefetched Index Value */			\
-	##PRE##_CR =	0x##DIG##b		/* Control Register */				\
+	PRE##_BDBAR =	0x##DIG##0,		/* Buffer Descriptor list Base Address */	\
+	PRE##_CIV =	0x##DIG##4,		/* Current Index Value */			\
+	PRE##_LVI =	0x##DIG##5,		/* Last Valid Index */				\
+	PRE##_SR =	0x##DIG##6,		/* Status Register */				\
+	PRE##_PICB =	0x##DIG##8,		/* Position In Current Buffer */		\
+	PRE##_PIV =	0x##DIG##a,		/* Prefetched Index Value */			\
+	PRE##_CR =	0x##DIG##b		/* Control Register */				\
 }
 
 ENUM_ENGINE(OFF,0);	/* Offsets */
diff -ur linux-240pre-orig/drivers/usb/plusb.c linux-240pre/drivers/usb/plusb.c
--- linux-240pre-orig/drivers/usb/plusb.c	Wed Nov 29 07:50:07 2000
+++ linux-240pre/drivers/usb/plusb.c	Mon Jan  1 08:09:05 2001
@@ -887,14 +887,15 @@
 
 /* --------------------------------------------------------------------- */
 
-static void *plusb_probe (struct usb_device *usbdev, unsigned int ifnum)
+static void *plusb_probe (struct usb_device *usbdev, unsigned int ifnum,
+			  const struct usb_device_id *id)
 {
 	plusb_t *s;
 
 	dbg("plusb: probe: vendor id 0x%x, device id 0x%x ifnum:%d",
-	  usbdev->descriptor.idVendor, usbdev->descriptor.idProduct, ifnum);
+	    id->idVendor, id->idProduct, ifnum);
 
-	if (usbdev->descriptor.idVendor != 0x067b || usbdev->descriptor.idProduct > 0x1)
+	if (id->idVendor != 0x067b || id->idProduct > 0x1)
 		return NULL;
 
 	/* We don't handle multiple configurations */
diff -ur linux-240pre-orig/drivers/usb/storage/debug.h linux-240pre/drivers/usb/storage/debug.h
--- linux-240pre-orig/drivers/usb/storage/debug.h	Sun Dec 31 21:11:45 2000
+++ linux-240pre/drivers/usb/storage/debug.h	Mon Jan  1 08:10:27 2001
@@ -57,8 +57,8 @@
 void usb_stor_print_Scsi_Cmnd( Scsi_Cmnd* cmd );
 void usb_stor_show_sense( unsigned char key,
 		unsigned char asc, unsigned char ascq );
-#define US_DEBUGP(x...) printk( KERN_DEBUG USB_STORAGE ## x )
-#define US_DEBUGPX(x...) printk( ## x )
+#define US_DEBUGP(x...) printk( KERN_DEBUG USB_STORAGE x )
+#define US_DEBUGPX(x...) printk( x )
 #define US_DEBUG(x) x 
 #else
 #define US_DEBUGP(x...)
diff -ur linux-240pre-orig/fs/smbfs/smb_debug.h linux-240pre/fs/smbfs/smb_debug.h
--- linux-240pre-orig/fs/smbfs/smb_debug.h	Wed Jul 19 08:30:34 2000
+++ linux-240pre/fs/smbfs/smb_debug.h	Mon Jan  1 08:12:04 2001
@@ -11,14 +11,14 @@
  * these are normally enabled.
  */
 #ifdef SMBFS_PARANOIA
-#define PARANOIA(x...) printk(KERN_NOTICE __FUNCTION__ ": " ## x)
+#define PARANOIA(x...) printk(KERN_NOTICE __FUNCTION__ ": " x)
 #else
 #define PARANOIA(x...) do { ; } while(0)
 #endif
 
 /* lots of debug messages */
 #ifdef SMBFS_DEBUG_VERBOSE
-#define VERBOSE(x...) printk(KERN_DEBUG __FUNCTION__ ": " ## x)
+#define VERBOSE(x...) printk(KERN_DEBUG __FUNCTION__ ": " x)
 #else
 #define VERBOSE(x...) do { ; } while(0)
 #endif
@@ -28,7 +28,7 @@
  * too common name.
  */
 #ifdef SMBFS_DEBUG
-#define DEBUG1(x...) printk(KERN_DEBUG __FUNCTION__ ": " ## x)
+#define DEBUG1(x...) printk(KERN_DEBUG __FUNCTION__ ": " x)
 #else
 #define DEBUG1(x...) do { ; } while(0)
 #endif
diff -ur linux-240pre-orig/include/linux/udf_fs.h linux-240pre/include/linux/udf_fs.h
--- linux-240pre-orig/include/linux/udf_fs.h	Tue Apr 11 08:50:40 2000
+++ linux-240pre/include/linux/udf_fs.h	Mon Jan  1 13:45:59 2001
@@ -45,15 +45,15 @@
 #ifdef UDFFS_DEBUG
 #define udf_debug(f, a...) \
 	{ \
-		printk (KERN_DEBUG "UDF-fs DEBUG (%s, %d): %s: ", \
+		printk (KERN_DEBUG "UDF-fs DEBUG %s:%d:%s: ", \
 			__FILE__, __LINE__, __FUNCTION__); \
-		printk (## f, ## a); \
+		printk (f, ##a); \
 	}
 #else
 #define udf_debug(f, a...) /**/
 #endif
 
 #define udf_info(f, a...) \
-		printk (KERN_INFO "UDF-fs INFO " ## f, ## a);
+		printk (KERN_INFO "UDF-fs INFO " f, a);
 
 #endif /* !defined(_LINUX_UDF_FS_H) */
diff -ur linux-240pre-orig/include/net/irda/irda.h linux-240pre/include/net/irda/irda.h
--- linux-240pre-orig/include/net/irda/irda.h	Sun Dec 31 21:10:53 2000
+++ linux-240pre/include/net/irda/irda.h	Mon Jan  1 09:01:24 2001
@@ -66,9 +66,9 @@
 #define IRDA_DEBUG(n, args...) (irda_debug >= (n)) ? (printk(KERN_DEBUG args)) : 0
 #define ASSERT(expr, func) \
 if(!(expr)) { \
-        printk( "Assertion failed! %s,%s,%s,line=%d\n",\
-        #expr,__FILE__,__FUNCTION__,__LINE__); \
-        ##func}
+        printk( "Assertion failed! %s:%s:%d %s\n", \
+        __FILE__,__FUNCTION__,__LINE__,(#expr));  \
+        func }
 #else
 #define IRDA_DEBUG(n, args...)
 #define ASSERT(expr, func)
diff -ur linux-240pre-orig/include/net/sock.h linux-240pre/include/net/sock.h
--- linux-240pre-orig/include/net/sock.h	Sun Dec 31 21:10:53 2000
+++ linux-240pre/include/net/sock.h	Mon Jan  1 09:03:44 2001
@@ -458,7 +458,7 @@
 /* Define this to get the sk->debug debugging facility. */
 #define SOCK_DEBUGGING
 #ifdef SOCK_DEBUGGING
-#define SOCK_DEBUG(sk, msg...) do { if((sk) && ((sk)->debug)) printk(KERN_DEBUG ## msg); } while (0)
+#define SOCK_DEBUG(sk, msg...) do { if((sk) && ((sk)->debug)) printk(KERN_DEBUG msg); } while (0)
 #else
 #define SOCK_DEBUG(sk, msg...) do { } while (0)
 #endif
diff -ur linux-240pre-orig/net/atm/Makefile linux-240pre/net/atm/Makefile
--- linux-240pre-orig/net/atm/Makefile	Sat Dec 30 00:07:24 2000
+++ linux-240pre/net/atm/Makefile	Mon Jan  1 07:15:20 2001
@@ -11,7 +11,7 @@
 
 O_TARGET= atm.o
 
-export-objs = common.o atm_misc.o raw.o resources.o ipcommon.o proc.o lane_mpoa_init.o
+export-objs = common.o atm_misc.o raw.o resources.o ipcommon.o proc.o
 
 multi-list = mpoa.o
 mpoa-objs = mpc.o mpoa_caches.o mpoa_proc.o
@@ -33,7 +33,7 @@
 obj-y += proc.o
 endif
 
-obj-$(CONFIG_ATM_LANE) += lec.o lane_mpoa_init.o
+obj-$(CONFIG_ATM_LANE) += lec.o
 obj-$(CONFIG_ATM_MPOA) += mpoa.o
 
 include $(TOPDIR)/Rules.make
diff -ur linux-240pre-orig/net/atm/common.c linux-240pre/net/atm/common.c
--- linux-240pre-orig/net/atm/common.c	Sat Dec 30 00:35:47 2000
+++ linux-240pre/net/atm/common.c	Mon Jan  1 07:24:37 2001
@@ -5,6 +5,7 @@
 
 #include <linux/config.h>
 #include <linux/module.h>
+#include <linux/kmod.h>
 #include <linux/net.h>		/* struct socket, struct net_proto, struct
 				   proto_ops */
 #include <linux/atm.h>		/* ATM stuff */
@@ -679,7 +680,7 @@
 				goto done;
 			}
                         if (atm_lane_ops.lecd_attach == NULL)
-                                atm_lane_init();
+				atm_lane_init();
                         if (atm_lane_ops.lecd_attach == NULL) { /* try again */
 				ret_val = -ENOSYS;
 				goto done;
@@ -1086,3 +1087,61 @@
 		return -EINVAL;
 	return atm_do_getsockopt(sock,level,optname,optval,len);
 }
+
+
+/*
+ * lane_mpoa_init.c: A couple of helper functions
+ * to make modular LANE and MPOA client easier to implement
+ */
+
+/*
+ * This is how it goes:
+ *
+ * if xxxx is not compiled as module, call atm_xxxx_init_ops()
+ *    from here
+ * else call atm_mpoa_init_ops() from init_module() within
+ *    the kernel when xxxx module is loaded
+ *
+ * In either case function pointers in struct atm_xxxx_ops
+ * are initialized to their correct values. Either they
+ * point to functions in the module or in the kernel
+ */
+ 
+extern struct atm_mpoa_ops atm_mpoa_ops; /* in common.c */
+extern struct atm_lane_ops atm_lane_ops; /* in common.c */
+
+#if defined(CONFIG_ATM_MPOA) || defined(CONFIG_ATM_MPOA_MODULE)
+void atm_mpoa_init(void)
+{
+#ifndef CONFIG_ATM_MPOA_MODULE /* not module */
+        atm_mpoa_init_ops(&atm_mpoa_ops);
+#else
+	request_module("mpoa");
+#endif
+
+        return;
+}
+#endif
+
+#if defined(CONFIG_ATM_LANE) || defined(CONFIG_ATM_LANE_MODULE)
+#if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE)
+struct net_bridge_fdb_entry *(*br_fdb_get_hook)(struct net_bridge *br,
+						unsigned char *addr) = NULL;
+void (*br_fdb_put_hook)(struct net_bridge_fdb_entry *ent) = NULL;
+#if defined(CONFIG_ATM_LANE_MODULE) || defined(CONFIG_BRIDGE_MODULE)
+EXPORT_SYMBOL(br_fdb_get_hook);
+EXPORT_SYMBOL(br_fdb_put_hook);
+#endif /* defined(CONFIG_ATM_LANE_MODULE) || defined(CONFIG_BRIDGE_MODULE) */
+#endif /* defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE) */
+
+void atm_lane_init(void)
+{
+#ifndef CONFIG_ATM_LANE_MODULE /* not module */
+        atm_lane_init_ops(&atm_lane_ops);
+#else
+	request_module("lec");
+#endif
+
+        return;
+}        
+#endif
diff -ur linux-240pre-orig/net/atm/lane_mpoa_init.c linux-240pre/net/atm/lane_mpoa_init.c
--- linux-240pre-orig/net/atm/lane_mpoa_init.c	Fri Apr 14 19:37:20 2000
+++ linux-240pre/net/atm/lane_mpoa_init.c	Mon Jan  1 17:27:02 2001
@@ -1,58 +0,0 @@
-#include <linux/config.h>
-#include <linux/module.h>
-
-#include "mpc.h"
-#include "lec.h"
-
-/*
- * lane_mpoa_init.c: A couple of helper functions
- * to make modular LANE and MPOA client easier to implement
- */
-
-/*
- * This is how it goes:
- *
- * if xxxx is not compiled as module, call atm_xxxx_init_ops()
- *    from here
- * else call atm_mpoa_init_ops() from init_module() within
- *    the kernel when xxxx module is loaded
- *
- * In either case function pointers in struct atm_xxxx_ops
- * are initialized to their correct values. Either they
- * point to functions in the module or in the kernel
- */
- 
-extern struct atm_mpoa_ops atm_mpoa_ops; /* in common.c */
-extern struct atm_lane_ops atm_lane_ops; /* in common.c */
-
-#if defined(CONFIG_ATM_MPOA) || defined(CONFIG_ATM_MPOA_MODULE)
-void atm_mpoa_init(void)
-{
-#ifndef CONFIG_ATM_MPOA_MODULE /* not module */
-        atm_mpoa_init_ops(&atm_mpoa_ops);
-#endif
-
-        return;
-}
-#endif
-
-#if defined(CONFIG_ATM_LANE) || defined(CONFIG_ATM_LANE_MODULE)
-#if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE)
-struct net_bridge_fdb_entry *(*br_fdb_get_hook)(struct net_bridge *br,
-						unsigned char *addr) = NULL;
-void (*br_fdb_put_hook)(struct net_bridge_fdb_entry *ent) = NULL;
-#if defined(CONFIG_ATM_LANE_MODULE) || defined(CONFIG_BRIDGE_MODULE)
-EXPORT_SYMBOL(br_fdb_get_hook);
-EXPORT_SYMBOL(br_fdb_put_hook);
-#endif /* defined(CONFIG_ATM_LANE_MODULE) || defined(CONFIG_BRIDGE_MODULE) */
-#endif /* defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE) */
-
-void atm_lane_init(void)
-{
-#ifndef CONFIG_ATM_LANE_MODULE /* not module */
-        atm_lane_init_ops(&atm_lane_ops);
-#endif
-
-        return;
-}        
-#endif
diff -ur linux-240pre-orig/net/atm/lec.c linux-240pre/net/atm/lec.c
--- linux-240pre-orig/net/atm/lec.c	Sat Dec 30 21:19:13 2000
+++ linux-240pre/net/atm/lec.c	Mon Jan  1 16:51:31 2001
@@ -6,6 +6,7 @@
 
 #include <linux/config.h>
 #include <linux/kernel.h>
+#include <linux/module.h>
 #include <linux/bitops.h>
 
 /* We are ethernet device */
@@ -39,6 +40,7 @@
 
 /* Modular too */
 #include <linux/module.h>
+#include <linux/init.h>
 
 #include "lec.h"
 #include "lec_arpc.h"
@@ -828,8 +830,7 @@
 	return;
 }
 
-#ifdef MODULE
-int init_module(void)
+static int __init lane_module_init(void)
 {
         extern struct atm_lane_ops atm_lane_ops;
 
@@ -838,17 +839,12 @@
         return 0;
 }
 
-void cleanup_module(void)
+static void __exit lane_module_cleanup(void)
 {
         int i;
         extern struct atm_lane_ops atm_lane_ops;
         struct lec_priv *priv;
 
-        if (MOD_IN_USE) {
-                printk(KERN_NOTICE "lec.c: module in use\n");
-                return;
-        }
-
         atm_lane_ops.lecd_attach = NULL;
         atm_lane_ops.mcast_attach = NULL;
         atm_lane_ops.vcc_attach = NULL;
@@ -857,7 +853,9 @@
         for (i = 0; i < MAX_LEC_ITF; i++) {
                 if (dev_lec[i] != NULL) {
                         priv = (struct lec_priv *)dev_lec[i]->priv;
+#if defined(CONFIG_TR)
                         unregister_trdev(dev_lec[i]);
+#endif
                         kfree(dev_lec[i]);
                         dev_lec[i] = NULL;
                 }
@@ -865,7 +863,9 @@
 
         return;                                    
 }
-#endif /* MODULE */
+
+module_init(lane_module_init);
+module_exit(lane_module_cleanup);
 
 /*
  * LANE2: 3.1.3, LE_RESOLVE.request
@@ -2170,4 +2170,3 @@
         lec_arp_put(priv->lec_arp_tables,entry);
         lec_arp_unlock(priv);  
 }
-
diff -ur linux-240pre-orig/net/decnet/af_decnet.c linux-240pre/net/decnet/af_decnet.c
--- linux-240pre-orig/net/decnet/af_decnet.c	Mon Nov 13 06:37:17 2000
+++ linux-240pre/net/decnet/af_decnet.c	Mon Jan  1 08:22:38 2001
@@ -2133,6 +2133,9 @@
 
 static void __exit decnet_exit(void)
 {
+	sock_unregister(AF_DECnet);
+	dev_remove_pack(&dn_dix_packet_type);
+
 #ifdef CONFIG_SYSCTL
 	dn_unregister_sysctl();
 #endif /* CONFIG_SYSCTL */
@@ -2148,9 +2151,6 @@
 #endif /* CONFIG_DECNET_ROUTER */
 
 	proc_net_remove("decnet");
-
-	dev_remove_pack(&dn_dix_packet_type);
-	sock_unregister(AF_DECnet);
 }
 
 module_init(decnet_init);
diff -ur linux-240pre-orig/net/decnet/dn_table.c linux-240pre/net/decnet/dn_table.c
--- linux-240pre-orig/net/decnet/dn_table.c	Wed Jul 19 02:09:27 2000
+++ linux-240pre/net/decnet/dn_table.c	Mon Jan  1 08:21:08 2001
@@ -902,6 +902,10 @@
 
 void __exit dn_fib_table_cleanup(void)
 {
+	int i;
+
+	for (i = 0; i < DN_NUM_TABLES + 1; ++i)
+		dn_fib_del_tree(i);
+
 	return;
 }
-
diff -ur linux-240pre-orig/net/ipv4/netfilter/ipt_LOG.c linux-240pre/net/ipv4/netfilter/ipt_LOG.c
--- linux-240pre-orig/net/ipv4/netfilter/ipt_LOG.c	Thu Aug 10 22:35:15 2000
+++ linux-240pre/net/ipv4/netfilter/ipt_LOG.c	Mon Jan  1 08:24:44 2001
@@ -288,7 +288,7 @@
 	if (in && !out) {
 		/* MAC logging for input chain only. */
 		printk("MAC=");
-		if ((*pskb)->dev && (*pskb)->dev->hard_header_len && (*pskb)->mac.raw != iph) {
+		if ((*pskb)->dev && (*pskb)->dev->hard_header_len && (*pskb)->mac.raw != (void*)iph) {
 			int i;
 			unsigned char *p = (*pskb)->mac.raw;
 			for (i = 0; i < (*pskb)->dev->hard_header_len; i++,p++)
diff -ur linux-240pre-orig/net/irda/irias_object.c linux-240pre/net/irda/irias_object.c
--- linux-240pre-orig/net/irda/irias_object.c	Sun Nov 12 04:11:22 2000
+++ linux-240pre/net/irda/irias_object.c	Mon Jan  1 14:07:31 2001
@@ -34,7 +34,7 @@
 /*
  *  Used when a missing value needs to be returned
  */
-struct ias_value missing = { IAS_MISSING, 0, 0, {0}};
+struct ias_value missing = { IAS_MISSING, 0, 0, 0};
 
 /*
  * Function strdup (str)
diff -ur linux-240pre-orig/net/sched/sch_api.c linux-240pre/net/sched/sch_api.c
--- linux-240pre-orig/net/sched/sch_api.c	Thu Jun 22 17:23:26 2000
+++ linux-240pre/net/sched/sch_api.c	Mon Jan  1 06:40:06 2001
@@ -1203,7 +1203,7 @@
 
 #define INIT_QDISC(name) { \
           extern struct Qdisc_ops name##_qdisc_ops; \
-          register_qdisc(&##name##_qdisc_ops); \
+          register_qdisc(& name##_qdisc_ops);       \
 	}
 
 	INIT_QDISC(pfifo);
