From: Chen Gang <gang.chen.5i5j@gmail.com>
To: stefano.stabellini@eu.citrix.com
Cc: QEMU Trivial <qemu-trivial@nongnu.org>,
xen-devel@lists.xensource.com, qemu-devel <qemu-devel@nongnu.org>
Subject: Re: [Qemu-trivial] [PATCH] xen-hvm.c: Improve the return method for xen_hvm_init()
Date: Wed, 03 Sep 2014 09:31:36 +0800 [thread overview]
Message-ID: <54066F78.7040101@gmail.com> (raw)
In-Reply-To: <5405EED9.2090701@gmail.com>
Oh, sorry, forgot Cc to qemu trivial.
Thanks.
On 9/3/14 0:22, Chen Gang wrote:
> When failure occurs, it need use "return -1" instead of exit(1), so can
> let upper caller has chance to print failure information, too, then user
> can know the failure result more clearly.
>
> xen_hvm_init() may also return -errno, which may let upper caller think
> more (e.g. free some other related resources and try again), although at
> present, all related upper callers still exit(1).
>
> It is not a normal function which does not release related resources, if
> return -1. So need give the related comments for it.
>
> It passes common test under fedora 20 x86_64:
>
> "./configure --enable-xen && make -j4 && make check"
> execute result: "echo $? == 0".
>
> Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com>
> ---
> xen-hvm.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/xen-hvm.c b/xen-hvm.c
> index 0d09940..35efec0 100644
> --- a/xen-hvm.c
> +++ b/xen-hvm.c
> @@ -978,6 +978,7 @@ static void xen_wakeup_notifier(Notifier *notifier, void *data)
> xc_set_hvm_param(xen_xc, xen_domid, HVM_PARAM_ACPI_S_STATE, 0);
> }
>
> +/* return value: 0 is OK, -errno is failure, -1 is critical issue -- exit(1) */
> int xen_hvm_init(ram_addr_t *below_4g_mem_size, ram_addr_t *above_4g_mem_size,
> MemoryRegion **ram_memory)
> {
> @@ -998,6 +999,7 @@ int xen_hvm_init(ram_addr_t *below_4g_mem_size, ram_addr_t *above_4g_mem_size,
> state->xenstore = xs_daemon_open();
> if (state->xenstore == NULL) {
> perror("xen: xenstore open");
> + xc_evtchn_close(state->xce_handle);
> g_free(state);
> return -errno;
> }
> @@ -1069,7 +1071,7 @@ int xen_hvm_init(ram_addr_t *below_4g_mem_size, ram_addr_t *above_4g_mem_size,
> /* Initialize backend core & drivers */
> if (xen_be_init() != 0) {
> fprintf(stderr, "%s: xen backend core setup failed\n", __FUNCTION__);
> - exit(1);
> + return -1;
> }
> xen_be_register("console", &xen_console_ops);
> xen_be_register("vkbd", &xen_kbdmouse_ops);
>
--
Chen Gang
Open, share, and attitude like air, water, and life which God blessed
WARNING: multiple messages have this Message-ID (diff)
From: Chen Gang <gang.chen.5i5j@gmail.com>
To: stefano.stabellini@eu.citrix.com
Cc: QEMU Trivial <qemu-trivial@nongnu.org>,
xen-devel@lists.xensource.com, qemu-devel <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH] xen-hvm.c: Improve the return method for xen_hvm_init()
Date: Wed, 03 Sep 2014 09:31:36 +0800 [thread overview]
Message-ID: <54066F78.7040101@gmail.com> (raw)
In-Reply-To: <5405EED9.2090701@gmail.com>
Oh, sorry, forgot Cc to qemu trivial.
Thanks.
On 9/3/14 0:22, Chen Gang wrote:
> When failure occurs, it need use "return -1" instead of exit(1), so can
> let upper caller has chance to print failure information, too, then user
> can know the failure result more clearly.
>
> xen_hvm_init() may also return -errno, which may let upper caller think
> more (e.g. free some other related resources and try again), although at
> present, all related upper callers still exit(1).
>
> It is not a normal function which does not release related resources, if
> return -1. So need give the related comments for it.
>
> It passes common test under fedora 20 x86_64:
>
> "./configure --enable-xen && make -j4 && make check"
> execute result: "echo $? == 0".
>
> Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com>
> ---
> xen-hvm.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/xen-hvm.c b/xen-hvm.c
> index 0d09940..35efec0 100644
> --- a/xen-hvm.c
> +++ b/xen-hvm.c
> @@ -978,6 +978,7 @@ static void xen_wakeup_notifier(Notifier *notifier, void *data)
> xc_set_hvm_param(xen_xc, xen_domid, HVM_PARAM_ACPI_S_STATE, 0);
> }
>
> +/* return value: 0 is OK, -errno is failure, -1 is critical issue -- exit(1) */
> int xen_hvm_init(ram_addr_t *below_4g_mem_size, ram_addr_t *above_4g_mem_size,
> MemoryRegion **ram_memory)
> {
> @@ -998,6 +999,7 @@ int xen_hvm_init(ram_addr_t *below_4g_mem_size, ram_addr_t *above_4g_mem_size,
> state->xenstore = xs_daemon_open();
> if (state->xenstore == NULL) {
> perror("xen: xenstore open");
> + xc_evtchn_close(state->xce_handle);
> g_free(state);
> return -errno;
> }
> @@ -1069,7 +1071,7 @@ int xen_hvm_init(ram_addr_t *below_4g_mem_size, ram_addr_t *above_4g_mem_size,
> /* Initialize backend core & drivers */
> if (xen_be_init() != 0) {
> fprintf(stderr, "%s: xen backend core setup failed\n", __FUNCTION__);
> - exit(1);
> + return -1;
> }
> xen_be_register("console", &xen_console_ops);
> xen_be_register("vkbd", &xen_kbdmouse_ops);
>
--
Chen Gang
Open, share, and attitude like air, water, and life which God blessed
WARNING: multiple messages have this Message-ID (diff)
From: Chen Gang <gang.chen.5i5j@gmail.com>
To: stefano.stabellini@eu.citrix.com
Cc: QEMU Trivial <qemu-trivial@nongnu.org>,
xen-devel@lists.xensource.com, qemu-devel <qemu-devel@nongnu.org>
Subject: Re: [PATCH] xen-hvm.c: Improve the return method for xen_hvm_init()
Date: Wed, 03 Sep 2014 09:31:36 +0800 [thread overview]
Message-ID: <54066F78.7040101@gmail.com> (raw)
In-Reply-To: <5405EED9.2090701@gmail.com>
Oh, sorry, forgot Cc to qemu trivial.
Thanks.
On 9/3/14 0:22, Chen Gang wrote:
> When failure occurs, it need use "return -1" instead of exit(1), so can
> let upper caller has chance to print failure information, too, then user
> can know the failure result more clearly.
>
> xen_hvm_init() may also return -errno, which may let upper caller think
> more (e.g. free some other related resources and try again), although at
> present, all related upper callers still exit(1).
>
> It is not a normal function which does not release related resources, if
> return -1. So need give the related comments for it.
>
> It passes common test under fedora 20 x86_64:
>
> "./configure --enable-xen && make -j4 && make check"
> execute result: "echo $? == 0".
>
> Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com>
> ---
> xen-hvm.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/xen-hvm.c b/xen-hvm.c
> index 0d09940..35efec0 100644
> --- a/xen-hvm.c
> +++ b/xen-hvm.c
> @@ -978,6 +978,7 @@ static void xen_wakeup_notifier(Notifier *notifier, void *data)
> xc_set_hvm_param(xen_xc, xen_domid, HVM_PARAM_ACPI_S_STATE, 0);
> }
>
> +/* return value: 0 is OK, -errno is failure, -1 is critical issue -- exit(1) */
> int xen_hvm_init(ram_addr_t *below_4g_mem_size, ram_addr_t *above_4g_mem_size,
> MemoryRegion **ram_memory)
> {
> @@ -998,6 +999,7 @@ int xen_hvm_init(ram_addr_t *below_4g_mem_size, ram_addr_t *above_4g_mem_size,
> state->xenstore = xs_daemon_open();
> if (state->xenstore == NULL) {
> perror("xen: xenstore open");
> + xc_evtchn_close(state->xce_handle);
> g_free(state);
> return -errno;
> }
> @@ -1069,7 +1071,7 @@ int xen_hvm_init(ram_addr_t *below_4g_mem_size, ram_addr_t *above_4g_mem_size,
> /* Initialize backend core & drivers */
> if (xen_be_init() != 0) {
> fprintf(stderr, "%s: xen backend core setup failed\n", __FUNCTION__);
> - exit(1);
> + return -1;
> }
> xen_be_register("console", &xen_console_ops);
> xen_be_register("vkbd", &xen_kbdmouse_ops);
>
--
Chen Gang
Open, share, and attitude like air, water, and life which God blessed
next prev parent reply other threads:[~2014-09-03 1:26 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-02 16:22 [Qemu-devel] [PATCH] xen-hvm.c: Improve the return method for xen_hvm_init() Chen Gang
2014-09-02 16:22 ` Chen Gang
2014-09-03 1:31 ` Chen Gang [this message]
2014-09-03 1:31 ` Chen Gang
2014-09-03 1:31 ` [Qemu-devel] " Chen Gang
2014-09-03 23:32 ` [Qemu-trivial] " Stefano Stabellini
2014-09-03 23:32 ` Stefano Stabellini
2014-09-03 23:32 ` [Qemu-devel] " Stefano Stabellini
2014-09-04 1:31 ` [Qemu-trivial] " Chen Gang
2014-09-04 1:31 ` Chen Gang
2014-09-04 1:31 ` [Qemu-devel] " Chen Gang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=54066F78.7040101@gmail.com \
--to=gang.chen.5i5j@gmail.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-trivial@nongnu.org \
--cc=stefano.stabellini@eu.citrix.com \
--cc=xen-devel@lists.xensource.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.