ubifs stability work

Use vmalloc when allocating memory to hold an entire eraseblock.
nand_scan_bbt was using vmalloc, but nand_update_bbt was using
kmalloc.

Increase the threshold of corrected bits before returning
UBI_IO_BITFLIPS from 18 to 72.

Change-Id: I6ee9156a3c7efa37e9fd73f1dbe8a6044ae66bad
diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
index 32de310..137e578 100644
--- a/drivers/mtd/nand/nand_base.c
+++ b/drivers/mtd/nand/nand_base.c
@@ -1448,7 +1448,7 @@
 		threshold = 4;
 		break;
 	case 224:
-		threshold = 18;
+		threshold = 72;
 		break;
 	default:
 		threshold = 0;
diff --git a/drivers/mtd/nand/nand_bbt.c b/drivers/mtd/nand/nand_bbt.c
index f024375..18e1b25 100644
--- a/drivers/mtd/nand/nand_bbt.c
+++ b/drivers/mtd/nand/nand_bbt.c
@@ -1202,7 +1202,7 @@
 	/* Allocate a temporary buffer for one eraseblock incl. oob */
 	len = (1 << this->bbt_erase_shift);
 	len += (len >> this->page_shift) * mtd->oobsize;
-	buf = kmalloc(len, GFP_KERNEL);
+	buf = vmalloc(len);
 	if (!buf)
 		return -ENOMEM;
 
@@ -1231,7 +1231,7 @@
 	}
 
  out:
-	kfree(buf);
+	vfree(buf);
 	return res;
 }