r1015 - trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches

Joshua Kwan joshk@haydn.debian.org
Wed, 11 Aug 2004 12:52:38 -0600


Author: joshk
Date: 2004-08-11 12:52:31 -0600 (Wed, 11 Aug 2004)
New Revision: 1015

Added:
   trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/025_proc_tty_security.diff
   trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/026_binfmt_misc_unload.diff
   trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/027_vfat_cries_wolf.diff
Modified:
   trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/003_kbuild_fixes.diff
   trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/021_ide_module_fix.diff-BROKEN
   trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/023_jbd_commit_interval.diff
   trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/patch-2.4.26-1
Log:
more! ever more!


Modified: trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/003_kbuild_fixes.diff
===================================================================
--- trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/003_kbuild_fixes.diff	2004-08-11 18:34:10 UTC (rev 1014)
+++ trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/003_kbuild_fixes.diff	2004-08-11 18:52:31 UTC (rev 1015)
@@ -87,3 +87,15 @@
  
  fdformat --version | awk -F\- '{print "util-linux            ", $NF}'
  
+diff -urN kernel-source-2.4.26/Makefile kernel-source-2.4.26-1/Makefile
+--- kernel-source-2.4.26/Makefile	2004-04-14 23:05:41.000000000 +1000
++++ kernel-source-2.4.26-1/Makefile	2004-04-17 14:23:30.000000000 +1000
+@@ -500,7 +505,7 @@
+ ifdef CONFIG_MODVERSIONS
+ 	$(MAKE) update-modverfile
+ endif
+-	scripts/mkdep -- `find $(FINDHPATH) \( -name SCCS -o -name .svn \) -prune -o -follow -name \*.h ! -name modversions.h -print` > .hdepend
++	find $(FINDHPATH) \( -name SCCS -o -name .svn \) -prune -o -follow -name \*.h ! -name modversions.h -print | xargs scripts/mkdep -- > .hdepend
+ 	scripts/mkdep -- init/*.c > .depend
+ 
+ ifdef CONFIG_MODVERSIONS

Modified: trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/021_ide_module_fix.diff-BROKEN
===================================================================
--- trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/021_ide_module_fix.diff-BROKEN	2004-08-11 18:34:10 UTC (rev 1014)
+++ trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/021_ide_module_fix.diff-BROKEN	2004-08-11 18:52:31 UTC (rev 1015)
@@ -87,275 +87,7 @@
  	    if [ "$CONFIG_PPC" = "y" -o "$CONFIG_ARM" = "y" ]; then
  	       dep_tristate '    Winbond SL82c105 support' CONFIG_BLK_DEV_SL82C105 $CONFIG_BLK_DEV_IDEPCI
  	    fi
---- kernel-source-2.4.26/drivers/ide/ide-disk.c	2003-11-29 05:26:20.000000000 +1100
-+++ kernel-source-2.4.26-1/drivers/ide/ide-disk.c	2003-11-29 20:53:31.000000000 +1100
-@@ -69,6 +69,7 @@
- #include <asm/irq.h>
- #include <asm/uaccess.h>
- #include <asm/io.h>
-+#include <asm/div64.h>
- 
- /* FIXME: some day we shouldnt need to look in here! */
- 
-@@ -76,6 +77,12 @@
- 
- static int driver_blocked;
- 
-+#ifdef CONFIG_IDEDISK_STROKE
-+#define STROKE 1
-+#else
-+#define STROKE 0
-+#endif
-+
- static inline u32 idedisk_read_24 (ide_drive_t *drive)
- {
- #if 0
-@@ -1062,7 +1069,6 @@
- 	return addr;
- }
- 
--#ifdef CONFIG_IDEDISK_STROKE
- /*
-  * Sets maximum virtual LBA address of the drive.
-  * Returns new maximum virtual LBA address (> 0) or 0 on failure.
-@@ -1126,20 +1132,64 @@
- 		addr_set = ((__u64)high << 24) | low;
- 	}
- 	return addr_set;
-+}  
-+
-+static unsigned long long sectors_to_MB(unsigned long long n) {
-+	n <<= 9;		/* make it bytes */
-+	do_div(n, 1000000);	/* make it MB */
-+	return n;
- }
- 
--#endif /* CONFIG_IDEDISK_STROKE */
-+static inline void idedisk_check_hpa_lba28(ide_drive_t *drive)
-+{
-+	unsigned long capacity, set_max;
- 
--/*
-- * Tests if the drive supports Host Protected Area feature.
-- * Returns true if supported, false otherwise.
-- */
--static inline int idedisk_supports_host_protected_area(ide_drive_t *drive)
-+	capacity = drive->id->lba_capacity;
-+	set_max = idedisk_read_native_max_address(drive);
-+
-+	if (set_max <= capacity)
-+		return;
-+
-+	printk(KERN_INFO "%s: Host Protected Area detected.\n"
-+			 "\tcurrent capacity is %ld sectors (%ld MB)\n"
-+			 "\tnative  capacity is %ld sectors (%ld MB)\n",
-+			 drive->name,
-+			 capacity, (capacity - capacity/625 + 974)/1950,
-+			 set_max, (set_max - set_max/625 + 974)/1950);
-+	if (STROKE || drive->stroke) {
-+		set_max = idedisk_set_max_address(drive, set_max);
-+		if (set_max) {
-+			drive->id->lba_capacity = set_max;
-+			printk(KERN_INFO "%s: Host Protected Area disabled.\n",
-+					 drive->name);
-+		}
-+	}
-+}
-+
-+static inline void idedisk_check_hpa_lba48(ide_drive_t *drive)
- {
--	int flag = (drive->id->cfs_enable_1 & 0x0400) ? 1 : 0;
--	if (flag)
--		printk("%s: host protected area => %d\n", drive->name, flag);
--	return flag;
-+	unsigned long long capacity_2, set_max_ext;
-+
-+	capacity_2 = drive->id->lba_capacity_2;
-+	set_max_ext = idedisk_read_native_max_address_ext(drive);
-+
-+	if (set_max_ext <= capacity_2)
-+		return;
-+
-+	printk(KERN_INFO "%s: Host Protected Area detected.\n"
-+			 "\tcurrent capacity is %lld sectors (%lld MB)\n"
-+			 "\tnative  capacity is %lld sectors (%lld MB)\n",
-+			 drive->name,
-+			 capacity_2, sectors_to_MB(capacity_2),
-+			 set_max_ext, sectors_to_MB(set_max_ext));
-+	if (STROKE || drive->stroke) {
-+		set_max_ext = idedisk_set_max_address_ext(drive, set_max_ext);
-+		if (set_max_ext) {
-+			drive->id->lba_capacity_2 = set_max_ext;
-+			printk(KERN_INFO "%s: Host Protected Area disabled.\n",
-+					 drive->name);
-+		}
-+	}
- }
- 
- /*
-@@ -1156,86 +1206,42 @@
-  * in above order (i.e., if value of higher priority is available,
-  * reset will be ignored).
-  */
--#define IDE_STROKE_LIMIT	(32000*1024*2)
- static void init_idedisk_capacity (ide_drive_t  *drive)
- {
- 	struct hd_driveid *id = drive->id;
--	unsigned long capacity = drive->cyl * drive->head * drive->sect;
--	unsigned long set_max = idedisk_read_native_max_address(drive);
--	unsigned long long capacity_2 = capacity;
--	unsigned long long set_max_ext;
--
--	drive->capacity48 = 0;
--	drive->select.b.lba = 0;
-+	/*
-+	 * If this drive supports the Host Protected Area feature set,
-+	 * then we may need to change our opinion about the drive's capacity.
-+	 */
-+	int hpa = (id->command_set_1 & 0x0400) && (id->cfs_enable_1 & 0x0400);
- 
--	(void) idedisk_supports_host_protected_area(drive);
-+	if ((id->command_set_2 & 0x0400) && (id->cfs_enable_2 & 0x0400)) {
-+		/* drive speaks 48-bit LBA */
-+		unsigned long long capacity_2;
- 
--	if (id->cfs_enable_2 & 0x0400) {
-+		drive->select.b.lba = 1;
-+		if (hpa)
-+			idedisk_check_hpa_lba48(drive);
- 		capacity_2 = id->lba_capacity_2;
- 		drive->head		= drive->bios_head = 255;
- 		drive->sect		= drive->bios_sect = 63;
- 		drive->cyl = (unsigned int) capacity_2 / (drive->head * drive->sect);
--		drive->select.b.lba	= 1;
--		set_max_ext = idedisk_read_native_max_address_ext(drive);
--		if (set_max_ext > capacity_2 && capacity_2 > IDE_STROKE_LIMIT) {
--#ifdef CONFIG_IDEDISK_STROKE
--			set_max_ext = idedisk_read_native_max_address_ext(drive);
--			set_max_ext = idedisk_set_max_address_ext(drive, set_max_ext);
--			if (set_max_ext) {
--				drive->capacity48 = capacity_2 = set_max_ext;
--				drive->cyl = (unsigned int) set_max_ext / (drive->head * drive->sect);
--				drive->select.b.lba = 1;
--				drive->id->lba_capacity_2 = capacity_2;
--                        }
--#else /* !CONFIG_IDEDISK_STROKE */
--			printk(KERN_INFO "%s: setmax_ext LBA %llu, native  %llu\n",
--				drive->name, set_max_ext, capacity_2);
--#endif /* CONFIG_IDEDISK_STROKE */
--		}
--		drive->cyl = (unsigned int) capacity_2 / (drive->head * drive->sect);
- 		drive->bios_cyl		= drive->cyl;
- 		drive->capacity48	= capacity_2;
- 		drive->capacity		= (unsigned long) capacity_2;
--		goto check_capacity48;
--	/* Determine capacity, and use LBA if the drive properly supports it */
- 	} else if ((id->capability & 2) && lba_capacity_is_ok(id)) {
-+		/* drive speaks 28-bit LBA */
-+		unsigned long capacity;
-+
-+		drive->select.b.lba = 1;
-+		if (hpa)
-+			idedisk_check_hpa_lba28(drive);
- 		capacity = id->lba_capacity;
- 		drive->cyl = capacity / (drive->head * drive->sect);
--		drive->select.b.lba = 1;
--	}
--
--	if (set_max > capacity && capacity > IDE_STROKE_LIMIT) {
--#ifdef CONFIG_IDEDISK_STROKE
--		set_max = idedisk_read_native_max_address(drive);
--		set_max = idedisk_set_max_address(drive, set_max);
--		if (set_max) {
--			drive->capacity = capacity = set_max;
--			drive->cyl = set_max / (drive->head * drive->sect);
--			drive->select.b.lba = 1;
--			drive->id->lba_capacity = capacity;
--		}
--#else /* !CONFIG_IDEDISK_STROKE */
--		printk(KERN_INFO "%s: setmax LBA %lu, native  %lu\n",
--			drive->name, set_max, capacity);
--#endif /* CONFIG_IDEDISK_STROKE */
--	}
--
--	drive->capacity = capacity;
--
--	if ((id->command_set_2 & 0x0400) && (id->cfs_enable_2 & 0x0400)) {
--		drive->capacity48 = id->lba_capacity_2;
--		drive->head = 255;
--		drive->sect = 63;
--		drive->cyl = (unsigned long)(drive->capacity48) / (drive->head * drive->sect);
--	}
--
--check_capacity48:
--	/* Limit disk size to 137GB if LBA48 addressing is not supported */
--	if (drive->addressing == 0 && drive->capacity48 > (1ULL)<<28) {
--		printk("%s: cannot use LBA48 - capacity reset "
--			"from %llu to %llu\n",
--			drive->name, drive->capacity48, (1ULL)<<28);
--		drive->capacity48 = (1ULL)<<28;
-+		drive->capacity = capacity;
-+	} else {
-+		/* drive speaks boring old 28-bit CHS */
-+		drive->capacity = drive->cyl * drive->head * drive->sect;
- 	}
- }
- 
-@@ -1560,7 +1566,13 @@
- 	return 0;
- }
- 
--static int probe_lba_addressing (ide_drive_t *drive, int arg)
-+/*
-+ * drive->addressing:
-+ *	0: 28-bit
-+ *	1: 48-bit
-+ *	2: 48-bit capable doing 28-bit
-+ */
-+static int set_lba_addressing (ide_drive_t *drive, int arg)
- {
- 	drive->addressing =  0;
- 
-@@ -1573,11 +1585,6 @@
- 	return 0;
- }
- 
--static int set_lba_addressing (ide_drive_t *drive, int arg)
--{
--	return (probe_lba_addressing(drive, arg));
--}
--
- static void idedisk_add_settings(ide_drive_t *drive)
- {
- 	struct hd_driveid *id = drive->id;
-@@ -1654,10 +1661,10 @@
- 	}
- 
- #if 1
--	(void) probe_lba_addressing(drive, 1);
-+	(void)set_lba_addressing(drive, 1);
- #else
- 	/* if using 48-bit addressing bump the request size up */
--	if (probe_lba_addressing(drive, 1))
-+	if (set_lba_addressing(drive, 1))
- 		blk_queue_max_sectors(&drive->queue, 2048);
- #endif
- 
-@@ -1686,6 +1693,14 @@
- 	/* calculate drive capacity, and select LBA if possible */
- 	init_idedisk_capacity (drive);
- 
-+	/* Limit disk size to 137GB if LBA48 addressing is not supported */
-+	if (drive->addressing == 0 && drive->capacity48 > (1ULL)<<28) {
-+		printk("%s: cannot use LBA48 - capacity reset "
-+			"from %llu to %llu\n",
-+			drive->name, drive->capacity48, (1ULL)<<28);
-+		drive->capacity48 = (1ULL)<<28;
-+	}
-+
- 	/*
- 	 * if possible, give fdisk access to more of the drive,
- 	 * by correcting bios_cyls:
+
 --- kernel-source-2.4.26/drivers/ide/ide-probe.c	2004-04-14 23:05:29.000000000 +1000
 +++ kernel-source-2.4.26-1/drivers/ide/ide-probe.c	2004-04-17 14:23:47.000000000 +1000
 @@ -1425,12 +1425,16 @@
@@ -431,33 +163,6 @@
  
  #ifdef CONFIG_IDEDMA_AUTO
  int noautodma = 0;
-@@ -2089,6 +2089,7 @@
-  * "hdx=scsi"		: the return of the ide-scsi flag, this is useful for
-  *				allowwing ide-floppy, ide-tape, and ide-cdrom|writers
-  *				to use ide-scsi emulation on a device specific option.
-+ * "hdx=stroke"		: runtime version of CONFIG_IDEDISK_STROKE
-  * "idebus=xx"		: inform IDE driver of VESA/PCI bus speed in MHz,
-  *				where "xx" is between 20 and 66 inclusive,
-  *				used when tuning chipset PIO modes.
-@@ -2188,7 +2189,7 @@
- 		const char *hd_words[] = {"none", "noprobe", "nowerr", "cdrom",
- 				"serialize", "autotune", "noautotune",
- 				"slow", "swapdata", "bswap", "flash",
--				"remap", "noremap", "scsi", NULL};
-+				"remap", "noremap", "scsi", "stroke", NULL};
- 		unit = s[2] - 'a';
- 		hw   = unit / MAX_DRIVES;
- 		unit = unit % MAX_DRIVES;
-@@ -2254,6 +2255,9 @@
- 			case -14: /* "scsi" */
- 				drive->scsi = 1;
- 				goto done;
-+			case -15: /* "stroke" */
-+				drive->stroke = 1;
-+				goto done;
- 			case 3: /* cyl,head,sect */
- 				drive->media	= ide_disk;
- 				drive->cyl	= drive->bios_cyl  = vals[0];
 @@ -2489,12 +2493,9 @@
   */
  static void __init probe_for_hwifs (void)

Modified: trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/023_jbd_commit_interval.diff
===================================================================
--- trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/023_jbd_commit_interval.diff	2004-08-11 18:34:10 UTC (rev 1014)
+++ trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/023_jbd_commit_interval.diff	2004-08-11 18:52:31 UTC (rev 1015)
@@ -133,3 +133,14 @@
  
  /** 
   * void journal_forget() - bforget() for potentially-journaled buffers.
+diff -urN kernel-source-2.4.26/fs/buffer.c kernel-source-2.4.26-1/fs/buffer.c
+--- kernel-source-2.4.26/fs/buffer.c	2004-02-19 00:36:31.000000000 +1100
++++ kernel-source-2.4.26-1/fs/buffer.c	2004-02-22 20:28:30.000000000 +1100
+@@ -799,6 +799,7 @@
+ 	bh->b_list = BUF_CLEAN;
+ 	bh->b_end_io = handler;
+ 	bh->b_private = private;
++	bh->b_journal_head = NULL;
+ }
+ 
+ void end_buffer_io_async(struct buffer_head * bh, int uptodate)

Added: trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/025_proc_tty_security.diff
===================================================================
--- trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/025_proc_tty_security.diff	2004-08-11 18:34:10 UTC (rev 1014)
+++ trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/025_proc_tty_security.diff	2004-08-11 18:52:31 UTC (rev 1015)
@@ -0,0 +1,60 @@
+This patch is connected to CAN-2003-0461.
+
+--- kernel-source-2.4.26/fs/proc/generic.c	2003-11-29 05:26:21.000000000 +1100
++++ kernel-source-2.4.26-1/fs/proc/generic.c	2003-11-29 20:53:47.000000000 +1100
+@@ -486,12 +486,12 @@
+ 	return ent;
+ }
+ 
+-struct proc_dir_entry *proc_mkdir(const char *name, struct proc_dir_entry *parent)
++struct proc_dir_entry *proc_mkdir_mode(const char *name, mode_t mode,
++		struct proc_dir_entry *parent)
+ {
+ 	struct proc_dir_entry *ent;
+ 
+-	ent = proc_create(&parent,name,
+-			  (S_IFDIR | S_IRUGO | S_IXUGO),2);
++	ent = proc_create(&parent, name, S_IFDIR | mode, 2);
+ 	if (ent) {
+ 		ent->proc_fops = &proc_dir_operations;
+ 		ent->proc_iops = &proc_dir_inode_operations;
+@@ -504,6 +504,12 @@
+ 	return ent;
+ }
+ 
++struct proc_dir_entry *proc_mkdir(const char *name,
++		struct proc_dir_entry *parent)
++{
++	return proc_mkdir_mode(name, S_IRUGO | S_IXUGO, parent);
++}
++
+ struct proc_dir_entry *create_proc_entry(const char *name, mode_t mode,
+ 					 struct proc_dir_entry *parent)
+ {
+--- kernel-source-2.4.26/fs/proc/proc_tty.c	2000-04-22 08:17:57.000000000 +1000
++++ kernel-source-2.4.26-1/fs/proc/proc_tty.c	2003-07-23 21:12:10.000000000 +1000
+@@ -174,7 +174,13 @@
+ 	if (!proc_mkdir("tty", 0))
+ 		return;
+ 	proc_tty_ldisc = proc_mkdir("tty/ldisc", 0);
+-	proc_tty_driver = proc_mkdir("tty/driver", 0);
++	/*
++	 * /proc/tty/driver/serial reveals the exact character counts for
++	 * serial links which is just too easy to abuse for inferring
++	 * password lengths and inter-keystroke timings during password
++	 * entry.
++	 */
++	proc_tty_driver = proc_mkdir_mode("tty/driver", S_IRUSR | S_IXUSR, 0);
+ 
+ 	create_proc_read_entry("tty/ldiscs", 0, 0, tty_ldiscs_read_proc,NULL);
+ 	create_proc_read_entry("tty/drivers", 0, 0, tty_drivers_read_proc,NULL);
+--- kernel-source-2.4.26/include/linux/proc_fs.h	2003-11-29 05:26:21.000000000 +1100
++++ kernel-source-2.4.26-1/include/linux/proc_fs.h	2003-11-29 20:53:51.000000000 +1100
+@@ -142,6 +142,7 @@
+ 		struct proc_dir_entry *, const char *);
+ extern struct proc_dir_entry *proc_mknod(const char *,mode_t,
+ 		struct proc_dir_entry *,kdev_t);
++extern struct proc_dir_entry *proc_mkdir_mode(const char *,mode_t,struct proc_dir_entry *);
+ extern struct proc_dir_entry *proc_mkdir(const char *,struct proc_dir_entry *);
+ 
+ static inline struct proc_dir_entry *create_proc_read_entry(const char *name,

Added: trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/026_binfmt_misc_unload.diff
===================================================================
--- trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/026_binfmt_misc_unload.diff	2004-08-11 18:34:10 UTC (rev 1014)
+++ trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/026_binfmt_misc_unload.diff	2004-08-11 18:52:31 UTC (rev 1015)
@@ -0,0 +1,36 @@
+diff -urN kernel-source-2.4.26/fs/binfmt_misc.c kernel-source-2.4.26-1/fs/binfmt_misc.c
+--- kernel-source-2.4.26/fs/binfmt_misc.c	2002-08-03 10:39:45.000000000 +1000
++++ kernel-source-2.4.26-1/fs/binfmt_misc.c	2003-05-18 17:52:06.000000000 +1000
+@@ -682,22 +682,13 @@
+ 
+ static DECLARE_FSTYPE(bm_fs_type, "binfmt_misc", bm_read_super, FS_SINGLE|FS_LITTER);
+ 
+-static struct vfsmount *bm_mnt;
+-
+ static int __init init_misc_binfmt(void)
+ {
+ 	int err = register_filesystem(&bm_fs_type);
+ 	if (!err) {
+-		bm_mnt = kern_mount(&bm_fs_type);
+-		err = PTR_ERR(bm_mnt);
+-		if (IS_ERR(bm_mnt))
++		err = register_binfmt(&misc_format);
++		if (err) {
+ 			unregister_filesystem(&bm_fs_type);
+-		else {
+-			err = register_binfmt(&misc_format);
+-			if (err) {
+-				unregister_filesystem(&bm_fs_type);
+-				kern_umount(bm_mnt);
+-			}
+ 		}
+ 	}
+ 	return err;
+@@ -707,7 +698,6 @@
+ {
+ 	unregister_binfmt(&misc_format);
+ 	unregister_filesystem(&bm_fs_type);
+-	kern_umount(bm_mnt);
+ }
+ 
+ EXPORT_NO_SYMBOLS;

Added: trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/027_vfat_cries_wolf.diff
===================================================================
--- trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/027_vfat_cries_wolf.diff	2004-08-11 18:34:10 UTC (rev 1014)
+++ trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/027_vfat_cries_wolf.diff	2004-08-11 18:52:31 UTC (rev 1015)
@@ -0,0 +1,12 @@
+diff -urN kernel-source-2.4.26/fs/fat/file.c kernel-source-2.4.26-1/fs/fat/file.c
+--- kernel-source-2.4.26/fs/fat/file.c	2001-08-13 03:56:56.000000000 +1000
++++ kernel-source-2.4.26-1/fs/fat/file.c	2003-07-18 21:30:37.000000000 +1000
+@@ -63,7 +63,7 @@
+ 	if (!create)
+ 		return 0;
+ 	if (iblock << sb->s_blocksize_bits != MSDOS_I(inode)->mmu_private) {
+-		BUG();
++		printk("FAT: invalid block: %ld %lu\n", iblock, MSDOS_I(inode)->mmu_private);
+ 		return -EIO;
+ 	}
+ 	if (!(iblock % MSDOS_SB(inode->i_sb)->cluster_size)) {

Modified: trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/patch-2.4.26-1
===================================================================
--- trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/patch-2.4.26-1	2004-08-11 18:34:10 UTC (rev 1014)
+++ trunk/kernel-2.4/source/kernel-source-2.4.27-2.4.27/debian/patches/patch-2.4.26-1	2004-08-11 18:52:31 UTC (rev 1015)
@@ -372,10 +372,6 @@
 +
 +* NFS client seekdir patch
 +  http://www.fys.uio.no/~trondmy/src/
-+* SCSI Media Changer
-+  http://bytesex.org/patches/
-+* Big Physical Area Reservation
-+  http://www.polyware.nl/~middelin/hob-v4l.html#bigphysarea
 +* Linux 2.5 IPsec stack
 +  http://gondor.apana.org.au/~herbert/debian/kernel/ipsec/
 +  . This is essentially David Miller's 2.4 backport with a number of small
@@ -397,45 +393,26 @@
 +* Fixed pegasus_set_multicast lockup.
 +* Fixed dead lock on shutdown in 8139too.
 +* Don't kill page cache entries in set_blocksize.
-+* Added support for nm256xl+ (Mattia Monga).
 +* Fixed handling of HIDs with product strings bug no manufacturer.
 +* Fixed the use of return values from mem*_io in drivers/isdn/sc.
-+* Added missing headers in drivers/pcmcia/i82092.c.
-+* Added missing headers in drivers/isdn/hisax/avma1_cs.c.
 +* Fixed compile error in drivers/scsi/dpt_i2o.c on alpha.
 +* Extern inline -> static inline in drivers/net/hamradio/soundmodem.
 +* Added asm/io.h for in*/out* to drivers/net/wan/farsync.c.
 +* Corrected AdvWriteDWordLramNoSwap in drivers/scsi/advansys.c.
-+* Fix slashes in broken Acorn ISO9660 images in fs/isofs/dir.c (Darren Salt).
 +* Always call complete after unlinking an urb in drivers/usb/host/usb-ohci.c.
 +* Set time fields to zero in fs/cramfs/inode.c.
 +* Fixed umsdos_solve_hlink oops in fs/umsdos/dir.c.
-+* Removed period check for executables in fs/isofs/inode.c.
-+* Modularised VESA FB.
-+* Replaced BUG() with printk() in fs/fat/file.c.
-+* Do not get seqno if we will not use it in fs/isofs/inode.c.
 +* Made CONFIG_PARIDE_EPATC8 into a runtime option.
 +* Removed CONFIG_INET_ECN check in net/ipv4/tcp_diag.c.
 +* Added dependency on MTD_CONCAT for sc520cdp in drivers/mtd/maps/Config.in.
 +* Fixed printk warnings in init/do_mounts.c.
 +* Fixed dupliate detection problem in drivers/net/tokenring/ibmtr.c.
 +* Changed all occurances of infobox+sleep to msgbox in scripts/Menuconfig.
-+* Fixed initialisation error handling in drivers/block/cpqarray.c.
 +* Fixed size of default_port in drivers/net/via-rhine.c.
 +* Paper over X server bug in drivers/char/drm/i810_dma.c.
-+* Made binfmt_misc unloadable again in fs/binfmt_misc.c.
 +* Use seq interface for /proc/modules:
 +  . fs/proc/proc_misc.c
 +  . kernel/module.c
-+* Setup two 1G mappings if cia_rev == 1 in arch/alpha/kernel/core_cia.c.
-+* Fixed IDE modularisation:
-+  . include/linux/ide.h
-+  . drivers/ide/Config.in
-+  . drivers/ide/ide.c
-+  . drivers/ide/ide-probe.c
-+  . drivers/ide/ide-proc.c
-+  . drivers/ide/setup-pci.c
-+  . drivers/ide/pci/atiixp.c
 +* Include linux/socket.h in include/linux/netlink.h (2.5).
 +* Include linux/skbuff.h for skb_put in include/linux/netlink.h.
 +* Include linux/spinlock.h for spinlock_t in include/linux/interrupt.h.
@@ -446,63 +423,27 @@
 +* Include net/sock.h for struct sock in include/net/ip6_route.h.
 +* Include linux/types.h for __u32 in include/linux/watchdog.h.
 +* Added forward declaration for struct net_device in include/linux/skbuff.h.
-+* Applied 486 emulation patch (Willy Tarreau):
-+  . Documentation/Configure.help
-+  . arch/i386/config.in
-+  . arch/i386/kernel/Makefile
-+  . arch/i386/kernel/emu.c
-+  . arch/i386/kernel/entry.S
 +* Use spinlock_t filler even with gcc 2.96 in include/linux/spinlock.h.
 +* Made CONFIG_IDEDISK_STROKE a runtime option (Joerg Platte):
 +  . include/linux/ide.h
 +  . drivers/ide/ide.c
 +  . drivers/ide/ide-disk.c
 +* Cope with exit status 2 from md5sum in drivers/isdn/hisax/cert.c.
-+* Fixed printk format in fs/fat/file.c.
 +* Fixed macro redefinition warning in fs/nfs/nfs3proc.c.
-+* Fixed binutils test in scripts/ver_linux.
-+* Made /proc/tty/driver root-only (CAN-2003-0461):
-+  . include/linux/proc_fs.h
-+  . fs/proc/generic.c
-+  . fs/proc/proc_tty.c
 +* Fixed CONFIG_IDEDISK_STROKE in drivers/ide/ide-disk.c (2.6).
 +* Removed -Werror in drivers/scsi/aic7xxx/Makefile.
-+* Handle j_commit_interval == 0:
-+  . fs/jbd/journal.c
-+  . fs/jbd/transaction.c
 +* Do not unshare files for pid == 1 in kernel/fork.c.
-+* Added CONFIG_ACPI_OFF option:
-+  . Documentation/Configure.help
-+  . arch/i386/kernel/setup.c
-+  . drivers/acpi/Config.in
-+* Added optimise by size option:
-+  . Documentation/Configure.help
-+  . Makefile
-+  . arch/i386/config.in
 +* Fixed wrong address in ICMP log entry in net/ipv4/icmp.c (2.5).
-+* Fixed double request_region:
-+  . drivers/net/arcnet/com20020.c
-+  . drivers/net/arcnet/com20020-isa.c
-+  . drivers/net/arcnet/com20020-pci.c
 +* Made AMD_PM768 conditional on X86/X86_64 in drivers/char/Config.in.
-+* Removed floating operations in drivers/net/amd8111e.* (2.5).
-+* Removed bogus panic calls in arch/i386/kernel/mpparse.c (Jochen Voss).
-+* Fixed red/blue typo in drivers/video/radeonfb.c.
-+* Set fb owner in drivers/video/radeonfb.c.
 +* Fixed DMA overruns/bugs in drivers/sound/i810_audio.c.
 +* Fixed dev timer SMP deadlock in drivers/scsi/aic7xxx/aic7xxx_osm.c
 +  (Andrew Morton).
 +* Black listed "TOSHIBA CD-ROM XM-1702BC" in drivers/ide/ide-dma.c
 +  (Moritz Lennert).
-+* Tighten sanity in time_init to 250 PPM in arch/alpha/kernel/time.c
-+  (Scott Bailey).
-+* Call mkdep on headers with xargs in Makefile.
 +* Fixed tuner support on WinTV-D boards in drivers/media/video/bttv-cards.c
 +  (2.6).
 +* Fixed boundary checks for GUSAGE/SUSAGE in drivers/usb/hiddev.c.
 +* Fixed copy_to_user usage in drivers/usb/hiddev.c.
-+* Fixed build without procfs in drivers in drivers/hotplug/Makefile.
-+* Removed cmpxchg definition in drivers/char/drm/drmP.h.
 +
 +Changes to comments and documentation:
 +
@@ -6717,27 +6658,6 @@
  static u8 mii_phy_probe(pegasus_t * pegasus)
 
 
-diff -urN kernel-source-2.4.26/drivers/video/radeonfb.c kernel-source-2.4.26-1/drivers/video/radeonfb.c
---- kernel-source-2.4.26/drivers/video/radeonfb.c	2004-04-14 23:05:39.000000000 +1000
-+++ kernel-source-2.4.26-1/drivers/video/radeonfb.c	2004-04-17 14:24:02.000000000 +1000
-@@ -935,6 +935,7 @@
- #endif /* CONFIG_PMAC_BACKLIGHT */
- 
- static struct fb_ops radeon_fb_ops = {
-+	owner:			THIS_MODULE,
- 	fb_get_fix:		radeonfb_get_fix,
- 	fb_get_var:		radeonfb_get_var,
- 	fb_set_var:		radeonfb_set_var,
-@@ -2368,7 +2369,7 @@
- 			disp->visual = FB_VISUAL_DIRECTCOLOR;
- 			v.red.offset = 10;
- 			v.green.offset = 5;
--			v.red.offset = 0;
-+			v.blue.offset = 0;
- 			v.red.length = v.green.length = v.blue.length = 5;
- 			v.transp.offset = v.transp.length = 0;
- 			break;
-
 diff -urN kernel-source-2.4.26/fs/Config.in kernel-source-2.4.26-1/fs/Config.in
 --- kernel-source-2.4.26/fs/Config.in	2004-02-19 00:36:31.000000000 +1100
 +++ kernel-source-2.4.26-1/fs/Config.in	2004-04-17 13:32:34.000000000 +1000
@@ -6838,42 +6758,6 @@
  {
  	return 0;
  }
-diff -urN kernel-source-2.4.26/fs/binfmt_misc.c kernel-source-2.4.26-1/fs/binfmt_misc.c
---- kernel-source-2.4.26/fs/binfmt_misc.c	2002-08-03 10:39:45.000000000 +1000
-+++ kernel-source-2.4.26-1/fs/binfmt_misc.c	2003-05-18 17:52:06.000000000 +1000
-@@ -682,22 +682,13 @@
- 
- static DECLARE_FSTYPE(bm_fs_type, "binfmt_misc", bm_read_super, FS_SINGLE|FS_LITTER);
- 
--static struct vfsmount *bm_mnt;
--
- static int __init init_misc_binfmt(void)
- {
- 	int err = register_filesystem(&bm_fs_type);
- 	if (!err) {
--		bm_mnt = kern_mount(&bm_fs_type);
--		err = PTR_ERR(bm_mnt);
--		if (IS_ERR(bm_mnt))
-+		err = register_binfmt(&misc_format);
-+		if (err) {
- 			unregister_filesystem(&bm_fs_type);
--		else {
--			err = register_binfmt(&misc_format);
--			if (err) {
--				unregister_filesystem(&bm_fs_type);
--				kern_umount(bm_mnt);
--			}
- 		}
- 	}
- 	return err;
-@@ -707,7 +698,6 @@
- {
- 	unregister_binfmt(&misc_format);
- 	unregister_filesystem(&bm_fs_type);
--	kern_umount(bm_mnt);
- }
- 
- EXPORT_NO_SYMBOLS;
 diff -urN kernel-source-2.4.26/fs/block_dev.c kernel-source-2.4.26-1/fs/block_dev.c
 --- kernel-source-2.4.26/fs/block_dev.c	2003-06-14 00:51:37.000000000 +1000
 +++ kernel-source-2.4.26-1/fs/block_dev.c	2003-06-01 20:43:53.000000000 +1000
@@ -6886,17 +6770,7 @@
  	bdput(bdev);
  	return 0;
  }
-diff -urN kernel-source-2.4.26/fs/buffer.c kernel-source-2.4.26-1/fs/buffer.c
---- kernel-source-2.4.26/fs/buffer.c	2004-02-19 00:36:31.000000000 +1100
-+++ kernel-source-2.4.26-1/fs/buffer.c	2004-02-22 20:28:30.000000000 +1100
-@@ -799,6 +799,7 @@
- 	bh->b_list = BUF_CLEAN;
- 	bh->b_end_io = handler;
- 	bh->b_private = private;
-+	bh->b_journal_head = NULL;
- }
- 
- void end_buffer_io_async(struct buffer_head * bh, int uptodate)
+
 diff -urN kernel-source-2.4.26/fs/cramfs/inode.c kernel-source-2.4.26-1/fs/cramfs/inode.c
 --- kernel-source-2.4.26/fs/cramfs/inode.c	2002-08-03 10:39:45.000000000 +1000
 +++ kernel-source-2.4.26-1/fs/cramfs/inode.c	2002-08-30 20:40:16.000000000 +1000
@@ -11844,18 +11718,7 @@
 +	ext3_xattr_unregister(EXT3_XATTR_INDEX_USER,
 +			      &ext3_xattr_user_handler);
 +}
-diff -urN kernel-source-2.4.26/fs/fat/file.c kernel-source-2.4.26-1/fs/fat/file.c
---- kernel-source-2.4.26/fs/fat/file.c	2001-08-13 03:56:56.000000000 +1000
-+++ kernel-source-2.4.26-1/fs/fat/file.c	2003-07-18 21:30:37.000000000 +1000
-@@ -63,7 +63,7 @@
- 	if (!create)
- 		return 0;
- 	if (iblock << sb->s_blocksize_bits != MSDOS_I(inode)->mmu_private) {
--		BUG();
-+		printk("FAT: invalid block: %ld %lu\n", iblock, MSDOS_I(inode)->mmu_private);
- 		return -EIO;
- 	}
- 	if (!(iblock % MSDOS_SB(inode->i_sb)->cluster_size)) {
+
 diff -urN kernel-source-2.4.26/fs/intermezzo/vfs.c kernel-source-2.4.26-1/fs/intermezzo/vfs.c
 --- kernel-source-2.4.26/fs/intermezzo/vfs.c	2003-06-14 00:51:37.000000000 +1000
 +++ kernel-source-2.4.26-1/fs/intermezzo/vfs.c	2004-04-17 13:32:29.000000000 +1000
@@ -13477,38 +13340,6 @@
 +
 +	return 0;
 +}
-diff -urN kernel-source-2.4.26/fs/proc/generic.c kernel-source-2.4.26-1/fs/proc/generic.c
---- kernel-source-2.4.26/fs/proc/generic.c	2003-11-29 05:26:21.000000000 +1100
-+++ kernel-source-2.4.26-1/fs/proc/generic.c	2003-11-29 20:53:47.000000000 +1100
-@@ -486,12 +486,12 @@
- 	return ent;
- }
- 
--struct proc_dir_entry *proc_mkdir(const char *name, struct proc_dir_entry *parent)
-+struct proc_dir_entry *proc_mkdir_mode(const char *name, mode_t mode,
-+		struct proc_dir_entry *parent)
- {
- 	struct proc_dir_entry *ent;
- 
--	ent = proc_create(&parent,name,
--			  (S_IFDIR | S_IRUGO | S_IXUGO),2);
-+	ent = proc_create(&parent, name, S_IFDIR | mode, 2);
- 	if (ent) {
- 		ent->proc_fops = &proc_dir_operations;
- 		ent->proc_iops = &proc_dir_inode_operations;
-@@ -504,6 +504,12 @@
- 	return ent;
- }
- 
-+struct proc_dir_entry *proc_mkdir(const char *name,
-+		struct proc_dir_entry *parent)
-+{
-+	return proc_mkdir_mode(name, S_IRUGO | S_IXUGO, parent);
-+}
-+
- struct proc_dir_entry *create_proc_entry(const char *name, mode_t mode,
- 					 struct proc_dir_entry *parent)
- {
 diff -urN kernel-source-2.4.26/fs/proc/proc_misc.c kernel-source-2.4.26-1/fs/proc/proc_misc.c
 --- kernel-source-2.4.26/fs/proc/proc_misc.c	2003-11-29 05:26:21.000000000 +1100
 +++ kernel-source-2.4.26-1/fs/proc/proc_misc.c	2003-11-29 20:53:47.000000000 +1100
@@ -13562,24 +13393,6 @@
  #endif
  	proc_root_kcore = create_proc_entry("kcore", S_IRUSR, NULL);
  	if (proc_root_kcore) {
-diff -urN kernel-source-2.4.26/fs/proc/proc_tty.c kernel-source-2.4.26-1/fs/proc/proc_tty.c
---- kernel-source-2.4.26/fs/proc/proc_tty.c	2000-04-22 08:17:57.000000000 +1000
-+++ kernel-source-2.4.26-1/fs/proc/proc_tty.c	2003-07-23 21:12:10.000000000 +1000
-@@ -174,7 +174,13 @@
- 	if (!proc_mkdir("tty", 0))
- 		return;
- 	proc_tty_ldisc = proc_mkdir("tty/ldisc", 0);
--	proc_tty_driver = proc_mkdir("tty/driver", 0);
-+	/*
-+	 * /proc/tty/driver/serial reveals the exact character counts for
-+	 * serial links which is just too easy to abuse for inferring
-+	 * password lengths and inter-keystroke timings during password
-+	 * entry.
-+	 */
-+	proc_tty_driver = proc_mkdir_mode("tty/driver", S_IRUSR | S_IXUSR, 0);
- 
- 	create_proc_read_entry("tty/ldiscs", 0, 0, tty_ldiscs_read_proc,NULL);
- 	create_proc_read_entry("tty/drivers", 0, 0, tty_drivers_read_proc,NULL);
 diff -urN kernel-source-2.4.26/fs/proc/root.c kernel-source-2.4.26-1/fs/proc/root.c
 --- kernel-source-2.4.26/fs/proc/root.c	2002-08-03 10:39:45.000000000 +1000
 +++ kernel-source-2.4.26-1/fs/proc/root.c	2002-08-05 21:23:29.000000000 +1000
@@ -16287,17 +16100,6 @@
  #define PPP_LCP		0xc021	/* Link Control Protocol */
  #define PPP_PAP		0xc023	/* Password Authentication Protocol */
  #define PPP_LQR		0xc025	/* Link Quality Report protocol */
-diff -urN kernel-source-2.4.26/include/linux/proc_fs.h kernel-source-2.4.26-1/include/linux/proc_fs.h
---- kernel-source-2.4.26/include/linux/proc_fs.h	2003-11-29 05:26:21.000000000 +1100
-+++ kernel-source-2.4.26-1/include/linux/proc_fs.h	2003-11-29 20:53:51.000000000 +1100
-@@ -142,6 +142,7 @@
- 		struct proc_dir_entry *, const char *);
- extern struct proc_dir_entry *proc_mknod(const char *,mode_t,
- 		struct proc_dir_entry *,kdev_t);
-+extern struct proc_dir_entry *proc_mkdir_mode(const char *,mode_t,struct proc_dir_entry *);
- extern struct proc_dir_entry *proc_mkdir(const char *,struct proc_dir_entry *);
- 
- static inline struct proc_dir_entry *create_proc_read_entry(const char *name,
 diff -urN kernel-source-2.4.26/include/linux/rtnetlink.h kernel-source-2.4.26-1/include/linux/rtnetlink.h
 --- kernel-source-2.4.26/include/linux/rtnetlink.h	2004-02-19 00:36:32.000000000 +1100
 +++ kernel-source-2.4.26-1/include/linux/rtnetlink.h	2004-04-17 10:10:28.000000000 +1000