From 84a5dbd0ce2539190cae2f038f037fdc7ffe3675 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Tue, 15 Dec 2009 13:38:11 -0800 Subject: [PATCH] start the .31 queue --- queue-2.6.31/series | 2 + queue-2.6.31/usb-option-add-pid-for-zte.patch | 69 +++++++++++++++++++ ...-usb-storage-fix-bug-in-fill_inquiry.patch | 57 +++++++++++++++ 3 files changed, 128 insertions(+) create mode 100644 queue-2.6.31/series create mode 100644 queue-2.6.31/usb-option-add-pid-for-zte.patch create mode 100644 queue-2.6.31/usb-usb-storage-fix-bug-in-fill_inquiry.patch diff --git a/queue-2.6.31/series b/queue-2.6.31/series new file mode 100644 index 00000000000..f61e409b100 --- /dev/null +++ b/queue-2.6.31/series @@ -0,0 +1,2 @@ +usb-option-add-pid-for-zte.patch +usb-usb-storage-fix-bug-in-fill_inquiry.patch diff --git a/queue-2.6.31/usb-option-add-pid-for-zte.patch b/queue-2.6.31/usb-option-add-pid-for-zte.patch new file mode 100644 index 00000000000..bc0c7994247 --- /dev/null +++ b/queue-2.6.31/usb-option-add-pid-for-zte.patch @@ -0,0 +1,69 @@ +From 8d87cacda7c8db5c131bfcaaa1d90bfe918c2ebc Mon Sep 17 00:00:00 2001 +From: zhao.ming9@zte.com.cn +Date: Mon, 7 Dec 2009 11:36:34 +0800 +Subject: USB: option: add pid for ZTE + +From: zhao.ming9@zte.com.cn + +commit 8d87cacda7c8db5c131bfcaaa1d90bfe918c2ebc upstream. + +This patch adds ZTE modem devices. + +Signed-off-by: Ming Zhao +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/serial/option.c | 36 ++++++++++++++++++++++++++++++++++++ + 1 file changed, 36 insertions(+) + +--- a/drivers/usb/serial/option.c ++++ b/drivers/usb/serial/option.c +@@ -577,12 +577,48 @@ static struct usb_device_id option_ids[] + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0086, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x2002, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x2003, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0104, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0106, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0108, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0113, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0117, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0118, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0121, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0122, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0123, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0124, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0125, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0126, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0128, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0142, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0143, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0144, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0145, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0146, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0147, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0148, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0149, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0150, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0151, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0152, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0153, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0154, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0155, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0156, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0157, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0158, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0159, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0160, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0161, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0162, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0014, 0xff, 0xff, 0xff) }, /* ZTE CDMA products */ + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0027, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0059, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0060, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0070, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0073, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0130, 0xff, 0xff, 0xff) }, ++ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0141, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_CDMA_TECH, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_AC8710, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_AC2726, 0xff, 0xff, 0xff) }, diff --git a/queue-2.6.31/usb-usb-storage-fix-bug-in-fill_inquiry.patch b/queue-2.6.31/usb-usb-storage-fix-bug-in-fill_inquiry.patch new file mode 100644 index 00000000000..4f5366f0d6e --- /dev/null +++ b/queue-2.6.31/usb-usb-storage-fix-bug-in-fill_inquiry.patch @@ -0,0 +1,57 @@ +From f3f6faa9edf67c1018270793e0547b0f81abb47e Mon Sep 17 00:00:00 2001 +From: Alan Stern +Date: Mon, 7 Dec 2009 16:47:43 -0500 +Subject: USB: usb-storage: fix bug in fill_inquiry + +From: Alan Stern + +commit f3f6faa9edf67c1018270793e0547b0f81abb47e upstream. + +This patch (as1312) fixes a minor bug in usb-storage. The +fill_inquiry() routine neglects to pre-load the inquiry data buffer +with spaces. As a result, if the vendor name is shorter than 8 +characters or the product name is shorter than 16, the remainder will +be filled with garbage. + +The patch also removes some unnecessary calls to strlen(). + +Signed-off-by: Alan Stern +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/storage/usb.c | 15 ++++++++------- + 1 file changed, 8 insertions(+), 7 deletions(-) + +--- a/drivers/usb/storage/usb.c ++++ b/drivers/usb/storage/usb.c +@@ -228,6 +228,7 @@ void fill_inquiry_response(struct us_dat + if (data_len<36) // You lose. + return; + ++ memset(data+8, ' ', 28); + if(data[0]&0x20) { /* USB device currently not connected. Return + peripheral qualifier 001b ("...however, the + physical device is not currently connected +@@ -237,15 +238,15 @@ void fill_inquiry_response(struct us_dat + device, it may return zeros or ASCII spaces + (20h) in those fields until the data is + available from the device."). */ +- memset(data+8,0,28); + } else { + u16 bcdDevice = le16_to_cpu(us->pusb_dev->descriptor.bcdDevice); +- memcpy(data+8, us->unusual_dev->vendorName, +- strlen(us->unusual_dev->vendorName) > 8 ? 8 : +- strlen(us->unusual_dev->vendorName)); +- memcpy(data+16, us->unusual_dev->productName, +- strlen(us->unusual_dev->productName) > 16 ? 16 : +- strlen(us->unusual_dev->productName)); ++ int n; ++ ++ n = strlen(us->unusual_dev->vendorName); ++ memcpy(data+8, us->unusual_dev->vendorName, min(8, n)); ++ n = strlen(us->unusual_dev->productName); ++ memcpy(data+16, us->unusual_dev->productName, min(16, n)); ++ + data[32] = 0x30 + ((bcdDevice>>12) & 0x0F); + data[33] = 0x30 + ((bcdDevice>>8) & 0x0F); + data[34] = 0x30 + ((bcdDevice>>4) & 0x0F); -- 2.47.3