Self Answer & NAND driver wait queue init problem

Elizabeth Clarke eclarke at
Tue Jan 22 09:30:52 EST 2002

Kim Jong-chan wrote back in september last year!:
> Finally, I've solved the problem.
> The answer is that wq of struct nand_chip is not initialized.
> So I suggest... nand_scan() in nand.c
>     /* Initialize state and spinlock */
>     this->state = FL_READY;
>     spin_lock_init(&this->chip_lock);
>     /* Initialize wait queue : fixed by Adelinux */
> >   init_waitqueue_head(&this->wq);
>     /* De-select the device */
>     nand_deselect ();
> I've looked up MTD drivers code of other chips. And I think wq must be
> initialized. Otherwise, wake_up will kill the system.

I've just been caught by this too, so the/a fix didn't get into CVS...
Is Kim's fix a good one, if so can someone check it in please? If it
isn't what is the Right Thing to do?....


Chief Engineer - Software
Amino Communications Ltd
01954 784523 (Direct Line)

More information about the linux-mtd mailing list