Message ID | 1616666652-37920-1-git-send-email-liulongfang@huawei.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [RFC] USB:XHCI:Adjust the log level of hub | expand |
On Thu, Mar 25, 2021 at 06:04:12PM +0800, Longfang Liu wrote: > When the number of ports of the hub is not between 1 and Maxports, > it will only exit the registration of the hub on the current controller, > but it will not affect the function of the controller itself. Its other > hubs can operate normally, so the log level here can be changed from > error to information. > > Signed-off-by: Longfang Liu <liulongfang@huawei.com> > --- > drivers/usb/core/hub.c | 10 ++++------ > 1 file changed, 4 insertions(+), 6 deletions(-) > > diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c > index b1e14be..70294ad 100644 > --- a/drivers/usb/core/hub.c > +++ b/drivers/usb/core/hub.c > @@ -1409,13 +1409,11 @@ static int hub_configure(struct usb_hub *hub, > maxchild = min_t(unsigned, maxchild, USB_SS_MAXPORTS); > > if (hub->descriptor->bNbrPorts > maxchild) { > - message = "hub has too many ports!"; > - ret = -ENODEV; > - goto fail; > + dev_info(hub_dev, "hub has too many ports!\n"); Is this an error? If so, report it as such, not as "information". > + return -ENODEV; > } else if (hub->descriptor->bNbrPorts == 0) { > - message = "hub doesn't have any ports!"; > - ret = -ENODEV; > - goto fail; > + dev_info(hub_dev, "hub doesn't have any ports!\n"); Same here. What problem are you trying to solve here? What hub do you have that has no ports, or too many, that you think should still be able to work properly? thanks, greg k-h
On 2021/3/25 18:31, Greg KH wrote: > On Thu, Mar 25, 2021 at 06:04:12PM +0800, Longfang Liu wrote: >> When the number of ports of the hub is not between 1 and Maxports, >> it will only exit the registration of the hub on the current controller, >> but it will not affect the function of the controller itself. Its other >> hubs can operate normally, so the log level here can be changed from >> error to information. >> >> Signed-off-by: Longfang Liu <liulongfang@huawei.com> >> --- >> drivers/usb/core/hub.c | 10 ++++------ >> 1 file changed, 4 insertions(+), 6 deletions(-) >> >> diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c >> index b1e14be..70294ad 100644 >> --- a/drivers/usb/core/hub.c >> +++ b/drivers/usb/core/hub.c >> @@ -1409,13 +1409,11 @@ static int hub_configure(struct usb_hub *hub, >> maxchild = min_t(unsigned, maxchild, USB_SS_MAXPORTS); >> >> if (hub->descriptor->bNbrPorts > maxchild) { >> - message = "hub has too many ports!"; >> - ret = -ENODEV; >> - goto fail; >> + dev_info(hub_dev, "hub has too many ports!\n"); > > Is this an error? If so, report it as such, not as "information". > >> + return -ENODEV; >> } else if (hub->descriptor->bNbrPorts == 0) { >> - message = "hub doesn't have any ports!"; >> - ret = -ENODEV; >> - goto fail; >> + dev_info(hub_dev, "hub doesn't have any ports!\n"); > > Same here. > > What problem are you trying to solve here? > > What hub do you have that has no ports, or too many, that you think > should still be able to work properly? > > thanks, > > greg k-h > . >On our test platform, the xhci usb3 hub has no port. when initializing the usb3 hub, an error will be reported because the port is 0, but in fact it will not affect the use of usb2, and the usb2 hub is working normally. thanks, therefore, in order to reduce the severity of the log, we hope to lower the level of this log. Longfang thanks.
On Thu, Mar 25, 2021 at 09:33:53PM +0800, liulongfang wrote: > On 2021/3/25 18:31, Greg KH wrote: > > On Thu, Mar 25, 2021 at 06:04:12PM +0800, Longfang Liu wrote: > >> When the number of ports of the hub is not between 1 and Maxports, > >> it will only exit the registration of the hub on the current controller, > >> but it will not affect the function of the controller itself. Its other > >> hubs can operate normally, so the log level here can be changed from > >> error to information. > >> > >> Signed-off-by: Longfang Liu <liulongfang@huawei.com> > >> --- > >> drivers/usb/core/hub.c | 10 ++++------ > >> 1 file changed, 4 insertions(+), 6 deletions(-) > >> > >> diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c > >> index b1e14be..70294ad 100644 > >> --- a/drivers/usb/core/hub.c > >> +++ b/drivers/usb/core/hub.c > >> @@ -1409,13 +1409,11 @@ static int hub_configure(struct usb_hub *hub, > >> maxchild = min_t(unsigned, maxchild, USB_SS_MAXPORTS); > >> > >> if (hub->descriptor->bNbrPorts > maxchild) { > >> - message = "hub has too many ports!"; > >> - ret = -ENODEV; > >> - goto fail; > >> + dev_info(hub_dev, "hub has too many ports!\n"); > > > > Is this an error? If so, report it as such, not as "information". > > > >> + return -ENODEV; > >> } else if (hub->descriptor->bNbrPorts == 0) { > >> - message = "hub doesn't have any ports!"; > >> - ret = -ENODEV; > >> - goto fail; > >> + dev_info(hub_dev, "hub doesn't have any ports!\n"); > > > > Same here. > > > > What problem are you trying to solve here? > > > > What hub do you have that has no ports, or too many, that you think > > should still be able to work properly? > > > > thanks, > > > > greg k-h > > . > On our test platform, the xhci usb3 hub has no port. Sounds like a broken device, why not fix that? > when initializing the usb3 hub, an error will be reported > because the port is 0, but in fact it will not affect > the use of usb2, and the usb2 hub is working normally. But you can not have a USB3 hub with no ports, isn't that against against the USB spec? How does this device pass the USB-IF certification? > thanks, therefore, in order to reduce the severity of the log, > we hope to lower the level of this log. You did not reduce the severity at all, everyone can still see it. Please try fixing your hardware :) thanks, greg k-h
On Thu, Mar 25, 2021 at 02:59:03PM +0100, Greg KH wrote: > On Thu, Mar 25, 2021 at 09:33:53PM +0800, liulongfang wrote: > > On 2021/3/25 18:31, Greg KH wrote: > > > On Thu, Mar 25, 2021 at 06:04:12PM +0800, Longfang Liu wrote: > > >> When the number of ports of the hub is not between 1 and Maxports, > > >> it will only exit the registration of the hub on the current controller, > > >> but it will not affect the function of the controller itself. Its other > > >> hubs can operate normally, so the log level here can be changed from > > >> error to information. > > >> > > >> Signed-off-by: Longfang Liu <liulongfang@huawei.com> > > >> --- > > >> drivers/usb/core/hub.c | 10 ++++------ > > >> 1 file changed, 4 insertions(+), 6 deletions(-) > > >> > > >> diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c > > >> index b1e14be..70294ad 100644 > > >> --- a/drivers/usb/core/hub.c > > >> +++ b/drivers/usb/core/hub.c > > >> @@ -1409,13 +1409,11 @@ static int hub_configure(struct usb_hub *hub, > > >> maxchild = min_t(unsigned, maxchild, USB_SS_MAXPORTS); > > >> > > >> if (hub->descriptor->bNbrPorts > maxchild) { > > >> - message = "hub has too many ports!"; > > >> - ret = -ENODEV; > > >> - goto fail; > > >> + dev_info(hub_dev, "hub has too many ports!\n"); > > > > > > Is this an error? If so, report it as such, not as "information". > > > > > >> + return -ENODEV; > > >> } else if (hub->descriptor->bNbrPorts == 0) { > > >> - message = "hub doesn't have any ports!"; > > >> - ret = -ENODEV; > > >> - goto fail; > > >> + dev_info(hub_dev, "hub doesn't have any ports!\n"); > > > > > > Same here. > > > > > > What problem are you trying to solve here? > > > > > > What hub do you have that has no ports, or too many, that you think > > > should still be able to work properly? > > > > > > thanks, > > > > > > greg k-h > > > . > > On our test platform, the xhci usb3 hub has no port. > > Sounds like a broken device, why not fix that? If this device is used only for testing and not for production, who cares how severe the log message is? > > when initializing the usb3 hub, an error will be reported > > because the port is 0, but in fact it will not affect > > the use of usb2, and the usb2 hub is working normally. > > But you can not have a USB3 hub with no ports, isn't that against > against the USB spec? How does this device pass the USB-IF > certification? > > > thanks, therefore, in order to reduce the severity of the log, > > we hope to lower the level of this log. > > You did not reduce the severity at all, everyone can still see it. > > Please try fixing your hardware : Alternatively, you could change the xhci-hcd driver. Make it skip registering the USB-3 root hub if that hub has no ports. But don't change these log messages. They describe real errors, so they should be actual error messages. Alan Stern
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c index b1e14be..70294ad 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c @@ -1409,13 +1409,11 @@ static int hub_configure(struct usb_hub *hub, maxchild = min_t(unsigned, maxchild, USB_SS_MAXPORTS); if (hub->descriptor->bNbrPorts > maxchild) { - message = "hub has too many ports!"; - ret = -ENODEV; - goto fail; + dev_info(hub_dev, "hub has too many ports!\n"); + return -ENODEV; } else if (hub->descriptor->bNbrPorts == 0) { - message = "hub doesn't have any ports!"; - ret = -ENODEV; - goto fail; + dev_info(hub_dev, "hub doesn't have any ports!\n"); + return -ENODEV; } /*
When the number of ports of the hub is not between 1 and Maxports, it will only exit the registration of the hub on the current controller, but it will not affect the function of the controller itself. Its other hubs can operate normally, so the log level here can be changed from error to information. Signed-off-by: Longfang Liu <liulongfang@huawei.com> --- drivers/usb/core/hub.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-)