On Tue, 7 Nov 2017, Greg KH wrote:

> On Tue, Nov 07, 2017 at 03:58:29AM -0500, Kai-Heng Feng wrote:
> > USB devices should work just fine when they don't support language id.
> 
> They still work, but it's a "broken" device, and it should be fixed (I
> thought it was part of the spec, but I can't find it right now...)

The spec says that string descriptors are optional (section 9.6.7).  
But it also says that if a device doesn't support string descriptors 
then all references to strings within the other descriptors must be set 
to zero.  And if the string index values are then the kernel won't call 
usb_get_langid(), so the error message won't appear.

For devices that _do_ support string descriptors, the spec says:

        String index zero for all languages returns a string
        descriptor that contains an array of two-byte LANGID codes
        supported by the device.

So a device that has string descriptors but doesn't support language 
IDs is noncompliant with the spec.

> > Lower the log level so user won't panic in the future.
> 
> No one is panicing :)
> 
> > BugLink: https://bugs.launchpad.net/bugs/1729618
> 
> This change would not have stopped that bug report from happening,
> right?
> 
> That being said, we do have the larger issue of "is this something that
> a user can do something about", or "is this a code/device error that
> prevents it from working" and the like, with our kernel log messages.
> But that's a much larger conversation to have...

This particular device error causes the kernel to avoid getting any 
string descriptors from the device at all.  But I think it is unlikely 
to mean that the device doesn't work, or will only work in a degraded 
mode.

Changing the log level from dev_err to dev_info seems to make sense.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to