usb: make printk messges more searchable
PATCH 1/1 usb: make printk messges more searchable
Make USB printk messages long and straightforward. One of these decorated USB error messages cost me some smart efforts to locate.
--- drivers/usb/core/hub.c | 89 ++++++++++++++++++--------------------- 1 file changed, 43 insertions(+), 46 deletions(-)
drivers/usb/core/hub.c +43 -46
@@ -107,7 +107,8 @@ MODULE_PARM_DESC (blinkenlights, "true t/* define initial 64-byte descriptor request timeout in milliseconds */ static int initial_descriptor_timeout =USB_CTRL_GET_TIMEOUT ;module_param (initial_descriptor_timeout, int,S_IRUGO |S_IWUSR ); -MODULE_PARM_DESC (initial_descriptor_timeout,"initial 64-byte descriptor request timeout in milliseconds (default 5000 - 5.0 seconds)" ); +MODULE_PARM_DESC (initial_descriptor_timeout, +"initial 64-byte descriptor request timeout in milliseconds (default 5000 - 5.0 seconds)" );/* * As of 2.6.10 we introduce a new USB device initialization scheme which
@@ -131,8 +132,7 @@ MODULE_PARM_DESC(old_scheme_first,static int use_both_schemes =1 ;module_param (use_both_schemes, bool,S_IRUGO |S_IWUSR );MODULE_PARM_DESC (use_both_schemes, -"try the other device initialization scheme if the " -"first one fails" ); +"try the other device initialization scheme if the first one fails" );/* Mutual exclusion for EHCI CF initialization. This interferes with * port reset on some companion controllers.
@@ -545,8 +545,7 @@ static unsigned hub_power_on(struct usb_if ((wHubCharacteristics &HUB_CHAR_LPSM ) <2 )dev_dbg (hub->intfdev,"enabling power on all ports\n" );else -dev_dbg (hub->intfdev,"trying to enable port power on " -"non-switchable hub\n" ); +dev_dbg (hub->intfdev,"trying to enable port power on non-switchable hub\n" );for (port1 =1 ; port1 <= hub->descriptor->bNbrPorts; port1++)set_port_feature (hub->hdev, port1,USB_PORT_FEAT_POWER );
@@ -1020,8 +1019,7 @@ static int hub_configure(struct usb_hubif (remaining < hdev->maxchild *100 )dev_warn (hub_dev, -"insufficient power available " -"to use all downstream ports\n" ); +"insufficient power available to use all downstream ports\n" ); hub->mA_per_port =100 ;/* 7.2.1.1 */ } }else {/* Self-powered external hub */
@@ -1136,8 +1134,8 @@ static int hub_probe(struct usb_interfac hdev =interface_to_usbdev (intf);if (hdev->level ==MAX_TOPO_LEVEL ) { -dev_err (&intf->dev,"Unsupported bus topology: " -"hub nested too deep\n" ); +dev_err (&intf->dev, +"Unsupported bus topology: hub nested too deep\n" );return -E2BIG ; }
@@ -1476,8 +1474,8 @@ static void announce_device(struct usb_ddev_info (&udev->dev,"New USB device found, idVendor=%04x, idProduct=%04x\n" ,le16_to_cpu (udev->descriptor.idVendor),le16_to_cpu (udev->descriptor.idProduct)); -dev_info (&udev->dev,"New USB device strings: Mfr=%d, Product=%d, " -"SerialNumber=%d\n" , +dev_info (&udev->dev, +"New USB device strings: Mfr=%d, Product=%d, SerialNumber=%d\n" , udev->descriptor.iManufacturer, udev->descriptor.iProduct, udev->descriptor.iSerialNumber);
@@ -1542,7 +1540,7 @@ static int usb_configure_device_otg(stru* customize to match your product. */ dev_info (&udev->dev, -"can't set HNP mode; %d\n" , +"can't set HNP mode: %d\n" , err); bus->b_hnp_enable =0 ; }
@@ -1723,8 +1721,9 @@ int usb_authorize_device(struct usb_devi } result =usb_get_device_descriptor (usb_dev,sizeof (usb_dev->descriptor));if (result <0 ) { -dev_err (&usb_dev->dev,"can't re-read device descriptor for " -"authorization: %d\n" , result); +dev_err (&usb_dev->dev, +"can't re-read device descriptor for authorization: %d\n" , + result); goto error_device_descriptor; } usb_dev->authorized =1 ;
@@ -2020,8 +2019,8 @@ int usb_port_suspend(struct usb_device * USB_CTRL_SET_TIMEOUT); }else {/* device has up to 10 msec to fully suspend */ -dev_dbg (&udev->dev,"usb %ssuspend\n" , - udev->auto_pm ?"auto-" :"" ); +dev_dbg (&udev->dev,"%s\n" , + udev->auto_pm ?"usb auto-suspend" :"usb suspend" );usb_set_device_state (udev,USB_STATE_SUSPENDED );msleep (10 ); }
@@ -2045,8 +2044,8 @@ static int finish_port_resume(struct usbu16 devstatus;/* caller owns the udev device lock */ -dev_dbg (&udev->dev,"finish %sresume\n" , - udev->reset_resume ?"reset-" :"" ); +dev_dbg (&udev->dev,"%s\n" , + udev->reset_resume ?"finish reset-resume" :"finish resume" );/* usb ch9 identifies four variants of SUSPENDED, based on what * state the device resumes to. Linux currently won't see the
@@ -2098,8 +2097,9 @@ static int finish_port_resume(struct usbNULL ,0 , USB_CTRL_SET_TIMEOUT);if (status) -dev_dbg (&udev->dev,"disable remote " -"wakeup, status %d\n" , status); +dev_dbg (&udev->dev, +"disable remote wakeup, status %d\n" , + status); } status =0 ; }
@@ -2582,9 +2582,9 @@ hub_port_init (struct usb_hub *hub, stru goto fail; }if (r) { -dev_err (&udev->dev,"device descriptor " -"read/%s, error %d\n" , -"64" , r); +dev_err (&udev->dev, +"device descriptor read/64, error %d\n" , + r); retval = -EMSGSIZE ;continue ; }
@@ -2621,9 +2621,9 @@ hub_port_init (struct usb_hub *hub, stru retval =usb_get_device_descriptor (udev,8 );if (retval <8 ) { -dev_err (&udev->dev,"device descriptor " -"read/%s, error %d\n" , -"8" , retval); +dev_err (&udev->dev, +"device descriptor read/8, error %d\n" , + retval);if (retval >=0 ) retval = -EMSGSIZE ; }else {
@@ -2650,8 +2650,8 @@ hub_port_init (struct usb_hub *hub, stru retval =usb_get_device_descriptor (udev,USB_DT_DEVICE_SIZE );if (retval < (signed )sizeof (udev->descriptor)) { -dev_err (&udev->dev,"device descriptor read/%s, error %d\n" , -"all" , retval); +dev_err (&udev->dev,"device descriptor read/all, error %d\n" , + retval);if (retval >=0 ) retval = -ENOMSG ; goto fail;
@@ -2681,8 +2681,8 @@ check_highspeed (struct usb_hub *hub, st status =usb_get_descriptor (udev,USB_DT_DEVICE_QUALIFIER ,0 , qual,sizeof *qual);if (status ==sizeof *qual) { -dev_info (&udev->dev,"not running at top speed; " -"connect to a high speed hub\n" ); +dev_info (&udev->dev, +"not running at top speed; connect to a high speed hub\n" );/* hub LEDs are probably harder to miss than syslog */ if (hub->has_indicators) { hub->indicator[port1-1 ] =INDICATOR_GREEN_BLINK ;
@@ -2719,9 +2719,9 @@ hub_power_remaining (struct usb_hub *hubelse delta =8 ;if (delta > hub->mA_per_port) -dev_warn (&udev->dev,"%dmA is over %umA budget " -"for port %d!\n" , - delta, hub->mA_per_port, port1); +dev_warn (&udev->dev, +"%dmA is over %umA budget for port %d!\n" , + delta, hub->mA_per_port, port1); remaining -= delta; }if (remaining <0 ) {
@@ -2812,8 +2812,9 @@ static void hub_port_connect_change(stru status =hub_port_debounce (hub, port1);if (status <0 ) {if (printk_ratelimit ()) -dev_err (hub_dev,"connect-debounce failed, " -"port %d disabled\n" , port1); +dev_err (hub_dev, +"connect-debounce failed, port %d disabled\n" , + port1); portstatus &= ~USB_PORT_STAT_CONNECTION ; }else { portstatus = status;
@@ -2883,8 +2884,7 @@ static void hub_port_connect_change(strule16_to_cpus (&devstat);if ((devstat & (1 <<USB_DEVICE_SELF_POWERED )) ==0 ) {dev_err (&udev->dev, -"can't connect bus-powered hub " -"to this port\n" ); +"can't connect bus-powered hub to this port\n" );if (hub->has_indicators) { hub->indicator[port1-1 ] =INDICATOR_AMBER_BLINK ;
@@ -3067,9 +3067,8 @@ static void hub_events(void)if (portchange &USB_PORT_STAT_C_ENABLE ) {if (!connect_change)dev_dbg (hub_dev, -"port %d enable change, " -"status %08x\n" , - i, portstatus); +"port %d enable change, status %08x\n" , + i, portstatus);clear_port_feature (hdev, i,USB_PORT_FEAT_C_ENABLE );
@@ -3083,10 +3082,8 @@ static void hub_events(void) && !connect_change && hdev->children[i-1]) {dev_err (hub_dev, -"port %i " -"disabled by hub (EMI?), " -"re-enabling...\n" , - i); +"port %i disabled by hub (EMI?), re-enabling...\n" , + i); connect_change =1 ; } }
@@ -3420,8 +3417,8 @@ static int usb_reset_and_verify_device(s ret =usb_set_interface (udev, desc->bInterfaceNumber, desc->bAlternateSetting);if (ret <0 ) { -dev_err (&udev->dev,"failed to restore interface %d " -"altsetting %d (error=%d)\n" , +dev_err (&udev->dev, +"failed to restore interface %d altsetting %d (error=%d)\n" , desc->bInterfaceNumber, desc->bAlternateSetting, ret);
Hi Wu,
Quoted 2 lines · Wu Fengguang
Make USB printk messages long and straightforward. One of these decorated USB error messages cost me some smart efforts to locate.
That would make the code break the 80 columns limit.
Quoted 1 line
From "
Documentation/CodingStyle":
"The limit on the length of lines is 80 columns and this is a strongly preferred limit."
Best regards,
Laurent Pinchart
Quoted 250 lines
Cc Greg Kroah-Hartman <[email protected]>Signed-off-by Wu Fengguang <[email protected]>--- drivers/usb/core/hub.c | 89 ++++++++++++++++++--------------------- 1 file changed, 43 insertions(+), 46 deletions(-)drivers/usb/core/hub.c +2
-1@@ -107,7 +107,8 @@ MODULE_PARM_DESC (blinkenlights, "true t/* define initial 64-byte descriptor request timeout in milliseconds */ static int initial_descriptor_timeout =USB_CTRL_GET_TIMEOUT ;module_param (initial_descriptor_timeout, int,S_IRUGO |S_IWUSR ); -MODULE_PARM_DESC(initial_descriptor_timeout, "initial 64-byte descriptor request timeout in milliseconds (default 5000 - 5.0 seconds)"); +MODULE_PARM_DESC (initial_descriptor_timeout, + "initial 64-byte descriptor request timeout in milliseconds (default 5000 - 5.0 seconds)");/*
* As of 2.6.10 we introduce a new USB device initialization scheme whichdrivers/usb/core/hub.c +41
-46@@ -131,8 +132,7 @@ MODULE_PARM_DESC(old_scheme_first,static int use_both_schemes =1 ;module_param (use_both_schemes, bool,S_IRUGO |S_IWUSR );MODULE_PARM_DESC (use_both_schemes, -"try the other device initialization scheme if the " -"first one fails" ); +"try the other device initialization scheme if the first one fails" );/* Mutual exclusion for EHCI CF initialization. This interferes with * port reset on some companion controllers. @@ -545,8 +545,7 @@ static unsigned hub_power_on(struct usb_if ((wHubCharacteristics &HUB_CHAR_LPSM ) <2 )dev_dbg (hub->intfdev,"enabling power on all ports\n" );else -dev_dbg (hub->intfdev,"trying to enable port power on " -"non-switchable hub\n" ); +dev_dbg (hub->intfdev,"trying to enable port power on non-switchable hub\n"); for (port1 = 1; port1 <= hub->descriptor->bNbrPorts; port1++)set_port_feature (hub->hdev, port1,USB_PORT_FEAT_POWER );@@ -1020,8 +1019,7 @@ static int hub_configure(struct usb_hubif (remaining < hdev->maxchild *100 )dev_warn (hub_dev, -"insufficient power available " -"to use all downstream ports\n" ); +"insufficient power available to use all downstream ports\n" ); hub->mA_per_port =100 ;/* 7.2.1.1 */ } }else {/* Self-powered external hub */ @@ -1136,8 +1134,8 @@ static int hub_probe(struct usb_interfac hdev =interface_to_usbdev (intf);if (hdev->level ==MAX_TOPO_LEVEL ) { -dev_err (&intf->dev,"Unsupported bus topology: " -"hub nested too deep\n" ); +dev_err (&intf->dev, +"Unsupported bus topology: hub nested too deep\n" );return -E2BIG ; }@@ -1476,8 +1474,8 @@ static void announce_device(struct usb_ddev_info (&udev->dev,"New USB device found, idVendor=%04x, idProduct=%04x\n", le16_to_cpu(udev->descriptor.idVendor),le16_to_cpu (udev->descriptor.idProduct)); -dev_info (&udev->dev,"New USB device strings: Mfr=%d, Product=%d, " -"SerialNumber=%d\n" , +dev_info (&udev->dev, +"New USB device strings: Mfr=%d, Product=%d, SerialNumber=%d\n" , udev->descriptor.iManufacturer, udev->descriptor.iProduct, udev->descriptor.iSerialNumber);@@ -1542,7 +1540,7 @@ static int usb_configure_device_otg(stru* customize to match your product. */ dev_info (&udev->dev, -"can't set HNP mode; %d\n" , +"can't set HNP mode: %d\n" , err); bus->b_hnp_enable =0 ; }@@ -1723,8 +1721,9 @@ int usb_authorize_device(struct usb_devi } result =usb_get_device_descriptor (usb_dev,sizeof (usb_dev->descriptor));if (result <0 ) { -dev_err (&usb_dev->dev,"can't re-read device descriptor for " -"authorization: %d\n" , result); +dev_err (&usb_dev->dev, +"can't re-read device descriptor for authorization: %d\n" , + result); goto error_device_descriptor; } usb_dev->authorized =1 ;@@ -2020,8 +2019,8 @@ int usb_port_suspend(struct usb_device * USB_CTRL_SET_TIMEOUT); }else {/* device has up to 10 msec to fully suspend */ -dev_dbg (&udev->dev,"usb %ssuspend\n" , - udev->auto_pm ?"auto-" :"" ); +dev_dbg (&udev->dev,"%s\n" , + udev->auto_pm ?"usb auto-suspend" :"usb suspend" );usb_set_device_state (udev,USB_STATE_SUSPENDED );msleep (10 ); }@@ -2045,8 +2044,8 @@ static int finish_port_resume(struct usbu16 devstatus;/* caller owns the udev device lock */ -dev_dbg (&udev->dev,"finish %sresume\n" , - udev->reset_resume ?"reset-" :"" ); +dev_dbg (&udev->dev,"%s\n" , + udev->reset_resume ?"finish reset-resume" :"finish resume" );/* usb ch9 identifies four variants of SUSPENDED, based on what * state the device resumes to. Linux currently won't see the @@ -2098,8 +2097,9 @@ static int finish_port_resume(struct usbNULL ,0 , USB_CTRL_SET_TIMEOUT);if (status) -dev_dbg (&udev->dev,"disable remote " -"wakeup, status %d\n" , status); +dev_dbg (&udev->dev, +"disable remote wakeup, status %d\n" , + status); } status =0 ; }@@ -2582,9 +2582,9 @@ hub_port_init (struct usb_hub *hub, stru goto fail; }if (r) { -dev_err (&udev->dev,"device descriptor " -"read/%s, error %d\n" , -"64" , r); +dev_err (&udev->dev, +"device descriptor read/64, error %d\n" , + r); retval = -EMSGSIZE ;continue ; }@@ -2621,9 +2621,9 @@ hub_port_init (struct usb_hub *hub, stru retval =usb_get_device_descriptor (udev,8 );if (retval <8 ) { -dev_err (&udev->dev,"device descriptor " -"read/%s, error %d\n" , -"8" , retval); +dev_err (&udev->dev, +"device descriptor read/8, error %d\n" , + retval);if (retval >=0 ) retval = -EMSGSIZE ; }else {@@ -2650,8 +2650,8 @@ hub_port_init (struct usb_hub *hub, stru retval =usb_get_device_descriptor (udev,USB_DT_DEVICE_SIZE );if (retval < (signed )sizeof (udev->descriptor)) { -dev_err (&udev->dev,"device descriptor read/%s, error %d\n" , -"all" , retval); +dev_err (&udev->dev,"device descriptor read/all, error %d\n" , + retval);if (retval >=0 ) retval = -ENOMSG ; goto fail;@@ -2681,8 +2681,8 @@ check_highspeed (struct usb_hub *hub, st status =usb_get_descriptor (udev,USB_DT_DEVICE_QUALIFIER ,0 , qual,sizeof *qual);if (status ==sizeof *qual) { -dev_info (&udev->dev,"not running at top speed; " -"connect to a high speed hub\n" ); +dev_info (&udev->dev, +"not running at top speed; connect to a high speed hub\n" );/* hub LEDs are probably harder to miss than syslog */ if (hub->has_indicators) { hub->indicator[port1-1 ] =INDICATOR_GREEN_BLINK ;@@ -2719,9 +2719,9 @@ hub_power_remaining (struct usb_hub *hubelse delta =8 ;if (delta > hub->mA_per_port) -dev_warn (&udev->dev,"%dmA is over %umA budget " -"for port %d!\n" , - delta, hub->mA_per_port, port1); +dev_warn (&udev->dev, +"%dmA is over %umA budget for port %d!\n" , + delta, hub->mA_per_port, port1); remaining -= delta; }if (remaining <0 ) {@@ -2812,8 +2812,9 @@ static void hub_port_connect_change(stru status =hub_port_debounce (hub, port1);if (status <0 ) {if (printk_ratelimit ()) -dev_err (hub_dev,"connect-debounce failed, " -"port %d disabled\n" , port1); +dev_err (hub_dev, +"connect-debounce failed, port %d disabled\n" , + port1); portstatus &= ~USB_PORT_STAT_CONNECTION ; }else { portstatus = status;@@ -2883,8 +2884,7 @@ static void hub_port_connect_change(strule16_to_cpus (&devstat);if ((devstat & (1 <<USB_DEVICE_SELF_POWERED )) ==0 ) {dev_err (&udev->dev, -"can't connect bus-powered hub " -"to this port\n" ); +"can't connect bus-powered hub to this port\n" );if (hub->has_indicators) { hub->indicator[port1-1 ] =INDICATOR_AMBER_BLINK ;@@ -3067,9 +3067,8 @@ static void hub_events(void)if (portchange &USB_PORT_STAT_C_ENABLE ) {if (!connect_change)dev_dbg (hub_dev, -"port %d enable change, " -"status %08x\n" , - i, portstatus); +"port %d enable change, status %08x\n" , + i, portstatus);clear_port_feature (hdev, i,USB_PORT_FEAT_C_ENABLE );@@ -3083,10 +3082,8 @@ static void hub_events(void) && !connect_change && hdev->children[i-1]) {dev_err (hub_dev, -"port %i " -"disabled by hub (EMI?), " -"re-enabling...\n" , - i); +"port %i disabled by hub (EMI?), re-enabling...\n" , + i); connect_change =1 ; } }@@ -3420,8 +3417,8 @@ static int usb_reset_and_verify_device(s ret =usb_set_interface (udev, desc->bInterfaceNumber, desc->bAlternateSetting);if (ret <0 ) { -dev_err (&udev->dev,"failed to restore interface %d " -"altsetting %d (error=%d)\n" , +dev_err (&udev->dev, +"failed to restore interface %d altsetting %d (error=%d)\n" , desc->bInterfaceNumber, desc->bAlternateSetting, ret); --To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Am Mittwoch, 10. Dezember 2008 10:42:17 schrieb Laurent Pinchart:
Quoted 6 lines
Hi Wu,
Quoted 2 lines · Wu Fengguang
Make USB printk messages long and straightforward. One of these decorated USB error messages cost me some smart efforts to locate.
Quoted 6 lines
That would make the code break the 80 columns limit.
From "
Documentation/CodingStyle":"The limit on the length of lines is 80 columns and this is a strongly preferred limit."
Too rigid an application is bad. The kernel must be greppable.
Regards
Oliver
Quoted 7 lines · Oliver Neukum
Am Mittwoch, 10. Dezember 2008 10:42:17 schrieb Laurent Pinchart:
Quoted 6 lines
Hi Wu,
Quoted 2 lines · Wu Fengguang
Make USB printk messages long and straightforward. One of these decorated USB error messages cost me some smart efforts to locate.
Quoted 8 lines
Quoted 6 lines
That would make the code break the 80 columns limit.
From "
Documentation/CodingStyle":"The limit on the length of lines is 80 columns and this is a strongly preferred limit."
Too rigid an application is bad. The kernel must be greppable.
I've also been bitten by split strings when grepping kernel source code. A cgrep that would unsplit strings before searching them would be nice :-)
Best regards,
Laurent Pinchart
Quoted 12 lines · Laurent Pinchart
Quoted 11 lines · Oliver Neukum
Am Mittwoch, 10. Dezember 2008 10:42:17 schrieb Laurent Pinchart:
Quoted 10 lines
Hi Wu,
Quoted 2 lines · Wu Fengguang
Make USB printk messages long and straightforward. One of these decorated USB error messages cost me some smart efforts to locate.
That would make the code break the 80 columns limit.
From "
Documentation/CodingStyle":
Quoted 7 lines
Quoted 4 lines
Quoted 2 lines
"The limit on the length of lines is 80 columns and this is a strongly preferred limit."
Too rigid an application is bad. The kernel must be greppable.
I've also been bitten by split strings when grepping kernel source code. A cgrep that would unsplit strings before searching them would be nice :-)
Such printk will sure bite more people. And it's amazing that the CodingStyle document uses printk as an 80-column example:
80 The limit on the length of lines is 80 columns and this is a strongly 81 preferred limit.
82
83 Statements longer than 80 columns will be broken into sensible chunks. 84 Descendants are always substantially shorter than the parent and are placed 85 substantially to the right. The same applies to function headers with a long 86 argument list. Long strings are as well broken into shorter strings. The 87 only exception to this is where exceeding 80 columns significantly increases 88 readability and does not hide information.
89
90 void fun(int a, int b, int c)
91 {
92 if (condition)
93 printk(KERN_WARNING "Warning this is a long printk with "
94 "3 parameters a: %u b: %u "
95 "c: %u \n", a, b, c);
96 else
97 next_statement;
98 }
Quoted 7 lines · Oliver Neukum
Am Mittwoch, 10. Dezember 2008 10:42:17 schrieb Laurent Pinchart:
Quoted 6 lines
Hi Wu,
Quoted 2 lines · Wu Fengguang
Make USB printk messages long and straightforward. One of these decorated USB error messages cost me some smart efforts to locate.
Quoted 8 lines
Quoted 6 lines
That would make the code break the 80 columns limit.
From "
Documentation/CodingStyle":"The limit on the length of lines is 80 columns and this is a strongly preferred limit."
Too rigid an application is bad. The kernel must be greppable.
The kernel is greppable in either case. It's foolish to rigidly insist that long strings must not be broken. And don't forget that some strings are created dynamically (with %s specifiers, for instance). How are you going to grep for them?
It's also worth pointing out that much of the source code in usbcore tends to indent continuation lines by two extra tab stops. This isn't done all the time, admittedly. But deliberately changing the code so that continuations use only one tab stop feels like a bad idea -- one extra tab stop looks too much like a nested statement.
Alan Stern