Patchwork [1/3] char: check for initial_reset_issued unnecessary

login
register
mail settings
Submitter Amit Shah
Date Oct. 7, 2009, 11:10 a.m.
Message ID <1254913840-10358-2-git-send-email-amit.shah@redhat.com>
Download mbox | patch
Permalink /patch/35259/
State Changes Requested
Headers show

Comments

Amit Shah - Oct. 7, 2009, 11:10 a.m.
At init, qemu_chr_reset is always called with initial_reset_issued set to 1.
So checking for it to be set is not necessary.

A later patch will make use of initial_reset_issued to send the reset event
only if the char device is opened instead of each time when qemu resets it

Signed-off-by: Amit Shah <amit.shah@redhat.com>
---
 qemu-char.c |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)
Amit Shah - Oct. 7, 2009, 12:15 p.m.
On (Wed) Oct 07 2009 [16:40:38], Amit Shah wrote:
> At init, qemu_chr_reset is always called with initial_reset_issued set to 1.
> So checking for it to be set is not necessary.
> 
> A later patch will make use of initial_reset_issued to send the reset event
> only if the char device is opened instead of each time when qemu resets it
> 
> Signed-off-by: Amit Shah <amit.shah@redhat.com>
> ---
>  qemu-char.c |    5 ++---
>  1 files changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/qemu-char.c b/qemu-char.c
> index 8084a67..99ab471 100644
> --- a/qemu-char.c
> +++ b/qemu-char.c
> @@ -127,7 +127,7 @@ static void qemu_chr_reset_bh(void *opaque)
>  
>  void qemu_chr_reset(CharDriverState *s)
>  {
> -    if (s->bh == NULL && initial_reset_issued) {
> +    if (s->bh == NULL) {
>  	s->bh = qemu_bh_new(qemu_chr_reset_bh, s);
>  	qemu_bh_schedule(s->bh);
>      }
> @@ -137,11 +137,10 @@ void qemu_chr_initial_reset(void)
>  {
>      CharDriverState *chr;
>  
> -    initial_reset_issued = 1;
> -
>      QTAILQ_FOREACH(chr, &chardevs, next) {
>          qemu_chr_reset(chr);
>      }
> +    initial_reset_issued = 1;
>  }

Actually this won't work since the actual reset is done in a
bh_schedule.

I'll have to find out another way of doing this.

		Amit

Patch

diff --git a/qemu-char.c b/qemu-char.c
index 8084a67..99ab471 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -127,7 +127,7 @@  static void qemu_chr_reset_bh(void *opaque)
 
 void qemu_chr_reset(CharDriverState *s)
 {
-    if (s->bh == NULL && initial_reset_issued) {
+    if (s->bh == NULL) {
 	s->bh = qemu_bh_new(qemu_chr_reset_bh, s);
 	qemu_bh_schedule(s->bh);
     }
@@ -137,11 +137,10 @@  void qemu_chr_initial_reset(void)
 {
     CharDriverState *chr;
 
-    initial_reset_issued = 1;
-
     QTAILQ_FOREACH(chr, &chardevs, next) {
         qemu_chr_reset(chr);
     }
+    initial_reset_issued = 1;
 }
 
 int qemu_chr_write(CharDriverState *s, const uint8_t *buf, int len)