This patch extends OneNAND core code with support for OneNAND verify
write check. This is done by allocating the buffer for verify read
directly from the core code.
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
                                __func__);
                        return -ENOMEM;
                }
+#ifdef CONFIG_MTD_ONENAND_VERIFY_WRITE
+               this->verify_buf = kzalloc(mtd->writesize, GFP_KERNEL);
+               if (!this->verify_buf) {
+                       kfree(this->page_buf);
+                       return -ENOMEM;
+               }
+#endif
                this->options |= ONENAND_PAGEBUF_ALLOC;
        }
        if (!this->oob_buf) {
                kfree(this->bbm);
        }
        /* Buffers allocated by onenand_scan */
-       if (this->options & ONENAND_PAGEBUF_ALLOC)
+       if (this->options & ONENAND_PAGEBUF_ALLOC) {
                kfree(this->page_buf);
+#ifdef CONFIG_MTD_ONENAND_VERIFY_WRITE
+               kfree(this->verify_buf);
+#endif
+       }
        if (this->options & ONENAND_OOBBUF_ALLOC)
                kfree(this->oob_buf);
        kfree(mtd->eraseregions);
 
        flstate_t               state;
        unsigned char           *page_buf;
        unsigned char           *oob_buf;
+#ifdef CONFIG_MTD_ONENAND_VERIFY_WRITE
+       unsigned char           *verify_buf;
+#endif
 
        int                     subpagesize;
        struct nand_ecclayout   *ecclayout;