aboutsummaryrefslogtreecommitdiffstats
path: root/usb.current
diff options
authorGreg Kroah-Hartman <gregkh@suse.de>2010-02-17 11:29:31 -0800
committerGreg Kroah-Hartman <gregkh@suse.de>2010-02-17 11:29:31 -0800
commitc9c6e48761eee7819ccba6c4be402b0762cbd4d4 (patch)
treeed591e9acb46e2cfb20319dbaf10b489f0f19a14 /usb.current
parentb42e10eff567a927fc01ba715d0f9cd9dab4c2ed (diff)
downloadpatches-c9c6e48761eee7819ccba6c4be402b0762cbd4d4.tar.gz
delete patches now in Linus's tree
Diffstat (limited to 'usb.current')
-rw-r--r--usb.current/kfifo-don-t-use-integer-as-null-pointer.patch47
-rw-r--r--usb.current/kfifo-make-kfifo_initialized-work-after-kfifo_free.patch35
-rw-r--r--usb.current/usb-ehci-phy-low-power-mode-bug-fixing.patch58
-rw-r--r--usb.current/usb-fhci-fix-build-after-kfifo-rework.patch61
-rw-r--r--usb.current/usb-ftdi_sio-add-device-ids-several-elv-one-mindstorms-nxt.patch142
-rw-r--r--usb.current/usb-ftdi_sio-new-device-id-for-papouch-ad4usb.patch45
-rw-r--r--usb.current/usb-g_multi-fix-config_usb_g_multi_rndis-usage.patch34
-rw-r--r--usb.current/usb-gadget-fix-eem-gadget-crc-usage.patch44
-rw-r--r--usb.current/usb-otg-kconfig-let-usb_otg_utils-select-usb_ulpi-option.patch41
-rw-r--r--usb.current/usb-r8a66597-udc-prototype-is_err-and-ptr_err.patch31
-rw-r--r--usb.current/usb-s3c-hsotg-export-usb_gadget_register_driver.patch30
-rw-r--r--usb.current/usb-serial-add-usbid-for-dell-wwan-card-to-sierra.c.patch32
-rw-r--r--usb.current/usb-sis-usb2vga-driver-support-kairen-s-usb-vga-adaptor-usb20svga-mb-plus.patch29
-rw-r--r--usb.current/usb-storage-remove-unneeded-sc-pr-from-unusual_devs.h.patch30
-rw-r--r--usb.current/usb-usbfs-only-copy-the-actual-data-received.patch49
-rw-r--r--usb.current/usb-usbfs-properly-clean-up-the-as-structure-on-error-paths.patch123
16 files changed, 0 insertions, 831 deletions
diff --git a/usb.current/kfifo-don-t-use-integer-as-null-pointer.patch b/usb.current/kfifo-don-t-use-integer-as-null-pointer.patch
deleted file mode 100644
index c52bfca286194c..00000000000000
--- a/usb.current/kfifo-don-t-use-integer-as-null-pointer.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From avorontsov@ru.mvista.com Wed Jan 27 16:00:42 2010
-From: Anton Vorontsov <avorontsov@ru.mvista.com>
-Date: Wed, 27 Jan 2010 17:09:38 +0300
-Subject: kfifo: Don't use integer as NULL pointer
-To: Andrew Morton <akpm@linux-foundation.org>
-Cc: Greg Kroah-Hartman <gregkh@suse.de>, Josh Boyer <jwboyer@gmail.com>, Stefani Seibold <stefani@seibold.net>, linuxppc-dev@ozlabs.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org
-Message-ID: <20100127140938.GC31608@oksana.dev.rtsoft.ru>
-Content-Disposition: inline
-
-
-This patch fixes following sparse warnings:
-
-include/linux/kfifo.h:127:25: warning: Using plain integer as NULL pointer
-kernel/kfifo.c:83:21: warning: Using plain integer as NULL pointer
-
-Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
-Acked-by: Stefani Seibold <stefani@seibold.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
-
----
- include/linux/kfifo.h | 2 +-
- kernel/kfifo.c | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
---- a/include/linux/kfifo.h
-+++ b/include/linux/kfifo.h
-@@ -124,7 +124,7 @@ extern __must_check unsigned int kfifo_o
- */
- static inline bool kfifo_initialized(struct kfifo *fifo)
- {
-- return fifo->buffer != 0;
-+ return fifo->buffer != NULL;
- }
-
- /**
---- a/kernel/kfifo.c
-+++ b/kernel/kfifo.c
-@@ -80,7 +80,7 @@ int kfifo_alloc(struct kfifo *fifo, unsi
-
- buffer = kmalloc(size, gfp_mask);
- if (!buffer) {
-- _kfifo_init(fifo, 0, 0);
-+ _kfifo_init(fifo, NULL, 0);
- return -ENOMEM;
- }
-
diff --git a/usb.current/kfifo-make-kfifo_initialized-work-after-kfifo_free.patch b/usb.current/kfifo-make-kfifo_initialized-work-after-kfifo_free.patch
deleted file mode 100644
index 2121e50948e0a3..00000000000000
--- a/usb.current/kfifo-make-kfifo_initialized-work-after-kfifo_free.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From avorontsov@ru.mvista.com Wed Jan 27 15:59:32 2010
-From: Anton Vorontsov <avorontsov@ru.mvista.com>
-Date: Wed, 27 Jan 2010 17:09:34 +0300
-Subject: kfifo: Make kfifo_initialized work after kfifo_free
-To: Andrew Morton <akpm@linux-foundation.org>
-Cc: Greg Kroah-Hartman <gregkh@suse.de>, Josh Boyer <jwboyer@gmail.com>, Stefani Seibold <stefani@seibold.net>, linuxppc-dev@ozlabs.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org
-Message-ID: <20100127140934.GA31608@oksana.dev.rtsoft.ru>
-Content-Disposition: inline
-
-
-After kfifo rework it's no longer possible to reliably know if kfifo is
-usable, since after kfifo_free(), kfifo_initialized() would still return
-true. The correct behaviour is needed for at least FHCI USB driver.
-
-This patch fixes the issue by resetting the kfifo to zero values (the
-same approach is used in kfifo_alloc() if allocation failed).
-
-Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
-Acked-by: Stefani Seibold <stefani@seibold.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- kernel/kfifo.c | 1 +
- 1 file changed, 1 insertion(+)
-
---- a/kernel/kfifo.c
-+++ b/kernel/kfifo.c
-@@ -97,6 +97,7 @@ EXPORT_SYMBOL(kfifo_alloc);
- void kfifo_free(struct kfifo *fifo)
- {
- kfree(fifo->buffer);
-+ _kfifo_init(fifo, NULL, 0);
- }
- EXPORT_SYMBOL(kfifo_free);
-
diff --git a/usb.current/usb-ehci-phy-low-power-mode-bug-fixing.patch b/usb.current/usb-ehci-phy-low-power-mode-bug-fixing.patch
deleted file mode 100644
index dfd1c6e62124b0..00000000000000
--- a/usb.current/usb-ehci-phy-low-power-mode-bug-fixing.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From alek.du@intel.com Wed Jan 27 14:41:05 2010
-From: alek du <alek.du@intel.com>
-Date: Tue, 19 Jan 2010 16:31:31 +0800
-Subject: USB: ehci: phy low power mode bug fixing
-To: Arnd Bergmann <arnd@arndb.de>, Greg KH <greg@kroah.com>
-Cc: Julia Lawall <julia@diku.dk>, Andreas Mohr <andi@lisas.de>, "Pan, Jacob jun" <jacob.jun.pan@intel.com>, Alan Stern <stern@rowland.harvard.edu>
-Message-ID: <20100119163131.0af9f540@dxy2>
-
-
-From: Alek Du <alek.du@intel.com>
-
-1. There are two msleep calls inside two spin lock sections, need to unlock
- and lock again after msleep.
-2. Save a extra status reg setting.
-
-Signed-off-by: Alek Du <alek.du@intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- drivers/usb/host/ehci-hub.c | 13 ++++++++-----
- 1 file changed, 8 insertions(+), 5 deletions(-)
-
---- a/drivers/usb/host/ehci-hub.c
-+++ b/drivers/usb/host/ehci-hub.c
-@@ -196,7 +196,9 @@ static int ehci_bus_suspend (struct usb_
- if (hostpc_reg) {
- u32 t3;
-
-+ spin_unlock_irq(&ehci->lock);
- msleep(5);/* 5ms for HCD enter low pwr mode */
-+ spin_lock_irq(&ehci->lock);
- t3 = ehci_readl(ehci, hostpc_reg);
- ehci_writel(ehci, t3 | HOSTPC_PHCD, hostpc_reg);
- t3 = ehci_readl(ehci, hostpc_reg);
-@@ -904,17 +906,18 @@ static int ehci_hub_control (
- if ((temp & PORT_PE) == 0
- || (temp & PORT_RESET) != 0)
- goto error;
-- ehci_writel(ehci, temp | PORT_SUSPEND, status_reg);
-+
- /* After above check the port must be connected.
- * Set appropriate bit thus could put phy into low power
- * mode if we have hostpc feature
- */
-+ temp &= ~PORT_WKCONN_E;
-+ temp |= PORT_WKDISC_E | PORT_WKOC_E;
-+ ehci_writel(ehci, temp | PORT_SUSPEND, status_reg);
- if (hostpc_reg) {
-- temp &= ~PORT_WKCONN_E;
-- temp |= (PORT_WKDISC_E | PORT_WKOC_E);
-- ehci_writel(ehci, temp | PORT_SUSPEND,
-- status_reg);
-+ spin_unlock_irqrestore(&ehci->lock, flags);
- msleep(5);/* 5ms for HCD enter low pwr mode */
-+ spin_lock_irqsave(&ehci->lock, flags);
- temp1 = ehci_readl(ehci, hostpc_reg);
- ehci_writel(ehci, temp1 | HOSTPC_PHCD,
- hostpc_reg);
diff --git a/usb.current/usb-fhci-fix-build-after-kfifo-rework.patch b/usb.current/usb-fhci-fix-build-after-kfifo-rework.patch
deleted file mode 100644
index 74db03f185fa1b..00000000000000
--- a/usb.current/usb-fhci-fix-build-after-kfifo-rework.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From avorontsov@ru.mvista.com Wed Jan 27 15:59:56 2010
-From: Anton Vorontsov <avorontsov@ru.mvista.com>
-Date: Wed, 27 Jan 2010 17:09:36 +0300
-Subject: USB: FHCI: Fix build after kfifo rework
-To: Andrew Morton <akpm@linux-foundation.org>
-Cc: Greg Kroah-Hartman <gregkh@suse.de>, Josh Boyer <jwboyer@gmail.com>, Stefani Seibold <stefani@seibold.net>, linuxppc-dev@ozlabs.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org
-Message-ID: <20100127140936.GB31608@oksana.dev.rtsoft.ru>
-Content-Disposition: inline
-
-
-After kfifo rework FHCI fails to build:
-
- CC drivers/usb/host/fhci-tds.o
-drivers/usb/host/fhci-tds.c: In function 'fhci_ep0_free':
-drivers/usb/host/fhci-tds.c:108: error: used struct type value where scalar is required
-drivers/usb/host/fhci-tds.c:118: error: used struct type value where scalar is required
-drivers/usb/host/fhci-tds.c:128: error: used struct type value where scalar is required
-
-This is because kfifos are no longer pointers in the ep struct.
-So, instead of checking the pointers, we should now check if kfifo
-is initialized.
-
-Reported-by: Josh Boyer <jwboyer@gmail.com>
-Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
-Acked-by: Stefani Seibold <stefani@seibold.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
-
----
- drivers/usb/host/fhci-tds.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
---- a/drivers/usb/host/fhci-tds.c
-+++ b/drivers/usb/host/fhci-tds.c
-@@ -105,7 +105,7 @@ void fhci_ep0_free(struct fhci_usb *usb)
- if (ep->td_base)
- cpm_muram_free(cpm_muram_offset(ep->td_base));
-
-- if (ep->conf_frame_Q) {
-+ if (kfifo_initialized(&ep->conf_frame_Q)) {
- size = cq_howmany(&ep->conf_frame_Q);
- for (; size; size--) {
- struct packet *pkt = cq_get(&ep->conf_frame_Q);
-@@ -115,7 +115,7 @@ void fhci_ep0_free(struct fhci_usb *usb)
- cq_delete(&ep->conf_frame_Q);
- }
-
-- if (ep->empty_frame_Q) {
-+ if (kfifo_initialized(&ep->empty_frame_Q)) {
- size = cq_howmany(&ep->empty_frame_Q);
- for (; size; size--) {
- struct packet *pkt = cq_get(&ep->empty_frame_Q);
-@@ -125,7 +125,7 @@ void fhci_ep0_free(struct fhci_usb *usb)
- cq_delete(&ep->empty_frame_Q);
- }
-
-- if (ep->dummy_packets_Q) {
-+ if (kfifo_initialized(&ep->dummy_packets_Q)) {
- size = cq_howmany(&ep->dummy_packets_Q);
- for (; size; size--) {
- u8 *buff = cq_get(&ep->dummy_packets_Q);
diff --git a/usb.current/usb-ftdi_sio-add-device-ids-several-elv-one-mindstorms-nxt.patch b/usb.current/usb-ftdi_sio-add-device-ids-several-elv-one-mindstorms-nxt.patch
deleted file mode 100644
index 1e550f045426d6..00000000000000
--- a/usb.current/usb-ftdi_sio-add-device-ids-several-elv-one-mindstorms-nxt.patch
+++ /dev/null
@@ -1,142 +0,0 @@
-From andi@lisas.de Wed Jan 27 14:30:09 2010
-From: Andreas Mohr <andi@lisas.de>
-Date: Sun, 17 Jan 2010 11:45:38 +0100
-Subject: USB: ftdi_sio: add device IDs (several ELV, one Mindstorms NXT)
-To: Greg Kroah-Hartman <gregkh@suse.de>
-Cc: kuba@mareimbrium.org, linux-usb@vger.kernel.org
-Message-ID: <20100117104538.GA25234@rhlx01.hs-esslingen.de>
-Content-Disposition: inline
-
-
-- add FTDI device IDs for several ELV devices and NXTCam of Lego Mindstorms NXT
-- add hopefully helpful new_id comment
-- remove less helpful "Due to many user requests for multiple ELV devices we enable
- them by default." comment (we simply add _all_ known devices - an
- enduser shouldn't have to fiddle with obscure module parameters...).
-- add myself to DRIVER_AUTHOR
-
-The missing NXTCam ID has been found at
-http://www.unixboard.de/vb3/showthread.php?t=44155
-, ELV devices taken from ELV Windows .inf file.
-
-Signed-off-by: Andreas Mohr <andi@lisas.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- drivers/usb/serial/ftdi_sio.c | 24 +++++++++++++++++++++---
- drivers/usb/serial/ftdi_sio_ids.h | 17 +++++++++++++++++
- 2 files changed, 38 insertions(+), 3 deletions(-)
-
---- a/drivers/usb/serial/ftdi_sio.c
-+++ b/drivers/usb/serial/ftdi_sio.c
-@@ -50,7 +50,7 @@
- * Version Information
- */
- #define DRIVER_VERSION "v1.5.0"
--#define DRIVER_AUTHOR "Greg Kroah-Hartman <greg@kroah.com>, Bill Ryder <bryder@sgi.com>, Kuba Ober <kuba@mareimbrium.org>"
-+#define DRIVER_AUTHOR "Greg Kroah-Hartman <greg@kroah.com>, Bill Ryder <bryder@sgi.com>, Kuba Ober <kuba@mareimbrium.org>, Andreas Mohr"
- #define DRIVER_DESC "USB FTDI Serial Converters Driver"
-
- static int debug;
-@@ -145,10 +145,15 @@ static struct ftdi_sio_quirk ftdi_HE_TIR
-
-
-
-+/*
-+ * Device ID not listed? Test via module params product/vendor or
-+ * /sys/bus/usb/ftdi_sio/new_id, then send patch/report!
-+ */
- static struct usb_device_id id_table_combined [] = {
- { USB_DEVICE(FTDI_VID, FTDI_AMC232_PID) },
- { USB_DEVICE(FTDI_VID, FTDI_CANUSB_PID) },
- { USB_DEVICE(FTDI_VID, FTDI_CANDAPTER_PID) },
-+ { USB_DEVICE(FTDI_VID, FTDI_NXTCAM_PID) },
- { USB_DEVICE(FTDI_VID, FTDI_SCS_DEVICE_0_PID) },
- { USB_DEVICE(FTDI_VID, FTDI_SCS_DEVICE_1_PID) },
- { USB_DEVICE(FTDI_VID, FTDI_SCS_DEVICE_2_PID) },
-@@ -552,9 +557,16 @@ static struct usb_device_id id_table_com
- { USB_DEVICE(FTDI_VID, FTDI_IBS_PEDO_PID) },
- { USB_DEVICE(FTDI_VID, FTDI_IBS_PROD_PID) },
- /*
-- * Due to many user requests for multiple ELV devices we enable
-- * them by default.
-+ * ELV devices:
- */
-+ { USB_DEVICE(FTDI_VID, FTDI_ELV_USR_PID) },
-+ { USB_DEVICE(FTDI_VID, FTDI_ELV_MSM1_PID) },
-+ { USB_DEVICE(FTDI_VID, FTDI_ELV_KL100_PID) },
-+ { USB_DEVICE(FTDI_VID, FTDI_ELV_WS550_PID) },
-+ { USB_DEVICE(FTDI_VID, FTDI_ELV_EC3000_PID) },
-+ { USB_DEVICE(FTDI_VID, FTDI_ELV_WS888_PID) },
-+ { USB_DEVICE(FTDI_VID, FTDI_ELV_TWS550_PID) },
-+ { USB_DEVICE(FTDI_VID, FTDI_ELV_FEM_PID) },
- { USB_DEVICE(FTDI_VID, FTDI_ELV_CLI7000_PID) },
- { USB_DEVICE(FTDI_VID, FTDI_ELV_PPS7330_PID) },
- { USB_DEVICE(FTDI_VID, FTDI_ELV_TFM100_PID) },
-@@ -571,11 +583,17 @@ static struct usb_device_id id_table_com
- { USB_DEVICE(FTDI_VID, FTDI_ELV_PCK100_PID) },
- { USB_DEVICE(FTDI_VID, FTDI_ELV_RFP500_PID) },
- { USB_DEVICE(FTDI_VID, FTDI_ELV_FS20SIG_PID) },
-+ { USB_DEVICE(FTDI_VID, FTDI_ELV_UTP8_PID) },
- { USB_DEVICE(FTDI_VID, FTDI_ELV_WS300PC_PID) },
-+ { USB_DEVICE(FTDI_VID, FTDI_ELV_WS444PC_PID) },
- { USB_DEVICE(FTDI_VID, FTDI_ELV_FHZ1300PC_PID) },
- { USB_DEVICE(FTDI_VID, FTDI_ELV_EM1010PC_PID) },
- { USB_DEVICE(FTDI_VID, FTDI_ELV_WS500_PID) },
- { USB_DEVICE(FTDI_VID, FTDI_ELV_HS485_PID) },
-+ { USB_DEVICE(FTDI_VID, FTDI_ELV_UMS100_PID) },
-+ { USB_DEVICE(FTDI_VID, FTDI_ELV_TFD128_PID) },
-+ { USB_DEVICE(FTDI_VID, FTDI_ELV_FM3RX_PID) },
-+ { USB_DEVICE(FTDI_VID, FTDI_ELV_WS777_PID) },
- { USB_DEVICE(FTDI_VID, LINX_SDMUSBQSS_PID) },
- { USB_DEVICE(FTDI_VID, LINX_MASTERDEVEL2_PID) },
- { USB_DEVICE(FTDI_VID, LINX_FUTURE_0_PID) },
---- a/drivers/usb/serial/ftdi_sio_ids.h
-+++ b/drivers/usb/serial/ftdi_sio_ids.h
-@@ -38,6 +38,8 @@
- /* www.candapter.com Ewert Energy Systems CANdapter device */
- #define FTDI_CANDAPTER_PID 0x9F80 /* Product Id */
-
-+#define FTDI_NXTCAM_PID 0xABB8 /* NXTCam for Mindstorms NXT */
-+
- /* OOCDlink by Joern Kaipf <joernk@web.de>
- * (http://www.joernonline.de/dw/doku.php?id=start&idx=projects:oocdlink) */
- #define FTDI_OOCDLINK_PID 0xbaf8 /* Amontec JTAGkey */
-@@ -161,22 +163,37 @@
- /*
- * ELV USB devices submitted by Christian Abt of ELV (www.elv.de).
- * All of these devices use FTDI's vendor ID (0x0403).
-+ * Further IDs taken from ELV Windows .inf file.
- *
- * The previously included PID for the UO 100 module was incorrect.
- * In fact, that PID was for ELV's UR 100 USB-RS232 converter (0xFB58).
- *
- * Armin Laeuger originally sent the PID for the UM 100 module.
- */
-+#define FTDI_ELV_USR_PID 0xE000 /* ELV Universal-Sound-Recorder */
-+#define FTDI_ELV_MSM1_PID 0xE001 /* ELV Mini-Sound-Modul */
-+#define FTDI_ELV_KL100_PID 0xE002 /* ELV Kfz-Leistungsmesser KL 100 */
-+#define FTDI_ELV_WS550_PID 0xE004 /* WS 550 */
-+#define FTDI_ELV_EC3000_PID 0xE006 /* ENERGY CONTROL 3000 USB */
-+#define FTDI_ELV_WS888_PID 0xE008 /* WS 888 */
-+#define FTDI_ELV_TWS550_PID 0xE009 /* Technoline WS 550 */
-+#define FTDI_ELV_FEM_PID 0xE00A /* Funk Energie Monitor */
- #define FTDI_ELV_FHZ1300PC_PID 0xE0E8 /* FHZ 1300 PC */
- #define FTDI_ELV_WS500_PID 0xE0E9 /* PC-Wetterstation (WS 500) */
- #define FTDI_ELV_HS485_PID 0xE0EA /* USB to RS-485 adapter */
-+#define FTDI_ELV_UMS100_PID 0xE0EB /* ELV USB Master-Slave Schaltsteckdose UMS 100 */
-+#define FTDI_ELV_TFD128_PID 0xE0EC /* ELV Temperatur-Feuchte-Datenlogger TFD 128 */
-+#define FTDI_ELV_FM3RX_PID 0xE0ED /* ELV Messwertuebertragung FM3 RX */
-+#define FTDI_ELV_WS777_PID 0xE0EE /* Conrad WS 777 */
- #define FTDI_ELV_EM1010PC_PID 0xE0EF /* Engery monitor EM 1010 PC */
- #define FTDI_ELV_CSI8_PID 0xE0F0 /* Computer-Schalt-Interface (CSI 8) */
- #define FTDI_ELV_EM1000DL_PID 0xE0F1 /* PC-Datenlogger fuer Energiemonitor (EM 1000 DL) */
- #define FTDI_ELV_PCK100_PID 0xE0F2 /* PC-Kabeltester (PCK 100) */
- #define FTDI_ELV_RFP500_PID 0xE0F3 /* HF-Leistungsmesser (RFP 500) */
- #define FTDI_ELV_FS20SIG_PID 0xE0F4 /* Signalgeber (FS 20 SIG) */
-+#define FTDI_ELV_UTP8_PID 0xE0F5 /* ELV UTP 8 */
- #define FTDI_ELV_WS300PC_PID 0xE0F6 /* PC-Wetterstation (WS 300 PC) */
-+#define FTDI_ELV_WS444PC_PID 0xE0F7 /* Conrad WS 444 PC */
- #define FTDI_PHI_FISCO_PID 0xE40B /* PHI Fisco USB to Serial cable */
- #define FTDI_ELV_UAD8_PID 0xF068 /* USB-AD-Wandler (UAD 8) */
- #define FTDI_ELV_UDA7_PID 0xF069 /* USB-DA-Wandler (UDA 7) */
diff --git a/usb.current/usb-ftdi_sio-new-device-id-for-papouch-ad4usb.patch b/usb.current/usb-ftdi_sio-new-device-id-for-papouch-ad4usb.patch
deleted file mode 100644
index 99a342c8fd1e31..00000000000000
--- a/usb.current/usb-ftdi_sio-new-device-id-for-papouch-ad4usb.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From liboska@uochb.cas.cz Wed Jan 27 14:09:59 2010
-From: Radek Liboska <liboska@uochb.cas.cz>
-Date: Wed, 27 Jan 2010 15:38:34 +0100
-Subject: USB: ftdi_sio: new device id for papouch AD4USB
-To: Greg KH <greg@kroah.com>
-Message-ID: <4B604FEA.2080304@uochb.cas.cz>
-
-
-added new device pid (PAPOUCH_AD4USB_PID) to ftdi_sio.h and ftdi_sio.c
-
-AD4USB measuring converter is a 4-input A/D converter which enables the
-user to measure to four current inputs ranging from 0(4) to 20 mA or
-voltage between 0 and 10 V. The measured values are then transferred to
-a superior system in digital form. The AD4USB communicates via USB.
-Powered is also via USB. datasheet in english is here:
-http://www.papouch.com/shop/scripts/pdf/ad4usb_en.pdf
-
-
-Signed-off-by: Radek Liboska <liboska@uochb.cas.cz>
-
----
- drivers/usb/serial/ftdi_sio.c | 1 +
- drivers/usb/serial/ftdi_sio_ids.h | 1 +
- 2 files changed, 2 insertions(+)
-
---- a/drivers/usb/serial/ftdi_sio.c
-+++ b/drivers/usb/serial/ftdi_sio.c
-@@ -697,6 +697,7 @@ static struct usb_device_id id_table_com
- { USB_DEVICE(RATOC_VENDOR_ID, RATOC_PRODUCT_ID_USB60F) },
- { USB_DEVICE(FTDI_VID, FTDI_REU_TINY_PID) },
- { USB_DEVICE(PAPOUCH_VID, PAPOUCH_QUIDO4x4_PID) },
-+ { USB_DEVICE(PAPOUCH_VID, PAPOUCH_AD4USB_PID) },
- { USB_DEVICE(FTDI_VID, FTDI_DOMINTELL_DGQG_PID) },
- { USB_DEVICE(FTDI_VID, FTDI_DOMINTELL_DUSB_PID) },
- { USB_DEVICE(ALTI2_VID, ALTI2_N3_PID) },
---- a/drivers/usb/serial/ftdi_sio_ids.h
-+++ b/drivers/usb/serial/ftdi_sio_ids.h
-@@ -968,6 +968,7 @@
- #define PAPOUCH_VID 0x5050 /* Vendor ID */
- #define PAPOUCH_TMU_PID 0x0400 /* TMU USB Thermometer */
- #define PAPOUCH_QUIDO4x4_PID 0x0900 /* Quido 4/4 Module */
-+#define PAPOUCH_AD4USB_PID 0x8003 /* AD4USB Measurement Module */
-
- /*
- * Marvell SheevaPlug
diff --git a/usb.current/usb-g_multi-fix-config_usb_g_multi_rndis-usage.patch b/usb.current/usb-g_multi-fix-config_usb_g_multi_rndis-usage.patch
deleted file mode 100644
index 0776793fd138dc..00000000000000
--- a/usb.current/usb-g_multi-fix-config_usb_g_multi_rndis-usage.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From m.nazarewicz@samsung.com Wed Jan 27 18:18:07 2010
-From: Michal Nazarewicz <m.nazarewicz@samsung.com>
-Date: Fri, 22 Jan 2010 15:18:21 +0100
-Subject: USB: g_multi: fix CONFIG_USB_G_MULTI_RNDIS usage
-To: Randy Dunlap <randy.dunlap@oracle.com>, Stephen Rothwell <sfr@canb.auug.org.au>, Greg KH <greg@kroah.com>, Randy Dunlap <randy.dunlap@oracle.com>, Stephen Rothwell <sfr@canb.auug.org.au>, Greg KH <greg@kroah.com>
-Cc: Michal Nazarewicz <m.nazarewicz@samsung.com>, linux-next@vger.kernel.org, linux-kernel@vger.kernel.org, Marek Szyprowski <m.szyprowski@samsung.com>, Kyungmin Park <kyungmin.park@samsung.com>
-Message-ID: <1264169901-12475-1-git-send-email-m.nazarewicz@samsung.com>
-
-
-g_multi used CONFIG_USB_ETH_RNDIS to check if RNDIS option was requested
-where it should check for CONFIG_USB_G_MULTI_RNDIS. As a result, RNDIS
-was never present in g_multi regardless of configuration.
-
-This fixes changes made in commit 396cda90d228d0851f3d64c7c85a1ecf6b8ae1e8.
-
-Signed-off-by: Michal Nazarewicz <m.nazarewicz@samsung.com>
-Cc: Marek Szyprowski <m.szyprowski@samsung.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- drivers/usb/gadget/multi.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/usb/gadget/multi.c
-+++ b/drivers/usb/gadget/multi.c
-@@ -29,7 +29,7 @@
- #if defined USB_ETH_RNDIS
- # undef USB_ETH_RNDIS
- #endif
--#ifdef CONFIG_USB_ETH_RNDIS
-+#ifdef CONFIG_USB_G_MULTI_RNDIS
- # define USB_ETH_RNDIS y
- #endif
-
diff --git a/usb.current/usb-gadget-fix-eem-gadget-crc-usage.patch b/usb.current/usb-gadget-fix-eem-gadget-crc-usage.patch
deleted file mode 100644
index 55e73e57d94ec3..00000000000000
--- a/usb.current/usb-gadget-fix-eem-gadget-crc-usage.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From bniebuhr3@gmail.com Thu Jan 28 09:47:04 2010
-From: Brian Niebuhr <bniebuhr3@gmail.com>
-Date: Mon, 25 Jan 2010 14:45:40 -0600
-Subject: USB: gadget: fix EEM gadget CRC usage
-To: linux-usb@vger.kernel.org
-Cc: Brian Niebuhr <bniebuhr@efjohnson.com>, Steve Longerbeam <stevel@netspectrum.com>
-Message-ID: <9b99923f1001251245k11a1e74bo276d881a4069c277@mail.gmail.com>
-
-
-eem_wrap() is sending a sentinel CRC, but it didn't indicate that to
-the host, it should zero bit 14 (bmCRC) in the EEM packet header,
-instead of setting it.
-
-Also remove a redundant crc calculation in eem_unwrap().
-
-
-Signed-off-by: Steve Longerbeam <stevel@netspectrum.com>
-Acked-by: Brian Niebuhr <bniebuhr@efjohnson.com>
-Acked-by: David Brownell <dbrownell@users.sourceforge.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- drivers/usb/gadget/f_eem.c | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
---- a/drivers/usb/gadget/f_eem.c
-+++ b/drivers/usb/gadget/f_eem.c
-@@ -358,7 +358,7 @@ done:
- * b15: bmType (0 == data)
- */
- len = skb->len;
-- put_unaligned_le16((len & 0x3FFF) | BIT(14), skb_push(skb, 2));
-+ put_unaligned_le16(len & 0x3FFF, skb_push(skb, 2));
-
- /* add a zero-length EEM packet, if needed */
- if (padlen)
-@@ -464,7 +464,6 @@ static int eem_unwrap(struct gether *por
- }
-
- /* validate CRC */
-- crc = get_unaligned_le32(skb->data + len - ETH_FCS_LEN);
- if (header & BIT(14)) {
- crc = get_unaligned_le32(skb->data + len
- - ETH_FCS_LEN);
diff --git a/usb.current/usb-otg-kconfig-let-usb_otg_utils-select-usb_ulpi-option.patch b/usb.current/usb-otg-kconfig-let-usb_otg_utils-select-usb_ulpi-option.patch
deleted file mode 100644
index d7c3b81b2528a2..00000000000000
--- a/usb.current/usb-otg-kconfig-let-usb_otg_utils-select-usb_ulpi-option.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From valentin.longchamp@epfl.ch Wed Jan 27 18:24:25 2010
-From: Valentin Longchamp <valentin.longchamp@epfl.ch>
-Date: Wed, 20 Jan 2010 20:06:31 +0100
-Subject: USB: otg Kconfig: let USB_OTG_UTILS select USB_ULPI option
-To: s.hauer@pengutronix.de, u.kleine-koenig@pengutronix.de, daniel@caiaq.de
-Cc: linux-arm-kernel@lists.infradead.org, linux-usb@vger.kernel.org, Valentin Longchamp <valentin.longchamp@epfl.ch>
-Message-ID: <1264014391-11521-1-git-send-email-valentin.longchamp@epfl.ch>
-
-
-With CONFIG_USB_ULPI=y, CONFIG_USB<=m, CONFIG_PCI=n and
-CONFIG_USB_OTG_UTILS=n, which is the default used for mx31moboard,
-the build for all mx3 platforms fails because drivers/usb/otg/ulpi.c
-where otg_ulpi_create is defined is not compiled.
-
-Build error:
-arch/arm/mach-mx3/built-in.o: In function `mxc_board_init':
-kzmarm11.c:(.init.text+0x73c): undefined reference to `otg_ulpi_create'
-kzmarm11.c:(.init.text+0x1020): undefined reference to `otg_ulpi_create'
-
-This isn't a strong dependency as drivers/usb/otg/ulpi.c doesn't
-use functions defined in drivers/usb/otg/otg.o and is only needed
-to get ulpi.o linked into the kernel image.
-
-Signed-off-by: Valentin Longchamp <valentin.longchamp@epfl.ch>
-Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- drivers/usb/otg/Kconfig | 1 +
- 1 file changed, 1 insertion(+)
-
---- a/drivers/usb/otg/Kconfig
-+++ b/drivers/usb/otg/Kconfig
-@@ -44,6 +44,7 @@ config ISP1301_OMAP
- config USB_ULPI
- bool "Generic ULPI Transceiver Driver"
- depends on ARM
-+ select USB_OTG_UTILS
- help
- Enable this to support ULPI connected USB OTG transceivers which
- are likely found on embedded boards.
diff --git a/usb.current/usb-r8a66597-udc-prototype-is_err-and-ptr_err.patch b/usb.current/usb-r8a66597-udc-prototype-is_err-and-ptr_err.patch
deleted file mode 100644
index 02a1b7d1123c03..00000000000000
--- a/usb.current/usb-r8a66597-udc-prototype-is_err-and-ptr_err.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From broonie@opensource.wolfsonmicro.com Wed Jan 27 14:36:19 2010
-From: Mark Brown <broonie@opensource.wolfsonmicro.com>
-Date: Mon, 18 Jan 2010 12:03:18 +0000
-Subject: USB: r8a66597-udc: Prototype IS_ERR() and PTR_ERR()
-To: David Brownell <dbrownell@users.sourceforge.net>, Paul Mundt <lethal@linux-sh.org>, Magnus Damm <damm@igel.co.jp>, Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com>
-Cc: linux-usb@vger.kernel.org, Mark Brown <broonie@opensource.wolfsonmicro.com>
-Message-ID: <1263816198-32008-1-git-send-email-broonie@opensource.wolfsonmicro.com>
-
-
-The build of r8a66597-udc was failing on ARM since IS_ERR() and
-PTR_ERR() weren't protyped. Presumably err.h is being pulled in by
-another header on other platforms.
-
-Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
-Acked-by: Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- drivers/usb/gadget/r8a66597-udc.c | 1 +
- 1 file changed, 1 insertion(+)
-
---- a/drivers/usb/gadget/r8a66597-udc.c
-+++ b/drivers/usb/gadget/r8a66597-udc.c
-@@ -26,6 +26,7 @@
- #include <linux/io.h>
- #include <linux/platform_device.h>
- #include <linux/clk.h>
-+#include <linux/err.h>
-
- #include <linux/usb/ch9.h>
- #include <linux/usb/gadget.h>
diff --git a/usb.current/usb-s3c-hsotg-export-usb_gadget_register_driver.patch b/usb.current/usb-s3c-hsotg-export-usb_gadget_register_driver.patch
deleted file mode 100644
index 1fcf63535a10ba..00000000000000
--- a/usb.current/usb-s3c-hsotg-export-usb_gadget_register_driver.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From broonie@opensource.wolfsonmicro.com Wed Jan 27 14:36:56 2010
-From: Mark Brown <broonie@opensource.wolfsonmicro.com>
-Date: Mon, 18 Jan 2010 13:18:34 +0000
-Subject: USB: s3c-hsotg: Export usb_gadget_register_driver()
-To: Greg Kroah-Hartman <gregkh@suse.de>, David Brownell <dbrownell@users.sourceforge.net>, Ben Dooks <ben-linux@fluff.org>
-Cc: linux-usb@vger.kernel.org, Mark Brown <broonie@opensource.wolfsonmicro.com>
-Message-ID: <1263820715-12483-1-git-send-email-broonie@opensource.wolfsonmicro.com>
-
-
-USB gadget controller drivers normally export their driver registration
-function, allowing modular builds of the individual gadget drivers so
-do so for s3c-hsotg, fixing builds.
-
-Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- drivers/usb/gadget/s3c-hsotg.c | 1 +
- 1 file changed, 1 insertion(+)
-
---- a/drivers/usb/gadget/s3c-hsotg.c
-+++ b/drivers/usb/gadget/s3c-hsotg.c
-@@ -2582,6 +2582,7 @@ err:
- hsotg->gadget.dev.driver = NULL;
- return ret;
- }
-+EXPORT_SYMBOL(usb_gadget_register_driver);
-
- int usb_gadget_unregister_driver(struct usb_gadget_driver *driver)
- {
diff --git a/usb.current/usb-serial-add-usbid-for-dell-wwan-card-to-sierra.c.patch b/usb.current/usb-serial-add-usbid-for-dell-wwan-card-to-sierra.c.patch
deleted file mode 100644
index a6022926e4c333..00000000000000
--- a/usb.current/usb-serial-add-usbid-for-dell-wwan-card-to-sierra.c.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From sidhayn@gmail.com Wed Jan 27 14:44:58 2010
-From: Richard Farina <sidhayn@gmail.com>
-Date: Wed, 20 Jan 2010 16:42:33 -0500
-Subject: USB: serial: add usbid for dell wwan card to sierra.c
-Cc: Greg Kroah-Hartman <gregkh@suse.de>
-Message-ID: <4B5778C9.8010301@gmail.com>
-
-
-This patch adds support for Dell Computer Corp. Wireless 5720 VZW Mobile
-Broadband (EVDO Rev-A) Minicard GPS Port. I stole the name from lsusb,
-but my card does not have a GPS on it (at least not that I can make
-function). I'm sure the patch is whitespace damaged but the one line
-addition should be fairly straightforward nonetheless.
-
-Tested-by: Rick Farina <sidhayn@gmail.com>
-Signed-off-by: Rick Farina <sidhayn@gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- drivers/usb/serial/sierra.c | 1 +
- 1 file changed, 1 insertion(+)
-
---- a/drivers/usb/serial/sierra.c
-+++ b/drivers/usb/serial/sierra.c
-@@ -298,6 +298,7 @@ static const struct usb_device_id id_tab
- { USB_DEVICE(0x1199, 0x68A3), /* Sierra Wireless Direct IP modems */
- .driver_info = (kernel_ulong_t)&direct_ip_interface_blacklist
- },
-+ { USB_DEVICE(0x413C, 0x08133) }, /* Dell Computer Corp. Wireless 5720 VZW Mobile Broadband (EVDO Rev-A) Minicard GPS Port */
-
- { }
- };
diff --git a/usb.current/usb-sis-usb2vga-driver-support-kairen-s-usb-vga-adaptor-usb20svga-mb-plus.patch b/usb.current/usb-sis-usb2vga-driver-support-kairen-s-usb-vga-adaptor-usb20svga-mb-plus.patch
deleted file mode 100644
index cb0141f41da0cd..00000000000000
--- a/usb.current/usb-sis-usb2vga-driver-support-kairen-s-usb-vga-adaptor-usb20svga-mb-plus.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From akr@fsij.org Wed Jan 27 14:43:15 2010
-From: Tanaka Akira <akr@fsij.org>
-Date: Thu, 21 Jan 2010 02:31:09 +0900
-Subject: USB: SIS USB2VGA DRIVER: support KAIREN's USB VGA adaptor USB20SVGA-MB-PLUS
-To: Thomas Winischhofer <thomas@winischhofer.net>
-Cc: Greg Kroah-Hartman <greg@kroah.com>, linux-kernel@vger.kernel.org
-Message-ID: <49c17ca71001200931p76e945d1g360d2cb5f9d7e72a@mail.gmail.com>
-
-
-This patch adds the USB product ID of KAIREN's USB VGA Adaptor,
-USB20SVGA-MB-PLUS, to sisusbvga work with it.
-
-Signed-off-by: Tanaka Akira <akr@fsij.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- drivers/usb/misc/sisusbvga/sisusb.c | 1 +
- 1 file changed, 1 insertion(+)
-
---- a/drivers/usb/misc/sisusbvga/sisusb.c
-+++ b/drivers/usb/misc/sisusbvga/sisusb.c
-@@ -3245,6 +3245,7 @@ static struct usb_device_id sisusb_table
- { USB_DEVICE(0x0711, 0x0902) },
- { USB_DEVICE(0x0711, 0x0903) },
- { USB_DEVICE(0x0711, 0x0918) },
-+ { USB_DEVICE(0x0711, 0x0920) },
- { USB_DEVICE(0x182d, 0x021c) },
- { USB_DEVICE(0x182d, 0x0269) },
- { }
diff --git a/usb.current/usb-storage-remove-unneeded-sc-pr-from-unusual_devs.h.patch b/usb.current/usb-storage-remove-unneeded-sc-pr-from-unusual_devs.h.patch
deleted file mode 100644
index 888ff49ca2e8a6..00000000000000
--- a/usb.current/usb-storage-remove-unneeded-sc-pr-from-unusual_devs.h.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From phil@ipom.com Wed Jan 27 14:29:04 2010
-From: Phil Dibowitz <phil@ipom.com>
-Date: Sat, 16 Jan 2010 19:52:17 +0100
-Subject: USB: storage: Remove unneeded SC/PR from unusual_devs.h
-To: Greg KH <greg@kroah.com>
-Message-ID: <4B520AE1.5030107@ipom.com>
-
-This patch removes the subclass and protocol entries from a Microtech
-entry in unusual_devs.h. This was reported by <ryck@pacbell.net>.
-
-Greg, please apply.
-
-Signed-off-by: Phil Dibowitz <phil@ipom.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- drivers/usb/storage/unusual_devs.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/usb/storage/unusual_devs.h
-+++ b/drivers/usb/storage/unusual_devs.h
-@@ -941,7 +941,7 @@ UNUSUAL_DEV( 0x07ab, 0xfccd, 0x0000, 0x
- UNUSUAL_DEV( 0x07af, 0x0004, 0x0100, 0x0133,
- "Microtech",
- "USB-SCSI-DB25",
-- US_SC_SCSI, US_PR_BULK, usb_stor_euscsi_init,
-+ US_SC_DEVICE, US_PR_DEVICE, usb_stor_euscsi_init,
- US_FL_SCM_MULT_TARG ),
-
- UNUSUAL_DEV( 0x07af, 0x0005, 0x0100, 0x0100,
diff --git a/usb.current/usb-usbfs-only-copy-the-actual-data-received.patch b/usb.current/usb-usbfs-only-copy-the-actual-data-received.patch
deleted file mode 100644
index 9064607e94c824..00000000000000
--- a/usb.current/usb-usbfs-only-copy-the-actual-data-received.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From security-bounces@linux.kernel.org Mon Feb 15 09:38:09 2010
-From: Greg KH <greg@kroah.com>
-Date: Mon, 15 Feb 2010 09:37:46 -0800
-Subject: USB: usbfs: only copy the actual data received
-To: Alan Stern <stern@rowland.harvard.edu>
-Cc: Marcus Meissner <meissner@suse.de>
-
-We need to only copy the data received by the device to userspace, not
-the whole kernel buffer, which can contain "stale" data.
-
-Thanks to Marcus Meissner for pointing this out and testing the fix.
-
-Reported-by: Marcus Meissner <meissner@suse.de>
-Tested-by: Marcus Meissner <meissner@suse.de>
-Cc: Alan Stern <stern@rowland.harvard.edu>
-Cc: Linus Torvalds <torvalds@linux-foundation.org>
-Cc: stable <stable@kernel.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- drivers/usb/core/devio.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
---- a/drivers/usb/core/devio.c
-+++ b/drivers/usb/core/devio.c
-@@ -1312,9 +1312,9 @@ static int processcompl(struct async *as
- void __user *addr = as->userurb;
- unsigned int i;
-
-- if (as->userbuffer)
-+ if (as->userbuffer && urb->actual_length)
- if (copy_to_user(as->userbuffer, urb->transfer_buffer,
-- urb->transfer_buffer_length))
-+ urb->actual_length))
- goto err_out;
- if (put_user(as->status, &userurb->status))
- goto err_out;
-@@ -1475,9 +1475,9 @@ static int processcompl_compat(struct as
- void __user *addr = as->userurb;
- unsigned int i;
-
-- if (as->userbuffer)
-+ if (as->userbuffer && urb->actual_length)
- if (copy_to_user(as->userbuffer, urb->transfer_buffer,
-- urb->transfer_buffer_length))
-+ urb->actual_length))
- return -EFAULT;
- if (put_user(as->status, &userurb->status))
- return -EFAULT;
diff --git a/usb.current/usb-usbfs-properly-clean-up-the-as-structure-on-error-paths.patch b/usb.current/usb-usbfs-properly-clean-up-the-as-structure-on-error-paths.patch
deleted file mode 100644
index 9795c76c7171b1..00000000000000
--- a/usb.current/usb-usbfs-properly-clean-up-the-as-structure-on-error-paths.patch
+++ /dev/null
@@ -1,123 +0,0 @@
-From torvalds@linux-foundation.org Tue Feb 16 12:35:42 2010
-From: Linus Torvalds <torvalds@linux-foundation.org>
-Date: Tue, 16 Feb 2010 12:35:07 -0800 (PST)
-Subject: USB: usbfs: properly clean up the as structure on error paths
-To: gregkh@suse.de
-Cc: greg@kroah.com, meissner@suse.de, stable@kernel.org, stern@rowland.harvard.edu
-Message-ID: <alpine.LFD.2.00.1002161225170.4141@localhost.localdomain>
-
-From: Linus Torvalds <torvalds@linux-foundation.org>
-
-I notice that the processcompl_compat() function seems to be leaking the
-'struct async *as' in the error paths.
-
-I think that the calling convention is fundamentally buggered. The
-caller is the one that did the "reap_as()" to get the as thing, the
-caller should be the one to free it too.
-
-Freeing it in the caller also means that it very clearly always gets
-freed, and avoids the need for any "free in the error case too".
-
-From: Linus Torvalds <torvalds@linux-foundation.org>
-Cc: Alan Stern <stern@rowland.harvard.edu>
-Cc: Marcus Meissner <meissner@suse.de>
-Cc: stable <stable@kernel.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-
----
- drivers/usb/core/devio.c | 40 ++++++++++++++++++++++++++--------------
- 1 file changed, 26 insertions(+), 14 deletions(-)
-
---- a/drivers/usb/core/devio.c
-+++ b/drivers/usb/core/devio.c
-@@ -1334,14 +1334,11 @@ static int processcompl(struct async *as
- }
- }
-
-- free_async(as);
--
- if (put_user(addr, (void __user * __user *)arg))
- return -EFAULT;
- return 0;
-
- err_out:
-- free_async(as);
- return -EFAULT;
- }
-
-@@ -1371,8 +1368,11 @@ static struct async *reap_as(struct dev_
- static int proc_reapurb(struct dev_state *ps, void __user *arg)
- {
- struct async *as = reap_as(ps);
-- if (as)
-- return processcompl(as, (void __user * __user *)arg);
-+ if (as) {
-+ int retval = processcompl(as, (void __user * __user *)arg);
-+ free_async(as);
-+ return retval;
-+ }
- if (signal_pending(current))
- return -EINTR;
- return -EIO;
-@@ -1380,11 +1380,16 @@ static int proc_reapurb(struct dev_state
-
- static int proc_reapurbnonblock(struct dev_state *ps, void __user *arg)
- {
-+ int retval;
- struct async *as;
-
-- if (!(as = async_getcompleted(ps)))
-- return -EAGAIN;
-- return processcompl(as, (void __user * __user *)arg);
-+ as = async_getcompleted(ps);
-+ retval = -EAGAIN;
-+ if (as) {
-+ retval = processcompl(as, (void __user * __user *)arg);
-+ free_async(as);
-+ }
-+ return retval;
- }
-
- #ifdef CONFIG_COMPAT
-@@ -1497,7 +1502,6 @@ static int processcompl_compat(struct as
- }
- }
-
-- free_async(as);
- if (put_user(ptr_to_compat(addr), (u32 __user *)arg))
- return -EFAULT;
- return 0;
-@@ -1506,8 +1510,11 @@ static int processcompl_compat(struct as
- static int proc_reapurb_compat(struct dev_state *ps, void __user *arg)
- {
- struct async *as = reap_as(ps);
-- if (as)
-- return processcompl_compat(as, (void __user * __user *)arg);
-+ if (as) {
-+ int retval = processcompl_compat(as, (void __user * __user *)arg);
-+ free_async(as);
-+ return retval;
-+ }
- if (signal_pending(current))
- return -EINTR;
- return -EIO;
-@@ -1515,11 +1522,16 @@ static int proc_reapurb_compat(struct de
-
- static int proc_reapurbnonblock_compat(struct dev_state *ps, void __user *arg)
- {
-+ int retval;
- struct async *as;
-
-- if (!(as = async_getcompleted(ps)))
-- return -EAGAIN;
-- return processcompl_compat(as, (void __user * __user *)arg);
-+ retval = -EAGAIN;
-+ as = async_getcompleted(ps);
-+ if (as) {
-+ retval = processcompl_compat(as, (void __user * __user *)arg);
-+ free_async(as);
-+ }
-+ return retval;
- }
-
-