diff mbox

[PATCHv3,1/2] Move parallel_hds_isa_init to hw/isa/isa-bus.c

Message ID 9c01b2089bb2a10d8674d4c79a81b88d3f2866d9.1431411260.git.mrezanin@redhat.com
State New
Headers show

Commit Message

Miroslav Rezanina May 12, 2015, 6:22 a.m. UTC
From: Miroslav Rezanina <mrezanin@redhat.com>

Disabling CONFIG_PARALLEL cause removing parallel_hds_isa_init defined in
parallel.c. This function is called during initialization of some boards so
disabling CONFIG_PARALLEL cause build failure.

This patch moves parallel_hds_isa_init to hw/isa/isa-bus.c so it is included
in case of disabled CONFIG_PARALLEL. Build is successful but qemu will abort
with "Unknown device" error when function is called.

Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
---
 hw/char/parallel.c | 25 -------------------------
 hw/isa/isa-bus.c   | 29 +++++++++++++++++++++++++++++
 2 files changed, 29 insertions(+), 25 deletions(-)

Comments

Paolo Bonzini May 12, 2015, 1:22 p.m. UTC | #1
On 12/05/2015 08:22, mrezanin@redhat.com wrote:
> From: Miroslav Rezanina <mrezanin@redhat.com>
> 
> Disabling CONFIG_PARALLEL cause removing parallel_hds_isa_init defined in
> parallel.c. This function is called during initialization of some boards so
> disabling CONFIG_PARALLEL cause build failure.
> 
> This patch moves parallel_hds_isa_init to hw/isa/isa-bus.c so it is included
> in case of disabled CONFIG_PARALLEL. Build is successful but qemu will abort
> with "Unknown device" error when function is called.
> 
> Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
> ---
>  hw/char/parallel.c | 25 -------------------------
>  hw/isa/isa-bus.c   | 29 +++++++++++++++++++++++++++++
>  2 files changed, 29 insertions(+), 25 deletions(-)
> 
> diff --git a/hw/char/parallel.c b/hw/char/parallel.c
> index 4079554..c2b553f 100644
> --- a/hw/char/parallel.c
> +++ b/hw/char/parallel.c
> @@ -641,28 +641,3 @@ static void parallel_register_types(void)
>  }
>  
>  type_init(parallel_register_types)
> -
> -static void parallel_init(ISABus *bus, int index, CharDriverState *chr)
> -{
> -    DeviceState *dev;
> -    ISADevice *isadev;
> -
> -    isadev = isa_create(bus, "isa-parallel");
> -    dev = DEVICE(isadev);
> -    qdev_prop_set_uint32(dev, "index", index);
> -    qdev_prop_set_chr(dev, "chardev", chr);
> -    qdev_init_nofail(dev);
> -}
> -
> -void parallel_hds_isa_init(ISABus *bus, int n)
> -{
> -    int i;
> -
> -    assert(n <= MAX_PARALLEL_PORTS);
> -
> -    for (i = 0; i < n; i++) {
> -        if (parallel_hds[i]) {
> -            parallel_init(bus, i, parallel_hds[i]);
> -        }
> -    }
> -}
> diff --git a/hw/isa/isa-bus.c b/hw/isa/isa-bus.c
> index 825aa62..94f645c 100644
> --- a/hw/isa/isa-bus.c
> +++ b/hw/isa/isa-bus.c
> @@ -21,6 +21,7 @@
>  #include "hw/sysbus.h"
>  #include "sysemu/sysemu.h"
>  #include "hw/isa/isa.h"
> +#include "hw/i386/pc.h"
>  
>  static ISABus *isabus;
>  
> @@ -267,3 +268,31 @@ MemoryRegion *isa_address_space_io(ISADevice *dev)
>  }
>  
>  type_init(isabus_register_types)
> +
> +static void parallel_init(ISABus *bus, int index, CharDriverState *chr)
> +{
> +    DeviceState *dev;
> +    ISADevice *isadev;
> +
> +    isadev = isa_try_create(bus, "isa-parallel");
> +    if (!isadev) {
> +       return;
> +    }
> +    dev = DEVICE(isadev);
> +    qdev_prop_set_uint32(dev, "index", index);
> +    qdev_prop_set_chr(dev, "chardev", chr);
> +    qdev_init_nofail(dev);
> +}
> +
> +void parallel_hds_isa_init(ISABus *bus, int n)
> +{
> +    int i;
> +
> +    assert(n <= MAX_PARALLEL_PORTS);
> +
> +    for (i = 0; i < n; i++) {
> +        if (parallel_hds[i]) {
> +            parallel_init(bus, i, parallel_hds[i]);
> +        }
> +    }
> +}
> 

ACK

Paolo
Markus Armbruster May 13, 2015, 8:01 a.m. UTC | #2
mrezanin@redhat.com writes:

> From: Miroslav Rezanina <mrezanin@redhat.com>
>
> Disabling CONFIG_PARALLEL cause removing parallel_hds_isa_init defined in
> parallel.c. This function is called during initialization of some boards so
> disabling CONFIG_PARALLEL cause build failure.
>
> This patch moves parallel_hds_isa_init to hw/isa/isa-bus.c so it is included
> in case of disabled CONFIG_PARALLEL. Build is successful but qemu will abort
> with "Unknown device" error when function is called.

Can't reproduce this error.  Test case: compile with CONFIG_PARALLEL=y
taken out, run like

$ qemu-system-x86_64 -nodefaults -S -display none -parallel stdio

> Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
> ---
>  hw/char/parallel.c | 25 -------------------------
>  hw/isa/isa-bus.c   | 29 +++++++++++++++++++++++++++++
>  2 files changed, 29 insertions(+), 25 deletions(-)
>
> diff --git a/hw/char/parallel.c b/hw/char/parallel.c
> index 4079554..c2b553f 100644
> --- a/hw/char/parallel.c
> +++ b/hw/char/parallel.c
> @@ -641,28 +641,3 @@ static void parallel_register_types(void)
>  }
>  
>  type_init(parallel_register_types)
> -
> -static void parallel_init(ISABus *bus, int index, CharDriverState *chr)
> -{
> -    DeviceState *dev;
> -    ISADevice *isadev;
> -
> -    isadev = isa_create(bus, "isa-parallel");
> -    dev = DEVICE(isadev);
> -    qdev_prop_set_uint32(dev, "index", index);
> -    qdev_prop_set_chr(dev, "chardev", chr);
> -    qdev_init_nofail(dev);
> -}
> -
> -void parallel_hds_isa_init(ISABus *bus, int n)
> -{
> -    int i;
> -
> -    assert(n <= MAX_PARALLEL_PORTS);
> -
> -    for (i = 0; i < n; i++) {
> -        if (parallel_hds[i]) {
> -            parallel_init(bus, i, parallel_hds[i]);
> -        }
> -    }
> -}
> diff --git a/hw/isa/isa-bus.c b/hw/isa/isa-bus.c
> index 825aa62..94f645c 100644
> --- a/hw/isa/isa-bus.c
> +++ b/hw/isa/isa-bus.c
> @@ -21,6 +21,7 @@
>  #include "hw/sysbus.h"
>  #include "sysemu/sysemu.h"
>  #include "hw/isa/isa.h"
> +#include "hw/i386/pc.h"
>  
>  static ISABus *isabus;
>  
> @@ -267,3 +268,31 @@ MemoryRegion *isa_address_space_io(ISADevice *dev)
>  }
>  
>  type_init(isabus_register_types)
> +
> +static void parallel_init(ISABus *bus, int index, CharDriverState *chr)
> +{
> +    DeviceState *dev;
> +    ISADevice *isadev;
> +
> +    isadev = isa_try_create(bus, "isa-parallel");
> +    if (!isadev) {
> +       return;
> +    }

Not just code motion!  You change the code to ignore the error.

If that's what we want, the commit message needs fixing.

> +    dev = DEVICE(isadev);
> +    qdev_prop_set_uint32(dev, "index", index);
> +    qdev_prop_set_chr(dev, "chardev", chr);
> +    qdev_init_nofail(dev);
> +}
> +
> +void parallel_hds_isa_init(ISABus *bus, int n)
> +{
> +    int i;
> +
> +    assert(n <= MAX_PARALLEL_PORTS);
> +
> +    for (i = 0; i < n; i++) {
> +        if (parallel_hds[i]) {
> +            parallel_init(bus, i, parallel_hds[i]);
> +        }
> +    }
> +}
Miroslav Rezanina May 13, 2015, 8:57 a.m. UTC | #3
On Wed, May 13, 2015 at 10:01:12AM +0200, Markus Armbruster wrote:
> mrezanin@redhat.com writes:
> 
> > From: Miroslav Rezanina <mrezanin@redhat.com>
> >
> > Disabling CONFIG_PARALLEL cause removing parallel_hds_isa_init defined in
> > parallel.c. This function is called during initialization of some boards so
> > disabling CONFIG_PARALLEL cause build failure.
> >
> > This patch moves parallel_hds_isa_init to hw/isa/isa-bus.c so it is included
> > in case of disabled CONFIG_PARALLEL. Build is successful but qemu will abort
> > with "Unknown device" error when function is called.
> 
> Can't reproduce this error.  Test case: compile with CONFIG_PARALLEL=y
> taken out, run like
> 
> $ qemu-system-x86_64 -nodefaults -S -display none -parallel stdio
> 
> > Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
> > ---
> >  hw/char/parallel.c | 25 -------------------------
> >  hw/isa/isa-bus.c   | 29 +++++++++++++++++++++++++++++
> >  2 files changed, 29 insertions(+), 25 deletions(-)
> >
> > diff --git a/hw/char/parallel.c b/hw/char/parallel.c
> > index 4079554..c2b553f 100644
> > --- a/hw/char/parallel.c
> > +++ b/hw/char/parallel.c
> > @@ -641,28 +641,3 @@ static void parallel_register_types(void)
> >  }
> >  
> >  type_init(parallel_register_types)
> > -
> > -static void parallel_init(ISABus *bus, int index, CharDriverState *chr)
> > -{
> > -    DeviceState *dev;
> > -    ISADevice *isadev;
> > -
> > -    isadev = isa_create(bus, "isa-parallel");
> > -    dev = DEVICE(isadev);
> > -    qdev_prop_set_uint32(dev, "index", index);
> > -    qdev_prop_set_chr(dev, "chardev", chr);
> > -    qdev_init_nofail(dev);
> > -}
> > -
> > -void parallel_hds_isa_init(ISABus *bus, int n)
> > -{
> > -    int i;
> > -
> > -    assert(n <= MAX_PARALLEL_PORTS);
> > -
> > -    for (i = 0; i < n; i++) {
> > -        if (parallel_hds[i]) {
> > -            parallel_init(bus, i, parallel_hds[i]);
> > -        }
> > -    }
> > -}
> > diff --git a/hw/isa/isa-bus.c b/hw/isa/isa-bus.c
> > index 825aa62..94f645c 100644
> > --- a/hw/isa/isa-bus.c
> > +++ b/hw/isa/isa-bus.c
> > @@ -21,6 +21,7 @@
> >  #include "hw/sysbus.h"
> >  #include "sysemu/sysemu.h"
> >  #include "hw/isa/isa.h"
> > +#include "hw/i386/pc.h"
> >  
> >  static ISABus *isabus;
> >  
> > @@ -267,3 +268,31 @@ MemoryRegion *isa_address_space_io(ISADevice *dev)
> >  }
> >  
> >  type_init(isabus_register_types)
> > +
> > +static void parallel_init(ISABus *bus, int index, CharDriverState *chr)
> > +{
> > +    DeviceState *dev;
> > +    ISADevice *isadev;
> > +
> > +    isadev = isa_try_create(bus, "isa-parallel");
> > +    if (!isadev) {
> > +       return;
> > +    }
> 
> Not just code motion!  You change the code to ignore the error.
> 
> If that's what we want, the commit message needs fixing.

Ouch,this is mixed in change from different code version. Intention was to move 
code only. This is the reason to different behavior. I will send fixed
version.

Mirek
> 
> > +    dev = DEVICE(isadev);
> > +    qdev_prop_set_uint32(dev, "index", index);
> > +    qdev_prop_set_chr(dev, "chardev", chr);
> > +    qdev_init_nofail(dev);
> > +}
> > +
> > +void parallel_hds_isa_init(ISABus *bus, int n)
> > +{
> > +    int i;
> > +
> > +    assert(n <= MAX_PARALLEL_PORTS);
> > +
> > +    for (i = 0; i < n; i++) {
> > +        if (parallel_hds[i]) {
> > +            parallel_init(bus, i, parallel_hds[i]);
> > +        }
> > +    }
> > +}
diff mbox

Patch

diff --git a/hw/char/parallel.c b/hw/char/parallel.c
index 4079554..c2b553f 100644
--- a/hw/char/parallel.c
+++ b/hw/char/parallel.c
@@ -641,28 +641,3 @@  static void parallel_register_types(void)
 }
 
 type_init(parallel_register_types)
-
-static void parallel_init(ISABus *bus, int index, CharDriverState *chr)
-{
-    DeviceState *dev;
-    ISADevice *isadev;
-
-    isadev = isa_create(bus, "isa-parallel");
-    dev = DEVICE(isadev);
-    qdev_prop_set_uint32(dev, "index", index);
-    qdev_prop_set_chr(dev, "chardev", chr);
-    qdev_init_nofail(dev);
-}
-
-void parallel_hds_isa_init(ISABus *bus, int n)
-{
-    int i;
-
-    assert(n <= MAX_PARALLEL_PORTS);
-
-    for (i = 0; i < n; i++) {
-        if (parallel_hds[i]) {
-            parallel_init(bus, i, parallel_hds[i]);
-        }
-    }
-}
diff --git a/hw/isa/isa-bus.c b/hw/isa/isa-bus.c
index 825aa62..94f645c 100644
--- a/hw/isa/isa-bus.c
+++ b/hw/isa/isa-bus.c
@@ -21,6 +21,7 @@ 
 #include "hw/sysbus.h"
 #include "sysemu/sysemu.h"
 #include "hw/isa/isa.h"
+#include "hw/i386/pc.h"
 
 static ISABus *isabus;
 
@@ -267,3 +268,31 @@  MemoryRegion *isa_address_space_io(ISADevice *dev)
 }
 
 type_init(isabus_register_types)
+
+static void parallel_init(ISABus *bus, int index, CharDriverState *chr)
+{
+    DeviceState *dev;
+    ISADevice *isadev;
+
+    isadev = isa_try_create(bus, "isa-parallel");
+    if (!isadev) {
+       return;
+    }
+    dev = DEVICE(isadev);
+    qdev_prop_set_uint32(dev, "index", index);
+    qdev_prop_set_chr(dev, "chardev", chr);
+    qdev_init_nofail(dev);
+}
+
+void parallel_hds_isa_init(ISABus *bus, int n)
+{
+    int i;
+
+    assert(n <= MAX_PARALLEL_PORTS);
+
+    for (i = 0; i < n; i++) {
+        if (parallel_hds[i]) {
+            parallel_init(bus, i, parallel_hds[i]);
+        }
+    }
+}