aboutsummaryrefslogtreecommitdiffstats
diff options
-rw-r--r--driver-core.current/block-drop-references-taken-by-class_find_device.patch82
-rw-r--r--driver-core.current/block-fix-partial-read-of-proc-partitions-diskstats.patch65
-rw-r--r--series10
-rw-r--r--usb.current/usb-cdc-acm-quirk-for-conexant-cx93010-usb-modem.patch33
-rw-r--r--usb.current/usb-fix-bug-in-usb_unlink_anchored_urbs.patch45
-rw-r--r--usb.current/usb-fix-pxa27x_udc-usb-speed-handling.patch35
-rw-r--r--usb.current/usb-isp1760-fixed-trivial-math-in-comment.patch28
-rw-r--r--usb.current/usb-serial-option-support-hsdpa-modem-a2502.patch43
-rw-r--r--usb/hso-icon-322-detection-fix.patch28
-rw-r--r--usb/usb-remove-info-macro-from-usb.h.patch4
10 files changed, 370 insertions, 3 deletions
diff --git a/driver-core.current/block-drop-references-taken-by-class_find_device.patch b/driver-core.current/block-drop-references-taken-by-class_find_device.patch
new file mode 100644
index 00000000000000..f000e639b26e6a
--- /dev/null
+++ b/driver-core.current/block-drop-references-taken-by-class_find_device.patch
@@ -0,0 +1,82 @@
+From kay.sievers@vrfy.org Tue Aug 19 16:37:15 2008
+From: Kay Sievers <kay.sievers@vrfy.org>
+Date: Sat, 16 Aug 2008 14:30:30 +0200
+Subject: block: drop references taken by class_find_device()
+Message-ID: <1218889830.22035.11.camel@lgn.site>
+
+
+Otherwise we leak references, which is not a good thing to do.
+
+
+Signed-off-by: Kay Sievers <kay.sievers@vrfy.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ block/genhd.c | 22 ++++++++++++++++------
+ 1 file changed, 16 insertions(+), 6 deletions(-)
+
+--- a/block/genhd.c
++++ b/block/genhd.c
+@@ -313,8 +313,10 @@ static void *part_start(struct seq_file
+
+ mutex_lock(&block_class_lock);
+ dev = class_find_device(&block_class, NULL, &k, find_start);
+- if (dev)
++ if (dev) {
++ put_device(dev);
+ return dev_to_disk(dev);
++ }
+ return NULL;
+ }
+
+@@ -331,8 +333,10 @@ static void *part_next(struct seq_file *
+ struct device *dev;
+ ++*pos;
+ dev = class_find_device(&block_class, &gp->dev, NULL, find_next);
+- if (dev)
++ if (dev) {
++ put_device(dev);
+ return dev_to_disk(dev);
++ }
+ return NULL;
+ }
+
+@@ -573,8 +577,10 @@ static void *diskstats_start(struct seq_
+
+ mutex_lock(&block_class_lock);
+ dev = class_find_device(&block_class, NULL, &k, find_start);
+- if (dev)
++ if (dev) {
++ put_device(dev);
+ return dev_to_disk(dev);
++ }
+ return NULL;
+ }
+
+@@ -585,8 +591,10 @@ static void *diskstats_next(struct seq_f
+
+ ++*pos;
+ dev = class_find_device(&block_class, &gp->dev, NULL, find_next);
+- if (dev)
++ if (dev) {
++ put_device(dev);
+ return dev_to_disk(dev);
++ }
+ return NULL;
+ }
+
+@@ -714,10 +722,12 @@ dev_t blk_lookup_devt(const char *name,
+ mutex_lock(&block_class_lock);
+ find.name = name;
+ find.part = part;
+- dev = class_find_device(&block_class, NULL, (void *)&find, match_id);
+- if (dev)
++ dev = class_find_device(&block_class, NULL, &find, match_id);
++ if (dev) {
++ put_device(dev);
+ devt = MKDEV(MAJOR(dev->devt),
+ MINOR(dev->devt) + part);
++ }
+ mutex_unlock(&block_class_lock);
+
+ return devt;
diff --git a/driver-core.current/block-fix-partial-read-of-proc-partitions-diskstats.patch b/driver-core.current/block-fix-partial-read-of-proc-partitions-diskstats.patch
new file mode 100644
index 00000000000000..0200bf917e9b3c
--- /dev/null
+++ b/driver-core.current/block-fix-partial-read-of-proc-partitions-diskstats.patch
@@ -0,0 +1,65 @@
+From kay.sievers@vrfy.org Tue Aug 19 16:37:13 2008
+From: Kay Sievers <kay.sievers@vrfy.org>
+Date: Sat, 16 Aug 2008 14:30:30 +0200
+Subject: block: fix partial read() of /proc/{partitions,diskstats}
+Message-ID: <1218889830.22035.10.camel@lgn.site>
+
+
+The proc files get truncated if they do not fit into the buffer with
+a single read(). We need to move the seq_file index from the callback
+of class_find_device() to the caller of class_find_device(), to keep
+its value across multiple invocations of the callback.
+
+Signed-off-by: Kay Sievers <kay.sievers@vrfy.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ block/genhd.c | 14 ++++++++------
+ 1 file changed, 8 insertions(+), 6 deletions(-)
+
+--- a/block/genhd.c
++++ b/block/genhd.c
+@@ -293,25 +293,26 @@ void __init printk_all_partitions(void)
+ /* iterator */
+ static int find_start(struct device *dev, void *data)
+ {
+- loff_t k = *(loff_t *)data;
++ loff_t *k = data;
+
+ if (dev->type != &disk_type)
+ return 0;
+- if (!k--)
++ if (!*k)
+ return 1;
++ (*k)--;
+ return 0;
+ }
+
+ static void *part_start(struct seq_file *part, loff_t *pos)
+ {
+ struct device *dev;
+- loff_t n = *pos;
++ loff_t k = *pos;
+
+- if (!n)
++ if (!k)
+ seq_puts(part, "major minor #blocks name\n\n");
+
+ mutex_lock(&block_class_lock);
+- dev = class_find_device(&block_class, NULL, (void *)pos, find_start);
++ dev = class_find_device(&block_class, NULL, &k, find_start);
+ if (dev)
+ return dev_to_disk(dev);
+ return NULL;
+@@ -568,9 +569,10 @@ static struct device_type disk_type = {
+ static void *diskstats_start(struct seq_file *part, loff_t *pos)
+ {
+ struct device *dev;
++ loff_t k = *pos;
+
+ mutex_lock(&block_class_lock);
+- dev = class_find_device(&block_class, NULL, (void *)pos, find_start);
++ dev = class_find_device(&block_class, NULL, &k, find_start);
+ if (dev)
+ return dev_to_disk(dev);
+ return NULL;
diff --git a/series b/series
index bd624240bbc294..f7ec5a4fb78904 100644
--- a/series
+++ b/series
@@ -33,9 +33,10 @@ driver-core.current/drivers-base-driver.c-remove-unused-to_dev-macro.patch
driver-core.current/dev_printk-constify-the-dev-argument.patch
driver-core.current/driver-model-anti-oopsing-medicine.patch
driver-core.current/pm-don-t-skip-device-pm-init-when-config_pm_sleep-isn-t-set-and-config_pm-is-set.patch
-
driver-core.current/driver-core-add-init_name-to-struct-device.patch
driver-core.current/pm-remove-warn_on-from-device_pm_add.patch
+driver-core.current/block-fix-partial-read-of-proc-partitions-diskstats.patch
+driver-core.current/block-drop-references-taken-by-class_find_device.patch
# broken still :(
driver-core.current/kobject-fix-kobject_rename-and-config_sysfs.patch
@@ -43,6 +44,11 @@ driver-core.current/kobject-fix-kobject_rename-and-config_sysfs.patch
#################################
# USB patches for 2.6.27
#################################
+usb.current/usb-isp1760-fixed-trivial-math-in-comment.patch
+usb.current/usb-serial-option-support-hsdpa-modem-a2502.patch
+usb.current/usb-fix-bug-in-usb_unlink_anchored_urbs.patch
+usb.current/usb-cdc-acm-quirk-for-conexant-cx93010-usb-modem.patch
+usb.current/usb-fix-pxa27x_udc-usb-speed-handling.patch
#####################################################################
@@ -108,6 +114,7 @@ usb/hso-fix-oops-in-read-write-callbacks.patch
usb/hso-fix-refcounting-on-the-ttyhsx-devices.patch
usb/usb-hso-make-tty_operations-const.patch
usb/usb-hso-minor-fixes-due-to-code-review.patch
+usb/hso-icon-322-detection-fix.patch
# usb debugging, need to also fix up other parts of the kernel that depend on
# CONFIG_USB_DEBUG
@@ -140,3 +147,4 @@ usb/usb-gotemp.patch
#ns/module-usb-serial.patch
#ns/modpost
+
diff --git a/usb.current/usb-cdc-acm-quirk-for-conexant-cx93010-usb-modem.patch b/usb.current/usb-cdc-acm-quirk-for-conexant-cx93010-usb-modem.patch
new file mode 100644
index 00000000000000..00c203fd84b33c
--- /dev/null
+++ b/usb.current/usb-cdc-acm-quirk-for-conexant-cx93010-usb-modem.patch
@@ -0,0 +1,33 @@
+From sandeen@sandeen.net Thu Aug 14 06:25:45 2008
+From: Eric Sandeen <sandeen@sandeen.net>
+Date: Thu, 14 Aug 2008 08:25:40 -0500
+Subject: USB: cdc-acm: quirk for Conexant CX93010 USB modem
+To: linux-usb@vger.kernel.org
+Cc: oliver@neukum.name, Greg KH <greg@kroah.com>
+Message-ID: <48A43254.6070400@sandeen.net>
+
+
+This patch gets my Rosewill RNX-56USB USB modem (with Conexant CX93010
+chipset) up and running to the point where I can send AT commands and
+retrieve caller ID data, which is all I want to do with it.
+
+Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
+Acked-by: Oliver Neukum <oneukum@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/class/cdc-acm.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/drivers/usb/class/cdc-acm.c
++++ b/drivers/usb/class/cdc-acm.c
+@@ -1362,6 +1362,9 @@ static struct usb_device_id acm_ids[] =
+ { USB_DEVICE(0x0803, 0x3095), /* Zoom Telephonics Model 3095F USB MODEM */
+ .driver_info = NO_UNION_NORMAL, /* has no union descriptor */
+ },
++ { USB_DEVICE(0x0572, 0x1321), /* Conexant USB MODEM CX93010 */
++ .driver_info = NO_UNION_NORMAL, /* has no union descriptor */
++ },
+
+ /* control interfaces with various AT-command sets */
+ { USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM,
diff --git a/usb.current/usb-fix-bug-in-usb_unlink_anchored_urbs.patch b/usb.current/usb-fix-bug-in-usb_unlink_anchored_urbs.patch
new file mode 100644
index 00000000000000..00197a9e1ad930
--- /dev/null
+++ b/usb.current/usb-fix-bug-in-usb_unlink_anchored_urbs.patch
@@ -0,0 +1,45 @@
+From oliver@neukum.org Mon Aug 18 07:35:56 2008
+From: Oliver Neukum <oliver@neukum.org>
+Date: Mon, 18 Aug 2008 16:36:52 +0200
+Subject: USB: fix bug in usb_unlink_anchored_urbs()
+To: Greg KH <greg@kroah.com>
+Cc: linux-usb@vger.kernel.org, Marcel Holtmann <marcel@holtmann.org>
+Message-ID: <200808181636.52529.oliver@neukum.org>
+Content-Disposition: inline
+
+
+Irqs must not accidentally be reenabled.
+
+Signed-off-by: Oliver Neukum <oneukum@suse.de>
+Acked-by: Marcel Holtmann <marcel@holtmann.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/core/urb.c | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+--- a/drivers/usb/core/urb.c
++++ b/drivers/usb/core/urb.c
+@@ -601,15 +601,20 @@ EXPORT_SYMBOL_GPL(usb_kill_anchored_urbs
+ void usb_unlink_anchored_urbs(struct usb_anchor *anchor)
+ {
+ struct urb *victim;
++ unsigned long flags;
+
+- spin_lock_irq(&anchor->lock);
++ spin_lock_irqsave(&anchor->lock, flags);
+ while (!list_empty(&anchor->urb_list)) {
+ victim = list_entry(anchor->urb_list.prev, struct urb,
+ anchor_list);
++ usb_get_urb(victim);
++ spin_unlock_irqrestore(&anchor->lock, flags);
+ /* this will unanchor the URB */
+ usb_unlink_urb(victim);
++ usb_put_urb(victim);
++ spin_lock_irqsave(&anchor->lock, flags);
+ }
+- spin_unlock_irq(&anchor->lock);
++ spin_unlock_irqrestore(&anchor->lock, flags);
+ }
+ EXPORT_SYMBOL_GPL(usb_unlink_anchored_urbs);
+
diff --git a/usb.current/usb-fix-pxa27x_udc-usb-speed-handling.patch b/usb.current/usb-fix-pxa27x_udc-usb-speed-handling.patch
new file mode 100644
index 00000000000000..09a2a6b18379a0
--- /dev/null
+++ b/usb.current/usb-fix-pxa27x_udc-usb-speed-handling.patch
@@ -0,0 +1,35 @@
+From linux-usb-owner@vger.kernel.org Mon Aug 11 09:28:31 2008
+From: Robert Jarzmik <robert.jarzmik@free.fr>
+Date: Mon, 11 Aug 2008 18:28:13 +0200
+Subject: USB: Fix pxa27x_udc usb speed handling.
+To: linux-usb@vger.kernel.org
+Cc: david-b@pacbell.net, Robert Jarzmik <robert.jarzmik@free.fr>
+Message-ID: <1218472093-18732-1-git-send-email-robert.jarzmik@free.fr>
+
+
+The new composite framework revealed a weakness in the
+pxa27x_udc driver gadget register function. Instead of
+checking if speed asked for was USB_LOW_SPEED upon
+usb_gadget_register() to deny service, it checked only
+for USB_FULL_SPEED, thus denying service to usb high
+speed capable gadgets (like g_ether).
+
+Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
+Cc: David Brownell <david-b@pacbell.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/gadget/pxa27x_udc.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/usb/gadget/pxa27x_udc.c
++++ b/drivers/usb/gadget/pxa27x_udc.c
+@@ -1622,7 +1622,7 @@ int usb_gadget_register_driver(struct us
+ struct pxa_udc *udc = the_controller;
+ int retval;
+
+- if (!driver || driver->speed != USB_SPEED_FULL || !driver->bind
++ if (!driver || driver->speed < USB_SPEED_FULL || !driver->bind
+ || !driver->disconnect || !driver->setup)
+ return -EINVAL;
+ if (!udc)
diff --git a/usb.current/usb-isp1760-fixed-trivial-math-in-comment.patch b/usb.current/usb-isp1760-fixed-trivial-math-in-comment.patch
new file mode 100644
index 00000000000000..12154b48fba191
--- /dev/null
+++ b/usb.current/usb-isp1760-fixed-trivial-math-in-comment.patch
@@ -0,0 +1,28 @@
+From linux-usb-owner@vger.kernel.org Tue Aug 19 15:10:36 2008
+From: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
+Date: Wed, 20 Aug 2008 00:06:22 +0200
+Subject: USB: ISP1760: fixed trivial math in comment
+To: linux-usb@vger.kernel.org
+Cc: sebastian@breakpoint.cc, Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
+Message-ID: <1219183582-1556-1-git-send-email-enrico.scholz@sigma-chemnitz.de>
+
+
+Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
+Acked-by: Sebastian Siewior <sebastian@breakpoint.cc>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/host/isp1760-hcd.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/usb/host/isp1760-hcd.c
++++ b/drivers/usb/host/isp1760-hcd.c
+@@ -988,7 +988,7 @@ static void do_atl_int(struct usb_hcd *u
+ /*
+ * write bank1 address twice to ensure the 90ns delay (time
+ * between BANK0 write and the priv_read_copy() call is at
+- * least 3*t_WHWL + 2*t_w11 = 3*25ns + 2*17ns = 92ns)
++ * least 3*t_WHWL + 2*t_w11 = 3*25ns + 2*17ns = 109ns)
+ */
+ isp1760_writel(payload + ISP_BANK(1), usb_hcd->regs +
+ HC_MEMORY_REG);
diff --git a/usb.current/usb-serial-option-support-hsdpa-modem-a2502.patch b/usb.current/usb-serial-option-support-hsdpa-modem-a2502.patch
new file mode 100644
index 00000000000000..d058c4338f6407
--- /dev/null
+++ b/usb.current/usb-serial-option-support-hsdpa-modem-a2502.patch
@@ -0,0 +1,43 @@
+From linux-usb-owner@vger.kernel.org Tue Aug 19 02:26:49 2008
+From: Hiroshi Miura <miurahr@nttdata.co.jp>
+Date: Tue, 19 Aug 2008 10:58:25 +0200
+Subject: usb-serial: option support HSDPA modem A2502
+To: linux-usb@vger.kernel.org, greg.kh@suse.de
+Message-ID: <20080819085825.GG7982@smurf.noris.de>
+Content-Disposition: inline
+
+From: Hiroshi Miura <miurahr@nttdata.co.jp>
+
+This patch support NTT DoCoMo A2502 3G/HSDPA modem on option driver.
+It is produced by AnyDATA Corp. and also sold as KT Freetelecom (Korea) ADU 620UW.
+
+It support 3.6Mbps/7.2Mbps hight speed communication.
+I have tested A2502 with NTT DoCoMo MoperaU ISP service.
+
+
+Signed-off-by: Hiroshi Miura <miurahr@nttdata.co.jp>
+Signed-off-by: Matthias Urlichs <matthias@urlichs.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/serial/option.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/usb/serial/option.c
++++ b/drivers/usb/serial/option.c
+@@ -173,6 +173,7 @@ static int option_send_setup(struct tty
+ #define KYOCERA_PRODUCT_KPC680 0x180a
+
+ #define ANYDATA_VENDOR_ID 0x16d5
++#define ANYDATA_PRODUCT_ADU_620UW 0x6202
+ #define ANYDATA_PRODUCT_ADU_E100A 0x6501
+ #define ANYDATA_PRODUCT_ADU_500A 0x6502
+
+@@ -318,6 +319,7 @@ static struct usb_device_id option_ids[]
+ { USB_DEVICE(DELL_VENDOR_ID, 0x8138) }, /* Dell Wireless 5520 Voda I Mobile Broadband (3G HSDPA) Minicard */
+ { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_E100A) },
+ { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_500A) },
++ { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_620UW) },
+ { USB_DEVICE(AXESSTEL_VENDOR_ID, AXESSTEL_PRODUCT_MV110H) },
+ { USB_DEVICE(ONDA_VENDOR_ID, ONDA_PRODUCT_MSA501HS) },
+ { USB_DEVICE(ONDA_VENDOR_ID, ONDA_PRODUCT_ET502HS) },
diff --git a/usb/hso-icon-322-detection-fix.patch b/usb/hso-icon-322-detection-fix.patch
new file mode 100644
index 00000000000000..7b82040f03ef19
--- /dev/null
+++ b/usb/hso-icon-322-detection-fix.patch
@@ -0,0 +1,28 @@
+From linux-usb-owner@vger.kernel.org Mon Aug 18 04:04:11 2008
+From: Denis Joseph Barrow <D.Barow@option.com>
+Date: Mon, 18 Aug 2008 13:00:41 +0200
+Subject: hso: icon 322 detection fix
+To: Linux USB kernel mailing list <linux-usb@vger.kernel.org>
+Message-ID: <48A95659.5030108@option.com>
+
+Fixes Icon-322 detection.
+
+Signed-off-by: Denis Joseph Barrow <D.Barow@option.com>
+Cc: Jeff Garzik <jgarzik@pobox.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/usb/hso.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/net/usb/hso.c
++++ b/drivers/net/usb/hso.c
+@@ -397,7 +397,7 @@ static const struct usb_device_id hso_id
+ {default_port_device(0x0af0, 0xc031)}, /* Icon-Edge */
+ {icon321_port_device(0x0af0, 0xd013)}, /* Module HSxPA */
+ {icon321_port_device(0x0af0, 0xd031)}, /* Icon-321 */
+- {default_port_device(0x0af0, 0xd033)}, /* Icon-322 */
++ {icon321_port_device(0x0af0, 0xd033)}, /* Icon-322 */
+ {USB_DEVICE(0x0af0, 0x7301)}, /* GE40x */
+ {USB_DEVICE(0x0af0, 0x7361)}, /* GE40x */
+ {USB_DEVICE(0x0af0, 0x7401)}, /* GI 0401 */
diff --git a/usb/usb-remove-info-macro-from-usb.h.patch b/usb/usb-remove-info-macro-from-usb.h.patch
index da913c19e40e63..47e386e998a1c7 100644
--- a/usb/usb-remove-info-macro-from-usb.h.patch
+++ b/usb/usb-remove-info-macro-from-usb.h.patch
@@ -2012,7 +2012,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- a/drivers/usb/class/cdc-acm.c
+++ b/drivers/usb/class/cdc-acm.c
-@@ -1451,7 +1451,8 @@ static int __init acm_init(void)
+@@ -1454,7 +1454,8 @@ static int __init acm_init(void)
return retval;
}
@@ -2711,7 +2711,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
usb_serial_deregister(&zyxel_omninet_device);
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
-@@ -423,7 +423,8 @@ static int __init option_init(void)
+@@ -425,7 +425,8 @@ static int __init option_init(void)
if (retval)
goto failed_driver_register;