## Automatically generated incremental diff
## From:   linux-2.4.6-pre9
## To:     linux-2.4.6
## Robot:  $Id: make-incremental-diff,v 1.8 2001/12/04 06:05:04 hpa Exp $

diff -urN linux-2.4.6-pre9/Makefile linux/Makefile
--- linux-2.4.6-pre9/Makefile	Mon Dec  3 22:50:58 2001
+++ linux/Makefile	Mon Dec  3 22:51:08 2001
@@ -1,7 +1,7 @@
 VERSION = 2
 PATCHLEVEL = 4
 SUBLEVEL = 6
-EXTRAVERSION =-pre9
+EXTRAVERSION =
 
 KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
 
diff -urN linux-2.4.6-pre9/drivers/char/Config.in linux/drivers/char/Config.in
--- linux-2.4.6-pre9/drivers/char/Config.in	Mon Dec  3 22:50:58 2001
+++ linux/drivers/char/Config.in	Mon Dec  3 22:51:09 2001
@@ -186,7 +186,7 @@
    bool '  AMD Irongate support' CONFIG_AGP_AMD
    bool '  Generic SiS support' CONFIG_AGP_SIS
    bool '  ALI chipset support' CONFIG_AGP_ALI
-   bool '  Severworks LE/HE support' CONFIG_AGP_SWORKS
+   bool '  Serverworks LE/HE support' CONFIG_AGP_SWORKS
 fi
 
 source drivers/char/drm/Config.in
diff -urN linux-2.4.6-pre9/drivers/mtd/nand/Config.in linux/drivers/mtd/nand/Config.in
--- linux-2.4.6-pre9/drivers/mtd/nand/Config.in	Mon Dec  3 22:50:59 2001
+++ linux/drivers/mtd/nand/Config.in	Mon Dec  3 22:51:09 2001
@@ -1,6 +1,6 @@
 # drivers/mtd/nand/Config.in
 
-# $Id: Config.in,v 1.1 2001/04/20 15:27:38 dwmw2 Exp $
+# $Id: Config.in,v 1.3 2001/07/03 17:50:56 sjhill Exp $
 
 mainmenu_option next_comment
 
@@ -11,6 +11,8 @@
    bool '    Enable ECC correction algorithm'  CONFIG_MTD_NAND_ECC y
    bool '    Verify NAND page writes' CONFIG_MTD_NAND_VERIFY_WRITE y
 fi
-dep_tristate '  NAND Flash device on SPIA board' CONFIG_MTD_NAND_SPIA $CONFIG_MTD_NAND
+if [ "$CONFIG_ARM" = "y" -a "$CONFIG_ARCH_P720T" = "y" ]; then
+   dep_tristate '  NAND Flash device on SPIA board' CONFIG_MTD_NAND_SPIA $CONFIG_MTD_NAND
+fi
 
 endmenu
diff -urN linux-2.4.6-pre9/drivers/mtd/nand/spia.c linux/drivers/mtd/nand/spia.c
--- linux-2.4.6-pre9/drivers/mtd/nand/spia.c	Mon Dec  3 22:50:59 2001
+++ linux/drivers/mtd/nand/spia.c	Mon Dec  3 22:51:09 2001
@@ -3,7 +3,7 @@
  *
  *  Copyright (C) 2000 Steven J. Hill (sjhill@cotw.com)
  *
- * $Id: spia.c,v 1.9 2001/06/02 14:47:16 dwmw2 Exp $
+ * $Id: spia.c,v 1.11 2001/07/03 17:50:56 sjhill Exp $
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
@@ -28,6 +28,22 @@
 static struct mtd_info *spia_mtd = NULL;
 
 /*
+ * Values specific to the SPIA board (used with EP7212 processor)
+ */
+#define SPIA_IO_ADDR	= 0xd0000000	/* Start of EP7212 IO address space */
+#define SPIA_FIO_ADDR	= 0xf0000000	/* Address where flash is mapped */
+#define SPIA_PEDR	= 0x0080	/*
+					 * IO offset to Port E data register
+					 * where the CLE, ALE and NCE pins
+					 * are wired to.
+					 */
+#define SPIA_PEDDR	= 0x00c0	/*
+					 * IO offset to Port E data direction
+					 * register so we can control the IO
+					 * lines.
+					 */
+
+/*
  * Module stuff
  */
 #if LINUX_VERSION_CODE < 0x20212 && defined(MODULE)
@@ -35,6 +51,21 @@
   #define spia_cleanup cleanup_module
 #endif
 
+static int spia_io_base = SPIA_IO_BASE;
+static int spia_fio_base = SPIA_FIO_BASE;
+static int spia_pedr = SPIA_PEDR;
+static int spia_peddr = SPIA_PEDDR;
+
+MODULE_PARM(spia_io_base, "i");
+MODULE_PARM(spia_fio_base, "i");
+MODULE_PARM(spia_pedr, "i");
+MODULE_PARM(spia_peddr, "i");
+
+__setup("spia_io_base=",spia_io_base);
+__setup("spia_fio_base=",spia_fio_base);
+__setup("spia_pedr=",spia_pedr);
+__setup("spia_peddr=",spia_peddr);
+
 /*
  * Define partitions for flash device
  */
@@ -77,11 +108,11 @@
 	 * Set GPIO Port E control register so that the pins are configured
 	 * to be outputs for controlling the NAND flash.
 	 */
-	(*(volatile unsigned char *) (IO_BASE + PEDDR)) = 0x07;
+	(*(volatile unsigned char *) (spia_io_base + spia_peddr)) = 0x07;
 
 	/* Set address of NAND IO lines */
-	this->IO_ADDR = FIO_BASE;
-	this->CTRL_ADDR = IO_BASE + PEDR;
+	this->IO_ADDR = spia_fio_base;
+	this->CTRL_ADDR = spia_io_base + spia_pedr;
 	this->CLE = 0x01;
 	this->ALE = 0x02;
 	this->NCE = 0x04;
diff -urN linux-2.4.6-pre9/drivers/pcmcia/yenta.c linux/drivers/pcmcia/yenta.c
--- linux-2.4.6-pre9/drivers/pcmcia/yenta.c	Mon Dec  3 22:50:59 2001
+++ linux/drivers/pcmcia/yenta.c	Mon Dec  3 22:51:10 2001
@@ -793,6 +793,7 @@
 	{ PD(TI,1251A),	&ti_ops },
 	{ PD(TI,1211),	&ti_ops },
 	{ PD(TI,1251B),	&ti_ops },
+	{ PD(TI,1410),	&ti_ops },
 	{ PD(TI,1420),	&ti_ops },
 
 	{ PD(RICOH,RL5C465), &ricoh_ops },
diff -urN linux-2.4.6-pre9/drivers/sound/i810_audio.c linux/drivers/sound/i810_audio.c
--- linux-2.4.6-pre9/drivers/sound/i810_audio.c	Sat May 19 17:43:07 2001
+++ linux/drivers/sound/i810_audio.c	Mon Dec  3 22:51:10 2001
@@ -1446,7 +1446,7 @@
 		if (dmabuf->enable & ADC_RUNNING) {
 			stop_adc(state);
 		}
-		return ret;
+		return put_user(ret, (int *)arg);
 
 	case SNDCTL_DSP_GETBLKSIZE:
 		if (file->f_mode & FMODE_WRITE) {
diff -urN linux-2.4.6-pre9/fs/ext2/ialloc.c linux/fs/ext2/ialloc.c
--- linux-2.4.6-pre9/fs/ext2/ialloc.c	Mon Dec  3 22:51:00 2001
+++ linux/fs/ext2/ialloc.c	Mon Dec  3 22:51:10 2001
@@ -194,6 +194,7 @@
 	 * Note: we must free any quota before locking the superblock,
 	 * as writing the quota to disk may need the lock as well.
 	 */
+	DQUOT_INIT(inode);
 	DQUOT_FREE_INODE(sb, inode);
 	DQUOT_DROP(inode);
 
@@ -417,7 +418,6 @@
 		cpu_to_le32(le32_to_cpu(es->s_free_inodes_count) - 1);
 	mark_buffer_dirty(sb->u.ext2_sb.s_sbh);
 	sb->s_dirt = 1;
-	inode->i_mode = mode;
 	inode->i_uid = current->fsuid;
 	if (test_opt (sb, GRPID))
 		inode->i_gid = dir->i_gid;
@@ -427,6 +427,7 @@
 			mode |= S_ISGID;
 	} else
 		inode->i_gid = current->fsgid;
+	inode->i_mode = mode;
 
 	inode->i_ino = j;
 	inode->i_blksize = PAGE_SIZE;	/* This is the optimal IO size (for stat), not the fs block size */
diff -urN linux-2.4.6-pre9/fs/namei.c linux/fs/namei.c
--- linux-2.4.6-pre9/fs/namei.c	Mon Dec  3 22:51:00 2001
+++ linux/fs/namei.c	Mon Dec  3 22:51:10 2001
@@ -1126,10 +1126,10 @@
 		putname(nd->last.name);
 		goto exit;
 	}
+	error = -ELOOP;
 	if (count++==32) {
-		dentry = nd->dentry;
 		putname(nd->last.name);
-		goto ok;
+		goto exit;
 	}
 	dir = nd->dentry;
 	down(&dir->d_inode->i_sem);
diff -urN linux-2.4.6-pre9/fs/proc/base.c linux/fs/proc/base.c
--- linux-2.4.6-pre9/fs/proc/base.c	Mon Dec  3 22:51:00 2001
+++ linux/fs/proc/base.c	Mon Dec  3 22:51:10 2001
@@ -341,6 +341,8 @@
 	if (mm)
 		atomic_inc(&mm->mm_users);
 	task_unlock(task);
+	if (!mm)
+		return 0;
 
 	if (file->private_data != (void*)((long)current->self_exec_id) ) {
 		mmput(mm);
diff -urN linux-2.4.6-pre9/include/linux/pci.h linux/include/linux/pci.h
--- linux-2.4.6-pre9/include/linux/pci.h	Mon Dec  3 22:51:00 2001
+++ linux/include/linux/pci.h	Mon Dec  3 22:51:10 2001
@@ -642,7 +642,6 @@
 static inline void pci_disable_device(struct pci_dev *dev) { }
 static inline int pci_module_init(struct pci_driver *drv) { return -ENODEV; }
 static inline int pci_set_dma_mask(struct pci_dev *dev, dma_addr_t mask) { return -EIO; }
-static inline int pci_set_power_state(struct pci_dev *dev, int state) { return 0; }
 static inline int pci_assign_resource(struct pci_dev *dev, int i) { return -EBUSY;}
 static inline int pci_register_driver(struct pci_driver *drv) { return 0;}
 static inline void pci_unregister_driver(struct pci_driver *drv) { }
diff -urN linux-2.4.6-pre9/include/linux/pci_ids.h linux/include/linux/pci_ids.h
--- linux-2.4.6-pre9/include/linux/pci_ids.h	Mon Dec  3 22:51:00 2001
+++ linux/include/linux/pci_ids.h	Mon Dec  3 22:51:10 2001
@@ -519,6 +519,7 @@
 #define PCI_DEVICE_ID_TI_1220		0xac17
 #define PCI_DEVICE_ID_TI_1221		0xac19
 #define PCI_DEVICE_ID_TI_1210		0xac1a
+#define PCI_DEVICE_ID_TI_1410		0xac50
 #define PCI_DEVICE_ID_TI_1450		0xac1b
 #define PCI_DEVICE_ID_TI_1225		0xac1c
 #define PCI_DEVICE_ID_TI_1251A		0xac1d
diff -urN linux-2.4.6-pre9/mm/mmap.c linux/mm/mmap.c
--- linux-2.4.6-pre9/mm/mmap.c	Mon Dec  3 22:51:00 2001
+++ linux/mm/mmap.c	Thu May 24 15:20:18 2001
@@ -66,6 +66,14 @@
 	free += nr_swap_pages;
 
 	/*
+	 * This double-counts: the nrpages are both in the page-cache
+	 * and in the swapper space. At the same time, this compensates
+	 * for the swap-space over-allocation (ie "nr_swap_pages" being
+	 * too small. 
+	 */
+	free += swapper_space.nrpages;
+
+	/*
 	 * The code below doesn't account for free space in the inode
 	 * and dentry slab cache, slab cache fragmentation, inodes and
 	 * dentries which will become freeable under VM load, etc.
