## Automatically generated incremental diff
## From:   linux-2.4.21-bk26
## To:     linux-2.4.21-bk27
## Robot:  $Id: make-incremental-diff,v 1.11 2002/02/20 02:59:33 hpa Exp $

diff -urN linux-2.4.21-bk26/Documentation/devices.txt linux-2.4.21-bk27/Documentation/devices.txt
--- linux-2.4.21-bk26/Documentation/devices.txt	2003-08-06 02:53:53.000000000 -0700
+++ linux-2.4.21-bk27/Documentation/devices.txt	2003-08-06 02:54:00.000000000 -0700
@@ -384,7 +384,7 @@
 		180 = /dev/vrbuttons	Vr41xx button input device
 		181 = /dev/toshiba	Toshiba laptop SMM support
 		182 = /dev/perfctr	Performance-monitoring counters
-		183 = /dev/intel_rng	Intel i8x0 random number generator
+		183 = /dev/hwrandom	Hardware random number generator (RNG)
 		184 = /dev/cpu/microcode CPU microcode update interface
 		186 = /dev/atomicps	Atomic shapshot of process state data
 		187 = /dev/irnet	IrNET device
diff -urN linux-2.4.21-bk26/Documentation/i810_rng.txt linux-2.4.21-bk27/Documentation/i810_rng.txt
--- linux-2.4.21-bk26/Documentation/i810_rng.txt	2003-06-13 07:51:29.000000000 -0700
+++ linux-2.4.21-bk27/Documentation/i810_rng.txt	2003-08-06 02:54:00.000000000 -0700
@@ -10,7 +10,7 @@
 
 	In order to make effective use of this device driver, you
 	should download the support software as well.  Download the
-	latest version of the "intel-rng-tools" package from the
+	latest version of the "rng-tools" package from the
 	i810_rng driver's official Web site:
 
 		http://sourceforge.net/projects/gkernel/
@@ -36,7 +36,7 @@
 	a security-conscious person would run fitness tests on the
 	data before assuming it is truly random.
 
-	/dev/intel_rng is char device major 10, minor 183.
+	/dev/hwrandom is char device major 10, minor 183.
 
 Driver notes:
 
diff -urN linux-2.4.21-bk26/Makefile linux-2.4.21-bk27/Makefile
--- linux-2.4.21-bk26/Makefile	2003-08-06 02:53:53.000000000 -0700
+++ linux-2.4.21-bk27/Makefile	2003-08-06 02:54:00.000000000 -0700
@@ -1,7 +1,7 @@
 VERSION = 2
 PATCHLEVEL = 4
 SUBLEVEL = 21
-EXTRAVERSION = -bk26
+EXTRAVERSION = -bk27
 
 KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
 
diff -urN linux-2.4.21-bk26/arch/i386/kernel/setup.c linux-2.4.21-bk27/arch/i386/kernel/setup.c
--- linux-2.4.21-bk26/arch/i386/kernel/setup.c	2003-08-06 02:53:54.000000000 -0700
+++ linux-2.4.21-bk27/arch/i386/kernel/setup.c	2003-08-06 02:54:00.000000000 -0700
@@ -128,6 +128,7 @@
 struct cpuinfo_x86 boot_cpu_data = { 0, 0, 0, 0, -1, 1, 0, 0, -1 };
 
 unsigned long mmu_cr4_features;
+EXPORT_SYMBOL(mmu_cr4_features);
 
 /*
  * Bus types ..
diff -urN linux-2.4.21-bk26/arch/x86_64/kernel/setup.c linux-2.4.21-bk27/arch/x86_64/kernel/setup.c
--- linux-2.4.21-bk26/arch/x86_64/kernel/setup.c	2003-08-06 02:53:55.000000000 -0700
+++ linux-2.4.21-bk27/arch/x86_64/kernel/setup.c	2003-08-06 02:54:01.000000000 -0700
@@ -30,6 +30,7 @@
 #include <linux/blk.h>
 #include <linux/highmem.h>
 #include <linux/bootmem.h>
+#include <linux/module.h>
 #include <asm/processor.h>
 #include <linux/console.h>
 #include <linux/seq_file.h>
@@ -58,6 +59,7 @@
 };
 
 unsigned long mmu_cr4_features;
+EXPORT_SYMBOL(mmu_cr4_features);
 
 /* For PCI or other memory-mapped resources */
 unsigned long pci_mem_start = 0x10000000;
diff -urN linux-2.4.21-bk26/drivers/char/n_tty.c linux-2.4.21-bk27/drivers/char/n_tty.c
--- linux-2.4.21-bk26/drivers/char/n_tty.c	2002-08-02 17:39:43.000000000 -0700
+++ linux-2.4.21-bk27/drivers/char/n_tty.c	2003-08-06 02:54:01.000000000 -0700
@@ -1238,7 +1238,8 @@
 		else
 			tty->minimum_to_wake = 1;
 	}
-	if (tty->driver.chars_in_buffer(tty) < WAKEUP_CHARS)
+	if (tty->driver.chars_in_buffer(tty) < WAKEUP_CHARS &&
+			tty->driver.write_room(tty) > 0)
 		mask |= POLLOUT | POLLWRNORM;
 	return mask;
 }
diff -urN linux-2.4.21-bk26/drivers/macintosh/mediabay.c linux-2.4.21-bk27/drivers/macintosh/mediabay.c
--- linux-2.4.21-bk26/drivers/macintosh/mediabay.c	2002-02-25 11:37:58.000000000 -0800
+++ linux-2.4.21-bk27/drivers/macintosh/mediabay.c	2003-08-06 02:54:02.000000000 -0700
@@ -109,7 +109,7 @@
 #ifdef CONFIG_BLK_DEV_IDE
 /* check the busy bit in the media-bay ide interface
    (assumes the media-bay contains an ide device) */
-#define MB_IDE_READY(i)	((inb(media_bays[i].cd_base + 0x70) & 0x80) == 0)
+#define MB_IDE_READY(i)	((readb(media_bays[i].cd_base + 0x70) & 0x80) == 0)
 #endif
 
 /* Note: All delays are not in milliseconds and converted to HZ relative
@@ -577,7 +577,8 @@
 				MBDBG("mediabay %d IDE ready\n", i);
 			}
 			break;
-	    	}
+	    	} else if (bay->timer > 0)
+	    		bay->timer--;
 	    	if (bay->timer == 0) {
 			printk("\nIDE Timeout in bay %d !\n", i);
 			MBDBG("mediabay%d: nIDE Timeout !\n", i);
@@ -756,7 +757,7 @@
 		struct media_bay_info* bay = &media_bays[n];
 		if (!np->parent || np->n_addrs == 0 || !request_OF_resource(np, 0, NULL)) {
 			np = np->next;
-			printk(KERN_ERR "media-bay: Can't request IO resource !\n");
+			printk(KERN_ERR "mediabay: Can't request IO resource !\n");
 			continue;
 		}
 		bay->mb_type = mb_ohare;
@@ -771,7 +772,7 @@
 			bay->mb_type = mb_ohare;
 			bay->ops = &ohare_mb_ops;
 		} else {
-			printk(KERN_ERR "mediabay: Unknown bay type !\n");
+			printk(KERN_ERR "media-bay: Unknown bay type !\n");
 			np = np->next;
 			continue;
 		}
@@ -782,7 +783,7 @@
 			MB_BIS(bay, KEYLARGO_MBCR, KL_MBCR_MB0_ENABLE);
 #ifdef MB_USE_INTERRUPTS
 		if (np->n_intrs == 0) {
-			printk(KERN_ERR "media bay %d has no irq\n",n);
+			printk(KERN_ERR "media-bay %d has no irq\n",n);
 			np = np->next;
 			continue;
 		}
@@ -823,8 +824,9 @@
 		pmu_register_sleep_notifier(&mb_sleep_notifier);
 #endif /* CONFIG_PMAC_PBOOK */
 
-		kernel_thread(media_bay_task, NULL,
-			      CLONE_FS | CLONE_FILES | CLONE_SIGHAND);
+		if (kernel_thread(media_bay_task, NULL,
+			      CLONE_FS | CLONE_FILES | CLONE_SIGHAND) < 0)
+			printk(KERN_ERR "media-bay: Cannot create polling thread !\n");
 	}
 }
 
diff -urN linux-2.4.21-bk26/fs/ext3/file.c linux-2.4.21-bk27/fs/ext3/file.c
--- linux-2.4.21-bk26/fs/ext3/file.c	2002-11-28 15:53:15.000000000 -0800
+++ linux-2.4.21-bk27/fs/ext3/file.c	2003-08-06 02:54:03.000000000 -0700
@@ -61,7 +61,8 @@
 static ssize_t
 ext3_file_write(struct file *file, const char *buf, size_t count, loff_t *ppos)
 {
-	int ret, err;
+	ssize_t ret;
+	int err;
 	struct inode *inode = file->f_dentry->d_inode;
 
 	ret = generic_file_write(file, buf, count, ppos);
diff -urN linux-2.4.21-bk26/include/asm-i386/hw_irq.h linux-2.4.21-bk27/include/asm-i386/hw_irq.h
--- linux-2.4.21-bk26/include/asm-i386/hw_irq.h	2003-08-06 02:53:58.000000000 -0700
+++ linux-2.4.21-bk27/include/asm-i386/hw_irq.h	2003-08-06 02:54:03.000000000 -0700
@@ -13,10 +13,8 @@
  */
 
 #include <linux/config.h>
-#include <linux/smp_lock.h>
 #include <asm/atomic.h>
 #include <asm/irq.h>
-#include <asm/current.h>
 
 /*
  * IDT vectors usable for external interrupt sources start
diff -urN linux-2.4.21-bk26/mm/filemap.c linux-2.4.21-bk27/mm/filemap.c
--- linux-2.4.21-bk26/mm/filemap.c	2003-08-06 02:53:58.000000000 -0700
+++ linux-2.4.21-bk27/mm/filemap.c	2003-08-06 02:54:04.000000000 -0700
@@ -3108,7 +3108,7 @@
 	struct page	*page, *cached_page;
 	ssize_t		written;
 	long		status = 0;
-	int		err;
+	ssize_t		err;
 	unsigned	bytes;
 
 	cached_page = NULL;
@@ -3229,7 +3229,7 @@
 	loff_t		pos;
 	ssize_t		written;
 	long		status = 0;
-	int		err;
+	ssize_t		err;
 
 	pos = *ppos;
 	written = 0;
@@ -3270,7 +3270,8 @@
 static int do_odirect_fallback(struct file *file, struct inode *inode,
 			       const char *buf, size_t count, loff_t *ppos)
 {
-	int ret, err;
+	ssize_t ret;
+	int err;
 
 	down(&inode->i_sem);
 	ret = do_generic_file_write(file, buf, count, ppos);
@@ -3287,7 +3288,7 @@
 generic_file_write(struct file *file,const char *buf,size_t count, loff_t *ppos)
 {
 	struct inode	*inode = file->f_dentry->d_inode->i_mapping->host;
-	int		err;
+	ssize_t		err;
 
 	if ((ssize_t) count < 0)
 		return -EINVAL;
