Re: [linux-usb-devel] Re: usb sysfs intf files no longer created when probe fails

From: Greg KH
Date: Wed Jun 22 2005 - 11:37:04 EST


On Wed, Jun 22, 2005 at 05:53:28PM +0200, Stelian Pop wrote:
> Le mercredi 22 juin 2005 ?? 11:41 -0400, Alan Stern a ??crit :
>
> > This is a curious aspect of the driver model core. Should failure of a
> > driver to bind be considered serious enough to cause device_add to fail?
> > The current answer is Yes unless the driver's probe routine returns
> > -ENODEV or -ENXIO, in which case the failure is not considered serious.
>
> Indeed. I've also tracked my problem down to the hid core which returns
> -EIO when it fails to drive an unknown HID device, instead of a more
> logical -ENODEV (this is not a failure to init a known device, but
> rather the impossibility to init an unknown device).
>
> The patch below solves the problem for me:
>
> Index: linux-2.6-trunk.git/drivers/usb/input/hid-core.c
> ===================================================================
> --- linux-2.6-trunk.git.orig/drivers/usb/input/hid-core.c 2005-06-22
> 10:33:23.000000000 +0200
> +++ linux-2.6-trunk.git/drivers/usb/input/hid-core.c 2005-06-22
> 17:43:10.000000000 +0200
> @@ -1784,7 +1784,7 @@
> if (!hid->claimed) {
> printk ("HID device not claimed by input or hiddev\n");
> hid_disconnect(intf);
> - return -EIO;
> + return -ENODEV;
> }

Also need to do the same a few lines above in the code. I've fixed that
too now.

thanks again,

greg k-h
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/