From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44671) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bpwhP-0001ZM-Q5 for qemu-devel@nongnu.org; Fri, 30 Sep 2016 08:13:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bpwhO-0007cO-Uf for qemu-devel@nongnu.org; Fri, 30 Sep 2016 08:13:55 -0400 From: Fam Zheng Date: Fri, 30 Sep 2016 20:10:06 +0800 Message-Id: <1475237406-26917-37-git-send-email-famz@redhat.com> In-Reply-To: <1475237406-26917-1-git-send-email-famz@redhat.com> References: <1475237406-26917-1-git-send-email-famz@redhat.com> Subject: [Qemu-devel] [PATCH v8 36/36] sd: Add 'lock-mode' property List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: berrange@redhat.com, John Snow , qemu-block@nongnu.org, Kevin Wolf , rjones@redhat.com, Jeff Cody , Max Reitz , Markus Armbruster , stefanha@redhat.com, den@openvz.org, pbonzini@redhat.com, eblake@redhat.com Signed-off-by: Fam Zheng --- hw/sd/sd.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 8e88e83..6c18fb8 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -124,6 +124,7 @@ struct SDState { qemu_irq readonly_cb; qemu_irq inserted_cb; BlockBackend *blk; + ImageLockMode lock_mode; bool enable; }; @@ -1886,6 +1887,7 @@ static void sd_instance_finalize(Object *obj) static void sd_realize(DeviceState *dev, Error **errp) { + Error *local_err = NULL; SDState *sd = SD_CARD(dev); if (sd->blk && blk_is_read_only(sd->blk)) { @@ -1894,12 +1896,18 @@ static void sd_realize(DeviceState *dev, Error **errp) } if (sd->blk) { + blk_lock_image(sd->blk, sd->lock_mode, &local_err); + if (local_err) { + error_propagate(errp, local_err); + return; + } blk_set_dev_ops(sd->blk, &sd_block_ops, sd); } } static Property sd_properties[] = { DEFINE_PROP_DRIVE("drive", SDState, blk), + DEFINE_PROP_LOCK_MODE("lock-mode", SDState, lock_mode), /* We do not model the chip select pin, so allow the board to select * whether card should be in SSI or MMC/SD mode. It is also up to the * board to ensure that ssi transfers only occur when the chip select -- 2.7.4