diff options
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; @@ -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; |
