public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* latest mtd changes broke collie
@ 2005-11-09 22:17 Pavel Machek
  2005-11-10  0:19 ` Josh Boyer
  2005-11-10  2:59 ` Todd Poynor
  0 siblings, 2 replies; 26+ messages in thread
From: Pavel Machek @ 2005-11-09 22:17 UTC (permalink / raw)
  To: rpurdie, lenz, kernel list, Russell King, dwmw2, Andrew Morton


Latest mtd changes break collie...it now oopses during boot. This
reverts the bad patch.

Signed-off-by: Pavel Machek <pavel@suse.cz>

diff --git a/drivers/mtd/chips/sharp.c b/drivers/mtd/chips/sharp.c
--- a/drivers/mtd/chips/sharp.c
+++ b/drivers/mtd/chips/sharp.c
@@ -4,7 +4,7 @@
  * Copyright 2000,2001 David A. Schleef <ds@schleef.org>
  *           2000,2001 Lineo, Inc.
  *
- * $Id: sharp.c,v 1.16 2005/11/07 11:14:23 gleixner Exp $
+ * $Id: sharp.c,v 1.14 2004/08/09 13:19:43 dwmw2 Exp $
  *
  * Devices supported:
  *   LH28F016SCT Symmetrical block flash memory, 2Mx8
@@ -32,7 +32,6 @@
 #include <linux/mtd/cfi.h>
 #include <linux/delay.h>
 #include <linux/init.h>
-#include <linux/slab.h>
 
 #define CMD_RESET		0xffffffff
 #define CMD_READ_ID		0x90909090
@@ -234,7 +233,7 @@ static int sharp_probe_map(struct map_in
 /* This function returns with the chip->mutex lock held. */
 static int sharp_wait(struct map_info *map, struct flchip *chip)
 {
-	int status, i;
+	__u32 status;
 	unsigned long timeo = jiffies + HZ;
 	DECLARE_WAITQUEUE(wait, current);
 	int adr = 0;
@@ -247,11 +246,13 @@ retry:
 		map_write32(map, CMD_READ_STATUS, adr);
 		chip->state = FL_STATUS;
 	case FL_STATUS:
-		for(i=0;i<100;i++){
-			status = map_read32(map,adr);
-			if((status & SR_READY)==SR_READY)
-				break;
-			udelay(1);
+		status = map_read32(map,adr);
+		if ((status & SR_READY) == SR_READY)
+			break;
+		spin_unlock_bh(chip->mutex);
+		if (time_after(jiffies, timeo)) {
+			printk("Waiting for chip to be ready timed out in erase\n");
+			return -EIO;
 		}
 		sharp_udelay(1);
 		goto retry;
@@ -491,11 +492,7 @@ static inline int sharp_do_wait_for_read
 		spin_lock_bh(chip->mutex);
 
 		remove_wait_queue(&chip->wq, &wait);
-
-		if (signal_pending(current)){
-			ret = -EINTR;
-			goto out;
-		}
+		set_current_state(TASK_RUNNING);
 	}
 	ret = -ETIME;
 out:



-- 
Thanks, Sharp!

^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2005-11-14 15:33 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-11-09 22:17 latest mtd changes broke collie Pavel Machek
2005-11-10  0:19 ` Josh Boyer
2005-11-10  9:48   ` Pavel Machek
2005-11-10  2:59 ` Todd Poynor
2005-11-10  9:50   ` Pavel Machek
2005-11-10 10:02     ` David Woodhouse
2005-11-10 10:38       ` Pavel Machek
2005-11-10 10:51         ` David Woodhouse
2005-11-10 10:59           ` Pavel Machek
2005-11-10 11:11             ` David Woodhouse
2005-11-10 11:44               ` Pavel Machek
2005-11-10 12:07               ` Pavel Machek
2005-11-10 13:02                 ` David Vrabel
2005-11-10 13:09                   ` Pavel Machek
2005-11-10 17:41                     ` Richard Purdie
2005-11-10 18:09                       ` Richard Purdie
2005-11-10 22:06                         ` Pavel Machek
2005-11-10 22:41               ` Pavel Machek
2005-11-10 23:58                 ` Todd Poynor
2005-11-11  0:16                   ` Pavel Machek
2005-11-11  7:01                     ` Ian Campbell
2005-11-12 21:33                       ` Pavel Machek
2005-11-13 10:35                         ` Ian Campbell
2005-11-14 12:10                           ` Pavel Machek
2005-11-13 19:40                         ` Todd Poynor
2005-11-14 12:08                           ` Pavel Machek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox