diff -ur linux.orig/drivers/char/acquirewdt.c linux/drivers/char/acquirewdt.c --- linux.orig/drivers/char/acquirewdt.c Thu Oct 30 21:07:56 1997 +++ linux/drivers/char/acquirewdt.c Thu Oct 30 20:37:44 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.orig/drivers/char/ftape/kernel-interface.c linux/drivers/char/ftape/kernel-interface.c --- linux.orig/drivers/char/ftape/kernel-interface.c Thu Oct 30 21:07:51 1997 +++ linux/drivers/char/ftape/kernel-interface.c Thu Oct 30 20:38:34 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.orig/drivers/char/nvram.c linux/drivers/char/nvram.c --- linux.orig/drivers/char/nvram.c Thu Oct 30 21:07:56 1997 +++ linux/drivers/char/nvram.c Thu Oct 30 20:34:40 1997 @@ -211,7 +211,7 @@ * The are the file operation function for user access to /dev/nvram */ -static long long nvram_llseek(struct file *file,loff_t offset, int origin ) +static long long nvram_llseek(struct file * file, loff_t offset, int origin) { switch( origin ) { case 0: @@ -227,8 +227,8 @@ return( (offset >= 0) ? (file->f_pos = offset) : -EINVAL ); } -static long nvram_read( struct inode * inode, struct file * file, - char * buf, unsigned long count ) +static ssize_t nvram_read(struct file * file, char * buf, size_t count, + loff_t * ppos) { unsigned long flags; unsigned i = file->f_pos; @@ -250,8 +250,8 @@ return( tmp - buf ); } -static long nvram_write( struct inode * inode, struct file * file, - const char * buf, unsigned long count ) +static ssize_t nvram_write(struct file * file, const char *buf, + size_t count, loff_t *ppos) { unsigned long flags; unsigned i = file->f_pos; @@ -278,7 +278,7 @@ } static int nvram_ioctl( struct inode *inode, struct file *file, - unsigned int cmd, unsigned long arg ) + unsigned int cmd, unsigned long arg ) { unsigned long flags; int i; diff -ur linux.orig/drivers/char/softdog.c linux/drivers/char/softdog.c --- linux.orig/drivers/char/softdog.c Thu Oct 30 21:07:50 1997 +++ linux/drivers/char/softdog.c Thu Oct 30 20:34:40 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.orig/drivers/char/wdt.c linux/drivers/char/wdt.c --- linux.orig/drivers/char/wdt.c Thu Oct 30 21:07:46 1997 +++ linux/drivers/char/wdt.c Thu Oct 30 20:34:40 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.orig/drivers/scsi/README.ncr53c8xx linux/drivers/scsi/README.ncr53c8xx --- linux.orig/drivers/scsi/README.ncr53c8xx Thu Oct 30 21:08:01 1997 +++ linux/drivers/scsi/README.ncr53c8xx Thu Oct 30 20:39:13 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.orig/drivers/scsi/ncr53c8xx.c linux/drivers/scsi/ncr53c8xx.c --- linux.orig/drivers/scsi/ncr53c8xx.c Thu Oct 30 21:08:00 1997 +++ linux/drivers/scsi/ncr53c8xx.c Thu Oct 30 20:39:13 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.orig/drivers/scsi/ncr53c8xx.h linux/drivers/scsi/ncr53c8xx.h --- linux.orig/drivers/scsi/ncr53c8xx.h Thu Oct 30 21:08:00 1997 +++ linux/drivers/scsi/ncr53c8xx.h Thu Oct 30 20:39:13 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.orig/fs/dcache.c linux/fs/dcache.c --- linux.orig/fs/dcache.c Thu Oct 30 21:07:04 1997 +++ linux/fs/dcache.c Thu Oct 30 20:44:12 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.orig/fs/filesystems.c linux/fs/filesystems.c --- linux.orig/fs/filesystems.c Thu Oct 30 21:07:03 1997 +++ linux/fs/filesystems.c Thu Oct 30 20:40:23 1997 @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include diff -ur linux.orig/fs/nfs/file.c linux/fs/nfs/file.c --- linux.orig/fs/nfs/file.c Thu Oct 30 21:07:03 1997 +++ linux/fs/nfs/file.c Thu Oct 30 20:43:26 1997 @@ -103,8 +103,9 @@ int status; 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); if ((status = nfs_revalidate_inode(NFS_SERVER(inode), inode)) < 0) return status; @@ -143,7 +144,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.orig/fs/sysv/dir.c linux/fs/sysv/dir.c --- linux.orig/fs/sysv/dir.c Thu Oct 30 21:07:04 1997 +++ linux/fs/sysv/dir.c Thu Oct 30 20:46:11 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.orig/net/netlink.c linux/net/netlink.c --- linux.orig/net/netlink.c Thu Oct 30 21:07:29 1997 +++ linux/net/netlink.c Thu Oct 30 21:34:59 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();