diff options
author | Tim Deegan <tim@xen.org> | 2013-02-22 13:58:04 +0100 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2013-02-22 13:58:04 +0100 |
commit | c705547372325f22dcc8757d63d6d8494edf53ab (patch) | |
tree | 92f66ce101242ee483b06026c8b862d87c86f68c | |
parent | 020aedd5594c6842ba42cb942020b20bf7eab455 (diff) | |
download | xen-c705547372325f22dcc8757d63d6d8494edf53ab.tar.gz xen-c705547372325f22dcc8757d63d6d8494edf53ab.tar.bz2 xen-c705547372325f22dcc8757d63d6d8494edf53ab.zip |
xenoprof: avoid division by 0
Signed-off-by: Tim Deegan <tim@xen.org>
Acked-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Keir Fraser <keir@xen.org>
master changeset: 085f1f2d3aee1a35dfc7ca2f4423e51fa654010c
master date: 2013-02-15 09:42:02 +0100
-rw-r--r-- | xen/common/xenoprof.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/xen/common/xenoprof.c b/xen/common/xenoprof.c index ea4ebf1e16..6d34418bce 100644 --- a/xen/common/xenoprof.c +++ b/xen/common/xenoprof.c @@ -192,6 +192,13 @@ static int alloc_xenoprof_struct( unsigned max_max_samples; int i; + nvcpu = 0; + for_each_vcpu ( d, v ) + nvcpu++; + + if ( !nvcpu ) + return -EINVAL; + d->xenoprof = xmalloc(struct xenoprof); if ( d->xenoprof == NULL ) @@ -213,10 +220,6 @@ static int alloc_xenoprof_struct( memset(d->xenoprof->vcpu, 0, d->max_vcpus * sizeof(*d->xenoprof->vcpu)); - nvcpu = 0; - for_each_vcpu ( d, v ) - nvcpu++; - bufsize = sizeof(struct xenoprof_buf); i = sizeof(struct event_log); #ifdef CONFIG_COMPAT |