[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] libxl: cannot start guest
Christoph Egger wrote: On 05/23/12 12:11, Ian Campbell wrote:On Tue, 2012-05-22 at 16:32 +0100, Christoph Egger wrote:On 05/22/12 17:21, Ian Campbell wrote:On Tue, 2012-05-22 at 16:16 +0100, Christoph Egger wrote:On 05/22/12 16:20, Ian Campbell wrote:All the>= checks on *xcg_handle seem wrong to me. Really they should be checking != NULL, since otherwise they don't actually discriminate the two cases! Does making that change help?Yes, that helps! I can start guests again.Excellent, I assume you are going to submit the patch (i.e. I don't need to..)Yes, patch attached.I fixed up the commit message as follows. I'll apply if IanJ agrees or acks it.Thank you. Ian J. what do you say? Christoph8<----------------------------- From 6b43ca97f5f8c4fa9bf24101253af21bc66ddf96 Mon Sep 17 00:00:00 2001 From: Christoph Egger<Christoph.Egger@xxxxxxx> Date: Tue, 22 May 2012 17:32:21 +0200 Subject: [PATCH] xenstore: fix crash on platforms with no gntdev driver implementation. Fix pointer checks introduced in changeset 24757:aae516b78fce. Signed-off-by: Christoph Egger<Christoph.Egger@xxxxxxx> Acked-by: Ian Campbell<ian.campbell@xxxxxxxxxx> --- tools/xenstore/xenstored_domain.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/xenstore/xenstored_domain.c b/tools/xenstore/xenstored_domain.c index f8c822f..bf83d58 100644 --- a/tools/xenstore/xenstored_domain.c +++ b/tools/xenstore/xenstored_domain.c @@ -167,7 +167,7 @@ static int readchn(struct connection *conn, void *data, unsigned int len) static void *map_interface(domid_t domid, unsigned long mfn) { - if (*xcg_handle>= 0) { + if (*xcg_handle != NULL) { /* this is the preferred method */ return xc_gnttab_map_grant_ref(*xcg_handle, domid, GNTTAB_RESERVED_XENSTORE, PROT_READ|PROT_WRITE); @@ -179,7 +179,7 @@ static void *map_interface(domid_t domid, unsigned long mfn) static void unmap_interface(void *interface) { - if (*xcg_handle>= 0) + if (*xcg_handle != NULL) xc_gnttab_munmap(*xcg_handle, interface, 1); else munmap(interface, getpagesize()); I also see an error when starting xencommons on NetBSD: test# /usr/xen42/etc/rc.d/xencommons onestart Cleaning xenstore database.Starting xenservices: xenstored, xenconsoled, xenbackendd.xc: error: OSDEP: interface 2 (gnttab) not supported on this platform: Internal error Which is quite annoying, but I'm not really sure of the most elegant way to solve this. The error comes from tools/libxc/xc_private.c:177, so maybe just removing that message would be ok, or something like this: --- a/tools/libxc/xc_private.c +++ b/tools/libxc/xc_private.c @@ -265,8 +265,12 @@ int xc_evtchn_close(xc_evtchn *xce) xc_gnttab *xc_gnttab_open(xentoollog_logger *logger, unsigned open_flags) { +#ifndef __NetBSD__ return xc_interface_open_common(logger, NULL, open_flags, XC_OSDEP_GNTTAB); +#else + return NULL; +#endif } Which is not really pretty. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |