Message ID | 1319624387-15707-1-git-send-email-xuhj@linux.vnet.ibm.com |
---|---|
State | New |
Headers | show |
On 2011-10-26 12:19, Xu He Jie wrote: > kvm_init didn't set return value after create vm failed. > > And kvm_ioctl(s, KVM_CREATE_VM, 0)'s return value can be < -1, > so change the check of vmfd at label 'err'. > > Signed-off-by: Xu He Jie <xuhj@linux.vnet.ibm.com> > --- > kvm-all.c | 3 ++- > 1 files changed, 2 insertions(+), 1 deletions(-) > > diff --git a/kvm-all.c b/kvm-all.c > index e7faf5c..70edb39 100644 > --- a/kvm-all.c > +++ b/kvm-all.c > @@ -739,6 +739,7 @@ int kvm_init(void) > fprintf(stderr, "Please add the 'switch_amode' kernel parameter to " > "your host kernel command line\n"); > #endif > + ret = -errno; kvm_ioctl returns -errno while that fprintf may overwrite it. Just set ret to s->vmfd. > goto err; > } > > @@ -797,7 +798,7 @@ int kvm_init(void) > > err: > if (s) { > - if (s->vmfd != -1) { > + if (s->vmfd >= 0) { > close(s->vmfd); > } > if (s->fd != -1) { That looks correct. The patch will probably flow via uq/master, so you should address Avi and Marcelo with v2. Thanks, Jan
于 2011年10月26日 19:03, Jan Kiszka 写道: > On 2011-10-26 12:19, Xu He Jie wrote: >> kvm_init didn't set return value after create vm failed. >> >> And kvm_ioctl(s, KVM_CREATE_VM, 0)'s return value can be< -1, >> so change the check of vmfd at label 'err'. >> >> Signed-off-by: Xu He Jie<xuhj@linux.vnet.ibm.com> >> --- >> kvm-all.c | 3 ++- >> 1 files changed, 2 insertions(+), 1 deletions(-) >> >> diff --git a/kvm-all.c b/kvm-all.c >> index e7faf5c..70edb39 100644 >> --- a/kvm-all.c >> +++ b/kvm-all.c >> @@ -739,6 +739,7 @@ int kvm_init(void) >> fprintf(stderr, "Please add the 'switch_amode' kernel parameter to " >> "your host kernel command line\n"); >> #endif >> + ret = -errno; > kvm_ioctl returns -errno while that fprintf may overwrite it. Just set > ret to s->vmfd. ok. > >> goto err; >> } >> >> @@ -797,7 +798,7 @@ int kvm_init(void) >> >> err: >> if (s) { >> - if (s->vmfd != -1) { >> + if (s->vmfd>= 0) { >> close(s->vmfd); >> } >> if (s->fd != -1) { > That looks correct. > > The patch will probably flow via uq/master, so you should address Avi > and Marcelo with v2. > > Thanks, > Jan > Thanks, Xu
diff --git a/kvm-all.c b/kvm-all.c index e7faf5c..70edb39 100644 --- a/kvm-all.c +++ b/kvm-all.c @@ -739,6 +739,7 @@ int kvm_init(void) fprintf(stderr, "Please add the 'switch_amode' kernel parameter to " "your host kernel command line\n"); #endif + ret = -errno; goto err; } @@ -797,7 +798,7 @@ int kvm_init(void) err: if (s) { - if (s->vmfd != -1) { + if (s->vmfd >= 0) { close(s->vmfd); } if (s->fd != -1) {
kvm_init didn't set return value after create vm failed. And kvm_ioctl(s, KVM_CREATE_VM, 0)'s return value can be < -1, so change the check of vmfd at label 'err'. Signed-off-by: Xu He Jie <xuhj@linux.vnet.ibm.com> --- kvm-all.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-)