From c57e4f2be8c66cd40d8c8a40a907a5a051f973df Mon Sep 17 00:00:00 2001 From: Jason Liu Date: Wed, 11 Aug 2010 12:39:06 +0800 Subject: ENGR00126158 GPMI: Fix error handling when no NAND found There will be one oops when no NAND found for GPMI, This patch fix it Signed-off-by:Jason Liu (cherry picked from commit 0fc02d10c3dc90051bfbbdd1208b79499f9329fd) --- drivers/mtd/nand/gpmi-nfc/gpmi-nfc-mil.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/mtd/nand/gpmi-nfc/gpmi-nfc-mil.c b/drivers/mtd/nand/gpmi-nfc/gpmi-nfc-mil.c index ac86597a07d8..50ba771853a4 100644 --- a/drivers/mtd/nand/gpmi-nfc/gpmi-nfc-mil.c +++ b/drivers/mtd/nand/gpmi-nfc/gpmi-nfc-mil.c @@ -2574,11 +2574,16 @@ int gpmi_nfc_mil_init(struct gpmi_nfc_data *this) exit_partitions: nand_release(&mil->mtd); exit_nand_scan: - mil->cmd_virt = 0; - mil->cmd_phys = ~0; + dma_free_coherent(dev, + this->nfc_geometry.payload_size_in_bytes, + mil->page_buffer_virt, mil->page_buffer_phys); + mil->page_buffer_virt = 0; + mil->page_buffer_phys = ~0; exit_buf_allocation: dma_free_coherent(dev, MIL_COMMAND_BUFFER_SIZE, - mil->cmd_virt, mil->cmd_phys); + mil->cmd_virt, mil->cmd_phys); + mil->cmd_virt = 0; + mil->cmd_phys = ~0; exit_cmd_allocation: return error; -- cgit v1.2.3