bk://kernel.bkbits.net/gregkh/linux/usb-2.6
gregkh@suse.de|ChangeSet|20050315075702|43201 gregkh

# This is a BitKeeper generated diff -Nru style patch.
#
# ChangeSet
#   2005/03/14 23:57:02-08:00 gregkh@suse.de 
#   USB: fix cpia_usb driver's warning messages in the syslog
#   
#   This fixes the cpia driver to call usb_kill_urb() instead of
#   usb_unlink_urb() which reduces the ammount of syslog messages when
#   kernel debugging is enabled.
#   
#   Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
# 
# drivers/media/video/cpia_usb.c
#   2005/03/14 23:56:43-08:00 gregkh@suse.de +2 -2
#   USB: fix cpia_usb driver's warning messages in the syslog
#   
#   This fixes the cpia driver to call usb_kill_urb() instead of
#   usb_unlink_urb() which reduces the ammount of syslog messages when
#   kernel debugging is enabled.
#   
#   Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
# 
# ChangeSet
#   2005/03/14 22:57:48-08:00 gregkh@suse.de 
#   [PATCH] USB: minor cleanup of string freeing in core code.
#   
#   As pointed out by Paulo Marques <pmarques@grupopie.com>
#   
#   Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
# 
# drivers/usb/core/config.c
#   2005/03/14 16:31:43-08:00 gregkh@suse.de +2 -2
#   USB: minor cleanup of string freeing in core code.
# 
# ChangeSet
#   2005/03/14 22:57:23-08:00 gregkh@suse.de 
#   [PATCH] USB: optimize the usb-storage device string logic a bit.
#   
#   As pointed out by Alan Stern <stern@rowland.harvard.edu>
#   
#   Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
# 
# drivers/usb/storage/scsiglue.c
#   2005/03/14 16:32:38-08:00 gregkh@suse.de +12 -8
#   USB: optimize the usb-storage device string logic a bit.
# 
diff -Nru a/drivers/media/video/cpia_usb.c b/drivers/media/video/cpia_usb.c
--- a/drivers/media/video/cpia_usb.c	2005-03-16 00:05:50 -08:00
+++ b/drivers/media/video/cpia_usb.c	2005-03-16 00:05:50 -08:00
@@ -440,7 +440,7 @@
 
 	/* Unschedule all of the iso td's */
 	if (ucpia->sbuf[1].urb) {
-		usb_unlink_urb(ucpia->sbuf[1].urb);
+		usb_kill_urb(ucpia->sbuf[1].urb);
 		usb_free_urb(ucpia->sbuf[1].urb);
 		ucpia->sbuf[1].urb = NULL;
 	}
@@ -451,7 +451,7 @@
 	}
  
 	if (ucpia->sbuf[0].urb) {
-		usb_unlink_urb(ucpia->sbuf[0].urb);
+		usb_kill_urb(ucpia->sbuf[0].urb);
 		usb_free_urb(ucpia->sbuf[0].urb);
 		ucpia->sbuf[0].urb = NULL;
 	}
diff -Nru a/drivers/usb/core/config.c b/drivers/usb/core/config.c
--- a/drivers/usb/core/config.c	2005-03-16 00:05:50 -08:00
+++ b/drivers/usb/core/config.c	2005-03-16 00:05:50 -08:00
@@ -420,8 +420,8 @@
 	for (c = 0; c < dev->descriptor.bNumConfigurations; c++) {
 		struct usb_host_config *cf = &dev->config[c];
 
-		if (cf->string)
-			kfree(cf->string);
+		kfree(cf->string);
+		cf->string = NULL;
 
 		for (i = 0; i < cf->desc.bNumInterfaces; i++) {
 			if (cf->intf_cache[i])
diff -Nru a/drivers/usb/storage/scsiglue.c b/drivers/usb/storage/scsiglue.c
--- a/drivers/usb/storage/scsiglue.c	2005-03-16 00:05:50 -08:00
+++ b/drivers/usb/storage/scsiglue.c	2005-03-16 00:05:50 -08:00
@@ -345,6 +345,7 @@
 {
 	struct us_data *us;
 	char *pos = buffer;
+	const char *string;
 
 	/* if someone is sending us data, just throw it away */
 	if (inout)
@@ -357,21 +358,24 @@
 
 	/* print product, vendor, and serial number strings */
 	if (us->pusb_dev->manufacturer)
-		SPRINTF("       Vendor: %s\n", us->pusb_dev->manufacturer);
+		string = us->pusb_dev->manufacturer;
 	else if (us->unusual_dev->vendorName)
-		SPRINTF("       Vendor: %s\n", us->unusual_dev->vendorName);
+		string = us->unusual_dev->vendorName;
 	else
-		SPRINTF("       Vendor: Unknown\n");
+		string = "Unknown";
+	SPRINTF("       Vendor: %s\n", string);
 	if (us->pusb_dev->product)
-		SPRINTF("      Product: %s\n", us->pusb_dev->product);
+		string = us->pusb_dev->product;
 	else if (us->unusual_dev->productName)
-		SPRINTF("      Product: %s\n", us->unusual_dev->productName);
+		string = us->unusual_dev->productName;
 	else
-		SPRINTF("      Product: Unknown\n");
+		string = "Unknown";
+	SPRINTF("      Product: %s\n", string);
 	if (us->pusb_dev->serial)
-		SPRINTF("Serial Number: %s\n", us->pusb_dev->serial);
+		string = us->pusb_dev->serial;
 	else
-		SPRINTF("Serial Number: None\n");
+		string = "None";
+	SPRINTF("Serial Number: %s\n", string);
 
 	/* show the protocol and transport */
 	SPRINTF("     Protocol: %s\n", us->protocol_name);