[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [PATCH v8 33/36] nand: Add 'lock-mode' property
From: |
Fam Zheng |
Subject: |
[Qemu-block] [PATCH v8 33/36] nand: Add 'lock-mode' property |
Date: |
Fri, 30 Sep 2016 20:10:03 +0800 |
Signed-off-by: Fam Zheng <address@hidden>
---
hw/block/nand.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/hw/block/nand.c b/hw/block/nand.c
index c69e675..75b5a68 100644
--- a/hw/block/nand.c
+++ b/hw/block/nand.c
@@ -64,6 +64,7 @@ struct NANDFlashState {
int page_shift, oob_shift, erase_shift, addr_shift;
uint8_t *storage;
BlockBackend *blk;
+ ImageLockMode lock_mode;
int mem_oob;
uint8_t cle, ale, ce, wp, gnd;
@@ -373,6 +374,7 @@ static void nand_realize(DeviceState *dev, Error **errp)
{
int pagesize;
NANDFlashState *s = NAND(dev);
+ Error *local_err = NULL;
s->buswidth = nand_flash_ids[s->chip_id].width >> 3;
s->size = nand_flash_ids[s->chip_id].size << 20;
@@ -407,6 +409,11 @@ static void nand_realize(DeviceState *dev, Error **errp)
error_setg(errp, "Can't use a read-only drive");
return;
}
+ blk_lock_image(s->blk, s->lock_mode, &local_err);
+ if (local_err) {
+ error_propagate(errp, local_err);
+ return;
+ }
if (blk_getlength(s->blk) >=
(s->pages << s->page_shift) + (s->pages << s->oob_shift)) {
pagesize = 0;
@@ -427,6 +434,7 @@ static Property nand_properties[] = {
DEFINE_PROP_UINT8("manufacturer_id", NANDFlashState, manf_id, 0),
DEFINE_PROP_UINT8("chip_id", NANDFlashState, chip_id, 0),
DEFINE_PROP_DRIVE("drive", NANDFlashState, blk),
+ DEFINE_PROP_LOCK_MODE("lock-mode", NANDFlashState, lock_mode),
DEFINE_PROP_END_OF_LIST(),
};
--
2.7.4
- [Qemu-block] [PATCH v8 23/36] iotests: 087: Disable image locking in cases where file is shared, (continued)
- [Qemu-block] [PATCH v8 23/36] iotests: 087: Disable image locking in cases where file is shared, Fam Zheng, 2016/09/30
- [Qemu-block] [PATCH v8 24/36] iotests: 087: Disable image locking in cases where file is shared, Fam Zheng, 2016/09/30
- [Qemu-block] [PATCH v8 25/36] iotests: 130: Check image info locklessly, Fam Zheng, 2016/09/30
- [Qemu-block] [PATCH v8 26/36] iotests: Disable image locking in 085, Fam Zheng, 2016/09/30
- [Qemu-block] [PATCH v8 27/36] tests: Use null-co:// instead of /dev/null, Fam Zheng, 2016/09/30
- [Qemu-block] [PATCH v8 28/36] qemu-iotests: Add test case 153 for image locking, Fam Zheng, 2016/09/30
- [Qemu-block] [PATCH v8 29/36] ahci: Use shared lock for shared storage migration, Fam Zheng, 2016/09/30
- [Qemu-block] [PATCH v8 30/36] tests/postcopy: Use shared lock for images, Fam Zheng, 2016/09/30
- [Qemu-block] [PATCH v8 31/36] fdc: Add lock-mode qdev properties, Fam Zheng, 2016/09/30
- [Qemu-block] [PATCH v8 32/36] m25p80: Add 'lock-mode' property, Fam Zheng, 2016/09/30
- [Qemu-block] [PATCH v8 33/36] nand: Add 'lock-mode' property,
Fam Zheng <=
- [Qemu-block] [PATCH v8 34/36] onenand: Add 'lock-mode' property, Fam Zheng, 2016/09/30
- [Qemu-block] [PATCH v8 35/36] spapr_nvram: Add 'lock-mode' property, Fam Zheng, 2016/09/30
- [Qemu-block] [PATCH v8 36/36] sd: Add 'lock-mode' property, Fam Zheng, 2016/09/30