usb-bus: fix no params

Submitted by TeLeMan on March 19, 2010, 4:59 a.m.

Details

Message ID a38b25541003182159p75e1ff04nb29ff6d3c73d7b49@mail.gmail.com
State New
Headers show

Commit Message

TeLeMan March 19, 2010, 4:59 a.m.
The "params" is never NULL and the usb hid devices have no params.

Signed-off-by: TeLeMan <geleman@gmail.com>
---
 hw/usb-bus.c |    4 ----
 1 files changed, 0 insertions(+), 4 deletions(-)

Comments

Aurelien Jarno March 27, 2010, 12:47 p.m.
On Fri, Mar 19, 2010 at 12:59:24PM +0800, TeLeMan wrote:
> The "params" is never NULL and the usb hid devices have no params.

This looks plainly wrong. With your patch, usb devices which don't
accept parameters, will accept and ignore them.

What are you trying to fix here?

> Signed-off-by: TeLeMan <geleman@gmail.com>
> ---
>  hw/usb-bus.c |    4 ----
>  1 files changed, 0 insertions(+), 4 deletions(-)
> 
> diff --git a/hw/usb-bus.c b/hw/usb-bus.c
> index ce8a694..f3f1ed6 100644
> --- a/hw/usb-bus.c
> +++ b/hw/usb-bus.c
> @@ -299,10 +299,6 @@ USBDevice *usbdevice_create(const char *cmdline)
>      }
> 
>      if (!usb->usbdevice_init) {
> -        if (params) {
> -            error_report("usbdevice %s accepts no params", driver);
> -            return NULL;
> -        }
>          return usb_create_simple(bus, usb->qdev.name);
>      }
>      return usb->usbdevice_init(params);
> -- 
> 1.6.5.1.1367.gcd48
> --
> SUN OF A BEACH
> 
> 
>
Kevin Wolf March 29, 2010, 12:16 p.m.
Am 27.03.2010 13:47, schrieb Aurelien Jarno:
> On Fri, Mar 19, 2010 at 12:59:24PM +0800, TeLeMan wrote:
>> The "params" is never NULL and the usb hid devices have no params.
> 
> This looks plainly wrong. With your patch, usb devices which don't
> accept parameters, will accept and ignore them.
> 
> What are you trying to fix here?

It looks like it's fixing -usbdevice tablet (and keyboard/mouse) which
currently fails like this:

qemu-system-x86_64: usbdevice tablet accepts no params
qemu: could not add USB device 'tablet'

He's correct in that params is never NULL (if it was NULL it's set to an
empty string some lines earlier, introduced by 702f3e0f), so
usb_create_simple is never called. Maybe the right fix is to check for
*params instead of params now?

Kevin

> 
>> Signed-off-by: TeLeMan <geleman@gmail.com>
>> ---
>>  hw/usb-bus.c |    4 ----
>>  1 files changed, 0 insertions(+), 4 deletions(-)
>>
>> diff --git a/hw/usb-bus.c b/hw/usb-bus.c
>> index ce8a694..f3f1ed6 100644
>> --- a/hw/usb-bus.c
>> +++ b/hw/usb-bus.c
>> @@ -299,10 +299,6 @@ USBDevice *usbdevice_create(const char *cmdline)
>>      }
>>
>>      if (!usb->usbdevice_init) {
>> -        if (params) {
>> -            error_report("usbdevice %s accepts no params", driver);
>> -            return NULL;
>> -        }
>>          return usb_create_simple(bus, usb->qdev.name);
>>      }
>>      return usb->usbdevice_init(params);
>> -- 
>> 1.6.5.1.1367.gcd48
>> --
>> SUN OF A BEACH
>>
>>
>>
>
TeLeMan March 30, 2010, 1:35 a.m.
On Mon, Mar 29, 2010 at 20:16, Kevin Wolf <kwolf@redhat.com> wrote:
> Am 27.03.2010 13:47, schrieb Aurelien Jarno:
>> On Fri, Mar 19, 2010 at 12:59:24PM +0800, TeLeMan wrote:
>>> The "params" is never NULL and the usb hid devices have no params.
>>
>> This looks plainly wrong. With your patch, usb devices which don't
>> accept parameters, will accept and ignore them.
>>
>> What are you trying to fix here?
>
> It looks like it's fixing -usbdevice tablet (and keyboard/mouse) which
> currently fails like this:
>
> qemu-system-x86_64: usbdevice tablet accepts no params
> qemu: could not add USB device 'tablet'
>
> He's correct in that params is never NULL (if it was NULL it's set to an
> empty string some lines earlier, introduced by 702f3e0f), so
> usb_create_simple is never called. Maybe the right fix is to check for
> *params instead of params now?
Yes, you are right. I did a new patch for it.

Patch hide | download patch | download mbox

diff --git a/hw/usb-bus.c b/hw/usb-bus.c
index ce8a694..f3f1ed6 100644
--- a/hw/usb-bus.c
+++ b/hw/usb-bus.c
@@ -299,10 +299,6 @@  USBDevice *usbdevice_create(const char *cmdline)
     }

     if (!usb->usbdevice_init) {
-        if (params) {
-            error_report("usbdevice %s accepts no params", driver);
-            return NULL;
-        }
         return usb_create_simple(bus, usb->qdev.name);
     }
     return usb->usbdevice_init(params);