xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
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

  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).