diff options
| author | Greg Kroah-Hartman <gregkh@suse.de> | 2010-08-05 11:22:30 -0700 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-08-05 11:22:30 -0700 |
| commit | a7c6d4fb3ad0fde884f9a83d33cae3bcb55a30e5 (patch) | |
| tree | d10b7a023d1b667098fbb7e1ffe33a4d863c2040 | |
| parent | 147c7b894ea67c33a6524f8ce14a47288d0ac371 (diff) | |
| download | patches-a7c6d4fb3ad0fde884f9a83d33cae3bcb55a30e5.tar.gz | |
2.6.35-git2
19 files changed, 210 insertions, 113 deletions
diff --git a/driver-core/cgroupfs-create-sys-fs-cgroup-to-mount-cgroupfs-on.patch b/driver-core/cgroupfs-create-sys-fs-cgroup-to-mount-cgroupfs-on.patch index 4d41d5284cec30..55e03cd1c40010 100644 --- a/driver-core/cgroupfs-create-sys-fs-cgroup-to-mount-cgroupfs-on.patch +++ b/driver-core/cgroupfs-create-sys-fs-cgroup-to-mount-cgroupfs-on.patch @@ -22,9 +22,13 @@ Cc: Lennart Poettering <lennart@poettering.net> Cc: Kay Sievers <kay.sievers@vrfy.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> +--- + kernel/cgroup.c | 13 ++++++++++++- + 1 file changed, 12 insertions(+), 1 deletion(-) + --- a/kernel/cgroup.c +++ b/kernel/cgroup.c -@@ -1623,6 +1623,8 @@ static struct file_system_type cgroup_fs_type = { +@@ -1623,6 +1623,8 @@ static struct file_system_type cgroup_fs .kill_sb = cgroup_kill_sb, }; @@ -33,7 +37,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> static inline struct cgroup *__d_cgrp(struct dentry *dentry) { return dentry->d_fsdata; -@@ -3871,9 +3873,18 @@ int __init cgroup_init(void) +@@ -3894,9 +3896,18 @@ int __init cgroup_init(void) hhead = css_set_hash(init_css_set.subsys); hlist_add_head(&init_css_set.hlist, hhead); BUG_ON(!init_root_id(&rootnode)); diff --git a/driver-core/driver-core-device_rename-s-new_name-can-be-const.patch b/driver-core/driver-core-device_rename-s-new_name-can-be-const.patch new file mode 100644 index 00000000000000..8d1b07c5feae81 --- /dev/null +++ b/driver-core/driver-core-device_rename-s-new_name-can-be-const.patch @@ -0,0 +1,40 @@ +From johannes@sipsolutions.net Thu Aug 5 11:02:37 2010 +Subject: driver core: device_rename's new_name can be const +From: Johannes Berg <johannes@sipsolutions.net> +To: Greg Kroah-Hartman <gregkh@suse.de> +Date: Thu, 05 Aug 2010 17:38:18 +0200 +Message-ID: <1281022698.4058.9.camel@jlt3.sipsolutions.net> + +The new_name argument to device_rename() can be +const as kobject_rename's new_name argument is. + +Signed-off-by: Johannes Berg <johannes.berg@intel.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/base/core.c | 2 +- + include/linux/device.h | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/base/core.c ++++ b/drivers/base/core.c +@@ -1599,7 +1599,7 @@ EXPORT_SYMBOL_GPL(device_destroy); + * on the same device to ensure that new_name is valid and + * won't conflict with other devices. + */ +-int device_rename(struct device *dev, char *new_name) ++int device_rename(struct device *dev, const char *new_name) + { + char *old_class_name = NULL; + char *new_class_name = NULL; +--- a/include/linux/device.h ++++ b/include/linux/device.h +@@ -552,7 +552,7 @@ extern int device_for_each_child(struct + int (*fn)(struct device *dev, void *data)); + extern struct device *device_find_child(struct device *dev, void *data, + int (*match)(struct device *dev, void *data)); +-extern int device_rename(struct device *dev, char *new_name); ++extern int device_rename(struct device *dev, const char *new_name); + extern int device_move(struct device *dev, struct device *new_parent, + enum dpm_order dpm_order); + extern const char *device_get_devnode(struct device *dev, diff --git a/driver-core/scsi-remove-owner-field-from-attribute-initialization-in-lpfc-driver.patch b/driver-core/scsi-remove-owner-field-from-attribute-initialization-in-lpfc-driver.patch index 5c057d976b5b0d..0629eef2f9c6a1 100644 --- a/driver-core/scsi-remove-owner-field-from-attribute-initialization-in-lpfc-driver.patch +++ b/driver-core/scsi-remove-owner-field-from-attribute-initialization-in-lpfc-driver.patch @@ -32,7 +32,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> --- a/drivers/scsi/lpfc/lpfc_attr.c +++ b/drivers/scsi/lpfc/lpfc_attr.c -@@ -2720,7 +2720,6 @@ static struct bin_attribute sysfs_drvr_s +@@ -2778,7 +2778,6 @@ static struct bin_attribute sysfs_drvr_s .attr = { .name = "lpfc_drvr_stat_data", .mode = S_IRUSR, @@ -56,6 +56,7 @@ driver-core/leds-remove-owner-field-from-attribute-initialization-in-bd2802-driv driver-core/regulator-remove-owner-field-from-attribute-initialization-in-regulator-core-driver.patch driver-core/powerpc-pci-remove-owner-field-from-attribute-initialization-in-pci-bridge-init.patch driver-core/sysfs-remove-owner-field-from-sysfs-struct-attribute.patch +driver-core/driver-core-device_rename-s-new_name-can-be-const.patch # can we really drop it? (nope, not yet...) #driver-core/driver-core-remove-config_sysfs_deprecated.patch @@ -285,7 +286,7 @@ usb/usb-xhci-don-t-flush-doorbell-writes.patch usb/usb-xhci-set-dma-mask-for-host.patch usb/usb-usbtest-avoid-to-free-coherent-buffer-in-atomic-context.patch usb/usb-usbtest-support-test-device-with-only-one-iso-in-or-iso-out-endpoint.patch -usb/usb-fix-stuck-usb-generic-serial-driver.patch +usb/usb-fix-thread-unsafe-anchor-utiliy-routines.patch # staging stuff is now in the staging-next tree on git.kernel.org diff --git a/tty/8250-fix-set_ldisc-operation.patch b/tty/8250-fix-set_ldisc-operation.patch index fee1599e8cbe0f..2b4c51832b28f9 100644 --- a/tty/8250-fix-set_ldisc-operation.patch +++ b/tty/8250-fix-set_ldisc-operation.patch @@ -20,7 +20,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> --- a/drivers/serial/8250.c +++ b/drivers/serial/8250.c -@@ -2409,14 +2409,9 @@ serial8250_set_termios(struct uart_port +@@ -2404,14 +2404,9 @@ serial8250_set_termios(struct uart_port } static void diff --git a/tty/hsu-driver-for-medfield-high-speed-uart-device.patch b/tty/hsu-driver-for-medfield-high-speed-uart-device.patch index f59ba02f2aa726..ca4569543b5ba8 100644 --- a/tty/hsu-driver-for-medfield-high-speed-uart-device.patch +++ b/tty/hsu-driver-for-medfield-high-speed-uart-device.patch @@ -42,7 +42,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> --- a/drivers/serial/Kconfig +++ b/drivers/serial/Kconfig -@@ -732,6 +732,16 @@ config MRST_MAX3110_IRQ +@@ -724,6 +724,16 @@ config MRST_MAX3110_IRQ help This has to be enabled after Moorestown GPIO driver is loaded diff --git a/tty/mrst_max3110-add-uart-driver-for-max3110-on-moorestown.patch b/tty/mrst_max3110-add-uart-driver-for-max3110-on-moorestown.patch index 011a3d5aa18780..bc3a4535c2fc7a 100644 --- a/tty/mrst_max3110-add-uart-driver-for-max3110-on-moorestown.patch +++ b/tty/mrst_max3110-add-uart-driver-for-max3110-on-moorestown.patch @@ -27,7 +27,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> --- a/drivers/serial/Kconfig +++ b/drivers/serial/Kconfig -@@ -698,6 +698,23 @@ config SERIAL_SA1100_CONSOLE +@@ -690,6 +690,23 @@ config SERIAL_SA1100_CONSOLE your boot loader (lilo or loadlin) about how to pass options to the kernel at boot time.) diff --git a/tty/serial-max3107-abstract-out-the-platform-specific-bits.patch b/tty/serial-max3107-abstract-out-the-platform-specific-bits.patch index 1bdce1ea0c6422..26d1a43f7d3e00 100644 --- a/tty/serial-max3107-abstract-out-the-platform-specific-bits.patch +++ b/tty/serial-max3107-abstract-out-the-platform-specific-bits.patch @@ -24,7 +24,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> --- a/drivers/serial/Kconfig +++ b/drivers/serial/Kconfig -@@ -550,20 +550,29 @@ config SERIAL_S5PV210 +@@ -542,20 +542,29 @@ config SERIAL_S5PV210 help Serial port support for Samsung's S5P Family of SoC's diff --git a/tty/serial-max3107-introduce-a-max3107-driver.patch b/tty/serial-max3107-introduce-a-max3107-driver.patch index 56b648f6d3850f..405d8ca4abc6d4 100644 --- a/tty/serial-max3107-introduce-a-max3107-driver.patch +++ b/tty/serial-max3107-introduce-a-max3107-driver.patch @@ -27,7 +27,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> --- a/drivers/serial/Kconfig +++ b/drivers/serial/Kconfig -@@ -550,6 +550,14 @@ config SERIAL_S5PV210 +@@ -542,6 +542,14 @@ config SERIAL_S5PV210 help Serial port support for Samsung's S5P Family of SoC's diff --git a/tty/serial-mmio32-support-for-8250_early.c.patch b/tty/serial-mmio32-support-for-8250_early.c.patch index 541cbe1379c14a..b7adeb909112da 100644 --- a/tty/serial-mmio32-support-for-8250_early.c.patch +++ b/tty/serial-mmio32-support-for-8250_early.c.patch @@ -27,7 +27,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt -@@ -686,8 +686,11 @@ and is between 256 and 4096 characters. +@@ -687,8 +687,11 @@ and is between 256 and 4096 characters. earlycon= [KNL] Output early console device and options. uart[8250],io,<addr>[,options] uart[8250],mmio,<addr>[,options] diff --git a/tty/tty-add-extproc-support-for-linemode.patch b/tty/tty-add-extproc-support-for-linemode.patch index 5a63b09fe23c85..3ca0ab0112b060 100644 --- a/tty/tty-add-extproc-support-for-linemode.patch +++ b/tty/tty-add-extproc-support-for-linemode.patch @@ -680,7 +680,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> } --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c -@@ -966,6 +966,7 @@ COMPATIBLE_IOCTL(TIOCGPGRP) +@@ -969,6 +969,7 @@ COMPATIBLE_IOCTL(TIOCGPGRP) COMPATIBLE_IOCTL(TIOCGPTN) COMPATIBLE_IOCTL(TIOCSPTLCK) COMPATIBLE_IOCTL(TIOCSERGETLSR) diff --git a/tty/u6715-16550a-serial-driver-support.patch b/tty/u6715-16550a-serial-driver-support.patch index 6208e0d5e5f2f8..ccf40957280b37 100644 --- a/tty/u6715-16550a-serial-driver-support.patch +++ b/tty/u6715-16550a-serial-driver-support.patch @@ -57,8 +57,8 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + }, }; - #if defined (CONFIG_SERIAL_8250_AU1X00) -@@ -1075,6 +1082,15 @@ static void autoconfig_16550a(struct uar + #if defined(CONFIG_MIPS_ALCHEMY) +@@ -1070,6 +1077,15 @@ static void autoconfig_16550a(struct uar DEBUG_AUTOCONF("Couldn't force IER_UUE to 0 "); } serial_outp(up, UART_IER, iersave); @@ -74,7 +74,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> } /* -@@ -2229,9 +2245,9 @@ static unsigned int serial8250_get_divis +@@ -2224,9 +2240,9 @@ static unsigned int serial8250_get_divis return quot; } @@ -87,7 +87,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> { struct uart_8250_port *up = (struct uart_8250_port *)port; unsigned char cval, fcr = 0; -@@ -2407,6 +2423,17 @@ serial8250_set_termios(struct uart_port +@@ -2402,6 +2418,17 @@ serial8250_set_termios(struct uart_port if (tty_termios_baud_rate(termios)) tty_termios_encode_baud_rate(termios, baud, baud); } @@ -105,7 +105,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> static void serial8250_set_ldisc(struct uart_port *port, int new) -@@ -2989,6 +3016,7 @@ static int __devinit serial8250_probe(st +@@ -2982,6 +3009,7 @@ static int __devinit serial8250_probe(st port.type = p->type; port.serial_in = p->serial_in; port.serial_out = p->serial_out; @@ -113,7 +113,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> port.dev = &dev->dev; port.irqflags |= irqflag; ret = serial8250_register_port(&port); -@@ -3152,6 +3180,9 @@ int serial8250_register_port(struct uart +@@ -3145,6 +3173,9 @@ int serial8250_register_port(struct uart uart->port.serial_in = port->serial_in; if (port->serial_out) uart->port.serial_out = port->serial_out; diff --git a/usb/pci-change-device-runtime-pm-settings-for-probe-and-remove-do-not-send.patch b/usb/pci-change-device-runtime-pm-settings-for-probe-and-remove-do-not-send.patch index 3e61171f4e4b16..33cad51817144d 100644 --- a/usb/pci-change-device-runtime-pm-settings-for-probe-and-remove-do-not-send.patch +++ b/usb/pci-change-device-runtime-pm-settings-for-probe-and-remove-do-not-send.patch @@ -34,7 +34,7 @@ Acked-by: Rafael J. Wysocki <rjw@sisk.pl> --- a/drivers/net/e1000e/netdev.c +++ b/drivers/net/e1000e/netdev.c -@@ -5721,11 +5721,8 @@ static int __devinit e1000_probe(struct +@@ -5825,11 +5825,8 @@ static int __devinit e1000_probe(struct e1000_print_device_info(adapter); @@ -48,7 +48,7 @@ Acked-by: Rafael J. Wysocki <rjw@sisk.pl> return 0; -@@ -5771,8 +5768,6 @@ static void __devexit e1000_remove(struc +@@ -5875,8 +5872,6 @@ static void __devexit e1000_remove(struc struct e1000_adapter *adapter = netdev_priv(netdev); bool down = test_bit(__E1000_DOWN, &adapter->state); @@ -57,7 +57,7 @@ Acked-by: Rafael J. Wysocki <rjw@sisk.pl> /* * flush_scheduled work may reschedule our watchdog task, so * explicitly disable watchdog tasks from being rescheduled -@@ -5797,11 +5792,8 @@ static void __devexit e1000_remove(struc +@@ -5901,11 +5896,8 @@ static void __devexit e1000_remove(struc clear_bit(__E1000_DOWN, &adapter->state); unregister_netdev(netdev); diff --git a/usb/usb-fix-stuck-usb-generic-serial-driver.patch b/usb/usb-fix-stuck-usb-generic-serial-driver.patch deleted file mode 100644 index 5beecacc94c3bc..00000000000000 --- a/usb/usb-fix-stuck-usb-generic-serial-driver.patch +++ /dev/null @@ -1,62 +0,0 @@ -From dvomlehn@cisco.com Mon Aug 2 16:13:11 2010 -Date: Mon, 2 Aug 2010 10:46:00 -0700 -From: David VomLehn <dvomlehn@cisco.com> -To: linux-usb@vger.kernel.org -Cc: greg@kroah.com -Subject: USB: Fix stuck USB generic serial driver -Message-ID: <20100802174600.GA6845@dvomlehn-lnx2.corp.sa.net> -Content-Disposition: inline - -Fix USB console hang due to non-atomic URB allocation - -This is intended to fix a problem seen with the Amtel sam-ba tool by -Alexander Stein (alexander.stein@systec-electronic.com). It appears -when using an A91 controller. He bisected it to commit: - - 8e8dce065088833fc418bfa5fbf035cb0726c04c: USB: use kfifo to buffer usb-generic serial writes - -The current patch fixes a problem when using a USB serial device as the -kernel console and as /dev/console. The URB allocation is not atomic and -an URB can be doubly allocated, leading to a continual rejection of URB -submissions. The fix puts all pieces of the URB allocation in the same -spinlock-protected section of code. - -Having said that... - -This fix was developed because, after Alexander's email, I took a look -at my USB console and found that it, too, was experiencing a hang. I -assumed that this hang was the same as the one Alexander is seeing and -developed this fix. It's a good fix for *a* hang, but after thinking -about this a bit, I'm not sure this is a fix for *Alexander's* hang. - -Signed-off-by: David VomLehn <dvomlehn@cisco.com> -Cc: stable <stable@kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/usb/serial/generic.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - ---- a/drivers/usb/serial/generic.c -+++ b/drivers/usb/serial/generic.c -@@ -199,6 +199,9 @@ retry: - } - i = (int)find_first_bit(&port->write_urbs_free, - ARRAY_SIZE(port->write_urbs)); -+ if (i == ARRAY_SIZE(port->write_urbs)) -+ return 0; -+ clear_bit(i, &port->write_urbs_free); - spin_unlock_irqrestore(&port->lock, flags); - - urb = port->write_urbs[i]; -@@ -213,9 +216,9 @@ retry: - dev_err(&port->dev, "%s - error submitting urb: %d\n", - __func__, result); - clear_bit_unlock(USB_SERIAL_WRITE_BUSY, &port->flags); -+ set_bit(i, &port->write_urbs_free); - return result; - } -- clear_bit(i, &port->write_urbs_free); - - spin_lock_irqsave(&port->lock, flags); - port->tx_bytes += count; diff --git a/usb/usb-fix-thread-unsafe-anchor-utiliy-routines.patch b/usb/usb-fix-thread-unsafe-anchor-utiliy-routines.patch new file mode 100644 index 00000000000000..a6e99552b7fa64 --- /dev/null +++ b/usb/usb-fix-thread-unsafe-anchor-utiliy-routines.patch @@ -0,0 +1,133 @@ +From chunkeey@googlemail.com Thu Aug 5 11:04:16 2010 +From: Christian Lamparter <chunkeey@googlemail.com> +To: USB list <linux-usb@vger.kernel.org> +Subject: [PATCH v3] USB: fix thread-unsafe anchor utiliy routines +Date: Tue, 3 Aug 2010 02:32:28 +0200 +Cc: Alan Stern <stern@rowland.harvard.edu>, + Greg KH <greg@kroah.com>, + Oliver Neukum <oneukum@suse.de> +Message-Id: <201008030232.29005.chunkeey@googlemail.com> + +This patch fixes a race condition in two utility routines +related to the removal/unlinking of urbs from an anchor. + +If two threads are concurrently accessing the same anchor, +both could end up with the same urb - thinking they are +the exclusive owner. + +Alan Stern pointed out a related issue in +usb_unlink_anchored_urbs: + +"The URB isn't removed from the anchor until it completes + (as a by-product of completion, in fact), which might not + be for quite some time after the unlink call returns. + In the meantime, the subroutine will keep trying to unlink + it, over and over again." + +Cc: stable <stable@kernel.org> +Cc: Oliver Neukum <oneukum@suse.de> +Cc: Greg Kroah-Hartman <greg@kroah.com> +Acked-by: Alan Stern <stern@rowland.harvard.edu> +Signed-off-by: Christian Lamparter <chunkeey@googlemail.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + + +--- + drivers/usb/core/urb.c | 50 ++++++++++++++++++++----------------------------- + 1 file changed, 21 insertions(+), 29 deletions(-) + +--- a/drivers/usb/core/urb.c ++++ b/drivers/usb/core/urb.c +@@ -137,6 +137,16 @@ void usb_anchor_urb(struct urb *urb, str + } + EXPORT_SYMBOL_GPL(usb_anchor_urb); + ++/* Callers must hold anchor->lock */ ++static void __usb_unanchor_urb(struct urb *urb, struct usb_anchor *anchor) ++{ ++ urb->anchor = NULL; ++ list_del(&urb->anchor_list); ++ usb_put_urb(urb); ++ if (list_empty(&anchor->urb_list)) ++ wake_up(&anchor->wait); ++} ++ + /** + * usb_unanchor_urb - unanchors an URB + * @urb: pointer to the urb to anchor +@@ -156,17 +166,14 @@ void usb_unanchor_urb(struct urb *urb) + return; + + spin_lock_irqsave(&anchor->lock, flags); +- if (unlikely(anchor != urb->anchor)) { +- /* we've lost the race to another thread */ +- spin_unlock_irqrestore(&anchor->lock, flags); +- return; +- } +- urb->anchor = NULL; +- list_del(&urb->anchor_list); ++ /* ++ * At this point, we could be competing with another thread which ++ * has the same intention. To protect the urb from being unanchored ++ * twice, only the winner of the race gets the job. ++ */ ++ if (likely(anchor == urb->anchor)) ++ __usb_unanchor_urb(urb, anchor); + spin_unlock_irqrestore(&anchor->lock, flags); +- usb_put_urb(urb); +- if (list_empty(&anchor->urb_list)) +- wake_up(&anchor->wait); + } + EXPORT_SYMBOL_GPL(usb_unanchor_urb); + +@@ -749,20 +756,11 @@ EXPORT_SYMBOL_GPL(usb_unpoison_anchored_ + void usb_unlink_anchored_urbs(struct usb_anchor *anchor) + { + struct urb *victim; +- unsigned long flags; + +- 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 */ ++ while ((victim = usb_get_from_anchor(anchor)) != NULL) { + usb_unlink_urb(victim); + usb_put_urb(victim); +- spin_lock_irqsave(&anchor->lock, flags); + } +- spin_unlock_irqrestore(&anchor->lock, flags); + } + EXPORT_SYMBOL_GPL(usb_unlink_anchored_urbs); + +@@ -799,12 +797,11 @@ struct urb *usb_get_from_anchor(struct u + victim = list_entry(anchor->urb_list.next, struct urb, + anchor_list); + usb_get_urb(victim); +- spin_unlock_irqrestore(&anchor->lock, flags); +- usb_unanchor_urb(victim); ++ __usb_unanchor_urb(victim, anchor); + } else { +- spin_unlock_irqrestore(&anchor->lock, flags); + victim = NULL; + } ++ spin_unlock_irqrestore(&anchor->lock, flags); + + return victim; + } +@@ -826,12 +823,7 @@ void usb_scuttle_anchored_urbs(struct us + 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 may free the URB */ +- usb_unanchor_urb(victim); +- usb_put_urb(victim); +- spin_lock_irqsave(&anchor->lock, flags); ++ __usb_unanchor_urb(victim, anchor); + } + spin_unlock_irqrestore(&anchor->lock, flags); + } diff --git a/usb/usb-gadget-g_ether-updated-inf-file.patch b/usb/usb-gadget-g_ether-updated-inf-file.patch index fffb821e8efd77..b6138d65afefc6 100644 --- a/usb/usb-gadget-g_ether-updated-inf-file.patch +++ b/usb/usb-gadget-g_ether-updated-inf-file.patch @@ -32,7 +32,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> -; -; Microsoft only directly supports RNDIS drivers, and bundled them into XP. -; The Microsoft "Remote NDIS USB Driver Kit" is currently found at: --; http://www.microsoft.com/whdc/hwdev/resources/HWservices/rndis.mspx +-; http://www.microsoft.com/whdc/device/network/ndis/rmndis.mspx - +; Based on template INF file found at +; <http://msdn.microsoft.com/en-us/library/ff570620.aspx> diff --git a/usb/usb-otg-ulpi-extend-the-generic-ulpi-driver.patch b/usb/usb-otg-ulpi-extend-the-generic-ulpi-driver.patch index 558d41bf0ed445..6ecdad59244d69 100644 --- a/usb/usb-otg-ulpi-extend-the-generic-ulpi-driver.patch +++ b/usb/usb-otg-ulpi-extend-the-generic-ulpi-driver.patch @@ -22,7 +22,6 @@ Signed-off-by: Mike Rapoport <mike@compulab.co.il> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> --- - arch/arm/mach-mx2/mach-pca100.c | 4 arch/arm/mach-mx3/mach-armadillo5x0.c | 4 arch/arm/mach-mx3/mach-mx31lilly.c | 4 arch/arm/mach-mx3/mach-mx31lite.c | 2 @@ -33,29 +32,11 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> drivers/usb/otg/ulpi.c | 127 ++++++++++++++++++++++++++++--- include/linux/usb/otg.h | 7 - include/linux/usb/ulpi.h | 39 +++++++++ - 11 files changed, 168 insertions(+), 29 deletions(-) + 10 files changed, 166 insertions(+), 27 deletions(-) ---- a/arch/arm/mach-mx2/mach-pca100.c -+++ b/arch/arm/mach-mx2/mach-pca100.c -@@ -357,13 +357,13 @@ static void __init pca100_init(void) - #if defined(CONFIG_USB_ULPI) - if (otg_mode_host) { - otg_pdata.otg = otg_ulpi_create(&mxc_ulpi_access_ops, -- USB_OTG_DRV_VBUS | USB_OTG_DRV_VBUS_EXT); -+ ULPI_OTG_DRVVBUS | ULPI_OTG_DRVVBUS_EXT); - - mxc_register_device(&mxc_otg_host, &otg_pdata); - } - - usbh2_pdata.otg = otg_ulpi_create(&mxc_ulpi_access_ops, -- USB_OTG_DRV_VBUS | USB_OTG_DRV_VBUS_EXT); -+ ULPI_OTG_DRVVBUS | ULPI_OTG_DRVVBUS_EXT); - - mxc_register_device(&mxc_usbh2, &usbh2_pdata); - #endif --- a/arch/arm/mach-mx3/mach-armadillo5x0.c +++ b/arch/arm/mach-mx3/mach-armadillo5x0.c -@@ -552,9 +552,9 @@ static void __init armadillo5x0_init(voi +@@ -551,9 +551,9 @@ static void __init armadillo5x0_init(voi /* USB */ #if defined(CONFIG_USB_ULPI) usbotg_pdata.otg = otg_ulpi_create(&mxc_ulpi_access_ops, @@ -69,7 +50,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> mxc_register_device(&mxc_usbh2, &usbh2_pdata); --- a/arch/arm/mach-mx3/mach-mx31lilly.c +++ b/arch/arm/mach-mx3/mach-mx31lilly.c -@@ -249,9 +249,9 @@ static struct mxc_usbh_platform_data usb +@@ -245,9 +245,9 @@ static struct mxc_usbh_platform_data usb static void lilly1131_usb_init(void) { usbotg_pdata.otg = otg_ulpi_create(&mxc_ulpi_access_ops, @@ -83,7 +64,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> mxc_register_device(&mxc_usbh2, &usbh2_pdata); --- a/arch/arm/mach-mx3/mach-mx31lite.c +++ b/arch/arm/mach-mx3/mach-mx31lite.c -@@ -261,7 +261,7 @@ static void __init mxc_board_init(void) +@@ -256,7 +256,7 @@ static void __init mxc_board_init(void) #if defined(CONFIG_USB_ULPI) /* USB */ usbh2_pdata.otg = otg_ulpi_create(&mxc_ulpi_access_ops, @@ -94,7 +75,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> #endif --- a/arch/arm/mach-mx3/mach-mx31moboard.c +++ b/arch/arm/mach-mx3/mach-mx31moboard.c -@@ -405,7 +405,7 @@ static struct mxc_usbh_platform_data usb +@@ -412,7 +412,7 @@ static struct mxc_usbh_platform_data usb static int __init moboard_usbh2_init(void) { usbh2_pdata.otg = otg_ulpi_create(&mxc_ulpi_access_ops, @@ -105,7 +86,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> } --- a/arch/arm/mach-mx3/mach-pcm037.c +++ b/arch/arm/mach-mx3/mach-pcm037.c -@@ -658,13 +658,13 @@ static void __init mxc_board_init(void) +@@ -654,13 +654,13 @@ static void __init mxc_board_init(void) #if defined(CONFIG_USB_ULPI) if (otg_mode_host) { otg_pdata.otg = otg_ulpi_create(&mxc_ulpi_access_ops, @@ -123,7 +104,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> #endif --- a/arch/arm/mach-mx3/mach-pcm043.c +++ b/arch/arm/mach-mx3/mach-pcm043.c -@@ -380,7 +380,7 @@ static void __init mxc_board_init(void) +@@ -378,7 +378,7 @@ static void __init mxc_board_init(void) #if defined(CONFIG_USB_ULPI) if (otg_mode_host) { otg_pdata.otg = otg_ulpi_create(&mxc_ulpi_access_ops, @@ -134,7 +115,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> } --- a/arch/arm/mach-mx3/mx31moboard-smartbot.c +++ b/arch/arm/mach-mx3/mx31moboard-smartbot.c -@@ -138,7 +138,7 @@ static struct mxc_usbh_platform_data otg +@@ -134,7 +134,7 @@ static struct mxc_usbh_platform_data otg static int __init smartbot_otg_host_init(void) { otg_host_pdata.otg = otg_ulpi_create(&mxc_ulpi_access_ops, diff --git a/usb/usb-throw-away-custom-hex-digit-methods.patch b/usb/usb-throw-away-custom-hex-digit-methods.patch index 8738f9fba0667e..eadc442c0b2ddb 100644 --- a/usb/usb-throw-away-custom-hex-digit-methods.patch +++ b/usb/usb-throw-away-custom-hex-digit-methods.patch @@ -30,7 +30,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> #include <asm/unaligned.h> -@@ -2429,7 +2430,6 @@ UEA_ATTR(firmid, 0); +@@ -2436,7 +2437,6 @@ UEA_ATTR(firmid, 0); /* Retrieve the device End System Identifier (MAC) */ @@ -38,7 +38,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> static int uea_getesi(struct uea_softc *sc, u_char * esi) { unsigned char mac_str[2 * ETH_ALEN + 1]; -@@ -2440,7 +2440,8 @@ static int uea_getesi(struct uea_softc * +@@ -2447,7 +2447,8 @@ static int uea_getesi(struct uea_softc * return 1; for (i = 0; i < ETH_ALEN; i++) @@ -1 +1 @@ -2.6.35 +2.6.35-git2 |
