mtd: fix hang-up in cfi erase and read contention

David Woodhouse dwmw2 at infradead.org
Tue May 24 21:08:57 EDT 2011


On Thu, 2011-05-19 at 15:58 +0900, Tadashi Abe wrote:
> @@ -812,12 +812,9 @@ static int chip_ready (struct map_info *map, struct flchip *chip, unsigned long
>  			        break;
>  
>  			if (time_after(jiffies, timeo)) {
> -				/* Urgh. Resume and pretend we weren't here.  */
> -				map_write(map, CMD(0xd0), adr);
> -				/* Make sure we're in 'read status' mode if it had finished */
> -				map_write(map, CMD(0x70), adr);
> -				chip->state = FL_ERASING;
> -				chip->oldstate = FL_READY;
> +				/* Urgh. Resume and pretend we weren't here.
> +				 * Make sure we're in 'read status' mode if it had finished */
> +				put_chip(map, chip, adr);

I'm confused. You've removed the code which ensures that the chip is in
a known state.... why?

-- 
dwmw2




More information about the linux-mtd mailing list