lightnvm: update bad block table format
authorMatias Bjørling <m@bjorling.me>
Mon, 16 Nov 2015 14:34:37 +0000 (15:34 +0100)
committerJens Axboe <axboe@fb.com>
Mon, 16 Nov 2015 22:20:25 +0000 (15:20 -0700)
commit11450469830f2481a9e7cb181609288d40f41323
tree1aef6904c2c988b7924aa53093836b2979f78f1f
parentaedf17f4515b12ba1cd73298e66baa69cf93010e
lightnvm: update bad block table format

The specification was changed to reflect a multi-value bad block table.
Instead of bit-based bad block table, the bad block table now allows
eight bad block categories. Currently four are defined:

 * Factory bad blocks
 * Grown bad blocks
 * Device-side reserved blocks
 * Host-side reserved blocks

The factory and grown bad blocks are the regular bad blocks. The
reserved blocks are either for internal use or external use. In
particular, the device-side reserved blocks allows the host to
bootstrap from a limited number of flash blocks. Reducing the flash
blocks to scan upon super block initialization.

Support for both get bad block table and set bad block table is added.

Signed-off-by: Matias Bjørling <m@bjorling.me>
Signed-off-by: Jens Axboe <axboe@fb.com>
drivers/lightnvm/gennvm.c
drivers/lightnvm/gennvm.h
drivers/nvme/host/lightnvm.c
include/linux/lightnvm.h