From: Wei Liu <wei.liu2@citrix.com>
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org,
Ross Lagerwall <ross.lagerwall@citrix.com>,
Ian Jackson <ian.jackson@eu.citrix.com>,
Wei Liu <wei.liu2@citrix.com>
Subject: Re: [PATCH for-4.7 3/4] tools/xsplice: fix mixing system errno values with Xen ones.
Date: Fri, 29 Apr 2016 16:02:33 +0100 [thread overview]
Message-ID: <20160429150233.GC26957@citrix.com> (raw)
In-Reply-To: <1461939680-32574-4-git-send-email-roger.pau@citrix.com>
On Fri, Apr 29, 2016 at 04:21:19PM +0200, Roger Pau Monne wrote:
> Avoid using system errno values when comparing with Xen errno values.
>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> ---
> Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> Cc: Ross Lagerwall <ross.lagerwall@citrix.com>
> Cc: Ian Jackson <ian.jackson@eu.citrix.com>
> Cc: Wei Liu <wei.liu2@citrix.com>
> ---
> Using errno values inside of hypercall structs is not right IMHO, but there
> are already several occurrences of this. Although I'm adding the correct XEN_
> prefixes here, it's very likely that new additions/modifications to this
> file will not take this into account, breaking it for OSes != Linux.
This seems to be a rather thorny issue.
I have a gut feeling that returning XEN_ errno to userspace program is
layering violation. They should always be translated to OS level errno
by privcmd driver.
Aren't FreeBSD and NetBSD already doing that?
Wei.
> ---
> tools/misc/xen-xsplice.c | 8 +++++---
> 1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/tools/misc/xen-xsplice.c b/tools/misc/xen-xsplice.c
> index 695be7f..b31115c 100644
> --- a/tools/misc/xen-xsplice.c
> +++ b/tools/misc/xen-xsplice.c
> @@ -13,6 +13,8 @@
> #include <xenctrl.h>
> #include <xenstore.h>
>
> +#include <xen/errno.h>
> +
> static xc_interface *xch;
>
> void show_help(void)
> @@ -233,7 +235,7 @@ struct {
> .function = xc_xsplice_revert,
> },
> { .allow = XSPLICE_STATE_CHECKED,
> - .expected = -ENOENT,
> + .expected = -XEN_ENOENT,
> .name = "unload",
> .function = xc_xsplice_unload,
> },
> @@ -276,7 +278,7 @@ int action_func(int argc, char *argv[], unsigned int idx)
> name, errno, strerror(errno));
> return -1;
> }
> - if ( status.rc == -EAGAIN )
> + if ( status.rc == -XEN_EAGAIN )
> {
> fprintf(stderr, "%s failed. Operation already in progress\n", name);
> return -1;
> @@ -319,7 +321,7 @@ int action_func(int argc, char *argv[], unsigned int idx)
>
> if ( status.state != original_state )
> break;
> - if ( status.rc && status.rc != -EAGAIN )
> + if ( status.rc && status.rc != -XEN_EAGAIN )
> {
> rc = status.rc;
> break;
> --
> 2.6.4 (Apple Git-63)
>
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
next prev parent reply other threads:[~2016-04-29 15:03 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-29 14:21 [PATCH for-4.7 0/4] xsplice fixes Roger Pau Monne
2016-04-29 14:21 ` [PATCH for-4.7 1/4] xen: remove usage of ENODATA error code Roger Pau Monne
2016-04-29 14:44 ` Jan Beulich
2016-04-29 15:06 ` Roger Pau Monne
2016-04-29 16:19 ` Jan Beulich
2016-04-29 16:34 ` Roger Pau Monne
2016-04-29 16:42 ` Jan Beulich
2016-04-29 16:52 ` Roger Pau Monne
2016-05-02 6:22 ` Jan Beulich
2016-05-02 8:55 ` Roger Pau Monne
2016-05-02 9:06 ` Jan Beulich
2016-05-02 11:06 ` Roger Pau Monne
2016-04-29 14:21 ` [PATCH for-4.7 2/4] tools/xsplice: corrently use errno Roger Pau Monne
2016-04-29 14:57 ` Wei Liu
2016-04-29 15:07 ` Roger Pau Monne
2016-04-29 15:08 ` Wei Liu
2016-04-29 14:21 ` [PATCH for-4.7 3/4] tools/xsplice: fix mixing system errno values with Xen ones Roger Pau Monne
2016-04-29 15:02 ` Wei Liu [this message]
2016-04-29 15:11 ` Andrew Cooper
2016-04-29 15:28 ` Wei Liu
2016-04-29 15:12 ` Roger Pau Monne
2016-04-29 15:30 ` Wei Liu
2016-05-02 11:00 ` Wei Liu
2016-04-29 14:21 ` [PATCH for-4.7 4/4] xen/xsplice: remove OSABI check when loading a payload Roger Pau Monne
2016-04-29 14:48 ` Jan Beulich
2016-04-29 15:16 ` Roger Pau Monne
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=20160429150233.GC26957@citrix.com \
--to=wei.liu2@citrix.com \
--cc=ian.jackson@eu.citrix.com \
--cc=roger.pau@citrix.com \
--cc=ross.lagerwall@citrix.com \
--cc=xen-devel@lists.xenproject.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).