Patchwork Fix QEMU_WARN_UNUSED_RESULT

login
register
mail settings
Submitter Kevin Wolf
Date Jan. 15, 2010, 11:56 a.m.
Message ID <1263556601-15351-1-git-send-email-kwolf@redhat.com>
Download mbox | patch
Permalink /patch/42961/
State New
Headers show

Comments

Kevin Wolf - Jan. 15, 2010, 11:56 a.m.
Since commit 747bbdf7 QEMU_WARN_UNUSED_RESULT is never defined as it is
conditional on a define from config-host.h which is included only later.
Include that file earlier to get the warnings back.

Reactivating it unfortunately leads to some warnings about unused qdev_init
results. These calls are changed to qdev_init_nofail to avoid build failures.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---

Gerd, can you please check if using nofail is appropriate or should be replaced
by some real error checks (and if so, which)?

 hw/usb-net.c    |    2 +-
 hw/usb-serial.c |    4 ++--
 qemu-common.h   |    3 ++-
 usb-linux.c     |    2 +-
 4 files changed, 6 insertions(+), 5 deletions(-)
Markus Armbruster - Jan. 15, 2010, 4:45 p.m.
Kevin Wolf <kwolf@redhat.com> writes:

> Since commit 747bbdf7 QEMU_WARN_UNUSED_RESULT is never defined as it is
> conditional on a define from config-host.h which is included only later.
> Include that file earlier to get the warnings back.
>
> Reactivating it unfortunately leads to some warnings about unused qdev_init
> results. These calls are changed to qdev_init_nofail to avoid build failures.
>
> Signed-off-by: Kevin Wolf <kwolf@redhat.com>

The use of qdev_init_nofail() is correct, because the relevant device
init methods can't fail.

Acked-by: Markus Armbruster <armbru@redhat.com>
Anthony Liguori - Jan. 19, 2010, 10:40 p.m.
On 01/15/2010 05:56 AM, Kevin Wolf wrote:
> Since commit 747bbdf7 QEMU_WARN_UNUSED_RESULT is never defined as it is
> conditional on a define from config-host.h which is included only later.
> Include that file earlier to get the warnings back.
>
> Reactivating it unfortunately leads to some warnings about unused qdev_init
> results. These calls are changed to qdev_init_nofail to avoid build failures.
>
> Signed-off-by: Kevin Wolf<kwolf@redhat.com>
>    

Applied.  Thanks.

Regards,

Anthony Liguori
> ---
>
> Gerd, can you please check if using nofail is appropriate or should be replaced
> by some real error checks (and if so, which)?
>
>   hw/usb-net.c    |    2 +-
>   hw/usb-serial.c |    4 ++--
>   qemu-common.h   |    3 ++-
>   usb-linux.c     |    2 +-
>   4 files changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/hw/usb-net.c b/hw/usb-net.c
> index 9744dfa..cfd2f62 100644
> --- a/hw/usb-net.c
> +++ b/hw/usb-net.c
> @@ -1492,7 +1492,7 @@ static USBDevice *usb_net_init(const char *cmdline)
>
>       dev = usb_create(NULL /* FIXME */, "usb-net");
>       qdev_set_nic_properties(&dev->qdev,&nd_table[idx]);
> -    qdev_init(&dev->qdev);
> +    qdev_init_nofail(&dev->qdev);
>       return dev;
>   }
>
> diff --git a/hw/usb-serial.c b/hw/usb-serial.c
> index 2775cf0..37293ea 100644
> --- a/hw/usb-serial.c
> +++ b/hw/usb-serial.c
> @@ -583,7 +583,7 @@ static USBDevice *usb_serial_init(const char *filename)
>           qdev_prop_set_uint16(&dev->qdev, "vendorid", vendorid);
>       if (productid)
>           qdev_prop_set_uint16(&dev->qdev, "productid", productid);
> -    qdev_init(&dev->qdev);
> +    qdev_init_nofail(&dev->qdev);
>
>       return dev;
>   }
> @@ -599,7 +599,7 @@ static USBDevice *usb_braille_init(const char *unused)
>
>       dev = usb_create(NULL /* FIXME */, "usb-braille");
>       qdev_prop_set_chr(&dev->qdev, "chardev", cdrv);
> -    qdev_init(&dev->qdev);
> +    qdev_init_nofail(&dev->qdev);
>
>       return dev;
>   }
> diff --git a/qemu-common.h b/qemu-common.h
> index 8630f8c..d96060a 100644
> --- a/qemu-common.h
> +++ b/qemu-common.h
> @@ -2,6 +2,8 @@
>   #ifndef QEMU_COMMON_H
>   #define QEMU_COMMON_H
>
> +#include "config-host.h"
> +
>   #define QEMU_NORETURN __attribute__ ((__noreturn__))
>   #ifdef CONFIG_GCC_ATTRIBUTE_WARN_UNUSED_RESULT
>   #define QEMU_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
> @@ -29,7 +31,6 @@
>   #include<fcntl.h>
>   #include<sys/stat.h>
>   #include<assert.h>
> -#include "config-host.h"
>
>   #ifndef O_LARGEFILE
>   #define O_LARGEFILE 0
> diff --git a/usb-linux.c b/usb-linux.c
> index 88728e9..5619b30 100644
> --- a/usb-linux.c
> +++ b/usb-linux.c
> @@ -1036,7 +1036,7 @@ USBDevice *usb_host_device_open(const char *devname)
>       qdev_prop_set_uint32(&dev->qdev, "hostaddr",  filter.addr);
>       qdev_prop_set_uint32(&dev->qdev, "vendorid",  filter.vendor_id);
>       qdev_prop_set_uint32(&dev->qdev, "productid", filter.product_id);
> -    qdev_init(&dev->qdev);
> +    qdev_init_nofail(&dev->qdev);
>       return dev;
>
>   fail:
>

Patch

diff --git a/hw/usb-net.c b/hw/usb-net.c
index 9744dfa..cfd2f62 100644
--- a/hw/usb-net.c
+++ b/hw/usb-net.c
@@ -1492,7 +1492,7 @@  static USBDevice *usb_net_init(const char *cmdline)
 
     dev = usb_create(NULL /* FIXME */, "usb-net");
     qdev_set_nic_properties(&dev->qdev, &nd_table[idx]);
-    qdev_init(&dev->qdev);
+    qdev_init_nofail(&dev->qdev);
     return dev;
 }
 
diff --git a/hw/usb-serial.c b/hw/usb-serial.c
index 2775cf0..37293ea 100644
--- a/hw/usb-serial.c
+++ b/hw/usb-serial.c
@@ -583,7 +583,7 @@  static USBDevice *usb_serial_init(const char *filename)
         qdev_prop_set_uint16(&dev->qdev, "vendorid", vendorid);
     if (productid)
         qdev_prop_set_uint16(&dev->qdev, "productid", productid);
-    qdev_init(&dev->qdev);
+    qdev_init_nofail(&dev->qdev);
 
     return dev;
 }
@@ -599,7 +599,7 @@  static USBDevice *usb_braille_init(const char *unused)
 
     dev = usb_create(NULL /* FIXME */, "usb-braille");
     qdev_prop_set_chr(&dev->qdev, "chardev", cdrv);
-    qdev_init(&dev->qdev);
+    qdev_init_nofail(&dev->qdev);
 
     return dev;
 }
diff --git a/qemu-common.h b/qemu-common.h
index 8630f8c..d96060a 100644
--- a/qemu-common.h
+++ b/qemu-common.h
@@ -2,6 +2,8 @@ 
 #ifndef QEMU_COMMON_H
 #define QEMU_COMMON_H
 
+#include "config-host.h"
+
 #define QEMU_NORETURN __attribute__ ((__noreturn__))
 #ifdef CONFIG_GCC_ATTRIBUTE_WARN_UNUSED_RESULT
 #define QEMU_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
@@ -29,7 +31,6 @@ 
 #include <fcntl.h>
 #include <sys/stat.h>
 #include <assert.h>
-#include "config-host.h"
 
 #ifndef O_LARGEFILE
 #define O_LARGEFILE 0
diff --git a/usb-linux.c b/usb-linux.c
index 88728e9..5619b30 100644
--- a/usb-linux.c
+++ b/usb-linux.c
@@ -1036,7 +1036,7 @@  USBDevice *usb_host_device_open(const char *devname)
     qdev_prop_set_uint32(&dev->qdev, "hostaddr",  filter.addr);
     qdev_prop_set_uint32(&dev->qdev, "vendorid",  filter.vendor_id);
     qdev_prop_set_uint32(&dev->qdev, "productid", filter.product_id);
-    qdev_init(&dev->qdev);
+    qdev_init_nofail(&dev->qdev);
     return dev;
 
 fail: