diff -ur linux.old/drivers/char/acquirewdt.c linux/drivers/char/acquirewdt.c
--- linux.old/drivers/char/acquirewdt.c	Tue Nov 18 14:18:25 1997
+++ linux/drivers/char/acquirewdt.c	Tue Nov 18 21:37:33 1997
@@ -62,7 +62,7 @@
 	inb_p(WDT_START);
 }
 
-static long acq_write(struct inode *inode, struct file *file, const char *buf, unsigned long count)
+static ssize_t acq_write(struct file *file, const char *buf, size_t count, loff_t *ppos)
 {
 	if(count)
 	{
@@ -72,7 +72,7 @@
 	return 0;
 }
 
-static long acq_read(struct inode *inode, struct file *file, char *buf, unsigned long count)
+static size_t acq_read(struct file *file, char *buf, size_t count, loff_t *ppos)
 {
 	return -EINVAL;
 }
diff -ur linux.old/drivers/char/ftape/kernel-interface.c linux/drivers/char/ftape/kernel-interface.c
--- linux.old/drivers/char/ftape/kernel-interface.c	Tue Nov 18 14:18:23 1997
+++ linux/drivers/char/ftape/kernel-interface.c	Tue Nov 18 21:37:33 1997
@@ -61,11 +61,11 @@
 static int ftape_open(struct inode *ino, struct file *filep);
 static int ftape_close(struct inode *ino, struct file *filep);
 static int ftape_ioctl(struct inode *ino, struct file *filep,
-		       unsigned int command, unsigned long arg);
-static long ftape_read(struct inode *ino, struct file *fp,
-		       char *buff, unsigned long req_len);
-static long ftape_write(struct inode *ino, struct file *fp,
-			const char *buff, unsigned long req_len);
+			unsigned int command, unsigned long arg);
+static ssize_t ftape_read(struct file *fp, char *buff,
+			size_t req_len, loff_t *ppos);
+static ssize_t ftape_write(struct file *fp, const char *buff,
+			size_t req_len, loff_t *ppos);
 
 static struct file_operations ftape_cdev =
 {
@@ -311,12 +311,13 @@
 
 /*      Read from tape device
  */
-static long ftape_read(struct inode *ino, struct file *fp,
-	char *buff, unsigned long req_len)
+static ssize_t ftape_read(struct file *fp, char *buff,
+			size_t req_len, loff_t *ppos)
 {
 	TRACE_FUN(5, "ftape_read");
 	int result = -EIO;
 	int old_sigmask;
+	struct inode * ino = fp->f_dentry->d_inode;
 
 	TRACEi(5, "called with count:", (int) req_len);
 	if (!busy_flag || MINOR(ino->i_rdev) != ftape_unit || ftape_failure) {
@@ -335,12 +336,13 @@
 
 /*      Write to tape device
  */
-static long ftape_write(struct inode *ino, struct file *fp,
-	const char *buff, unsigned long req_len)
+static ssize_t ftape_write(struct file *fp, const char *buff,
+			size_t req_len, loff_t *ppos)
 {
 	TRACE_FUN(8, "ftape_write");
 	int result = -EIO;
 	int old_sigmask;
+	struct inode * ino = fp->f_dentry->d_inode;
 
 	TRACEi(5, "called with count:", (int) req_len);
 	if (!busy_flag || MINOR(ino->i_rdev) != ftape_unit || ftape_failure) {
diff -ur linux.old/drivers/char/softdog.c linux/drivers/char/softdog.c
--- linux.old/drivers/char/softdog.c	Tue Nov 18 14:18:23 1997
+++ linux/drivers/char/softdog.c	Tue Nov 18 21:37:33 1997
@@ -113,7 +113,8 @@
 	return;
 }
 
-static long softdog_write(struct inode *inode, struct file *file, const char *data, unsigned long len)
+static ssize_t softdog_write(struct file *file, const char *buf,
+	size_t len, loff_t * ppos)
 {
 	/*
 	 *	Refresh the timer.
diff -ur linux.old/drivers/char/wdt.c linux/drivers/char/wdt.c
--- linux.old/drivers/char/wdt.c	Tue Nov 18 14:18:23 1997
+++ linux/drivers/char/wdt.c	Tue Nov 18 21:37:33 1997
@@ -169,7 +169,8 @@
 	outb_p(0, WDT_DC);
 }
 
-static long wdt_write(struct inode *inode, struct file *file, const char *buf, unsigned long count)
+static ssize_t wdt_write(struct file * file, const char * buf,
+		size_t count, loff_t * ppos)
 {
 	if(count)
 	{
@@ -183,11 +184,13 @@
  *	Read reports the temperature in farenheit
  */
  
-static long wdt_read(struct inode *inode, struct file *file, char *buf, unsigned long count)
+static ssize_t wdt_read(struct file * file, char * buf,
+			size_t count, loff_t * ppos)
 {
 	unsigned short c=inb_p(WDT_RT);
 	unsigned char cp;
 	int err;
+	struct inode * inode = file->f_dentry->d_inode;
 	
 	switch(MINOR(inode->i_rdev))
 	{
diff -ur linux.old/drivers/net/lance.c linux/drivers/net/lance.c
--- linux.old/drivers/net/lance.c	Tue Nov 18 14:18:04 1997
+++ linux/drivers/net/lance.c	Tue Nov 18 21:47:25 1997
@@ -431,15 +431,28 @@
 				break;
 		}
 	}
-    
-#ifdef CONFIG_PCNET32
+
+#if defined(CONFIG_PCI) && defined(CONFIG_PCNET32)
         /*
 	 * if pcnet32 is configured and the chip is capable of 32bit mode
 	 * leave the card alone
 	 */
         if (chip_table[lance_version].flags & PCNET32_POSSIBLE)
           return;
-#endif    
+
+	/*
+	 * hedrick@astro.dyer.vanderbilt.edu
+	 *
+	 * the above statement is invalid in the following case:
+	 *
+	 * If you have a VLB pcnet32 and you want DMA access,
+	 * one can not call a return yet.
+	 *
+	 * This test is run on a Complex ReadyLink ENET32-VL
+	 * Freedomline Combo Revision-D with AMD 79C965 PCnet32
+	 *
+	 */
+#endif /* defined(CONFIG_PCI) && defined(CONFIG_PCNET32) */
 
 	dev = init_etherdev(0, 0);
 	dev->open = lance_open_fail;
@@ -611,7 +624,7 @@
 		   can watch the LEDs even if the board isn't opened. */
 		outw(0x0002, ioaddr+LANCE_ADDR);
 		/* set autoselect and clean xmausel */
-		outw(inw(ioaddr+LANCE_BUS_IF) & 0xfffe | 0x0002, ioaddr+LANCE_BUS_IF);
+		outw((inw(ioaddr+LANCE_BUS_IF) & 0xfffe) | 0x0002, ioaddr+LANCE_BUS_IF);
 	}
 
 	if (lance_debug > 0  &&  did_version++ == 0)
@@ -667,7 +680,7 @@
 		/* This is 79C960-specific: Turn on auto-select of media (AUI, BNC). */
 		outw(0x0002, ioaddr+LANCE_ADDR);
 		/* set autoselect and clean xmausel */
-		outw(inw(ioaddr+LANCE_BUS_IF) & 0xfffe | 0x0002, ioaddr+LANCE_BUS_IF);
+		outw((inw(ioaddr+LANCE_BUS_IF) & 0xfffe) | 0x0002, ioaddr+LANCE_BUS_IF);
 	}
 
 	if (lance_debug > 1)
diff -ur linux.old/drivers/scsi/README.ncr53c8xx linux/drivers/scsi/README.ncr53c8xx
--- linux.old/drivers/scsi/README.ncr53c8xx	Tue Nov 18 14:18:28 1997
+++ linux/drivers/scsi/README.ncr53c8xx	Tue Nov 18 21:37:33 1997
@@ -4,7 +4,7 @@
 21 Rue Carnot
 95170 DEUIL LA BARRE - FRANCE
 
-23 August 1997
+4 October 1997
 ===============================================================================
 
 1.  Introduction
@@ -1216,8 +1216,14 @@
 controller set up
 
 00 30 00 00 00 00 07 00 00 00 00 00 00 00 07 04 10 04 00 00
-                   |     |                 |
-                   |     |                  -- host ID
+                   |     |           |     |
+                   |     |           |      -- host ID
+                   |     |           |
+                   |     |            --Removable Media Support
+                   |     |               0x00 = none
+                   |     |               0x01 = Bootable Device
+                   |     |               0x02 = All with Media
+                   |     |
                    |      --flag bits 2
                    |        0x00000001= scan order hi->low
                    |            (default 0x00 - scan low->hi)
@@ -1230,6 +1236,7 @@
 current set up for any of the controllers.
 
 default set up is identical for 53c810a and 53c875 NVRAM
+(Removable Media added Symbios BIOS version 4.09)
 -----------------------------------------------------------
 boot configuration
 
diff -ur linux.old/drivers/scsi/ncr53c8xx.c linux/drivers/scsi/ncr53c8xx.c
--- linux.old/drivers/scsi/ncr53c8xx.c	Tue Nov 18 14:18:27 1997
+++ linux/drivers/scsi/ncr53c8xx.c	Tue Nov 18 21:37:33 1997
@@ -67,7 +67,7 @@
 */
 
 /*
-**	20 September 1997, version 2.5c
+**	4 October 1997, version 2.5d
 **
 **	Supported SCSI-II features:
 **	    Synchronous negotiation
@@ -578,7 +578,8 @@
 	u_short	flags1;
 #define SYMBIOS_SCAN_HI_LO	(1)
 	u_short	word10;		/* 0x00 */
-	u_short	word12;		/* 0x00 */
+	u_short	flags3;		/* 0x00 */
+#define SYMBIOS_REMOVABLE_FLAGS	(3)		/* 0=none, 1=bootable, 2=all */
 	u_char	host_id;
 	u_char	byte15;		/* 0x04 */
 	u_short	word16;		/* 0x0410 */
@@ -5618,10 +5619,12 @@
 	**	Check the status.
 	*/
 	if (   (cp->host_status == HS_COMPLETE)
-		&& (cp->scsi_status == S_GOOD)) {
-
+		&& (cp->scsi_status == S_GOOD ||
+		    cp->scsi_status == S_COND_MET)) {
 		/*
-		**	All went well.
+		**	All went well (GOOD status).
+		**	CONDITION MET status is returned on 
+		**	`Pre-Fetch' or `Search data' success.
 		*/
 		cmd->result = ScsiResult(DID_OK, cp->scsi_status);
 
@@ -5716,7 +5719,8 @@
 		}
 
 	} else if ((cp->host_status == HS_COMPLETE)
-		&& (cp->scsi_status == S_BUSY)) {
+		&& (cp->scsi_status == S_BUSY ||
+		    cp->scsi_status == S_CONFLICT)) {
 
 		/*
 		**   Target is busy.
@@ -9281,10 +9285,10 @@
 		command |= PCI_COMMAND_MASTER|PCI_COMMAND_IO|PCI_COMMAND_MEMORY;
 		pcibios_write_config_word(bus, device_fn, PCI_COMMAND, command);
 	}
-       if (io_port >= 0x10000000) {
+	if (io_port >= 0x10000000) {
 		io_port = (io_port & 0x00FFFFFF) | 0x01000000;
 		pcibios_write_config_dword(bus, device_fn, PCI_BASE_ADDRESS_0, io_port);
-       }
+	}
 	if (base >= 0x10000000) {
 		base = (base & 0x00FFFFFF) | 0x01000000;
 		pcibios_write_config_dword(bus, device_fn, PCI_BASE_ADDRESS_1, base);
diff -ur linux.old/drivers/scsi/ncr53c8xx.h linux/drivers/scsi/ncr53c8xx.h
--- linux.old/drivers/scsi/ncr53c8xx.h	Tue Nov 18 14:18:27 1997
+++ linux/drivers/scsi/ncr53c8xx.h	Tue Nov 18 21:37:33 1997
@@ -45,7 +45,7 @@
 /*
 **	Name and revision of the driver
 */
-#define SCSI_NCR_DRIVER_NAME		"ncr53c8xx - revision 2.5c"
+#define SCSI_NCR_DRIVER_NAME		"ncr53c8xx - revision 2.5d"
 
 /*
 **	Check supported Linux versions
diff -ur linux.old/fs/dcache.c linux/fs/dcache.c
--- linux.old/fs/dcache.c	Tue Nov 18 14:17:27 1997
+++ linux/fs/dcache.c	Tue Nov 18 21:37:34 1997
@@ -19,7 +19,7 @@
 #include <linux/malloc.h>
 #include <linux/init.h>
 
-#define DCACHE_PARANOIA 1
+/* #define DCACHE_PARANOIA 1 */
 /* #define DCACHE_DEBUG 1 */
 
 /* For managing the dcache */
diff -ur linux.old/fs/nfs/file.c linux/fs/nfs/file.c
--- linux.old/fs/nfs/file.c	Tue Nov 18 14:17:26 1997
+++ linux/fs/nfs/file.c	Tue Nov 18 21:37:34 1997
@@ -113,8 +113,9 @@
 	ssize_t result;
 
 	dfprintk(VFS, "nfs: read(%x/%ld, %lu@%lu)\n",
-			inode->i_dev, inode->i_ino, count,
-			(unsigned long) *ppos);
+			inode->i_dev, inode->i_ino,
+			(long unsigned) count,
+			(long unsigned) *ppos);
 
 	result = nfs_revalidate_inode(NFS_SERVER(inode), inode);
 	if (!result)
@@ -167,7 +168,8 @@
 
 	dfprintk(VFS, "nfs: write(%x/%ld (%d), %lu@%lu)\n",
 			inode->i_dev, inode->i_ino, inode->i_count,
-			count, (unsigned long) *ppos);
+			(long unsigned) count,
+			(long unsigned) *ppos);
 
 	if (!inode) {
 		printk("nfs_file_write: inode = NULL\n");
diff -ur linux.old/fs/sysv/dir.c linux/fs/sysv/dir.c
--- linux.old/fs/sysv/dir.c	Tue Nov 18 14:17:27 1997
+++ linux/fs/sysv/dir.c	Tue Nov 18 21:37:34 1997
@@ -47,22 +47,23 @@
  */
 struct inode_operations sysv_dir_inode_operations = {
 	&sysv_dir_operations,	/* default directory file-ops */
-	sysv_create,		/* create */
-	sysv_lookup,		/* lookup */
-	sysv_link,		/* link */
-	sysv_unlink,		/* unlink */
-	sysv_symlink,		/* symlink */
-	sysv_mkdir,		/* mkdir */
-	sysv_rmdir,		/* rmdir */
-	sysv_mknod,		/* mknod */
-	sysv_rename,		/* rename */
+	NULL,			/* create */
+	NULL,			/* lookup */
+	NULL,			/* link */
+	NULL,			/* unlink */
+	NULL,			/* symlink */
+	NULL,			/* mkdir */
+	NULL,			/* rmdir */
+	NULL,			/* mknod */
+	NULL,			/* rename */
 	NULL,			/* readlink */
 	NULL,			/* follow_link */
 	NULL,			/* readpage */
 	NULL,			/* writepage */
 	NULL,			/* bmap */
 	sysv_truncate,		/* truncate */
-	NULL			/* permission */
+	NULL,			/* permission */
+	NULL			/* smap */
 };
 
 static int sysv_readdir(struct file * filp, void * dirent, filldir_t filldir)
diff -ur linux.old/net/netlink.c linux/net/netlink.c
--- linux.old/net/netlink.c	Tue Nov 18 14:18:02 1997
+++ linux/net/netlink.c	Tue Nov 18 21:37:34 1997
@@ -80,11 +80,12 @@
 /*
  *	Write a message to the kernel side of a communication link
  */
- 
-static long netlink_write(struct inode * inode, struct file * file,
-			  const char * buf, unsigned long count)
+
+static ssize_t netlink_write(struct file * file, const char * buf,
+                             size_t count, loff_t *ppos) 
 {
-	int err; 
+	int err;
+	struct inode * inode = file->f_dentry->d_inode;
 	unsigned int minor = MINOR(inode->i_rdev);
 	struct sk_buff *skb;
 	skb=alloc_skb(count, GFP_KERNEL);
@@ -96,10 +97,11 @@
  *	Read a message from the kernel side of the communication link
  */
 
-static long netlink_read(struct inode * inode, struct file * file, char * buf,
-			 unsigned long count)
+static ssize_t netlink_read(struct file * file, char * buf,
+                            size_t count, loff_t *ppos)
 {
-	int err; 
+	int err;
+	struct inode * inode = file->f_dentry->d_inode;
 	unsigned int minor = MINOR(inode->i_rdev);
 	struct sk_buff *skb;
 	cli();
