From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
To: Ian Campbell <ian.campbell@citrix.com>
Cc: elena.ufimtseva@oracle.com, wei.liu2@citrix.com,
stefano.stabellini@eu.citrix.com, andrew.cooper3@citrix.com,
dario.faggioli@citrix.com, ian.jackson@eu.citrix.com,
xen-devel@lists.xen.org, jbeulich@suse.com, keir@xen.org
Subject: Re: [PATCH v5 7/8] libxl/libxc: Move libxl_get_numainfo()'s hypercall buffer management to libxc
Date: Fri, 20 Mar 2015 10:31:39 -0400 [thread overview]
Message-ID: <550C2F4B.8080508@oracle.com> (raw)
In-Reply-To: <1426859767.21742.194.camel@citrix.com>
On 03/20/2015 09:56 AM, Ian Campbell wrote:
> On Thu, 2015-03-19 at 17:54 -0400, Boris Ostrovsky wrote:
>> diff --git a/tools/libxc/xc_misc.c b/tools/libxc/xc_misc.c
>> index 411128e..607ae61 100644
>> --- a/tools/libxc/xc_misc.c
>> +++ b/tools/libxc/xc_misc.c
>> @@ -209,22 +209,49 @@ out:
>> return ret;
>> }
>>
>> -int xc_numainfo(xc_interface *xch,
>> - xc_numainfo_t *put_info)
>> +int xc_numainfo(xc_interface *xch, unsigned *max_nodes,
>> + xc_meminfo_t *meminfo, uint32_t *distance)
>> {
>> int ret;
>> DECLARE_SYSCTL;
>> + DECLARE_HYPERCALL_BOUNCE(meminfo, *max_nodes * sizeof(*meminfo),
>> + XC_HYPERCALL_BUFFER_BOUNCE_OUT);
>> + DECLARE_HYPERCALL_BOUNCE(distance,
>> + *max_nodes * *max_nodes * sizeof(*distance),
>> + XC_HYPERCALL_BUFFER_BOUNCE_OUT);
>>
>> - sysctl.cmd = XEN_SYSCTL_numainfo;
>> + if (meminfo && distance) {
>> + if ((ret = xc_hypercall_bounce_pre(xch, meminfo)))
>> + goto out;
>> + if ((ret = xc_hypercall_bounce_pre(xch, distance)))
>> + goto out;
> Same comment about handling NULL as before.
>
> In addition what if only one of meminfo and distance is NULL? Is that
> valid or do you need a !!meminfo ^ !!distance check?
I want to treat this as as an error here, which is why I have
} else if (meminfo || distance) {
errno = EINVAL;
return -1;
}
because the hypervisor will only attempt to copy numainfo things when
both are valid. Otherwise (i.e. even if only one is a NULL) it will
assume that this is a request for size. The alternative would be to add
another error there, which I decided not to do.
-boris
>
> Rests looks ok.
>
next prev parent reply other threads:[~2015-03-20 14:31 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-19 21:53 [PATCH v5 0/8] Display IO topology when PXM data is available (plus some cleanup) Boris Ostrovsky
2015-03-19 21:53 ` [PATCH v5 1/8] numa: __node_distance() should return u8 Boris Ostrovsky
2015-03-20 14:25 ` Konrad Rzeszutek Wilk
2015-03-19 21:53 ` [PATCH v5 2/8] pci: Stash device's PXM information in struct pci_dev Boris Ostrovsky
2015-03-20 14:01 ` Konrad Rzeszutek Wilk
2015-03-19 21:53 ` [PATCH v5 3/8] sysctl: Make XEN_SYSCTL_topologyinfo sysctl a little more efficient Boris Ostrovsky
2015-03-20 13:25 ` Ian Campbell
2015-03-20 14:00 ` Boris Ostrovsky
2015-03-20 14:10 ` Ian Campbell
2015-03-25 16:13 ` Andrew Cooper
2015-03-19 21:54 ` [PATCH v5 4/8] sysctl: Make XEN_SYSCTL_numainfo " Boris Ostrovsky
2015-03-20 13:26 ` Ian Campbell
2015-03-20 16:15 ` Jan Beulich
2015-03-19 21:54 ` [PATCH v5 5/8] sysctl: Add sysctl interface for querying PCI topology Boris Ostrovsky
2015-03-20 14:21 ` Konrad Rzeszutek Wilk
2015-03-20 16:26 ` Jan Beulich
2015-03-20 20:01 ` Boris Ostrovsky
2015-03-23 8:15 ` Jan Beulich
2015-03-23 13:58 ` Boris Ostrovsky
2015-03-19 21:54 ` [PATCH v5 6/8] libxl/libxc: Move libxl_get_cpu_topology()'s hypercall buffer management to libxc Boris Ostrovsky
2015-03-20 13:54 ` Ian Campbell
2015-03-20 14:24 ` Boris Ostrovsky
2015-03-20 14:30 ` Ian Campbell
2015-03-19 21:54 ` [PATCH v5 7/8] libxl/libxc: Move libxl_get_numainfo()'s " Boris Ostrovsky
2015-03-20 13:49 ` Konrad Rzeszutek Wilk
2015-03-20 14:10 ` Boris Ostrovsky
2015-03-20 14:21 ` Ian Campbell
2015-03-20 13:56 ` Ian Campbell
2015-03-20 14:31 ` Boris Ostrovsky [this message]
2015-03-20 14:46 ` Ian Campbell
2015-03-20 14:59 ` Boris Ostrovsky
2015-03-19 21:54 ` [PATCH v5 8/8] libxl: Add interface for querying hypervisor about PCI topology Boris Ostrovsky
2015-03-23 12:42 ` [PATCH v5 0/8] Display IO topology when PXM data is available (plus some cleanup) Julien Grall
2015-03-23 13:47 ` Boris Ostrovsky
2015-03-23 14:30 ` George Dunlap
2015-03-23 14:33 ` Boris Ostrovsky
2015-03-23 14:42 ` Ian Campbell
2015-03-23 15:26 ` Julien Grall
2015-03-23 15:27 ` Jan Beulich
2015-03-23 15:33 ` Boris Ostrovsky
2015-03-23 15:46 ` Jan Beulich
2015-03-23 14:30 ` Jan Beulich
2015-03-23 14:38 ` George Dunlap
2015-03-23 15:17 ` Ian Campbell
2015-03-23 15:21 ` Julien Grall
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=550C2F4B.8080508@oracle.com \
--to=boris.ostrovsky@oracle.com \
--cc=andrew.cooper3@citrix.com \
--cc=dario.faggioli@citrix.com \
--cc=elena.ufimtseva@oracle.com \
--cc=ian.campbell@citrix.com \
--cc=ian.jackson@eu.citrix.com \
--cc=jbeulich@suse.com \
--cc=keir@xen.org \
--cc=stefano.stabellini@eu.citrix.com \
--cc=wei.liu2@citrix.com \
--cc=xen-devel@lists.xen.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 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.