Re: [PATCH v2] kvm tools: remove redundant "if" condition

2013-01-19 Thread Cong Ding
On Sat, Jan 19, 2013 at 10:58:33AM +0200, Pekka Enberg wrote:
> On Wed, Jan 16, 2013 at 6:52 PM, Cong Ding  wrote:
> > After we check (state.kcount != 0), state.kcount has to be 0 in all the 
> > "else"
> > branchs.
> >
> > Signed-off-by: Cong Ding 
> > ---
> >  tools/kvm/hw/i8042.c |2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/tools/kvm/hw/i8042.c b/tools/kvm/hw/i8042.c
> > index 9f8be6a..9035732 100644
> > --- a/tools/kvm/hw/i8042.c
> > +++ b/tools/kvm/hw/i8042.c
> > @@ -189,7 +189,7 @@ static u32 kbd_read_data(void)
> > state.mcount--;
> > kvm__irq_line(state.kvm, AUX_IRQ, 0);
> > kbd_update_irq();
> > -   } else if (state.kcount == 0) {
> > +   } else {
> > i = state.kread - 1;
> > if (i < 0)
> > i = QUEUE_SIZE;
> 
> This doesn't look right. The 'kcount' field is an int so the value can
> be negative.
But the former check is "state.kcount != 0" as I described in the commit
message. Notice the difference between variable names in the "if" condition: the
first one is kcount, the second one is mcount, and the third one is same as the
first one kcount.

Ok, the original code is
if (state.kcount != 0) {
/* do something when (state.kcount != 0) */
} else if (state.mcount > 0) {
/* do something when (state.kcount == 0 && state.mount > 0) */
} else if (state.kcount == 0) {
/* do something when (state.kcount == 0 && state.mount <= 0) */
}
For the third branch, it runs when state.kcount == 0 and state.mount <= 0,
it's not necessary to ensure state.kcount == 0 again.

- cong

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v2] kvm tools: remove redundant "if" condition

2013-01-16 Thread Cong Ding
After we check (state.kcount != 0), state.kcount has to be 0 in all the "else"
branchs.

Signed-off-by: Cong Ding 
---
 tools/kvm/hw/i8042.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/kvm/hw/i8042.c b/tools/kvm/hw/i8042.c
index 9f8be6a..9035732 100644
--- a/tools/kvm/hw/i8042.c
+++ b/tools/kvm/hw/i8042.c
@@ -189,7 +189,7 @@ static u32 kbd_read_data(void)
state.mcount--;
kvm__irq_line(state.kvm, AUX_IRQ, 0);
kbd_update_irq();
-   } else if (state.kcount == 0) {
+   } else {
i = state.kread - 1;
if (i < 0)
i = QUEUE_SIZE;
-- 
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v2] kvm tools: close opened file

2013-01-16 Thread Cong Ding
The file should be closed before return.

Signed-off-by: Cong Ding 
---
 tools/kvm/builtin-setup.c |6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tools/kvm/builtin-setup.c b/tools/kvm/builtin-setup.c
index c5b0566..8b45c56 100644
--- a/tools/kvm/builtin-setup.c
+++ b/tools/kvm/builtin-setup.c
@@ -159,12 +159,12 @@ static int copy_passwd(const char *guestfs_name)
return -1;
 
ret = fprintf(file, "root:x:0:0:root:/root:/bin/sh\n");
-   if (ret < 0)
-   return ret;
+   if (ret > 0)
+   ret = 0;
 
fclose(file);
 
-   return 0;
+   return ret;
 }
 
 static int make_guestfs_symlink(const char *guestfs_name, const char *path)
-- 
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] kvm: remove redundant "if" condition

2013-01-15 Thread Cong Ding
After we check (state.kcount != 0), state.kcount has to be 0 in all the "else"
branchs.

Signed-off-by: Cong Ding 
---
 tools/kvm/hw/i8042.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/kvm/hw/i8042.c b/tools/kvm/hw/i8042.c
index 9f8be6a..9035732 100644
--- a/tools/kvm/hw/i8042.c
+++ b/tools/kvm/hw/i8042.c
@@ -189,7 +189,7 @@ static u32 kbd_read_data(void)
state.mcount--;
kvm__irq_line(state.kvm, AUX_IRQ, 0);
kbd_update_irq();
-   } else if (state.kcount == 0) {
+   } else {
i = state.kread - 1;
if (i < 0)
i = QUEUE_SIZE;
-- 
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] kvm: close opened file

2013-01-15 Thread Cong Ding
The file should be closed before return.

Signed-off-by: Cong Ding 
---
 tools/kvm/builtin-setup.c |6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tools/kvm/builtin-setup.c b/tools/kvm/builtin-setup.c
index c5b0566..8b45c56 100644
--- a/tools/kvm/builtin-setup.c
+++ b/tools/kvm/builtin-setup.c
@@ -159,12 +159,12 @@ static int copy_passwd(const char *guestfs_name)
return -1;
 
ret = fprintf(file, "root:x:0:0:root:/root:/bin/sh\n");
-   if (ret < 0)
-   return ret;
+   if (ret > 0)
+   ret = 0;
 
fclose(file);
 
-   return 0;
+   return ret;
 }
 
 static int make_guestfs_symlink(const char *guestfs_name, const char *path)
-- 
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] s390: kvm/sigp.c: fix memory leakage

2013-01-14 Thread Cong Ding
the variable inti should be freed in the branch CPUSTAT_STOPPED.

Signed-off-by: Cong Ding 
---
 arch/s390/kvm/sigp.c |4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/arch/s390/kvm/sigp.c b/arch/s390/kvm/sigp.c
index 461e841..1c48ab2 100644
--- a/arch/s390/kvm/sigp.c
+++ b/arch/s390/kvm/sigp.c
@@ -137,8 +137,10 @@ static int __inject_sigp_stop(struct 
kvm_s390_local_interrupt *li, int action)
inti->type = KVM_S390_SIGP_STOP;
 
spin_lock_bh(&li->lock);
-   if ((atomic_read(li->cpuflags) & CPUSTAT_STOPPED))
+   if ((atomic_read(li->cpuflags) & CPUSTAT_STOPPED)) {
+   kfree(inti);
goto out;
+   }
list_add_tail(&inti->list, &li->list);
atomic_set(&li->active, 1);
atomic_set_mask(CPUSTAT_STOP_INT, li->cpuflags);
-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html