diff options
| author | Greg Kroah-Hartman <gregkh@suse.de> | 2010-10-07 10:55:46 -0700 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-10-07 10:55:46 -0700 |
| commit | 344107862b45d3d0a15b186ebc178859e6c7f975 (patch) | |
| tree | 69c4d7f24455551600a97715c331a7684c44e27f | |
| parent | d63d4b49a0297ef53ed687810d3ff7df0ad9c934 (diff) | |
| download | patches-344107862b45d3d0a15b186ebc178859e6c7f975.tar.gz | |
more patches
| -rw-r--r-- | series | 8 | ||||
| -rw-r--r-- | tty/jsm-remove-the-uart-port-on-errors.patch | 39 | ||||
| -rw-r--r-- | tty/serial-imx-serial-driver-fix-resume.patch | 55 | ||||
| -rw-r--r-- | usb/usb-core-endpoint-fix-error-path.patch | 31 | ||||
| -rw-r--r-- | usb/usb-cp210x-add-wago-750-923-service-cable-device-id.patch | 48 | ||||
| -rw-r--r-- | usb/usb-gadget-dummy_hcd-fix-error-path.patch | 48 |
6 files changed, 226 insertions, 3 deletions
@@ -108,6 +108,8 @@ tty/altera_uart-fix-missing-prototype-for-registering-an-early-console.patch tty/altera_uart-don-t-use-plain-integer-as-null-pointer.patch tty/8250-allow-platforms-to-override-pm-hook.patch tty/alchemy-add-uart-pm-methods.patch +tty/jsm-remove-the-uart-port-on-errors.patch +tty/serial-imx-serial-driver-fix-resume.patch ################################### # USB stuff for after 2.6.36 is out @@ -213,10 +215,10 @@ usb/usb-storage-add-new-no_read_disc_info-quirk.patch usb/scsi-sd-add-a-no_read_capacity_16-scsi_device-flag.patch usb/usb-storage-add-new-no_read_capacity_16-quirk.patch usb/usb-do-not-print-eshutdown-message-if-usb-at-otg-device-mode.patch - +usb/usb-cp210x-add-wago-750-923-service-cable-device-id.patch +usb/usb-core-endpoint-fix-error-path.patch +usb/usb-gadget-dummy_hcd-fix-error-path.patch # staging stuff for next is now in the staging-next tree on git.kernel.org - - diff --git a/tty/jsm-remove-the-uart-port-on-errors.patch b/tty/jsm-remove-the-uart-port-on-errors.patch new file mode 100644 index 00000000000000..68380a0b7b10c2 --- /dev/null +++ b/tty/jsm-remove-the-uart-port-on-errors.patch @@ -0,0 +1,39 @@ +From linux-serial-owner@vger.kernel.org Thu Oct 7 10:48:23 2010 +From: Breno Leitao <leitao@linux.vnet.ibm.com> +To: greg@kroah.com +Cc: linux-serial@vger.kernel.org, + Breno Leitao <leitao@linux.vnet.ibm.com> +Subject: jsm: Remove the uart port on errors +Date: Thu, 7 Oct 2010 13:40:42 -0300 +Message-Id: <1286469642-18796-1-git-send-email-leitao@linux.vnet.ibm.com> + +If kzmalloc fails, the uart port is not removed causing a leak. +This patch just add another label that removes the uart when the +kzmalloc fails. + +Signed-off-by: Breno Leitao <leitao@linux.vnet.ibm.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/serial/jsm/jsm_driver.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/drivers/serial/jsm/jsm_driver.c ++++ b/drivers/serial/jsm/jsm_driver.c +@@ -172,13 +172,15 @@ static int __devinit jsm_probe_one(struc + jsm_uart_port_init here! */ + dev_err(&pdev->dev, "memory allocation for flipbuf failed\n"); + rc = -ENOMEM; +- goto out_free_irq; ++ goto out_free_uart; + } + + pci_set_drvdata(pdev, brd); + pci_save_state(pdev); + + return 0; ++ out_free_uart: ++ jsm_remove_uart_port(brd); + out_free_irq: + jsm_remove_uart_port(brd); + free_irq(brd->irq, brd); diff --git a/tty/serial-imx-serial-driver-fix-resume.patch b/tty/serial-imx-serial-driver-fix-resume.patch new file mode 100644 index 00000000000000..b68bb284517808 --- /dev/null +++ b/tty/serial-imx-serial-driver-fix-resume.patch @@ -0,0 +1,55 @@ +From daniel@caiaq.de Thu Oct 7 10:49:08 2010 +From: Volker Ernst <volker.ernst@txtr.com> +To: linux-arm-kernel@lists.infradead.org +Cc: gregkh@suse.de, akpm@linux-foundation.org, + s.hauer@pengutronix.de, Volker Ernst <volker.ernst@txtr.com>, + Daniel Mack <daniel@caiaq.de>, Andy Green <andy@warmcat.com> +Subject: serial: imx serial driver: fix resume +Date: Wed, 6 Oct 2010 18:57:16 +0200 +Message-Id: <1286384236-4241-1-git-send-email-daniel@caiaq.de> + +From: Volker Ernst <volker.ernst@txtr.com> + +I just came across a bug in the IMX31 serial driver which is still +present in the newest kernels and which prevents successful +resume-operation for the IMX31 serial ports. + +What happens is that in "drivers/serial/imx.c" on resume function +"serial_imx_resume" gets called. This function in turn calls +"uart_resume_port" (in the generic serial driver "serial_core.c"), +which in turn calls "imx_start_tx" in "imx.c" (in case the SIO-port +was really suspended) which in turn calls "imx_transmit_buffer". + +However calling "imx_transmit_buffer" with an empty TX-fifo (as is +usually the case) will result in the serial port starting to transmit +(actually the old [already sent] tx-buffer), as there is no check if +the tx-buffer is empty before starting to feed tx-fifo-data to the +serial port hardware. + +Signed-off-by: Volker Ernst <volker.ernst@txtr.com> +Cc: Daniel Mack <daniel@caiaq.de> +Cc: Andy Green <andy@warmcat.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/serial/imx.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/serial/imx.c ++++ b/drivers/serial/imx.c +@@ -328,13 +328,13 @@ static inline void imx_transmit_buffer(s + struct circ_buf *xmit = &sport->port.state->xmit; + + while (!(readl(sport->port.membase + UTS) & UTS_TXFULL)) { ++ if (uart_circ_empty(xmit)) ++ break; + /* send xmit->buf[xmit->tail] + * out the port here */ + writel(xmit->buf[xmit->tail], sport->port.membase + URTX0); + xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1); + sport->port.icount.tx++; +- if (uart_circ_empty(xmit)) +- break; + } + + if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS) diff --git a/usb/usb-core-endpoint-fix-error-path.patch b/usb/usb-core-endpoint-fix-error-path.patch new file mode 100644 index 00000000000000..5da3dfda286040 --- /dev/null +++ b/usb/usb-core-endpoint-fix-error-path.patch @@ -0,0 +1,31 @@ +From rahul.ruikar@gmail.com Thu Oct 7 10:51:06 2010 +From: Rahul Ruikar <rahul.ruikar@gmail.com> +To: Greg Kroah-Hartman <gregkh@suse.de>, Tejun Heo <tj@kernel.org>, + asanchez@neurowork.net, rjw@sisk.pl, csanchez@neurowork.net +Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, + Rahul Ruikar <rahul.ruikar@gmail.com> +Subject: usb: core: endpoint: Fix error path +Date: Thu, 7 Oct 2010 09:31:12 +0530 +Message-Id: <1286424072-2819-1-git-send-email-rahul.ruikar@gmail.com> + +In function usb_create_ep_devs() +call put_device() when device_register() fails. + +Signed-off-by: Rahul Ruikar <rahul.ruikar@gmail.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/core/endpoint.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/usb/core/endpoint.c ++++ b/drivers/usb/core/endpoint.c +@@ -202,7 +202,7 @@ int usb_create_ep_devs(struct device *pa + return retval; + + error_register: +- kfree(ep_dev); ++ put_device(&ep_dev->dev); + exit: + return retval; + } diff --git a/usb/usb-cp210x-add-wago-750-923-service-cable-device-id.patch b/usb/usb-cp210x-add-wago-750-923-service-cable-device-id.patch new file mode 100644 index 00000000000000..136ce534de0d38 --- /dev/null +++ b/usb/usb-cp210x-add-wago-750-923-service-cable-device-id.patch @@ -0,0 +1,48 @@ +From anders@alarsen.net Thu Oct 7 10:48:47 2010 +Date: Wed, 6 Oct 2010 23:46:25 +0200 +From: Anders Larsen <al@alarsen.net> +To: Greg Kroah-Hartman <gregkh@suse.de> +Cc: Craig Shelley <craig@microtron.org.uk>, + linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org +Subject: USB: cp210x: Add WAGO 750-923 Service Cable device ID +Message-ID: <20101006214625.GA21514@alarsen.net> +Content-Disposition: inline + +The WAGO 750-923 USB Service Cable is used for configuration and firmware +updates of several industrial automation products from WAGO Kontakttechnik GmbH. + +Bus 004 Device 002: ID 1be3:07a6 +Device Descriptor: + bLength 18 + bDescriptorType 1 + bcdUSB 1.10 + bDeviceClass 0 (Defined at Interface level) + bDeviceSubClass 0 + bDeviceProtocol 0 + bMaxPacketSize0 64 + idVendor 0x1be3 + idProduct 0x07a6 + bcdDevice 1.00 + iManufacturer 1 Silicon Labs + iProduct 2 WAGO USB Service Cable + iSerial 3 1277796751 + . . . + +Signed-off-by: Anders Larsen <al@alarsen.net> +Cc: stable <stable@kernel.org> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/serial/cp210x.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/usb/serial/cp210x.c ++++ b/drivers/usb/serial/cp210x.c +@@ -133,6 +133,7 @@ static const struct usb_device_id id_tab + { USB_DEVICE(0x17F4, 0xAAAA) }, /* Wavesense Jazz blood glucose meter */ + { USB_DEVICE(0x1843, 0x0200) }, /* Vaisala USB Instrument Cable */ + { USB_DEVICE(0x18EF, 0xE00F) }, /* ELV USB-I2C-Interface */ ++ { USB_DEVICE(0x1BE3, 0x07A6) }, /* WAGO 750-923 USB Service Cable */ + { USB_DEVICE(0x413C, 0x9500) }, /* DW700 GPS USB interface */ + { } /* Terminating Entry */ + }; diff --git a/usb/usb-gadget-dummy_hcd-fix-error-path.patch b/usb/usb-gadget-dummy_hcd-fix-error-path.patch new file mode 100644 index 00000000000000..8dad556e3e4cee --- /dev/null +++ b/usb/usb-gadget-dummy_hcd-fix-error-path.patch @@ -0,0 +1,48 @@ +From rahul.ruikar@gmail.com Thu Oct 7 10:51:20 2010 +From: Rahul Ruikar <rahul.ruikar@gmail.com> +To: David Brownell <dbrownell@users.sourceforge.net>, + Greg Kroah-Hartman <gregkh@suse.de>, + Alan Stern <stern@rowland.harvard.edu> +Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, + Rahul Ruikar <rahul.ruikar@gmail.com> +Subject: usb: gadget: dummy_hcd: Fix error path +Date: Thu, 7 Oct 2010 09:40:45 +0530 +Message-Id: <1286424645-2899-1-git-send-email-rahul.ruikar@gmail.com> + +In function dummy_udc_probe() +call put_device() when device_register() fails. +also usb_get_hcd() put before device_register() after review comment +from Alan Stern. + +Signed-off-by: Rahul Ruikar <rahul.ruikar@gmail.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/gadget/dummy_hcd.c | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +--- a/drivers/usb/gadget/dummy_hcd.c ++++ b/drivers/usb/gadget/dummy_hcd.c +@@ -874,6 +874,8 @@ static int dummy_udc_probe (struct platf + struct dummy *dum = the_controller; + int rc; + ++ usb_get_hcd(dummy_to_hcd(dum)); ++ + dum->gadget.name = gadget_name; + dum->gadget.ops = &dummy_ops; + dum->gadget.is_dualspeed = 1; +@@ -885,10 +887,10 @@ static int dummy_udc_probe (struct platf + dum->gadget.dev.parent = &pdev->dev; + dum->gadget.dev.release = dummy_gadget_release; + rc = device_register (&dum->gadget.dev); +- if (rc < 0) ++ if (rc < 0) { ++ put_device(&dum->gadget.dev); + return rc; +- +- usb_get_hcd (dummy_to_hcd (dum)); ++ } + + platform_set_drvdata (pdev, dum); + rc = device_create_file (&dum->gadget.dev, &dev_attr_function); |
