On Tue, 2015-11-24 at 14:14 -0600, Doug Goldstein wrote:
> Prefer using the character device over the proc file if the character
> device exists. This follows similar conversions of xenbus to avoid
> issues with FMODE_ATOMIC_POS added in Linux 3.14 and newer.
> 
> CC: Ian Jackson <ian.jack...@eu.citrix.com>
> CC: Stefano Stabellini <stefano.stabell...@eu.citrix.com>
> CC: Ian Campbell <ian.campb...@citrix.com>
> CC: Wei Liu <wei.l...@citrix.com>
> Signed-off-by: Doug Goldstein <car...@cardoe.com>
> ---
>  tools/libxc/xc_linux_osdep.c | 9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/tools/libxc/xc_linux_osdep.c b/tools/libxc/xc_linux_osdep.c
> index 76c55ff..c078b3d 100644
> --- a/tools/libxc/xc_linux_osdep.c
> +++ b/tools/libxc/xc_linux_osdep.c
> @@ -46,7 +46,14 @@
>  static xc_osdep_handle linux_privcmd_open(xc_interface *xch)
>  {
>      int flags, saved_errno;
> -    int fd = open("/proc/xen/privcmd", O_RDWR);
> +    int fd = open("/dev/xen/privcmd", O_RDWR); /* prefer this newer
> interface */
> +
> +    if ( fd == -1 && ( errno == ENOENT || errno == ENXIO ||
> +                       errno == ENODEV || errno == EACCES ))

This adds EACCESS to the set Ian suggested would be tolerable in his reply
to v1. I'm leaning towards thinking that if the device is present but not
openable by the current user then that's a system configuration error which
should be reported.

Anyone want to argue otherwise?

> +    {
> +        /* Fallback to /proc/xen/privcmd */
> +        fd = open("/proc/xen/privcmd", O_RDWR);
> +    }
>  
>      if ( fd == -1 )
>      {

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to