From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Brezillon Subject: Re: [PATCH v5 01/58] mtd: nand: denali: add missing nand_release() call in denali_remove() Date: Fri, 11 Dec 2015 16:10:08 +0100 Message-ID: <20151211161008.056a0f47@bbrezillon> References: <1449734442-18672-2-git-send-email-boris.brezillon@free-electrons.com> <1449842554-29898-1-git-send-email-boris.brezillon@free-electrons.com> Reply-To: boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Return-path: In-Reply-To: <1449842554-29898-1-git-send-email-boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org> List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , To: David Woodhouse , Brian Norris , linux-mtd-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org Cc: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Jonathan Corbet , linux-doc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Hartley Sweeten , Ryan Mallon , Shawn Guo , Sascha Hauer , Imre Kaloz , Krzysztof Halasa , Tony Lindgren , linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Alexander Clouter , Thomas Petazzoni , Gregory CLEMENT , Jason Cooper , Sebastian Hesselbarth , Andrew Lunn , Daniel Mack , Haojian Zhuang , Robert Jarzmik , Marek Vasut , Steven Miao , Mikael List-Id: linux-omap@vger.kernel.org + Dinh (who made commit 2a0a288ec258) Also added back the Fixes tag. On Fri, 11 Dec 2015 15:02:34 +0100 Boris Brezillon wrote: > Unregister the NAND device from the NAND subsystem when removing a denali > NAND controller, otherwise the MTD attached to the NAND device is still > exposed by the MTD layer, and accesses to this device will likely crash > the system. > > Signed-off-by: Boris Brezillon Fixes: 2a0a288ec258 ("mtd: denali: split the generic driver and PCI layer") > --- > Changes since v4: > - remove Cc stable and fixes tags > - calculate the dma buffer size before calling nand_release() > > drivers/mtd/nand/denali.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/mtd/nand/denali.c b/drivers/mtd/nand/denali.c > index 67eb2be..fdfea05 100644 > --- a/drivers/mtd/nand/denali.c > +++ b/drivers/mtd/nand/denali.c > @@ -1622,9 +1622,11 @@ EXPORT_SYMBOL(denali_init); > /* driver exit point */ > void denali_remove(struct denali_nand_info *denali) > { > + int bufsize = denali->mtd.writesize + denali->mtd.oobsize; > + > + nand_release(&denali->mtd); > denali_irq_cleanup(denali->irq, denali); > - dma_unmap_single(denali->dev, denali->buf.dma_buf, > - denali->mtd.writesize + denali->mtd.oobsize, > + dma_unmap_single(denali->dev, denali->buf.dma_buf, bufsize, > DMA_BIDIRECTIONAL); > } > EXPORT_SYMBOL(denali_remove); -- Boris Brezillon, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com