Bug 216630

Summary: config 1 has an invalid interface number: 2 but max is 1
Product: Drivers Reporter: Artem S. Tashkinov (aros)
Component: USBAssignee: Default virtual assignee for Drivers/USB (drivers_usb)
Status: RESOLVED CODE_FIX    
Severity: normal    
Priority: P1    
Hardware: AMD   
OS: Linux   
Kernel Version: 6.0.5 Subsystem:
Regression: No Bisected commit-id:

Description Artem S. Tashkinov 2022-10-27 09:28:55 UTC
I'm getting these messages on boot and I wonder if they are superficial, there's a bug in the kernel or my HW is not working properly:

usb 3-6: config 1 has an invalid interface number: 2 but max is 1
usb 3-6: config 1 has no interface number 1

lsusb -tv

/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 480M
    ID 1d6b:0002 Linux Foundation 2.0 root hub
    |__ Port 5: Dev 2, If 0, Class=Wireless, Driver=btusb, 12M
        ID 8087:0025 Intel Corp. Wireless-AC 9260 Bluetooth Adapter
    |__ Port 5: Dev 2, If 1, Class=Wireless, Driver=btusb, 12M
        ID 8087:0025 Intel Corp. Wireless-AC 9260 Bluetooth Adapter
    |__ Port 6: Dev 3, If 0, Class=Vendor Specific Class, Driver=, 12M
        ID 0b05:18f3 ASUSTek Computer, Inc. 
    |__ Port 6: Dev 3, If 2, Class=Human Interface Device, Driver=usbhid, 12M
        ID 0b05:18f3 ASUSTek Computer, Inc.
Comment 1 Alan Stern 2022-10-27 20:09:00 UTC
These messages indicate that the device's firmware doesn't conform to the USB specification.  You can see the problem in the lsusb output for Port 6 Dev 3.  The two entries say "If 0" and "If 2".  But the USB spec says that interface numbers must be consecutive (starting at 0).

It's a harmless error.
Comment 2 Artem S. Tashkinov 2022-10-27 20:12:53 UTC
(In reply to Alan Stern from comment #1)
> These messages indicate that the device's firmware doesn't conform to the
> USB specification.  You can see the problem in the lsusb output for Port 6
> Dev 3.  The two entries say "If 0" and "If 2".  But the USB spec says that
> interface numbers must be consecutive (starting at 0).
> 
> It's a harmless error.

Thanks a lot for the explanation!

Since these messages can be seen at: dmesg -t --level=alert,crit,err,emerg,warn

is is it possible to decrease their level to e.g. notice or info?

I've google for it and there are literally hundreds of affected systems. I don't think it's worth alerting the use to something they are unable to fix or get fixed.
Comment 3 Alan Stern 2022-10-27 20:52:35 UTC
I suppose these messages could be changed to log level notice instead of warning (although the documentation says that notice is for "normal but significant conditions", and these conditions are not normal).  The boundaries between the different log levels are not specified very clearly.  In particular, there's no explanation of what should count as a warning.

On the other hand, if you don't want to see those messages now, you can just do "dmesg -t --level=alert,crit,err,emerg" (i.e., don't show warnings).
Comment 4 Artem S. Tashkinov 2022-10-27 20:53:54 UTC
(In reply to Alan Stern from comment #3)
> I suppose these messages could be changed to log level notice instead of
> warning (although the documentation says that notice is for "normal but
> significant conditions", and these conditions are not normal).  The
> boundaries between the different log levels are not specified very clearly. 
> In particular, there's no explanation of what should count as a warning.
> 

I like this idea a lot. Thanks a lot in advance!