From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54498) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YGrZZ-0000EQ-Pt for qemu-devel@nongnu.org; Thu, 29 Jan 2015 11:04:02 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YGrZU-00049J-Rd for qemu-devel@nongnu.org; Thu, 29 Jan 2015 11:04:01 -0500 Received: from cantor2.suse.de ([195.135.220.15]:56373 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YGrZU-00049C-M4 for qemu-devel@nongnu.org; Thu, 29 Jan 2015 11:03:56 -0500 Message-ID: <54CA59EB.5040005@suse.de> Date: Thu, 29 Jan 2015 17:03:55 +0100 From: Alexander Graf MIME-Version: 1.0 References: <1422538193-13648-1-git-send-email-arei.gonglei@huawei.com> <1422538193-13648-3-git-send-email-arei.gonglei@huawei.com> In-Reply-To: <1422538193-13648-3-git-send-email-arei.gonglei@huawei.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 2/2] bootdevice: add check in restore_boot_order() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: arei.gonglei@huawei.com, qemu-devel@nongnu.org Cc: dvaleev@suse.de, peter.huangpeng@huawei.com, armbru@redhat.com On 29.01.15 14:29, arei.gonglei@huawei.com wrote: > From: Gonglei > > If boot order is invaild or is set failed, > exit qemu. > > Signed-off-by: Gonglei Do we really want to kill the machine only because the boot device string doesn't validate? Alex > --- > bootdevice.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/bootdevice.c b/bootdevice.c > index 52d3f9e..8d05b8d 100644 > --- a/bootdevice.c > +++ b/bootdevice.c > @@ -94,6 +94,7 @@ void restore_boot_order(void *opaque) > { > char *normal_boot_order = opaque; > static int first = 1; > + Error *local_err = NULL; > > /* Restore boot order and remove ourselves after the first boot */ > if (first) { > @@ -101,7 +102,12 @@ void restore_boot_order(void *opaque) > return; > } > > - qemu_boot_set(normal_boot_order, NULL); > + qemu_boot_set(normal_boot_order, &local_err); > + if (local_err) { > + error_report("%s", error_get_pretty(local_err)); > + error_free(local_err); > + exit(1); > + } > > qemu_unregister_reset(restore_boot_order, normal_boot_order); > g_free(normal_boot_order); >