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;
}