aboutsummaryrefslogtreecommitdiffstats
diff options
-rw-r--r--series4
-rw-r--r--tty/serial8250-ratelimit-too-much-work-error.patch50
-rw-r--r--usb/usb-am35x-add-musb-support.patch18
-rw-r--r--usb/usb-gadget-amd5536udc.c-fix-error-path.patch37
-rw-r--r--usb/usb-imx21-hcd-fix-off-by-one-resource-size-calculation.patch1
-rw-r--r--usb/usb-mct_u232-fix-broken-close.patch46
6 files changed, 142 insertions, 14 deletions
diff --git a/series b/series
index 4da6046ac378f1..2131dfd33b5cc8 100644
--- a/series
+++ b/series
@@ -118,6 +118,7 @@ tty/serial-mfd-add-more-baud-rates-support.patch
tty/serial-imx-check-that-the-buffer-is-non-empty-before-sending-it-out.patch
tty/serial-abstraction-for-8250-legacy-ports.patch
tty/serial-bfin_sport_uart-speed-up-sport-rx-sample-rate-to-be-3-faster.patch
+tty/serial8250-ratelimit-too-much-work-error.patch
###################################
# USB stuff for after 2.6.36 is out
@@ -262,9 +263,10 @@ usb/mxc_udc-add-workaround-for-engcm09152-for-i.mx35.patch
usb/usb-r8a66597-udc-add-processing-when-usb-was-removed.patch
usb/usb-gadget-fix-kconfig-warning.patch
usb/usb-imx21-hcd-fix-off-by-one-resource-size-calculation.patch
+usb/usb-gadget-amd5536udc.c-fix-error-path.patch
+usb/usb-mct_u232-fix-broken-close.patch
# staging stuff for next is now in the staging-next tree on git.kernel.org
-
diff --git a/tty/serial8250-ratelimit-too-much-work-error.patch b/tty/serial8250-ratelimit-too-much-work-error.patch
new file mode 100644
index 00000000000000..d9be8a8a92cb03
--- /dev/null
+++ b/tty/serial8250-ratelimit-too-much-work-error.patch
@@ -0,0 +1,50 @@
+From akpm@linux-foundation.org Thu Oct 21 11:39:41 2010
+Message-Id: <201010202300.o9KN0mrG009735@imap1.linux-foundation.org>
+Subject: serial8250: ratelimit "too much work" error
+To: greg@kroah.com
+Cc: akpm@linux-foundation.org, dsd@laptop.org, alan@linux.intel.com
+From: Daniel Drake <dsd@laptop.org>
+Date: Wed, 20 Oct 2010 16:00:48 -0700
+
+From: Daniel Drake <dsd@laptop.org>
+
+Running a serial console, if too many kernel messages are generated within
+a short time causing a lot of serial I/O, the 8250 driver will generate
+another kernel message reporting this, which just adds to the I/O. It has
+a cascading effect and quickly results the system being brought to its knees
+by a flood of "too much work" messages.
+
+Ratelimit the error message to avoid this.
+
+[akpm@linux-foundation.org: use the superior printk_ratelimited()]
+[akpm@linux-foundation.org: printk_ratelimited() needs ratelimit.h]
+Signed-off-by: Daniel Drake <dsd@laptop.org>
+Acked-by: Alan Cox <alan@linux.intel.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/serial/8250.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+--- a/drivers/serial/8250.c
++++ b/drivers/serial/8250.c
+@@ -31,6 +31,7 @@
+ #include <linux/delay.h>
+ #include <linux/platform_device.h>
+ #include <linux/tty.h>
++#include <linux/ratelimit.h>
+ #include <linux/tty_flip.h>
+ #include <linux/serial_reg.h>
+ #include <linux/serial_core.h>
+@@ -1600,8 +1601,8 @@ static irqreturn_t serial8250_interrupt(
+
+ if (l == i->head && pass_counter++ > PASS_LIMIT) {
+ /* If we hit this, we're dead. */
+- printk(KERN_ERR "serial8250: too much work for "
+- "irq%d\n", irq);
++ printk_ratelimited(KERN_ERR
++ "serial8250: too much work for irq%d\n", irq);
+ break;
+ }
+ } while (l != end);
diff --git a/usb/usb-am35x-add-musb-support.patch b/usb/usb-am35x-add-musb-support.patch
index 88b3b97e09a115..2f5016d735c683 100644
--- a/usb/usb-am35x-add-musb-support.patch
+++ b/usb/usb-am35x-add-musb-support.patch
@@ -19,22 +19,14 @@ Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
- arch/arm/mach-omap2/board-am3517evm.c | 31 +++++++++++++++++++++++++++++++
+ arch/arm/mach-omap2/board-am3517evm.c | 30 ++++++++++++++++++++++++++++++
arch/arm/mach-omap2/usb-musb.c | 4 ++++
arch/arm/plat-omap/include/plat/usb.h | 21 +++++++++++++++++++++
- 3 files changed, 56 insertions(+)
+ 3 files changed, 55 insertions(+)
--- a/arch/arm/mach-omap2/board-am3517evm.c
+++ b/arch/arm/mach-omap2/board-am3517evm.c
-@@ -35,6 +35,7 @@
- #include <plat/control.h>
- #include <plat/usb.h>
- #include <plat/display.h>
-+#include <plat/control.h>
-
- #include "mux.h"
-
-@@ -375,6 +376,31 @@ static void __init am3517_evm_init_irq(v
+@@ -375,6 +375,31 @@ static void __init am3517_evm_init_irq(v
omap_gpio_init();
}
@@ -66,7 +58,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
.port_mode[0] = EHCI_HCD_OMAP_MODE_PHY,
#if defined(CONFIG_PANEL_SHARP_LQ043T1DG01) || \
-@@ -393,6 +419,8 @@ static const struct ehci_hcd_omap_platfo
+@@ -393,6 +418,8 @@ static const struct ehci_hcd_omap_platfo
#ifdef CONFIG_OMAP_MUX
static struct omap_board_mux board_mux[] __initdata = {
@@ -75,7 +67,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
{ .reg_offset = OMAP_MUX_TERMINATOR },
};
#else
-@@ -459,6 +487,9 @@ static void __init am3517_evm_init(void)
+@@ -459,6 +486,9 @@ static void __init am3517_evm_init(void)
ARRAY_SIZE(am3517evm_i2c1_boardinfo));
/*Ethernet*/
am3517_evm_ethernet_init(&am3517_evm_emac_pdata);
diff --git a/usb/usb-gadget-amd5536udc.c-fix-error-path.patch b/usb/usb-gadget-amd5536udc.c-fix-error-path.patch
new file mode 100644
index 00000000000000..ac45c810f9fe08
--- /dev/null
+++ b/usb/usb-gadget-amd5536udc.c-fix-error-path.patch
@@ -0,0 +1,37 @@
+From akpm@linux-foundation.org Thu Oct 21 11:39:13 2010
+Message-Id: <201010202301.o9KN1pnO009775@imap1.linux-foundation.org>
+Subject: USB: gadget: amd5536udc.c: fix error path
+To: greg@kroah.com
+Cc: linux-usb@vger.kernel.org, akpm@linux-foundation.org,
+ rahul.ruikar@gmail.com, dahlmann.thomas@arcor.de, david-b@pacbell.net
+From: Rahul Ruikar <rahul.ruikar@gmail.com>
+Date: Wed, 20 Oct 2010 16:01:51 -0700
+
+From: Rahul Ruikar <rahul.ruikar@gmail.com>
+
+In function udc_probe() call put_device() when device_register() fails.
+
+Signed-off-by: Rahul Ruikar <rahul.ruikar@gmail.com>
+Acked-by: Thomas Dahlmann <dahlmann.thomas@arcor.de>
+Cc: David Brownell <david-b@pacbell.net>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/gadget/amd5536udc.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/drivers/usb/gadget/amd5536udc.c
++++ b/drivers/usb/gadget/amd5536udc.c
+@@ -3383,8 +3383,10 @@ static int udc_probe(struct udc *dev)
+ udc = dev;
+
+ retval = device_register(&dev->gadget.dev);
+- if (retval)
++ if (retval) {
++ put_device(&dev->gadget.dev);
+ goto finished;
++ }
+
+ /* timer init */
+ init_timer(&udc_timer);
diff --git a/usb/usb-imx21-hcd-fix-off-by-one-resource-size-calculation.patch b/usb/usb-imx21-hcd-fix-off-by-one-resource-size-calculation.patch
index 6f30326f265fd3..2a633c9e323840 100644
--- a/usb/usb-imx21-hcd-fix-off-by-one-resource-size-calculation.patch
+++ b/usb/usb-imx21-hcd-fix-off-by-one-resource-size-calculation.patch
@@ -7,6 +7,7 @@ Date: Sat, 16 Oct 2010 22:48:08 +0800
Message-ID: <1287240488.2831.1.camel@phoenix>
Signed-off-by: Axel Lin <axel.lin@gmail.com>
+Tested-by: Jon Povey <Jon.Povey@racelogic.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
diff --git a/usb/usb-mct_u232-fix-broken-close.patch b/usb/usb-mct_u232-fix-broken-close.patch
new file mode 100644
index 00000000000000..b9dce9edcf9256
--- /dev/null
+++ b/usb/usb-mct_u232-fix-broken-close.patch
@@ -0,0 +1,46 @@
+From linux-usb-owner@vger.kernel.org Thu Oct 21 11:35:50 2010
+Date: Thu, 21 Oct 2010 10:49:10 +0200
+Message-ID: <AANLkTikZZG+E0fCqHmeEdc-3uy1=U6MEeN+oX=V2WsTe@mail.gmail.com>
+Subject: [PATCH] USB: mct_u232: fix broken close
+From: Johan Hovold <jhovold@gmail.com>
+To: Eric Shattow Eprecocious <lucent@gmail.com>,
+ Greg KH <greg@kroah.com>
+Cc: linux-usb@vger.kernel.org
+
+From: Johan Hovold <jhovold@gmail.com>
+
+Fix regression introduced by commit
+f26788da3b342099d2b02d99ba1cb7f154d6ef7b (USB: serial: refactor generic
+close) which broke driver close().
+
+This driver uses non-standard semantics for the read urb which makes the
+generic close function fail to kill it (the read urb is actually an
+interrupt urb and therefore bulk_in size is zero).
+
+Reported-by: Eric Shattow "Eprecocious" <lucent@gmail.com>
+Tested-by: Eric Shattow "Eprecocious" <lucent@gmail.com>
+Cc: stable <stable@kernel.org>
+Signed-off-by: Johan Hovold <jhovold@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/serial/mct_u232.c | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+--- a/drivers/usb/serial/mct_u232.c
++++ b/drivers/usb/serial/mct_u232.c
+@@ -549,9 +549,12 @@ static void mct_u232_close(struct usb_se
+ {
+ dbg("%s port %d", __func__, port->number);
+
+- usb_serial_generic_close(port);
+- if (port->serial->dev)
++ if (port->serial->dev) {
++ /* shutdown our urbs */
++ usb_kill_urb(port->write_urb);
++ usb_kill_urb(port->read_urb);
+ usb_kill_urb(port->interrupt_in_urb);
++ }
+ } /* mct_u232_close */
+
+