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