Re: [PATCH] usb: core: endpoint: Add error messages for usb_create_ep_devs()

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

 



On Mon, Jan 21, 2019 at 11:30:55PM +0900, Suwan Kim wrote:
> usb_create_ep_devs() returns error code if an error occurs. But
> usb_new_device() and create_intf_ep_devs() which use usb_create_ep_devs()
> to create endpoint devices ignore the error and cut the propagation
> of the error when usb_create_ep_devs() fails. So, usb_create_ep_devs()
> prints an error message for debugging or notification purposes if an
> error occurs.
> 
> Signed-off-by: Suwan Kim <suwan.kim027@xxxxxxxxx>
> ---
>  drivers/usb/core/endpoint.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/usb/core/endpoint.c b/drivers/usb/core/endpoint.c
> index 1c2c04079676..ad3902c023d9 100644
> --- a/drivers/usb/core/endpoint.c
> +++ b/drivers/usb/core/endpoint.c
> @@ -182,6 +182,7 @@ int usb_create_ep_devs(struct device *parent,
>  
>  	ep_dev = kzalloc(sizeof(*ep_dev), GFP_KERNEL);
>  	if (!ep_dev) {
> +		dev_err(parent, "endpoint device alloc failed\n");

kzalloc() prints out an error if it fails, why print out it again here?

>  		retval = -ENOMEM;
>  		goto exit;
>  	}
> @@ -194,8 +195,10 @@ int usb_create_ep_devs(struct device *parent,
>  	dev_set_name(&ep_dev->dev, "ep_%02x", endpoint->desc.bEndpointAddress);
>  
>  	retval = device_register(&ep_dev->dev);
> -	if (retval)
> +	if (retval) {
> +		dev_err(parent, "endpoint device register failed\n");

Doesn't device_add() provide an error if this fails?  If not, what can
we do about it here?

And even if you do want this message, it's not the parent that failed to
register, so this might be a bit misleading of a message.

What problem are you having that you are trying to fix here?  Have you
seen the call to device_register() fail for an endpoint?

thanks,

greg k-h



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux