qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-block] [PATCH v8 35/36] spapr_nvram: Add 'lock-mode' property


From: Fam Zheng
Subject: [Qemu-block] [PATCH v8 35/36] spapr_nvram: Add 'lock-mode' property
Date: Fri, 30 Sep 2016 20:10:05 +0800

Signed-off-by: Fam Zheng <address@hidden>
---
 hw/nvram/spapr_nvram.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/hw/nvram/spapr_nvram.c b/hw/nvram/spapr_nvram.c
index 4de5f70..b679e0b 100644
--- a/hw/nvram/spapr_nvram.c
+++ b/hw/nvram/spapr_nvram.c
@@ -39,6 +39,7 @@ typedef struct sPAPRNVRAM {
     uint32_t size;
     uint8_t *buf;
     BlockBackend *blk;
+    ImageLockMode lock_mode;
     VMChangeStateEntry *vmstate;
 } sPAPRNVRAM;
 
@@ -140,8 +141,14 @@ static void rtas_nvram_store(PowerPCCPU *cpu, 
sPAPRMachineState *spapr,
 static void spapr_nvram_realize(VIOsPAPRDevice *dev, Error **errp)
 {
     sPAPRNVRAM *nvram = VIO_SPAPR_NVRAM(dev);
+    Error *local_err = NULL;
 
     if (nvram->blk) {
+        blk_lock_image(nvram->blk, nvram->lock_mode, &local_err);
+        if (local_err) {
+            error_propagate(errp, local_err);
+            return;
+        }
         nvram->size = blk_getlength(nvram->blk);
     } else {
         nvram->size = DEFAULT_NVRAM_SIZE;
@@ -226,6 +233,7 @@ static const VMStateDescription vmstate_spapr_nvram = {
 static Property spapr_nvram_properties[] = {
     DEFINE_SPAPR_PROPERTIES(sPAPRNVRAM, sdev),
     DEFINE_PROP_DRIVE("drive", sPAPRNVRAM, blk),
+    DEFINE_PROP_LOCK_MODE("lock-mode", sPAPRNVRAM, lock_mode),
     DEFINE_PROP_END_OF_LIST(),
 };
 
-- 
2.7.4




reply via email to

[Prev in Thread] Current Thread [Next in Thread]