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 #include -#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();