can't erase "sharp".

Takashi YOSHII takasi-y at ops.dti.ne.jp
Thu May 16 12:17:32 EDT 2002


I'm using drivers/mtd/chip/sharp.c (I know it's "obsolete", though).
And, found "eraseall" command doesn't work upon it.
The operation stops at 0%, and the command never exit.

I added few lines(see the patch below), and it works, perhaps...
I'm not sure if it is correct (especially when signals received).

Could someone tell me the right answer, please?
Regards,
/ yoshii

Index: drivers/mtd/chips/sharp.c
===================================================================
RCS file: /home/cvs/mtd/drivers/mtd/chips/sharp.c,v
retrieving revision 1.7
diff -u -r1.7 sharp.c
--- drivers/mtd/chips/sharp.c	13 Feb 2002 15:49:07 -0000	1.7
+++ drivers/mtd/chips/sharp.c	16 May 2002 15:25:33 -0000
@@ -409,7 +409,10 @@
 
 	while(len){
 		ret = sharp_erase_oneblock(map, &sharp->chips[chipnum], adr);
-		if(ret)return ret;
+		if(ret){
+			instr->state = MTD_ERASE_FAILED;
+			return ret;
+		}
 
 		adr += mtd->erasesize;
 		len -= mtd->erasesize;
@@ -421,6 +424,7 @@
 		}
 	}
 
+	instr->state = MTD_ERASE_DONE;
 	if(instr->callback)
 		instr->callback(instr);
 




More information about the linux-mtd mailing list