diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2011-02-24 17:28:52 -0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-02-24 17:28:52 -0800 |
commit | e08a9b5408ffe279148add5ede78a55ae2c18310 (patch) | |
tree | 19ee431ece6a38fc379eb9d40ad76838f277bbfc | |
parent | d3a7c14081a9ed55afe669d37b2bb8ebcb9b622e (diff) | |
download | longterm-queue-2.6.33-e08a9b5408ffe279148add5ede78a55ae2c18310.tar.gz |
.33 patches
16 files changed, 680 insertions, 0 deletions
diff --git a/queue-2.6.33/acer-wmi-fix-capitalisation-of-guid.patch b/queue-2.6.33/acer-wmi-fix-capitalisation-of-guid.patch new file mode 100644 index 0000000..c481796 --- /dev/null +++ b/queue-2.6.33/acer-wmi-fix-capitalisation-of-guid.patch @@ -0,0 +1,31 @@ +From bbb706079abe955a9e3f208f541de97d99449236 Mon Sep 17 00:00:00 2001 +From: Matthew Garrett <mjg@redhat.com> +Date: Wed, 9 Feb 2011 16:39:40 -0500 +Subject: acer-wmi: Fix capitalisation of GUID + +From: Matthew Garrett <mjg@redhat.com> + +commit bbb706079abe955a9e3f208f541de97d99449236 upstream. + +6AF4F258-B401-42fd-BE91-3D4AC2D7C0D3 needs to be +6AF4F258-B401-42FD-BE91-3D4AC2D7C0D3 to match the hardware alias. + +Signed-off-by: Matthew Garrett <mjg@redhat.com> +Acked-by: Carlos Corbacho <carlos@strangeworlds.co.uk> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/platform/x86/acer-wmi.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/platform/x86/acer-wmi.c ++++ b/drivers/platform/x86/acer-wmi.c +@@ -90,7 +90,7 @@ struct acer_quirks { + */ + #define AMW0_GUID1 "67C3371D-95A3-4C37-BB61-DD47B491DAAB" + #define AMW0_GUID2 "431F16ED-0C2B-444C-B267-27DEB140CF9C" +-#define WMID_GUID1 "6AF4F258-B401-42fd-BE91-3D4AC2D7C0D3" ++#define WMID_GUID1 "6AF4F258-B401-42FD-BE91-3D4AC2D7C0D3" + #define WMID_GUID2 "95764E09-FB56-4e83-B31A-37761F60994A" + + MODULE_ALIAS("wmi:67C3371D-95A3-4C37-BB61-DD47B491DAAB"); diff --git a/queue-2.6.33/arm-ensure-predictable-endian-state-on-signal-handler-entry.patch b/queue-2.6.33/arm-ensure-predictable-endian-state-on-signal-handler-entry.patch new file mode 100644 index 0000000..cbcea05 --- /dev/null +++ b/queue-2.6.33/arm-ensure-predictable-endian-state-on-signal-handler-entry.patch @@ -0,0 +1,35 @@ +From 53399053eb505cf541b2405bd9d9bca5ecfb96fb Mon Sep 17 00:00:00 2001 +From: Russell King <rmk+kernel@arm.linux.org.uk> +Date: Sun, 20 Feb 2011 12:22:52 +0000 +Subject: ARM: Ensure predictable endian state on signal handler entry + +From: Russell King <rmk+kernel@arm.linux.org.uk> + +commit 53399053eb505cf541b2405bd9d9bca5ecfb96fb upstream. + +Ensure a predictable endian state when entering signal handlers. This +avoids programs which use SETEND to momentarily switch their endian +state from having their signal handlers entered with an unpredictable +endian state. + +Acked-by: Dave Martin <dave.martin@linaro.org> +Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + arch/arm/kernel/signal.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/arch/arm/kernel/signal.c ++++ b/arch/arm/kernel/signal.c +@@ -389,7 +389,9 @@ setup_return(struct pt_regs *regs, struc + unsigned long handler = (unsigned long)ka->sa.sa_handler; + unsigned long retcode; + int thumb = 0; +- unsigned long cpsr = regs->ARM_cpsr & ~PSR_f; ++ unsigned long cpsr = regs->ARM_cpsr & ~(PSR_f | PSR_E_BIT); ++ ++ cpsr |= PSR_ENDSTATE; + + /* + * Maybe we need to deliver a 32-bit signal to a 26-bit task. diff --git a/queue-2.6.33/ecryptfs-copy-up-lower-inode-attrs-in-getattr.patch b/queue-2.6.33/ecryptfs-copy-up-lower-inode-attrs-in-getattr.patch new file mode 100644 index 0000000..720305a --- /dev/null +++ b/queue-2.6.33/ecryptfs-copy-up-lower-inode-attrs-in-getattr.patch @@ -0,0 +1,38 @@ +From 55f9cf6bbaa682958a7dd2755f883b768270c3ce Mon Sep 17 00:00:00 2001 +From: Tyler Hicks <tyhicks@linux.vnet.ibm.com> +Date: Tue, 11 Jan 2011 12:43:42 -0600 +Subject: eCryptfs: Copy up lower inode attrs in getattr + +From: Tyler Hicks <tyhicks@linux.vnet.ibm.com> + +commit 55f9cf6bbaa682958a7dd2755f883b768270c3ce upstream. + +The lower filesystem may do some type of inode revalidation during a +getattr call. eCryptfs should take advantage of that by copying the +lower inode attributes to the eCryptfs inode after a call to +vfs_getattr() on the lower inode. + +I originally wrote this fix while working on eCryptfs on nfsv3 support, +but discovered it also fixed an eCryptfs on ext4 nanosecond timestamp +bug that was reported. + +https://bugs.launchpad.net/bugs/613873 + +Signed-off-by: Tyler Hicks <tyhicks@linux.vnet.ibm.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + fs/ecryptfs/inode.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/fs/ecryptfs/inode.c ++++ b/fs/ecryptfs/inode.c +@@ -1031,6 +1031,8 @@ int ecryptfs_getattr(struct vfsmount *mn + rc = vfs_getattr(ecryptfs_dentry_to_lower_mnt(dentry), + ecryptfs_dentry_to_lower(dentry), &lower_stat); + if (!rc) { ++ fsstack_copy_attr_all(dentry->d_inode, ++ ecryptfs_inode_to_lower(dentry->d_inode)); + generic_fillattr(dentry->d_inode, stat); + stat->blocks = lower_stat.blocks; + } diff --git a/queue-2.6.33/genirq-disable-the-shirq_debug-call-in-request_threaded_irq-for-now.patch b/queue-2.6.33/genirq-disable-the-shirq_debug-call-in-request_threaded_irq-for-now.patch new file mode 100644 index 0000000..1000ecf --- /dev/null +++ b/queue-2.6.33/genirq-disable-the-shirq_debug-call-in-request_threaded_irq-for-now.patch @@ -0,0 +1,59 @@ +From 6d83f94db95cfe65d2a6359cccdf61cf087c2598 Mon Sep 17 00:00:00 2001 +From: Thomas Gleixner <tglx@linutronix.de> +Date: Fri, 18 Feb 2011 23:27:23 +0100 +Subject: genirq: Disable the SHIRQ_DEBUG call in request_threaded_irq for now + +From: Thomas Gleixner <tglx@linutronix.de> + +commit 6d83f94db95cfe65d2a6359cccdf61cf087c2598 upstream. + +With CONFIG_SHIRQ_DEBUG=y we call a newly installed interrupt handler +in request_threaded_irq(). + +The original implementation (commit a304e1b8) called the handler +_BEFORE_ it was installed, but that caused problems with handlers +calling disable_irq_nosync(). See commit 377bf1e4. + +It's braindead in the first place to call disable_irq_nosync in shared +handlers, but .... + +Moving this call after we installed the handler looks innocent, but it +is very subtle broken on SMP. + +Interrupt handlers rely on the fact, that the irq core prevents +reentrancy. + +Now this debug call violates that promise because we run the handler +w/o the IRQ_INPROGRESS protection - which we cannot apply here because +that would result in a possibly forever masked interrupt line. + +A concurrent real hardware interrupt on a different CPU results in +handler reentrancy and can lead to complete wreckage, which was +unfortunately observed in reality and took a fricking long time to +debug. + +Leave the code here for now. We want this debug feature, but that's +not easy to fix. We really should get rid of those +disable_irq_nosync() abusers and remove that function completely. + +Signed-off-by: Thomas Gleixner <tglx@linutronix.de> +Cc: Anton Vorontsov <avorontsov@ru.mvista.com> +Cc: David Woodhouse <dwmw2@infradead.org> +Cc: Arjan van de Ven <arjan@infradead.org> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + kernel/irq/manage.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/kernel/irq/manage.c ++++ b/kernel/irq/manage.c +@@ -1097,7 +1097,7 @@ int request_threaded_irq(unsigned int ir + if (retval) + kfree(action); + +-#ifdef CONFIG_DEBUG_SHIRQ ++#ifdef CONFIG_DEBUG_SHIRQ_FIXME + if (!retval && (irqflags & IRQF_SHARED)) { + /* + * It's a shared IRQ -- the driver ought to be prepared for it diff --git a/queue-2.6.33/p54pci-update-receive-dma-buffers-before-and-after-processing.patch b/queue-2.6.33/p54pci-update-receive-dma-buffers-before-and-after-processing.patch new file mode 100644 index 0000000..eb7f458 --- /dev/null +++ b/queue-2.6.33/p54pci-update-receive-dma-buffers-before-and-after-processing.patch @@ -0,0 +1,59 @@ +From 0bf719dfdecc5552155cbec78e49fa06e531e35c Mon Sep 17 00:00:00 2001 +From: Christian Lamparter <chunkeey@googlemail.com> +Date: Fri, 11 Feb 2011 01:48:42 +0100 +Subject: p54pci: update receive dma buffers before and after processing + +From: Christian Lamparter <chunkeey@googlemail.com> + +commit 0bf719dfdecc5552155cbec78e49fa06e531e35c upstream. + +Documentation/DMA-API-HOWTO.txt states: + +"DMA transfers need to be synced properly in order for +the cpu and device to see the most uptodate and correct +copy of the DMA buffer." + +Signed-off-by: Christian Lamparter <chunkeey@googlemail.com> +Signed-off-by: John W. Linville <linville@tuxdriver.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/net/wireless/p54/p54pci.c | 14 +++++++++----- + 1 file changed, 9 insertions(+), 5 deletions(-) + +--- a/drivers/net/wireless/p54/p54pci.c ++++ b/drivers/net/wireless/p54/p54pci.c +@@ -198,6 +198,7 @@ static void p54p_check_rx_ring(struct ie + while (i != idx) { + u16 len; + struct sk_buff *skb; ++ dma_addr_t dma_addr; + desc = &ring[i]; + len = le16_to_cpu(desc->len); + skb = rx_buf[i]; +@@ -215,17 +216,20 @@ static void p54p_check_rx_ring(struct ie + + len = priv->common.rx_mtu; + } ++ dma_addr = le32_to_cpu(desc->host_addr); ++ pci_dma_sync_single_for_cpu(priv->pdev, dma_addr, ++ priv->common.rx_mtu + 32, PCI_DMA_FROMDEVICE); + skb_put(skb, len); + + if (p54_rx(dev, skb)) { +- pci_unmap_single(priv->pdev, +- le32_to_cpu(desc->host_addr), +- priv->common.rx_mtu + 32, +- PCI_DMA_FROMDEVICE); ++ pci_unmap_single(priv->pdev, dma_addr, ++ priv->common.rx_mtu + 32, PCI_DMA_FROMDEVICE); + rx_buf[i] = NULL; +- desc->host_addr = 0; ++ desc->host_addr = cpu_to_le32(0); + } else { + skb_trim(skb, 0); ++ pci_dma_sync_single_for_device(priv->pdev, dma_addr, ++ priv->common.rx_mtu + 32, PCI_DMA_FROMDEVICE); + desc->len = cpu_to_le16(priv->common.rx_mtu + 32); + } + diff --git a/queue-2.6.33/platform-x86-acer-wmi-world-writable-sysfs-threeg-file.patch b/queue-2.6.33/platform-x86-acer-wmi-world-writable-sysfs-threeg-file.patch new file mode 100644 index 0000000..dd182b2 --- /dev/null +++ b/queue-2.6.33/platform-x86-acer-wmi-world-writable-sysfs-threeg-file.patch @@ -0,0 +1,30 @@ +From b80b168f918bba4b847e884492415546b340e19d Mon Sep 17 00:00:00 2001 +From: Vasiliy Kulikov <segoon@openwall.com> +Date: Fri, 4 Feb 2011 15:23:56 +0300 +Subject: platform: x86: acer-wmi: world-writable sysfs threeg file + +From: Vasiliy Kulikov <segoon@openwall.com> + +commit b80b168f918bba4b847e884492415546b340e19d upstream. + +Don't allow everybody to write to hardware registers. + +Signed-off-by: Vasiliy Kulikov <segoon@openwall.com> +Signed-off-by: Matthew Garrett <mjg@redhat.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/platform/x86/acer-wmi.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/platform/x86/acer-wmi.c ++++ b/drivers/platform/x86/acer-wmi.c +@@ -1062,7 +1062,7 @@ static ssize_t set_bool_threeg(struct de + return -EINVAL; + return count; + } +-static DEVICE_ATTR(threeg, S_IWUGO | S_IRUGO | S_IWUSR, show_bool_threeg, ++static DEVICE_ATTR(threeg, S_IRUGO | S_IWUSR, show_bool_threeg, + set_bool_threeg); + + static ssize_t show_interface(struct device *dev, struct device_attribute *attr, diff --git a/queue-2.6.33/platform-x86-asus_acpi-world-writable-procfs-files.patch b/queue-2.6.33/platform-x86-asus_acpi-world-writable-procfs-files.patch new file mode 100644 index 0000000..62ef40b --- /dev/null +++ b/queue-2.6.33/platform-x86-asus_acpi-world-writable-procfs-files.patch @@ -0,0 +1,39 @@ +From 8040835760adf0ef66876c063d47f79f015fb55d Mon Sep 17 00:00:00 2001 +From: Vasiliy Kulikov <segoon@openwall.com> +Date: Fri, 4 Feb 2011 15:23:59 +0300 +Subject: platform: x86: asus_acpi: world-writable procfs files + +From: Vasiliy Kulikov <segoon@openwall.com> + +commit 8040835760adf0ef66876c063d47f79f015fb55d upstream. + +Don't allow everybody to change ACPI settings. The comment says that it +is done deliberatelly, however, the comment before disp_proc_write() +says that at least one of these setting is experimental. + +Signed-off-by: Vasiliy Kulikov <segoon@openwall.com> +Signed-off-by: Matthew Garrett <mjg@redhat.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/platform/x86/asus_acpi.c | 8 +------- + 1 file changed, 1 insertion(+), 7 deletions(-) + +--- a/drivers/platform/x86/asus_acpi.c ++++ b/drivers/platform/x86/asus_acpi.c +@@ -1078,14 +1078,8 @@ static int asus_hotk_add_fs(struct acpi_ + struct proc_dir_entry *proc; + mode_t mode; + +- /* +- * If parameter uid or gid is not changed, keep the default setting for +- * our proc entries (-rw-rw-rw-) else, it means we care about security, +- * and then set to -rw-rw---- +- */ +- + if ((asus_uid == 0) && (asus_gid == 0)) { +- mode = S_IFREG | S_IRUGO | S_IWUGO; ++ mode = S_IFREG | S_IRUGO | S_IWUSR | S_IWGRP; + } else { + mode = S_IFREG | S_IRUSR | S_IRGRP | S_IWUSR | S_IWGRP; + printk(KERN_WARNING " asus_uid and asus_gid parameters are " diff --git a/queue-2.6.33/platform-x86-tc1100-wmi-world-writable-sysfs-wireless-and-jogdial-files.patch b/queue-2.6.33/platform-x86-tc1100-wmi-world-writable-sysfs-wireless-and-jogdial-files.patch new file mode 100644 index 0000000..dd1af4d --- /dev/null +++ b/queue-2.6.33/platform-x86-tc1100-wmi-world-writable-sysfs-wireless-and-jogdial-files.patch @@ -0,0 +1,30 @@ +From 8a6a142c1286797978e4db266d22875a5f424897 Mon Sep 17 00:00:00 2001 +From: Vasiliy Kulikov <segoon@openwall.com> +Date: Fri, 4 Feb 2011 15:24:03 +0300 +Subject: platform: x86: tc1100-wmi: world-writable sysfs wireless and jogdial files + +From: Vasiliy Kulikov <segoon@openwall.com> + +commit 8a6a142c1286797978e4db266d22875a5f424897 upstream. + +Don't allow everybody to change WMI settings. + +Signed-off-by: Vasiliy Kulikov <segoon@openwall.com> +Signed-off-by: Matthew Garrett <mjg@redhat.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/platform/x86/tc1100-wmi.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/platform/x86/tc1100-wmi.c ++++ b/drivers/platform/x86/tc1100-wmi.c +@@ -161,7 +161,7 @@ set_bool_##value(struct device *dev, str + return -EINVAL; \ + return count; \ + } \ +-static DEVICE_ATTR(value, S_IWUGO | S_IRUGO | S_IWUSR, \ ++static DEVICE_ATTR(value, S_IRUGO | S_IWUSR, \ + show_bool_##value, set_bool_##value); + + show_set_bool(wireless, TC1100_INSTANCE_WIRELESS); diff --git a/queue-2.6.33/revert-drm-radeon-kms-switch-back-to-min-max-pll-post-divider-iteration.patch b/queue-2.6.33/revert-drm-radeon-kms-switch-back-to-min-max-pll-post-divider-iteration.patch new file mode 100644 index 0000000..00eb72b --- /dev/null +++ b/queue-2.6.33/revert-drm-radeon-kms-switch-back-to-min-max-pll-post-divider-iteration.patch @@ -0,0 +1,41 @@ +From bd6a60afeb4c9ada3ff27f1d13db1a2b5c11d8c0 Mon Sep 17 00:00:00 2001 +From: Alex Deucher <alexdeucher@gmail.com> +Date: Mon, 21 Feb 2011 01:11:59 -0500 +Subject: Revert "drm/radeon/kms: switch back to min->max pll post divider iteration" + +From: Alex Deucher <alexdeucher@gmail.com> + +commit bd6a60afeb4c9ada3ff27f1d13db1a2b5c11d8c0 upstream. + +This reverts commit a6f9761743bf35b052180f4a8bdae4d2cc0465f6. + +Remove this commit as it is no longer necessary. The relevant bugs +were fixed properly in: +drm/radeon/kms: hopefully fix pll issues for real (v3) +5b40ddf888398ce4cccbf3b9d0a18d90149ed7ff +drm/radeon/kms: add missing frac fb div flag for dce4+ +9f4283f49f0a96a64c5a45fe56f0f8c942885eef + +This commit also broke certain ~5 Mhz modes on old arcade monitors, +so reverting this commit fixes: +https://bugzilla.kernel.org/show_bug.cgi?id=29502 + +Signed-off-by: Alex Deucher <alexdeucher@gmail.com> +Signed-off-by: Dave Airlie <airlied@redhat.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/gpu/drm/radeon/radeon_display.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/gpu/drm/radeon/radeon_display.c ++++ b/drivers/gpu/drm/radeon/radeon_display.c +@@ -464,7 +464,7 @@ void radeon_compute_pll(struct radeon_pl + max_fractional_feed_div = pll->max_frac_feedback_div; + } + +- for (post_div = min_post_div; post_div <= max_post_div; ++post_div) { ++ for (post_div = max_post_div; post_div >= min_post_div; --post_div) { + uint32_t ref_div; + + if ((pll->flags & RADEON_PLL_NO_ODD_POST_DIV) && (post_div & 1)) diff --git a/queue-2.6.33/series b/queue-2.6.33/series index f6a80bc..9fea9f1 100644 --- a/queue-2.6.33/series +++ b/queue-2.6.33/series @@ -363,3 +363,18 @@ net-deinit-automatic-list_head.patch alsa-hda-add-position_fix-quirk-for-an-asus-device.patch alsa-caiaq-fix-possible-string-buffer-overflow.patch radio-aimslab.c-needs-include-linux-delay.h.patch +arm-ensure-predictable-endian-state-on-signal-handler-entry.patch +acer-wmi-fix-capitalisation-of-guid.patch +ecryptfs-copy-up-lower-inode-attrs-in-getattr.patch +genirq-disable-the-shirq_debug-call-in-request_threaded_irq-for-now.patch +platform-x86-acer-wmi-world-writable-sysfs-threeg-file.patch +platform-x86-asus_acpi-world-writable-procfs-files.patch +platform-x86-tc1100-wmi-world-writable-sysfs-wireless-and-jogdial-files.patch +usb-musb-omap2430-fix-kernel-panic-on-reboot.patch +usb-add-quirks-entry-for-keytouch-qwerty-panel.patch +usb-add-samsung-sgh-i500-android-modem-id-switch-to-visor-driver.patch +usb-add-quirk-for-samsung-android-phone-modem.patch +sierra-add-new-id-for-airprime-sierra-usb-ip-modem.patch +p54pci-update-receive-dma-buffers-before-and-after-processing.patch +revert-drm-radeon-kms-switch-back-to-min-max-pll-post-divider-iteration.patch +tcp-fix-inet_twsk_deschedule.patch diff --git a/queue-2.6.33/sierra-add-new-id-for-airprime-sierra-usb-ip-modem.patch b/queue-2.6.33/sierra-add-new-id-for-airprime-sierra-usb-ip-modem.patch new file mode 100644 index 0000000..22de32d --- /dev/null +++ b/queue-2.6.33/sierra-add-new-id-for-airprime-sierra-usb-ip-modem.patch @@ -0,0 +1,39 @@ +From e1dc5157c574e7249dc1cd072fde2e48b3011533 Mon Sep 17 00:00:00 2001 +From: Jon Thomas <jthomas@redhat.com> +Date: Wed, 16 Feb 2011 11:02:34 -0500 +Subject: sierra: add new ID for Airprime/Sierra USB IP modem + +From: Jon Thomas <jthomas@redhat.com> + +commit e1dc5157c574e7249dc1cd072fde2e48b3011533 upstream. + +I picked up a new Sierra usb 308 (At&t Shockwave) on 2/2011 and the vendor code +is 0x0f3d + +Looking up vendor and product id's I see: + +0f3d Airprime, Incorporated + 0112 CDMA 1xEVDO PC Card, PC 5220 + +Sierra and Airprime are somehow related and I'm guessing the At&t usb 308 might +be have some common hardware with the AirPrime SL809x. + +Signed-off-by: Jon Thomas <jthomas@redhat.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/serial/sierra.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/drivers/usb/serial/sierra.c ++++ b/drivers/usb/serial/sierra.c +@@ -300,6 +300,9 @@ static struct usb_device_id id_table [] + { USB_DEVICE(0x1199, 0x68A3), /* Sierra Wireless Direct IP modems */ + .driver_info = (kernel_ulong_t)&direct_ip_interface_blacklist + }, ++ { USB_DEVICE(0x0f3d, 0x68A3), /* Airprime/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/queue-2.6.33/tcp-fix-inet_twsk_deschedule.patch b/queue-2.6.33/tcp-fix-inet_twsk_deschedule.patch new file mode 100644 index 0000000..4347362 --- /dev/null +++ b/queue-2.6.33/tcp-fix-inet_twsk_deschedule.patch @@ -0,0 +1,44 @@ +From 91035f0b7d89291af728b6f3e370c3be58fcbe1b Mon Sep 17 00:00:00 2001 +From: Eric Dumazet <eric.dumazet@gmail.com> +Date: Fri, 18 Feb 2011 22:35:56 +0000 +Subject: tcp: fix inet_twsk_deschedule() + +From: Eric Dumazet <eric.dumazet@gmail.com> + +commit 91035f0b7d89291af728b6f3e370c3be58fcbe1b upstream. + +Eric W. Biederman reported a lockdep splat in inet_twsk_deschedule() + +This is caused by inet_twsk_purge(), run from process context, +and commit 575f4cd5a5b6394577 (net: Use rcu lookups in inet_twsk_purge.) +removed the BH disabling that was necessary. + +Add the BH disabling but fine grained, right before calling +inet_twsk_deschedule(), instead of whole function. + +With help from Linus Torvalds and Eric W. Biederman + +Reported-by: Eric W. Biederman <ebiederm@xmission.com> +Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> +CC: Daniel Lezcano <daniel.lezcano@free.fr> +CC: Pavel Emelyanov <xemul@openvz.org> +CC: Arnaldo Carvalho de Melo <acme@redhat.com> +Signed-off-by: David S. Miller <davem@davemloft.net> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + net/ipv4/inet_timewait_sock.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/net/ipv4/inet_timewait_sock.c ++++ b/net/ipv4/inet_timewait_sock.c +@@ -504,7 +504,9 @@ restart: + } + + rcu_read_unlock(); ++ local_bh_disable(); + inet_twsk_deschedule(tw, twdr); ++ local_bh_enable(); + inet_twsk_put(tw); + goto restart_rcu; + } diff --git a/queue-2.6.33/usb-add-quirk-for-samsung-android-phone-modem.patch b/queue-2.6.33/usb-add-quirk-for-samsung-android-phone-modem.patch new file mode 100644 index 0000000..b9caa34 --- /dev/null +++ b/queue-2.6.33/usb-add-quirk-for-samsung-android-phone-modem.patch @@ -0,0 +1,37 @@ +From 72a012ce0a02c6c616676a24b40ff81d1aaeafda Mon Sep 17 00:00:00 2001 +From: Maciej Szmigiero <mhej@o2.pl> +Date: Sat, 5 Feb 2011 21:52:00 +0100 +Subject: USB: Add quirk for Samsung Android phone modem + +From: Maciej Szmigiero <mhej@o2.pl> + +commit 72a012ce0a02c6c616676a24b40ff81d1aaeafda upstream. + +My Galaxy Spica needs this quirk when in modem mode, otherwise +it causes endless USB bus resets and is unusable in this mode. + +Unfortunately Samsung decided to reuse ID of its old CDMA phone SGH-I500 +for the modem part. +That's why in addition to this patch the visor driver must be prevented +from binding to SPH-I500 ID, so ACM driver can do that. + +Signed-off-by: Maciej Szmigiero <mhej@o2.pl> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/core/quirks.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/drivers/usb/core/quirks.c ++++ b/drivers/usb/core/quirks.c +@@ -45,6 +45,10 @@ static const struct usb_device_id usb_qu + { USB_DEVICE(0x04b4, 0x0526), .driver_info = + USB_QUIRK_CONFIG_INTF_STRINGS }, + ++ /* Samsung Android phone modem - ID conflict with SPH-I500 */ ++ { USB_DEVICE(0x04e8, 0x6601), .driver_info = ++ USB_QUIRK_CONFIG_INTF_STRINGS }, ++ + /* Roland SC-8820 */ + { USB_DEVICE(0x0582, 0x0007), .driver_info = USB_QUIRK_RESET_RESUME }, + diff --git a/queue-2.6.33/usb-add-quirks-entry-for-keytouch-qwerty-panel.patch b/queue-2.6.33/usb-add-quirks-entry-for-keytouch-qwerty-panel.patch new file mode 100644 index 0000000..7f3b137 --- /dev/null +++ b/queue-2.6.33/usb-add-quirks-entry-for-keytouch-qwerty-panel.patch @@ -0,0 +1,35 @@ +From 3c18e30f87ac5466bddbb05cf955605efd7db025 Mon Sep 17 00:00:00 2001 +From: Alan Stern <stern@rowland.harvard.edu> +Date: Thu, 17 Feb 2011 10:26:38 -0500 +Subject: USB: add quirks entry for Keytouch QWERTY Panel + +From: Alan Stern <stern@rowland.harvard.edu> + +commit 3c18e30f87ac5466bddbb05cf955605efd7db025 upstream. + +This patch (as1448) adds a quirks entry for the Keytouch QWERTY Panel +firmware, used in the IEC 60945 keyboard. This device crashes during +enumeration when the computer asks for its configuration string +descriptor. + +Signed-off-by: Alan Stern <stern@rowland.harvard.edu> +Tested-by: kholis <nur.kholis.majid@gmail.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/core/quirks.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/drivers/usb/core/quirks.c ++++ b/drivers/usb/core/quirks.c +@@ -65,6 +65,10 @@ static const struct usb_device_id usb_qu + /* M-Systems Flash Disk Pioneers */ + { USB_DEVICE(0x08ec, 0x1000), .driver_info = USB_QUIRK_RESET_RESUME }, + ++ /* Keytouch QWERTY Panel keyboard */ ++ { USB_DEVICE(0x0926, 0x3333), .driver_info = ++ USB_QUIRK_CONFIG_INTF_STRINGS }, ++ + /* X-Rite/Gretag-Macbeth Eye-One Pro display colorimeter */ + { USB_DEVICE(0x0971, 0x2000), .driver_info = USB_QUIRK_NO_SET_INTF }, + diff --git a/queue-2.6.33/usb-add-samsung-sgh-i500-android-modem-id-switch-to-visor-driver.patch b/queue-2.6.33/usb-add-samsung-sgh-i500-android-modem-id-switch-to-visor-driver.patch new file mode 100644 index 0000000..ab897d5 --- /dev/null +++ b/queue-2.6.33/usb-add-samsung-sgh-i500-android-modem-id-switch-to-visor-driver.patch @@ -0,0 +1,59 @@ +From acb52cb1613e1d3c8a8c650717cc51965c60d7d4 Mon Sep 17 00:00:00 2001 +From: Maciej Szmigiero <mhej@o2.pl> +Date: Mon, 7 Feb 2011 12:42:36 +0100 +Subject: USB: Add Samsung SGH-I500/Android modem ID switch to visor driver + +From: Maciej Szmigiero <mhej@o2.pl> + +commit acb52cb1613e1d3c8a8c650717cc51965c60d7d4 upstream. + +[USB]Add Samsung SGH-I500/Android modem ID switch to visor driver + +Samsung decided to reuse USB ID of its old CDMA phone SGH-I500 for the +modem part of some of their Android phones. At least Galaxy Spica +is affected. + +This modem needs ACM driver and does not work with visor driver which +binds the conflicting ID for SGH-I500. +Because SGH-I500 is pretty an old hardware its best to add switch to +visor +driver in cause somebody still wants to use that phone with Linux. + +Note that this is needed only when using the Android phone as modem, +not in USB storage or ADB mode. + +Signed-off-by: Maciej Szmigiero <mhej@o2.pl> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/serial/visor.c | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +--- a/drivers/usb/serial/visor.c ++++ b/drivers/usb/serial/visor.c +@@ -27,6 +27,7 @@ + #include <linux/uaccess.h> + #include <linux/usb.h> + #include <linux/usb/serial.h> ++#include <linux/usb/cdc.h> + #include "visor.h" + + /* +@@ -758,6 +759,17 @@ static int visor_probe(struct usb_serial + + dbg("%s", __func__); + ++ /* ++ * some Samsung Android phones in modem mode have the same ID ++ * as SPH-I500, but they are ACM devices, so dont bind to them ++ */ ++ if (id->idVendor == SAMSUNG_VENDOR_ID && ++ id->idProduct == SAMSUNG_SPH_I500_ID && ++ serial->dev->descriptor.bDeviceClass == USB_CLASS_COMM && ++ serial->dev->descriptor.bDeviceSubClass == ++ USB_CDC_SUBCLASS_ACM) ++ return -ENODEV; ++ + if (serial->dev->actconfig->desc.bConfigurationValue != 1) { + dev_err(&serial->dev->dev, "active config #%d != 1 ??\n", + serial->dev->actconfig->desc.bConfigurationValue); diff --git a/queue-2.6.33/usb-musb-omap2430-fix-kernel-panic-on-reboot.patch b/queue-2.6.33/usb-musb-omap2430-fix-kernel-panic-on-reboot.patch new file mode 100644 index 0000000..7cc1d09 --- /dev/null +++ b/queue-2.6.33/usb-musb-omap2430-fix-kernel-panic-on-reboot.patch @@ -0,0 +1,89 @@ +From b193b412e62b134adf69af286c7e7f8e99259350 Mon Sep 17 00:00:00 2001 +From: Johan Hovold <jhovold@gmail.com> +Date: Fri, 11 Feb 2011 16:57:08 +0100 +Subject: usb: musb: omap2430: fix kernel panic on reboot + +From: Johan Hovold <jhovold@gmail.com> + +commit b193b412e62b134adf69af286c7e7f8e99259350 upstream. + +Cancel idle timer in musb_platform_exit. + +The idle timer could trigger after clock had been disabled leading to +kernel panic when MUSB_DEVCTL is accessed in musb_do_idle on 2.6.37. + +The fault below is no longer triggered on 2.6.38-rc4 (clock is disabled +later, and only if compiled as a module, and the offending memory access +has moved) but the timer should be cancelled nonetheless. + +Rebooting... musb_hdrc musb_hdrc: remove, state 4 +usb usb1: USB disconnect, address 1 +musb_hdrc musb_hdrc: USB bus 1 deregistered +Unhandled fault: external abort on non-linefetch (0x1028) at 0xfa0ab060 +Internal error: : 1028 [#1] PREEMPT +last sysfs file: /sys/kernel/uevent_seqnum +Modules linked in: +CPU: 0 Not tainted (2.6.37+ #6) +PC is at musb_do_idle+0x24/0x138 +LR is at musb_do_idle+0x18/0x138 +pc : [<c02377d8>] lr : [<c02377cc>] psr: 80000193 +sp : cf2bdd80 ip : cf2bdd80 fp : c048a20c +r10: c048a60c r9 : c048a40c r8 : cf85e110 +r7 : cf2bc000 r6 : 40000113 r5 : c0489800 r4 : cf85e110 +r3 : 00000004 r2 : 00000006 r1 : fa0ab000 r0 : cf8a7000 +Flags: Nzcv IRQs off FIQs on Mode SVC_32 ISA ARM Segment user +Control: 10c5387d Table: 8faac019 DAC: 00000015 +Process reboot (pid: 769, stack limit = 0xcf2bc2f0) +Stack: (0xcf2bdd80 to 0xcf2be000) +dd80: 00000103 c0489800 c02377b4 c005fa34 00000555 c0071a8c c04a3858 cf2bdda8 +dda0: 00000555 c048a00c cf2bdda8 cf2bdda8 1838beb0 00000103 00000004 cf2bc000 +ddc0: 00000001 00000001 c04896c8 0000000a 00000000 c005ac14 00000001 c003f32c +dde0: 00000000 00000025 00000000 cf2bc000 00000002 00000001 cf2bc000 00000000 +de00: 00000001 c005ad08 cf2bc000 c002e07c c03ec039 ffffffff fa200000 c0033608 +de20: 00000001 00000000 cf852c14 cf81f200 c045b714 c045b708 cf2bc000 c04a37e8 +de40: c0033c04 cf2bc000 00000000 00000001 cf2bde68 cf2bde68 c01c3abc c004f7d8 +de60: 60000013 ffffffff c0033c04 00000000 01234567 fee1dead 00000000 c006627c +de80: 00000001 c00662c8 28121969 c00663ec cfa38c40 cf9f6a00 cf2bded0 cf9f6a0c +dea0: 00000000 cf92f000 00008914 c02cd284 c04a55c8 c028b398 c00715c0 becf24a8 +dec0: 30687465 00000000 00000000 00000000 00000002 1301a8c0 00000000 00000000 +dee0: 00000002 1301a8c0 00000000 00000000 c0450494 cf527920 00011f10 cf2bdf08 +df00: 00011f10 cf2bdf10 00011f10 cf2bdf18 c00f0b44 c004f7e8 cf2bdf18 cf2bdf18 +df20: 00011f10 cf2bdf30 00011f10 cf2bdf38 cf401300 cf486100 00000008 c00d2b28 +df40: 00011f10 cf401300 00200200 c00d3388 00011f10 cfb63a88 cfb63a80 c00c2f08 +df60: 00000000 00000000 cfb63a80 00000000 cf0a3480 00000006 c0033c04 cfb63a80 +df80: 00000000 c00c0104 00000003 cf0a3480 cfb63a80 00000000 00000001 00000004 +dfa0: 00000058 c0033a80 00000000 00000001 fee1dead 28121969 01234567 00000000 +dfc0: 00000000 00000001 00000004 00000058 00000001 00000001 00000000 00000001 +dfe0: 4024d200 becf2cb0 00009210 4024d218 60000010 fee1dead 00000000 00000000 +[<c02377d8>] (musb_do_idle+0x24/0x138) from [<c005fa34>] (run_timer_softirq+0x1a8/0x26) +[<c005fa34>] (run_timer_softirq+0x1a8/0x26c) from [<c005ac14>] (__do_softirq+0x88/0x13) +[<c005ac14>] (__do_softirq+0x88/0x138) from [<c005ad08>] (irq_exit+0x44/0x98) +[<c005ad08>] (irq_exit+0x44/0x98) from [<c002e07c>] (asm_do_IRQ+0x7c/0xa0) +[<c002e07c>] (asm_do_IRQ+0x7c/0xa0) from [<c0033608>] (__irq_svc+0x48/0xa8) +Exception stack(0xcf2bde20 to 0xcf2bde68) +de20: 00000001 00000000 cf852c14 cf81f200 c045b714 c045b708 cf2bc000 c04a37e8 +de40: c0033c04 cf2bc000 00000000 00000001 cf2bde68 cf2bde68 c01c3abc c004f7d8 +de60: 60000013 ffffffff +[<c0033608>] (__irq_svc+0x48/0xa8) from [<c004f7d8>] (sub_preempt_count+0x0/0xb8) +Code: ebf86030 e5940098 e594108c e5902010 (e5d13060) +---[ end trace 3689c0d808f9bf7c ]--- +Kernel panic - not syncing: Fatal exception in interrupt + +Signed-off-by: Johan Hovold <jhovold@gmail.com> +Signed-off-by: Felipe Balbi <balbi@ti.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/musb/omap2430.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/usb/musb/omap2430.c ++++ b/drivers/usb/musb/omap2430.c +@@ -309,6 +309,7 @@ static int musb_platform_resume(struct m + + int musb_platform_exit(struct musb *musb) + { ++ del_timer_sync(&musb_idle_timer); + + omap_vbus_power(musb, 0 /*off*/, 1); + |