Bug 218762

Summary: USB string order in dmesg
Product: Drivers Reporter: Max (ddtpvtxm)
Component: USBAssignee: Default virtual assignee for Drivers/USB (drivers_usb)
Status: RESOLVED ANSWERED    
Severity: enhancement    
Priority: P3    
Hardware: All   
OS: Linux   
Kernel Version: Subsystem:
Regression: No Bisected commit-id:

Description Max 2024-04-22 19:34:17 UTC
Hi,

Is there any good reason why the code https://github.com/torvalds/linux/blob/c85af715cac0a951eea97393378e84bb49384734/drivers/usb/core/hub.c#L2361 is declaring string (show_string) values in a different order than they are specified in dev_info?

	dev_info(&udev->dev,
		"New USB device strings: Mfr=%d, Product=%d, SerialNumber=%d\n",
		udev->descriptor.iManufacturer,
		udev->descriptor.iProduct,
		udev->descriptor.iSerialNumber);
	show_string(udev, "Product", udev->product);
	show_string(udev, "Manufacturer", udev->manufacturer);
	show_string(udev, "SerialNumber", udev->serial);


Now
usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 4-1: Product: BM5100ADW series
usb 4-1: Manufacturer: Pantum
usb 4-1: SerialNumber: CK1A8823765

Expected
usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 4-1: Manufacturer: Pantum
usb 4-1: Product: BM5100ADW series
usb 4-1: SerialNumber: CK1A8823765
Comment 1 gregkh 2024-04-23 11:31:29 UTC
On Mon, Apr 22, 2024 at 07:34:17PM +0000, bugzilla-daemon@kernel.org wrote:
> Is there any good reason why the code
>
> https://github.com/torvalds/linux/blob/c85af715cac0a951eea97393378e84bb49384734/drivers/usb/core/hub.c#L2361
> is declaring string (show_string) values in a different order than they are
> specified in dev_info?
> 
>         dev_info(&udev->dev,
>                 "New USB device strings: Mfr=%d, Product=%d,
> SerialNumber=%d\n",
>                 udev->descriptor.iManufacturer,
>                 udev->descriptor.iProduct,
>                 udev->descriptor.iSerialNumber);
>         show_string(udev, "Product", udev->product);
>         show_string(udev, "Manufacturer", udev->manufacturer);
>         show_string(udev, "SerialNumber", udev->serial);
> 
> 
> Now
> usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
> usb 4-1: Product: BM5100ADW series
> usb 4-1: Manufacturer: Pantum
> usb 4-1: SerialNumber: CK1A8823765
> 
> Expected
> usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
> usb 4-1: Manufacturer: Pantum
> usb 4-1: Product: BM5100ADW series
> usb 4-1: SerialNumber: CK1A8823765

No specific reaason, just has always been that way for 20+ years and no
one has noticed.