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

diff -urN linux-2.4.21-rc5/Documentation/Configure.help linux-2.4.21-rc6/Documentation/Configure.help
--- linux-2.4.21-rc5/Documentation/Configure.help	2003-05-28 17:58:23.000000000 -0700
+++ linux-2.4.21-rc6/Documentation/Configure.help	2003-05-28 17:58:31.000000000 -0700
@@ -9684,6 +9684,26 @@
   should add "alias syncX farsync" to /etc/modules.conf for each
   interface, where X is 0, 1, 2, ...
 
+CONFIG_HDLC_DEBUG_PKT
+  This option is for developers only - do NOT use on production
+  systems.
+
+CONFIG_HDLC_DEBUG_HARD_HEADER
+  This option is for developers only - do NOT use on production
+  systems.
+
+CONFIG_HDLC_DEBUG_ECN
+  This option is for developers only - do NOT use on production
+  systems.
+
+CONFIG_HDLC_DEBUG_RINGS
+  If you answer Y here you will be able to get a diagnostic dump of
+  port's TX and RX packet rings, using "sethdlc hdlcX private"
+  command. It does not affect normal operations.
+
+  If unsure, say Y here.
+
+
 Frame Relay (DLCI) support
 CONFIG_DLCI
   This is support for the frame relay protocol; frame relay is a fast
diff -urN linux-2.4.21-rc5/Makefile linux-2.4.21-rc6/Makefile
--- linux-2.4.21-rc5/Makefile	2003-05-28 17:58:23.000000000 -0700
+++ linux-2.4.21-rc6/Makefile	2003-05-28 17:58:31.000000000 -0700
@@ -1,7 +1,7 @@
 VERSION = 2
 PATCHLEVEL = 4
 SUBLEVEL = 21
-EXTRAVERSION = -rc5
+EXTRAVERSION = -rc6
 
 KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
 
diff -urN linux-2.4.21-rc5/arch/x86_64/kernel/ioport.c linux-2.4.21-rc6/arch/x86_64/kernel/ioport.c
--- linux-2.4.21-rc5/arch/x86_64/kernel/ioport.c	2003-05-28 17:58:24.000000000 -0700
+++ linux-2.4.21-rc6/arch/x86_64/kernel/ioport.c	2003-05-28 17:58:33.000000000 -0700
@@ -1,5 +1,5 @@
 /*
- *	linux/arch/i386/kernel/ioport.c
+ *	linux/arch/x86_64/kernel/ioport.c
  *
  * This contains the io-permission bitmap code - written by obz, with changes
  * by Linus.
@@ -19,30 +19,30 @@
 /* Set EXTENT bits starting at BASE in BITMAP to value TURN_ON. */
 static void set_bitmap(unsigned long *bitmap, short base, short extent, int new_value)
 {
-	int mask;
-	unsigned long *bitmap_base = bitmap + (base >> 6);
-	unsigned short low_index = base & 0x3f;
+	unsigned long mask;
+	unsigned long *bitmap_base = bitmap + base / sizeof(long);
+	unsigned low_index = base & (BITS_PER_LONG - 1);
 	int length = low_index + extent;
 
 	if (low_index != 0) {
-		mask = (~0 << low_index);
+		mask = (~0UL << low_index);
 		if (length < 64)
-				mask &= ~(~0 << length);
+			mask &= ~(~0UL << length);
 		if (new_value)
 			*bitmap_base++ |= mask;
 		else
 			*bitmap_base++ &= ~mask;
-		length -= 32;
+		length -= 64;
 	}
 
-	mask = (new_value ? ~0 : 0);
+	mask = (new_value ? ~0UL : 0UL);
 	while (length >= 64) {
 		*bitmap_base++ = mask;
 		length -= 64;
 	}
 
 	if (length > 0) {
-		mask = ~(~0 << length);
+		mask = ~(~0UL << length);
 		if (new_value)
 			*bitmap_base++ |= mask;
 		else
@@ -76,14 +76,18 @@
 		/*
 		 * this activates it in the TSS
 		 */
-		tss->io_map_base = IO_BITMAP_OFFSET;
 	}
 
 	/*
 	 * do it in the per-thread copy and in the TSS ...
 	 */
 	set_bitmap((unsigned long *) t->io_bitmap_ptr, from, num, !turn_on);
+	if (tss->io_map_base != IO_BITMAP_OFFSET) { 
+		memcpy(tss->io_bitmap, t->io_bitmap_ptr, sizeof(tss->io_bitmap));
+		tss->io_map_base = IO_BITMAP_OFFSET;
+	} else { 
 	set_bitmap((unsigned long *) tss->io_bitmap, from, num, !turn_on);
+	}
 
 	return 0;
 }
diff -urN linux-2.4.21-rc5/drivers/block/ll_rw_blk.c linux-2.4.21-rc6/drivers/block/ll_rw_blk.c
--- linux-2.4.21-rc5/drivers/block/ll_rw_blk.c	2003-05-28 17:58:24.000000000 -0700
+++ linux-2.4.21-rc6/drivers/block/ll_rw_blk.c	2003-05-28 17:58:33.000000000 -0700
@@ -590,10 +590,10 @@
 	register struct request *rq;
 	DECLARE_WAITQUEUE(wait, current);
 
-	generic_unplug_device(q);
-	add_wait_queue_exclusive(&q->wait_for_requests[rw], &wait);
+	add_wait_queue(&q->wait_for_requests[rw], &wait);
 	do {
 		set_current_state(TASK_UNINTERRUPTIBLE);
+		generic_unplug_device(q);
 		if (q->rq[rw].count == 0)
 			schedule();
 		spin_lock_irq(&io_request_lock);
@@ -829,8 +829,7 @@
 	 */
 	if (q) {
 		list_add(&req->queue, &q->rq[rw].free);
-		if (++q->rq[rw].count >= q->batch_requests &&
-				waitqueue_active(&q->wait_for_requests[rw]))
+		if (++q->rq[rw].count >= q->batch_requests)
 			wake_up(&q->wait_for_requests[rw]);
 	}
 }
diff -urN linux-2.4.21-rc5/drivers/ide/Config.in linux-2.4.21-rc6/drivers/ide/Config.in
--- linux-2.4.21-rc5/drivers/ide/Config.in	2003-05-28 17:58:25.000000000 -0700
+++ linux-2.4.21-rc6/drivers/ide/Config.in	2003-05-28 17:58:33.000000000 -0700
@@ -63,7 +63,7 @@
 	    dep_tristate '    NS87415 chipset support' CONFIG_BLK_DEV_NS87415 $CONFIG_BLK_DEV_IDEDMA_PCI
 	    dep_tristate '    OPTi 82C621 chipset enhanced support (EXPERIMENTAL)' CONFIG_BLK_DEV_OPTI621 $CONFIG_EXPERIMENTAL
 	    dep_tristate '    PROMISE PDC202{46|62|65|67} support' CONFIG_BLK_DEV_PDC202XX_OLD $CONFIG_BLK_DEV_IDEDMA_PCI
-	    dep_bool     '      Special UDMA Feature' CONFIG_PDC202XX_BURST $CONFIG_BLK_DEV_PDC202XX_OLD $CONFI_BLK_DEV_IDEDMA_PCI
+	    dep_mbool    '      Special UDMA Feature' CONFIG_PDC202XX_BURST $CONFIG_BLK_DEV_PDC202XX_OLD $CONFIG_BLK_DEV_IDEDMA_PCI
 	    dep_tristate '    PROMISE PDC202{68|69|70|71|75|76|77} support' CONFIG_BLK_DEV_PDC202XX_NEW $CONFIG_BLK_DEV_IDEDMA_PCI
 	    if [ "$CONFIG_BLK_DEV_PDC202XX_OLD" = "y" -o "$CONFIG_BLK_DEV_PDC202XX_OLD" = "m" -o "$CONFIG_BLK_DEV_PDC202XX_NEW" = "y" -o "$CONFIG_BLK_DEV_PDC202XX_NEW" = "m" ]; then
 	        bool     '    Special FastTrak Feature' CONFIG_PDC202XX_FORCE
diff -urN linux-2.4.21-rc5/fs/block_dev.c linux-2.4.21-rc6/fs/block_dev.c
--- linux-2.4.21-rc5/fs/block_dev.c	2002-08-02 17:39:45.000000000 -0700
+++ linux-2.4.21-rc6/fs/block_dev.c	2003-05-28 17:58:35.000000000 -0700
@@ -631,7 +631,7 @@
 
 	down(&bdev->bd_sem);
 	lock_kernel();
-	if (kind == BDEV_FILE && bdev->bd_openers == 1)
+	if (kind == BDEV_FILE)
 		__block_fsync(bd_inode);
 	else if (kind == BDEV_FS)
 		fsync_no_super(rdev);
diff -urN linux-2.4.21-rc5/include/linux/pci_ids.h linux-2.4.21-rc6/include/linux/pci_ids.h
--- linux-2.4.21-rc5/include/linux/pci_ids.h	2003-05-28 17:58:30.000000000 -0700
+++ linux-2.4.21-rc6/include/linux/pci_ids.h	2003-05-28 17:58:35.000000000 -0700
@@ -1025,11 +1025,13 @@
 #define PCI_DEVICE_ID_VIA_8622		0x3102
 #define PCI_DEVICE_ID_VIA_8233C_0	0x3109
 #define PCI_DEVICE_ID_VIA_8361		0x3112
+#define PCI_DEVICE_ID_VIA_8375     0x3116
 #define PCI_DEVICE_ID_VIA_8233A		0x3147
 #define PCI_DEVICE_ID_VIA_P4X333   0x3168
 #define PCI_DEVICE_ID_VIA_8235        0x3177
 #define PCI_DEVICE_ID_VIA_8377_0  0x3189
 #define PCI_DEVICE_ID_VIA_8377_0	0x3189
+#define PCI_DEVICE_ID_VIA_8237     0x3227
 #define PCI_DEVICE_ID_VIA_86C100A	0x6100
 #define PCI_DEVICE_ID_VIA_8231		0x8231
 #define PCI_DEVICE_ID_VIA_8231_4	0x8235
