[PATCH] mtd: nand: fix shutdown/reboot for multi-chip systems

Brian Norris computersforpeace at gmail.com
Mon Nov 16 10:52:51 PST 2015


On Mon, Nov 09, 2015 at 04:37:28PM -0800, Brian Norris wrote:
> If multiple NAND chips are registered to the same controller, then when
> rebooting the system, the first one will grab the controller lock, while
> the second will wait forever for the first one to release it. i.e., a
> classic deadlock.
> 
> This problem was solved for a similar case (suspend/resume) back in
> commit 6b0d9a841249 ("mtd: nand: fix multi-chip suspend problem"), and
> the shutdown state really isn't much different for us, so rather than
> adding a new special case to nand_get_device(), we can just overload the
> FL_PM_SUSPENDED state.
> 
> Now, multiple chips can "get" the same controller lock (preventing
> further I/O), while we still allow other chips to pass through
> nand_shutdown().
> 
> Original report:
> http://thread.gmane.org/gmane.linux.drivers.mtd/59726
> http://lists.infradead.org/pipermail/linux-mtd/2015-July/059992.html
> 
> Fixes: 72ea403669c7 ("mtd: nand: added nand_shutdown")
> Reported-by: Andrew E. Mileski <andrewm at isoar.ca>
> Signed-off-by: Brian Norris <computersforpeace at gmail.com>
> Cc: Scott Branden <sbranden at broadcom.com>
> Cc: Andrew E. Mileski <andrewm at isoar.ca>

Pushed to linux-mtd.git



More information about the linux-mtd mailing list