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

diff -urN linux-2.2.10-pre4/drivers/block/ide.c linux-2.2.10-pre5/drivers/block/ide.c
--- linux-2.2.10-pre4/drivers/block/ide.c	2003-08-15 15:06:37.000000000 -0700
+++ linux-2.2.10-pre5/drivers/block/ide.c	2003-08-15 15:06:37.000000000 -0700
@@ -272,7 +272,8 @@
 	if (drive->removable && id != NULL) {
 		if (!strncmp(id->model, "KODAK ATA_FLASH", 15)	/* Kodak */
 		 || !strncmp(id->model, "Hitachi CV", 10)		/* Hitachi */
-		 || !strncmp(id->model, "SunDisk SDCFB", 13))	/* SunDisk */
+		 || !strncmp(id->model, "SunDisk SDCFB", 13)	/* SunDisk */
+		 || !strncmp(id->model, "HAGIWARA HPC", 12))	/* Hagiwara */
 		{
 			return 1;	/* yes, it is a flash memory card */
 		}
@@ -1732,6 +1733,8 @@
 	sti();
 	for (unit = 0; unit < MAX_DRIVES; ++unit) {
 		drive = &hwif->drives[unit];
+		if (!drive->present)
+			continue;
 		minor = drive->select.b.unit << PARTN_BITS;
 		for (p = 0; p < (1<<PARTN_BITS); ++p) {
 			if (drive->part[p].nr_sects > 0) {
diff -urN linux-2.2.10-pre4/drivers/net/ibmtr.c linux-2.2.10-pre5/drivers/net/ibmtr.c
--- linux-2.2.10-pre4/drivers/net/ibmtr.c	1999-05-07 10:57:42.000000000 -0700
+++ linux-2.2.10-pre5/drivers/net/ibmtr.c	2003-08-15 15:06:37.000000000 -0700
@@ -513,7 +513,7 @@
 	/* How much shared RAM is on adapter ? */
 #ifdef PCMCIA
 	ti->avail_shared_ram = pcmcia_reality_check(get_sram_size(ti));
-	ibmtr_mem_base = ti->sram_base ; 
+	ibmtr_mem_base = ti->sram_base << 12 ; 
 #else
 	ti->avail_shared_ram = get_sram_size(ti);
 #endif
@@ -833,6 +833,9 @@
 			(int)readb(ti->srb + offsetof(struct srb_close_adapter, ret_code)));
 
         dev->start = 0;
+#ifdef PCMCIA
+	ti->sram = 0 ;
+#endif
 	DPRINTK("Adapter closed.\n");
 	MOD_DEC_USE_COUNT;
 
diff -urN linux-2.2.10-pre4/drivers/net/irda/irport.c linux-2.2.10-pre5/drivers/net/irda/irport.c
--- linux-2.2.10-pre4/drivers/net/irda/irport.c	2003-08-15 15:06:37.000000000 -0700
+++ linux-2.2.10-pre5/drivers/net/irda/irport.c	2003-08-15 15:06:37.000000000 -0700
@@ -321,7 +321,7 @@
 	/* Turn on interrups */
 	outb(UART_IER_RLSI|UART_IER_RDI|UART_IER_THRI, iobase+UART_IER);
 
-	spin_unlock_irqrestore(&self->lock, flags);
+	spin_unlock_irqrestore(&idev->lock, flags);
 }
 
 /*
diff -urN linux-2.2.10-pre4/fs/binfmt_elf.c linux-2.2.10-pre5/fs/binfmt_elf.c
--- linux-2.2.10-pre4/fs/binfmt_elf.c	1999-05-10 13:01:21.000000000 -0700
+++ linux-2.2.10-pre5/fs/binfmt_elf.c	2003-08-15 15:06:37.000000000 -0700
@@ -449,6 +449,8 @@
 
 	retval = -ENOMEM;
 	size = elf_ex.e_phentsize * elf_ex.e_phnum;
+	if (size > 65536)
+		goto out;
 	elf_phdata = (struct elf_phdr *) kmalloc(size, GFP_KERNEL);
 	if (!elf_phdata)
 		goto out;
diff -urN linux-2.2.10-pre4/fs/exec.c linux-2.2.10-pre5/fs/exec.c
--- linux-2.2.10-pre4/fs/exec.c	1999-04-29 22:10:12.000000000 -0700
+++ linux-2.2.10-pre5/fs/exec.c	2003-08-15 15:06:37.000000000 -0700
@@ -257,7 +257,11 @@
 			set_fs(KERNEL_DS);
 		get_user(str, argv+argc);
 		if (!str)
-			panic("VFS: argc is wrong");
+		{
+			set_fs(old_fs);
+			return 0;
+//			panic("VFS: argc is wrong");
+		}
 		if (from_kmem == 1)
 			set_fs(old_fs);
 		len = strlen_user(str);	/* includes the '\0' */
