qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] usb: Resolve warnings about unassigned bus on u


From: Jan Kiszka
Subject: Re: [Qemu-devel] [PATCH] usb: Resolve warnings about unassigned bus on usb device creation
Date: Mon, 27 Feb 2012 14:57:54 +0100
User-agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.8.1.12) Gecko/20080226 SUSE/2.0.0.12-1.1 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666

On 2012-02-02 18:59, Jan Kiszka wrote:
> When creating an USB device the old way, there is no way to specify the
> target bus. Thus the warning issued by usb_create makes no sense and
> rather confuses our users.
> 
> Resolve this by passing a bus reference to the usbdevice_init handler
> and letting those handlers forward it to usb_create.
> 
> Signed-off-by: Jan Kiszka <address@hidden>
> ---
>  hw/usb-bt.c     |    4 ++--
>  hw/usb-bus.c    |   18 ++++--------------
>  hw/usb-msd.c    |    4 ++--
>  hw/usb-net.c    |    4 ++--
>  hw/usb-serial.c |    8 ++++----
>  hw/usb.h        |    7 ++++---
>  usb-bsd.c       |    4 ++--
>  usb-linux.c     |    4 ++--
>  vl.c            |    7 ++++---
>  9 files changed, 26 insertions(+), 34 deletions(-)
> 
> diff --git a/hw/usb-bt.c b/hw/usb-bt.c
> index bf8c470..291242f 100644
> --- a/hw/usb-bt.c
> +++ b/hw/usb-bt.c
> @@ -498,14 +498,14 @@ static int usb_bt_initfn(USBDevice *dev)
>      return 0;
>  }
>  
> -USBDevice *usb_bt_init(HCIInfo *hci)
> +USBDevice *usb_bt_init(USBBus *bus, HCIInfo *hci)
>  {
>      USBDevice *dev;
>      struct USBBtState *s;
>  
>      if (!hci)
>          return NULL;
> -    dev = usb_create_simple(NULL /* FIXME */, "usb-bt-dongle");
> +    dev = usb_create_simple(bus, "usb-bt-dongle");
>      if (!dev) {
>          return NULL;
>      }
> diff --git a/hw/usb-bus.c b/hw/usb-bus.c
> index aeef908..aae5b0c 100644
> --- a/hw/usb-bus.c
> +++ b/hw/usb-bus.c
> @@ -203,14 +203,15 @@ typedef struct LegacyUSBFactory
>  {
>      const char *name;
>      const char *usbdevice_name;
> -    USBDevice *(*usbdevice_init)(const char *params);
> +    USBDevice *(*usbdevice_init)(USBBus *bus, const char *params);
>  } LegacyUSBFactory;
>  
>  static GSList *legacy_usb_factory;
>  
>  void usb_qdev_register(DeviceInfo *info,
>                         const char *usbdevice_name,
> -                       USBDevice *(*usbdevice_init)(const char *params))
> +                       USBDevice *(*usbdevice_init)(USBBus *bus,
> +                                                    const char *params))
>  {
>      info->bus_info = &usb_bus_info;
>      info->init     = usb_qdev_init;
> @@ -231,17 +232,6 @@ USBDevice *usb_create(USBBus *bus, const char *name)
>  {
>      DeviceState *dev;
>  
> -#if 1
> -    /* temporary stopgap until all usb is properly qdev-ified */
> -    if (!bus) {
> -        bus = usb_bus_find(-1);
> -        if (!bus)
> -            return NULL;
> -        error_report("%s: no bus specified, using \"%s\" for \"%s\"",
> -                __FUNCTION__, bus->qbus.name, name);
> -    }
> -#endif
> -
>      dev = qdev_create(&bus->qbus, name);
>      return USB_DEVICE(dev);
>  }
> @@ -572,7 +562,7 @@ USBDevice *usbdevice_create(const char *cmdline)
>          }
>          return usb_create_simple(bus, f->name);
>      }
> -    return f->usbdevice_init(params);
> +    return f->usbdevice_init(bus, params);
>  }
>  
>  static TypeInfo usb_device_type_info = {
> diff --git a/hw/usb-msd.c b/hw/usb-msd.c
> index ceb01e0..823f072 100644
> --- a/hw/usb-msd.c
> +++ b/hw/usb-msd.c
> @@ -568,7 +568,7 @@ static int usb_msd_initfn(USBDevice *dev)
>      return 0;
>  }
>  
> -static USBDevice *usb_msd_init(const char *filename)
> +static USBDevice *usb_msd_init(USBBus *bus, const char *filename)
>  {
>      static int nr=0;
>      char id[8];
> @@ -611,7 +611,7 @@ static USBDevice *usb_msd_init(const char *filename)
>      }
>  
>      /* create guest device */
> -    dev = usb_create(NULL /* FIXME */, "usb-storage");
> +    dev = usb_create(bus, "usb-storage");
>      if (!dev) {
>          return NULL;
>      }
> diff --git a/hw/usb-net.c b/hw/usb-net.c
> index 57b58ac..c9884e1 100644
> --- a/hw/usb-net.c
> +++ b/hw/usb-net.c
> @@ -1353,7 +1353,7 @@ static int usb_net_initfn(USBDevice *dev)
>      return 0;
>  }
>  
> -static USBDevice *usb_net_init(const char *cmdline)
> +static USBDevice *usb_net_init(USBBus *bus, const char *cmdline)
>  {
>      USBDevice *dev;
>      QemuOpts *opts;
> @@ -1371,7 +1371,7 @@ static USBDevice *usb_net_init(const char *cmdline)
>          return NULL;
>      }
>  
> -    dev = usb_create(NULL /* FIXME */, "usb-net");
> +    dev = usb_create(bus, "usb-net");
>      if (!dev) {
>          return NULL;
>      }
> diff --git a/hw/usb-serial.c b/hw/usb-serial.c
> index de49607..8c7861d 100644
> --- a/hw/usb-serial.c
> +++ b/hw/usb-serial.c
> @@ -492,7 +492,7 @@ static int usb_serial_initfn(USBDevice *dev)
>      return 0;
>  }
>  
> -static USBDevice *usb_serial_init(const char *filename)
> +static USBDevice *usb_serial_init(USBBus *bus, const char *filename)
>  {
>      USBDevice *dev;
>      CharDriverState *cdrv;
> @@ -535,7 +535,7 @@ static USBDevice *usb_serial_init(const char *filename)
>      if (!cdrv)
>          return NULL;
>  
> -    dev = usb_create(NULL /* FIXME */, "usb-serial");
> +    dev = usb_create(bus, "usb-serial");
>      if (!dev) {
>          return NULL;
>      }
> @@ -549,7 +549,7 @@ static USBDevice *usb_serial_init(const char *filename)
>      return dev;
>  }
>  
> -static USBDevice *usb_braille_init(const char *unused)
> +static USBDevice *usb_braille_init(USBBus *bus, const char *unused)
>  {
>      USBDevice *dev;
>      CharDriverState *cdrv;
> @@ -558,7 +558,7 @@ static USBDevice *usb_braille_init(const char *unused)
>      if (!cdrv)
>          return NULL;
>  
> -    dev = usb_create(NULL /* FIXME */, "usb-braille");
> +    dev = usb_create(bus, "usb-braille");
>      qdev_prop_set_chr(&dev->qdev, "chardev", cdrv);
>      qdev_init_nofail(&dev->qdev);
>  
> diff --git a/hw/usb.h b/hw/usb.h
> index 5b9badb..debc1ab 100644
> --- a/hw/usb.h
> +++ b/hw/usb.h
> @@ -362,12 +362,12 @@ int set_usb_string(uint8_t *buf, const char *str);
>  void usb_send_msg(USBDevice *dev, int msg);
>  
>  /* usb-linux.c */
> -USBDevice *usb_host_device_open(const char *devname);
> +USBDevice *usb_host_device_open(USBBus *bus, const char *devname);
>  int usb_host_device_close(const char *devname);
>  void usb_host_info(Monitor *mon);
>  
>  /* usb-bt.c */
> -USBDevice *usb_bt_init(HCIInfo *hci);
> +USBDevice *usb_bt_init(USBBus *bus, HCIInfo *hci);
>  
>  /* usb ports of the VM */
>  
> @@ -420,7 +420,8 @@ void usb_bus_new(USBBus *bus, USBBusOps *ops, DeviceState 
> *host);
>  USBBus *usb_bus_find(int busnr);
>  void usb_qdev_register(DeviceInfo *info,
>                         const char *usbdevice_name,
> -                       USBDevice *(*usbdevice_init)(const char *params));
> +                       USBDevice *(*usbdevice_init)(USBBus *bus,
> +                                                    const char *params));
>  USBDevice *usb_create(USBBus *bus, const char *name);
>  USBDevice *usb_create_simple(USBBus *bus, const char *name);
>  USBDevice *usbdevice_create(const char *cmdline);
> diff --git a/usb-bsd.c b/usb-bsd.c
> index 2c6afc8..fcd1438 100644
> --- a/usb-bsd.c
> +++ b/usb-bsd.c
> @@ -298,7 +298,7 @@ static int usb_host_initfn(USBDevice *dev)
>      return 0;
>  }
>  
> -USBDevice *usb_host_device_open(const char *devname)
> +USBDevice *usb_host_device_open(USBBus *guest_bus, const char *devname)
>  {
>      struct usb_device_info bus_info, dev_info;
>      USBDevice *d = NULL, *ret = NULL;
> @@ -358,7 +358,7 @@ USBDevice *usb_host_device_open(const char *devname)
>          goto fail_dfd;
>      }
>  
> -    d = usb_create(NULL /* FIXME */, "usb-host");
> +    d = usb_create(guest_bus, "usb-host");
>      dev = DO_UPCAST(USBHostDevice, dev, d);
>  
>      if (dev_info.udi_speed == 1) {
> diff --git a/usb-linux.c b/usb-linux.c
> index 31810f6..7cab488 100644
> --- a/usb-linux.c
> +++ b/usb-linux.c
> @@ -1438,13 +1438,13 @@ static void usb_host_register_devices(void)
>  }
>  device_init(usb_host_register_devices)
>  
> -USBDevice *usb_host_device_open(const char *devname)
> +USBDevice *usb_host_device_open(USBBus *bus, const char *devname)
>  {
>      struct USBAutoFilter filter;
>      USBDevice *dev;
>      char *p;
>  
> -    dev = usb_create(NULL /* FIXME */, "usb-host");
> +    dev = usb_create(bus, "usb-host");
>  
>      if (strstr(devname, "auto:")) {
>          if (parse_filter(devname, &filter) < 0) {
> diff --git a/vl.c b/vl.c
> index 2d464cf..cb8844d 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -1052,12 +1052,13 @@ static int usb_device_add(const char *devname)
>  #ifndef CONFIG_LINUX
>      /* only the linux version is qdev-ified, usb-bsd still needs this */
>      if (strstart(devname, "host:", &p)) {
> -        dev = usb_host_device_open(p);
> +        dev = usb_host_device_open(usb_bus_find(-1), p);
>      } else
>  #endif
>      if (!strcmp(devname, "bt") || strstart(devname, "bt:", &p)) {
> -        dev = usb_bt_init(devname[2] ? hci_init(p) :
> -                        bt_new_hci(qemu_find_bt_vlan(0)));
> +        dev = usb_bt_init(usb_bus_find(-1),
> +                          devname[2] ? hci_init(p)
> +                                     : bt_new_hci(qemu_find_bt_vlan(0)));
>      } else {
>          return -1;
>      }

Ping.

Jan

-- 
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux



reply via email to

[Prev in Thread] Current Thread [Next in Thread]