Re: question about usb_rebind_intf

From: Greg Kroah-Hartman
Date: Fri Nov 17 2017 - 12:09:28 EST


On Fri, Nov 17, 2017 at 09:35:51AM -0700, Jerry Snitselaar wrote:
> Should this skip warning that the rebind failed if device_attach
> is returning -EPROBE_DEFER? If I do something like 'rtcwake -m mem -s 30'
> on a laptop I have here I will see a couple "rebind failed: -517" messages
> as it comes back out of suspend. Since the device probe eventually happens
> once probes are not deferred wondering if this warning this be given in that
> case.
>
>
> diff --git a/drivers/usb/core/driver.c b/drivers/usb/core/driver.c
> index 64262a9a8829..5d3408010112 100644
> --- a/drivers/usb/core/driver.c
> +++ b/drivers/usb/core/driver.c
> @@ -1070,7 +1070,7 @@ static void usb_rebind_intf(struct usb_interface *intf)
> if (!intf->dev.power.is_prepared) {
> intf->needs_binding = 0;
> rc = device_attach(&intf->dev);
> - if (rc < 0)
> + if (rc < 0 && rc != -EPROBE_DEFER)
> dev_warn(&intf->dev, "rebind failed: %d\n", rc);
> }
> }

What USB driver is returning -EPROBE_DEFER to cause this to be an issue?
Shouldn't that really only be for "platform" drivers and the like? USB
interface drivers should all be "self-contained" within reason.

thanks,

greg k-h