]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
.32 patches
authorGreg Kroah-Hartman <gregkh@suse.de>
Mon, 6 Dec 2010 22:47:33 +0000 (14:47 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 6 Dec 2010 22:47:33 +0000 (14:47 -0800)
20 files changed:
queue-2.6.32/acpi-cpufreq-fix-a-memleak-when-unloading-driver.patch [new file with mode: 0644]
queue-2.6.32/acpi-ec-add-vista-incompatibility-dmi-entry-for-toshiba-satellite-l355.patch [new file with mode: 0644]
queue-2.6.32/arm-6482-2-fix-find_next_zero_bit-and-related-assembly.patch [new file with mode: 0644]
queue-2.6.32/arm-6489-1-thumb2-fix-incorrect-optimisation-in-usracc.patch [new file with mode: 0644]
queue-2.6.32/backlight-grab-ops_lock-before-testing-bd-ops.patch [new file with mode: 0644]
queue-2.6.32/decnet-don-t-leak-uninitialized-stack-byte.patch [new file with mode: 0644]
queue-2.6.32/do_exit-make-sure-that-we-run-with-get_fs-user_ds.patch [new file with mode: 0644]
queue-2.6.32/fuse-fix-attributes-after-open-o_trunc.patch [new file with mode: 0644]
queue-2.6.32/nommu-yield-cpu-while-disposing-vm.patch [new file with mode: 0644]
queue-2.6.32/perf_events-fix-perf_counter_mmap-hook-in-mprotect.patch [new file with mode: 0644]
queue-2.6.32/series
queue-2.6.32/uml-disable-winch-irq-before-freeing-handler-data.patch [new file with mode: 0644]
queue-2.6.32/usb-atm-ueagle-atm-fix-up-some-permissions-on-the-sysfs-files.patch [new file with mode: 0644]
queue-2.6.32/usb-ftdi_sio-add-id-for-rt-systems-usb-29b-radio-cable.patch [new file with mode: 0644]
queue-2.6.32/usb-ftdi_sio-revert-usb-ftdi_sio-fix-dtr-rts-line-modes.patch [new file with mode: 0644]
queue-2.6.32/usb-misc-cypress_cy7c63-fix-up-some-sysfs-attribute-permissions.patch [new file with mode: 0644]
queue-2.6.32/usb-misc-trancevibrator-fix-up-a-sysfs-attribute-permission.patch [new file with mode: 0644]
queue-2.6.32/usb-misc-usbled-fix-up-some-sysfs-attribute-permissions.patch [new file with mode: 0644]
queue-2.6.32/usb-misc-usbsevseg-fix-up-some-sysfs-attribute-permissions.patch [new file with mode: 0644]
queue-2.6.32/usb-serial-ftdi_sio-vardaan-usb-rs422-485-converter-pid-added.patch [new file with mode: 0644]

diff --git a/queue-2.6.32/acpi-cpufreq-fix-a-memleak-when-unloading-driver.patch b/queue-2.6.32/acpi-cpufreq-fix-a-memleak-when-unloading-driver.patch
new file mode 100644 (file)
index 0000000..dc5bbd0
--- /dev/null
@@ -0,0 +1,53 @@
+From dab5fff14df2cd16eb1ad4c02e83915e1063fece Mon Sep 17 00:00:00 2001
+From: Zhang Rui <rui.zhang@intel.com>
+Date: Tue, 12 Oct 2010 09:09:37 +0800
+Subject: acpi-cpufreq: fix a memleak when unloading driver
+
+From: Zhang Rui <rui.zhang@intel.com>
+
+commit dab5fff14df2cd16eb1ad4c02e83915e1063fece upstream.
+
+We didn't free per_cpu(acfreq_data, cpu)->freq_table
+when acpi_freq driver is unloaded.
+
+Resulting in the following messages in /sys/kernel/debug/kmemleak:
+
+unreferenced object 0xf6450e80 (size 64):
+  comm "modprobe", pid 1066, jiffies 4294677317 (age 19290.453s)
+  hex dump (first 32 bytes):
+    00 00 00 00 e8 a2 24 00 01 00 00 00 00 9f 24 00  ......$.......$.
+    02 00 00 00 00 6a 18 00 03 00 00 00 00 35 0c 00  .....j.......5..
+  backtrace:
+    [<c123ba97>] kmemleak_alloc+0x27/0x50
+    [<c109f96f>] __kmalloc+0xcf/0x110
+    [<f9da97ee>] acpi_cpufreq_cpu_init+0x1ee/0x4e4 [acpi_cpufreq]
+    [<c11cd8d2>] cpufreq_add_dev+0x142/0x3a0
+    [<c11920b7>] sysdev_driver_register+0x97/0x110
+    [<c11cce56>] cpufreq_register_driver+0x86/0x140
+    [<f9dad080>] 0xf9dad080
+    [<c1001130>] do_one_initcall+0x30/0x160
+    [<c10626e9>] sys_init_module+0x99/0x1e0
+    [<c1002d97>] sysenter_do_call+0x12/0x26
+    [<ffffffff>] 0xffffffff
+
+https://bugzilla.kernel.org/show_bug.cgi?id=15807#c21
+
+Tested-by: Toralf Forster <toralf.foerster@gmx.de>
+Signed-off-by: Zhang Rui <rui.zhang@intel.com>
+Signed-off-by: Len Brown <len.brown@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
++++ b/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
+@@ -741,6 +741,7 @@ static int acpi_cpufreq_cpu_exit(struct
+               per_cpu(drv_data, policy->cpu) = NULL;
+               acpi_processor_unregister_performance(data->acpi_data,
+                                                     policy->cpu);
++              kfree(data->freq_table);
+               kfree(data);
+       }
diff --git a/queue-2.6.32/acpi-ec-add-vista-incompatibility-dmi-entry-for-toshiba-satellite-l355.patch b/queue-2.6.32/acpi-ec-add-vista-incompatibility-dmi-entry-for-toshiba-satellite-l355.patch
new file mode 100644 (file)
index 0000000..2744374
--- /dev/null
@@ -0,0 +1,35 @@
+From 7a1d602f5fc35d14907b7da98d5627acb69589d1 Mon Sep 17 00:00:00 2001
+From: Len Brown <len.brown@intel.com>
+Date: Tue, 28 Sep 2010 17:51:51 -0400
+Subject: ACPI: EC: add Vista incompatibility DMI entry for Toshiba Satellite L355
+
+From: Len Brown <len.brown@intel.com>
+
+commit 7a1d602f5fc35d14907b7da98d5627acb69589d1 upstream.
+
+https://bugzilla.kernel.org/show_bug.cgi?id=12641
+
+Signed-off-by: Len Brown <len.brown@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/acpi/blacklist.c |    8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+--- a/drivers/acpi/blacklist.c
++++ b/drivers/acpi/blacklist.c
+@@ -226,6 +226,14 @@ static struct dmi_system_id acpi_osi_dmi
+               },
+       },
+       {
++      .callback = dmi_disable_osi_vista,
++      .ident = "Toshiba Satellite L355",
++      .matches = {
++                   DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
++                   DMI_MATCH(DMI_PRODUCT_VERSION, "Satellite L355"),
++              },
++      },
++      {
+       .callback = dmi_disable_osi_win7,
+       .ident = "ASUS K50IJ",
+       .matches = {
diff --git a/queue-2.6.32/arm-6482-2-fix-find_next_zero_bit-and-related-assembly.patch b/queue-2.6.32/arm-6482-2-fix-find_next_zero_bit-and-related-assembly.patch
new file mode 100644 (file)
index 0000000..887bdb4
--- /dev/null
@@ -0,0 +1,49 @@
+From 0e91ec0c06d2cd15071a6021c94840a50e6671aa Mon Sep 17 00:00:00 2001
+From: James Jones <jajones@nvidia.com>
+Date: Wed, 24 Nov 2010 00:21:37 +0100
+Subject: ARM: 6482/2: Fix find_next_zero_bit and related assembly
+
+From: James Jones <jajones@nvidia.com>
+
+commit 0e91ec0c06d2cd15071a6021c94840a50e6671aa upstream.
+
+The find_next_bit, find_first_bit, find_next_zero_bit
+and find_first_zero_bit functions were not properly
+clamping to the maxbit argument at the bit level. They
+were instead only checking maxbit at the byte level.
+To fix this, add a compare and a conditional move
+instruction to the end of the common bit-within-the-
+byte code used by all the functions and be sure not to
+clobber the maxbit argument before it is used.
+
+Reviewed-by: Nicolas Pitre <nicolas.pitre@linaro.org>
+Tested-by: Stephen Warren <swarren@nvidia.com>
+Signed-off-by: James Jones <jajones@nvidia.com>
+Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/arm/lib/findbit.S |    6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+--- a/arch/arm/lib/findbit.S
++++ b/arch/arm/lib/findbit.S
+@@ -174,8 +174,8 @@ ENDPROC(_find_next_bit_be)
+  */
+ .L_found:
+ #if __LINUX_ARM_ARCH__ >= 5
+-              rsb     r1, r3, #0
+-              and     r3, r3, r1
++              rsb     r0, r3, #0
++              and     r3, r3, r0
+               clz     r3, r3
+               rsb     r3, r3, #31
+               add     r0, r2, r3
+@@ -190,5 +190,7 @@ ENDPROC(_find_next_bit_be)
+               addeq   r2, r2, #1
+               mov     r0, r2
+ #endif
++              cmp     r1, r0                  @ Clamp to maxbit
++              movlo   r0, r1
+               mov     pc, lr
diff --git a/queue-2.6.32/arm-6489-1-thumb2-fix-incorrect-optimisation-in-usracc.patch b/queue-2.6.32/arm-6489-1-thumb2-fix-incorrect-optimisation-in-usracc.patch
new file mode 100644 (file)
index 0000000..4910b18
--- /dev/null
@@ -0,0 +1,40 @@
+From 1142b71d85894dcff1466dd6c871ea3c89e0352c Mon Sep 17 00:00:00 2001
+From: Will Deacon <will.deacon@arm.com>
+Date: Fri, 19 Nov 2010 13:18:31 +0100
+Subject: ARM: 6489/1: thumb2: fix incorrect optimisation in usracc
+
+From: Will Deacon <will.deacon@arm.com>
+
+commit 1142b71d85894dcff1466dd6c871ea3c89e0352c upstream.
+
+Commit 8b592783 added a Thumb-2 variant of usracc which, when it is
+called with \rept=2, calls usraccoff once with an offset of 0 and
+secondly with a hard-coded offset of 4 in order to avoid incrementing
+the pointer again. If \inc != 4 then we will store the data to the wrong
+offset from \ptr. Luckily, the only caller that passes \rept=2 to this
+function is __clear_user so we haven't been actively corrupting user data.
+
+This patch fixes usracc to pass \inc instead of #4 to usraccoff
+when it is called a second time.
+
+Reported-by: Tony Thompson <tony.thompson@arm.com>
+Acked-by: Catalin Marinas <catalin.marinas@arm.com>
+Signed-off-by: Will Deacon <will.deacon@arm.com>
+Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/arm/include/asm/assembler.h |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/arm/include/asm/assembler.h
++++ b/arch/arm/include/asm/assembler.h
+@@ -215,7 +215,7 @@
+       @ Slightly optimised to avoid incrementing the pointer twice
+       usraccoff \instr, \reg, \ptr, \inc, 0, \cond, \abort
+       .if     \rept == 2
+-      usraccoff \instr, \reg, \ptr, \inc, 4, \cond, \abort
++      usraccoff \instr, \reg, \ptr, \inc, \inc, \cond, \abort
+       .endif
+       add\cond \ptr, #\rept * \inc
diff --git a/queue-2.6.32/backlight-grab-ops_lock-before-testing-bd-ops.patch b/queue-2.6.32/backlight-grab-ops_lock-before-testing-bd-ops.patch
new file mode 100644 (file)
index 0000000..4247503
--- /dev/null
@@ -0,0 +1,63 @@
+From d1d73578e053b981c3611e5a211534290d24a5eb Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <u.kleine-koenig@pengutronix.de>
+Date: Wed, 24 Nov 2010 12:57:14 -0800
+Subject: backlight: grab ops_lock before testing bd->ops
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <u.kleine-koenig@pengutronix.de>
+
+commit d1d73578e053b981c3611e5a211534290d24a5eb upstream.
+
+According to the comment describing ops_lock in the definition of struct
+backlight_device and when comparing with other functions in backlight.c
+the mutex must be hold when checking ops to be non-NULL.
+
+Fixes a problem added by c835ee7f4154992e6 ("backlight: Add suspend/resume
+support to the backlight core") in Jan 2009.
+
+Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
+Acked-by: Richard Purdie <rpurdie@linux.intel.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/video/backlight/backlight.c |   12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+--- a/drivers/video/backlight/backlight.c
++++ b/drivers/video/backlight/backlight.c
+@@ -196,12 +196,12 @@ static int backlight_suspend(struct devi
+ {
+       struct backlight_device *bd = to_backlight_device(dev);
+-      if (bd->ops->options & BL_CORE_SUSPENDRESUME) {
+-              mutex_lock(&bd->ops_lock);
++      mutex_lock(&bd->ops_lock);
++      if (bd->ops && bd->ops->options & BL_CORE_SUSPENDRESUME) {
+               bd->props.state |= BL_CORE_SUSPENDED;
+               backlight_update_status(bd);
+-              mutex_unlock(&bd->ops_lock);
+       }
++      mutex_unlock(&bd->ops_lock);
+       return 0;
+ }
+@@ -210,12 +210,12 @@ static int backlight_resume(struct devic
+ {
+       struct backlight_device *bd = to_backlight_device(dev);
+-      if (bd->ops->options & BL_CORE_SUSPENDRESUME) {
+-              mutex_lock(&bd->ops_lock);
++      mutex_lock(&bd->ops_lock);
++      if (bd->ops && bd->ops->options & BL_CORE_SUSPENDRESUME) {
+               bd->props.state &= ~BL_CORE_SUSPENDED;
+               backlight_update_status(bd);
+-              mutex_unlock(&bd->ops_lock);
+       }
++      mutex_unlock(&bd->ops_lock);
+       return 0;
+ }
diff --git a/queue-2.6.32/decnet-don-t-leak-uninitialized-stack-byte.patch b/queue-2.6.32/decnet-don-t-leak-uninitialized-stack-byte.patch
new file mode 100644 (file)
index 0000000..4dd13c5
--- /dev/null
@@ -0,0 +1,30 @@
+From 3c6f27bf33052ea6ba9d82369fb460726fb779c0 Mon Sep 17 00:00:00 2001
+From: Dan Rosenberg <drosenberg@vsecurity.com>
+Date: Tue, 23 Nov 2010 11:02:13 +0000
+Subject: DECnet: don't leak uninitialized stack byte
+
+From: Dan Rosenberg <drosenberg@vsecurity.com>
+
+commit 3c6f27bf33052ea6ba9d82369fb460726fb779c0 upstream.
+
+A single uninitialized padding byte is leaked to userspace.
+
+Signed-off-by: Dan Rosenberg <drosenberg@vsecurity.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ net/decnet/af_decnet.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/net/decnet/af_decnet.c
++++ b/net/decnet/af_decnet.c
+@@ -1555,6 +1555,8 @@ static int __dn_getsockopt(struct socket
+                       if (r_len > sizeof(struct linkinfo_dn))
+                               r_len = sizeof(struct linkinfo_dn);
++                      memset(&link, 0, sizeof(link));
++
+                       switch(sock->state) {
+                               case SS_CONNECTING:
+                                       link.idn_linkstate = LL_CONNECTING;
diff --git a/queue-2.6.32/do_exit-make-sure-that-we-run-with-get_fs-user_ds.patch b/queue-2.6.32/do_exit-make-sure-that-we-run-with-get_fs-user_ds.patch
new file mode 100644 (file)
index 0000000..e1a45a9
--- /dev/null
@@ -0,0 +1,55 @@
+From 33dd94ae1ccbfb7bf0fb6c692bc3d1c4269e6177 Mon Sep 17 00:00:00 2001
+From: Nelson Elhage <nelhage@ksplice.com>
+Date: Thu, 2 Dec 2010 14:31:21 -0800
+Subject: do_exit(): make sure that we run with get_fs() == USER_DS
+
+From: Nelson Elhage <nelhage@ksplice.com>
+
+commit 33dd94ae1ccbfb7bf0fb6c692bc3d1c4269e6177 upstream.
+
+If a user manages to trigger an oops with fs set to KERNEL_DS, fs is not
+otherwise reset before do_exit().  do_exit may later (via mm_release in
+fork.c) do a put_user to a user-controlled address, potentially allowing
+a user to leverage an oops into a controlled write into kernel memory.
+
+This is only triggerable in the presence of another bug, but this
+potentially turns a lot of DoS bugs into privilege escalations, so it's
+worth fixing.  I have proof-of-concept code which uses this bug along
+with CVE-2010-3849 to write a zero to an arbitrary kernel address, so
+I've tested that this is not theoretical.
+
+A more logical place to put this fix might be when we know an oops has
+occurred, before we call do_exit(), but that would involve changing
+every architecture, in multiple places.
+
+Let's just stick it in do_exit instead.
+
+[akpm@linux-foundation.org: update code comment]
+Signed-off-by: Nelson Elhage <nelhage@ksplice.com>
+Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ kernel/exit.c |    9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+--- a/kernel/exit.c
++++ b/kernel/exit.c
+@@ -899,6 +899,15 @@ NORET_TYPE void do_exit(long code)
+       if (unlikely(!tsk->pid))
+               panic("Attempted to kill the idle task!");
++      /*
++       * If do_exit is called because this processes oopsed, it's possible
++       * that get_fs() was left as KERNEL_DS, so reset it to USER_DS before
++       * continuing. Amongst other possible reasons, this is to prevent
++       * mm_release()->clear_child_tid() from writing to a user-controlled
++       * kernel address.
++       */
++      set_fs(USER_DS);
++
+       tracehook_report_exit(&code);
+       validate_creds_for_do_exit(tsk);
diff --git a/queue-2.6.32/fuse-fix-attributes-after-open-o_trunc.patch b/queue-2.6.32/fuse-fix-attributes-after-open-o_trunc.patch
new file mode 100644 (file)
index 0000000..3e882a4
--- /dev/null
@@ -0,0 +1,57 @@
+From a0822c55779d9319939eac69f00bb729ea9d23da Mon Sep 17 00:00:00 2001
+From: Ken Sumrall <ksumrall@android.com>
+Date: Wed, 24 Nov 2010 12:57:00 -0800
+Subject: fuse: fix attributes after open(O_TRUNC)
+
+From: Ken Sumrall <ksumrall@android.com>
+
+commit a0822c55779d9319939eac69f00bb729ea9d23da upstream.
+
+The attribute cache for a file was not being cleared when a file is opened
+with O_TRUNC.
+
+If the filesystem's open operation truncates the file ("atomic_o_trunc"
+feature flag is set) then the kernel should invalidate the cached st_mtime
+and st_ctime attributes.
+
+Also i_size should be explicitly be set to zero as it is used sometimes
+without refreshing the cache.
+
+Signed-off-by: Ken Sumrall <ksumrall@android.com>
+Cc: Anfei <anfei.zhou@gmail.com>
+Cc: "Anand V. Avati" <avati@gluster.com>
+Signed-off-by: Miklos Szeredi <miklos@szeredi.hu>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ fs/fuse/file.c |   10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+--- a/fs/fuse/file.c
++++ b/fs/fuse/file.c
+@@ -134,6 +134,7 @@ EXPORT_SYMBOL_GPL(fuse_do_open);
+ void fuse_finish_open(struct inode *inode, struct file *file)
+ {
+       struct fuse_file *ff = file->private_data;
++      struct fuse_conn *fc = get_fuse_conn(inode);
+       if (ff->open_flags & FOPEN_DIRECT_IO)
+               file->f_op = &fuse_direct_io_file_operations;
+@@ -141,6 +142,15 @@ void fuse_finish_open(struct inode *inod
+               invalidate_inode_pages2(inode->i_mapping);
+       if (ff->open_flags & FOPEN_NONSEEKABLE)
+               nonseekable_open(inode, file);
++      if (fc->atomic_o_trunc && (file->f_flags & O_TRUNC)) {
++              struct fuse_inode *fi = get_fuse_inode(inode);
++
++              spin_lock(&fc->lock);
++              fi->attr_version = ++fc->attr_version;
++              i_size_write(inode, 0);
++              spin_unlock(&fc->lock);
++              fuse_invalidate_attr(inode);
++      }
+ }
+ int fuse_open_common(struct inode *inode, struct file *file, bool isdir)
diff --git a/queue-2.6.32/nommu-yield-cpu-while-disposing-vm.patch b/queue-2.6.32/nommu-yield-cpu-while-disposing-vm.patch
new file mode 100644 (file)
index 0000000..bcf7dde
--- /dev/null
@@ -0,0 +1,36 @@
+From 04c3496152394d17e3bc2316f9731ee3e8a026bc Mon Sep 17 00:00:00 2001
+From: Steven J. Magnani <steve@digidescorp.com>
+Date: Wed, 24 Nov 2010 12:56:54 -0800
+Subject: nommu: yield CPU while disposing VM
+
+From: Steven J. Magnani <steve@digidescorp.com>
+
+commit 04c3496152394d17e3bc2316f9731ee3e8a026bc upstream.
+
+Depending on processor speed, page size, and the amount of memory a
+process is allowed to amass, cleanup of a large VM may freeze the system
+for many seconds.  This can result in a watchdog timeout.
+
+Make sure other tasks receive some service when cleaning up large VMs.
+
+Signed-off-by: Steven J. Magnani <steve@digidescorp.com>
+Cc: Greg Ungerer <gerg@snapgear.com>
+Reviewed-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ mm/nommu.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/mm/nommu.c
++++ b/mm/nommu.c
+@@ -1615,6 +1615,7 @@ void exit_mmap(struct mm_struct *mm)
+               mm->mmap = vma->vm_next;
+               delete_vma_from_mm(vma);
+               delete_vma(mm, vma);
++              cond_resched();
+       }
+       kleave("");
diff --git a/queue-2.6.32/perf_events-fix-perf_counter_mmap-hook-in-mprotect.patch b/queue-2.6.32/perf_events-fix-perf_counter_mmap-hook-in-mprotect.patch
new file mode 100644 (file)
index 0000000..4eb3c7d
--- /dev/null
@@ -0,0 +1,49 @@
+From 63bfd7384b119409685a17d5c58f0b56e5dc03da Mon Sep 17 00:00:00 2001
+From: Pekka Enberg <penberg@kernel.org>
+Date: Mon, 8 Nov 2010 21:29:07 +0200
+Subject: perf_events: Fix perf_counter_mmap() hook in mprotect()
+
+From: Pekka Enberg <penberg@kernel.org>
+
+commit 63bfd7384b119409685a17d5c58f0b56e5dc03da upstream.
+
+As pointed out by Linus, commit dab5855 ("perf_counter: Add mmap event hooks to
+mprotect()") is fundamentally wrong as mprotect_fixup() can free 'vma' due to
+merging. Fix the problem by moving perf_event_mmap() hook to
+mprotect_fixup().
+
+Note: there's another successful return path from mprotect_fixup() if old
+flags equal to new flags. We don't, however, need to call
+perf_event_mmap() there because 'perf' already knows the VMA is
+executable.
+
+Reported-by: Dave Jones <davej@redhat.com>
+Analyzed-by: Linus Torvalds <torvalds@linux-foundation.org>
+Cc: Ingo Molnar <mingo@elte.hu>
+Reviewed-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
+Signed-off-by: Pekka Enberg <penberg@kernel.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ mm/mprotect.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/mm/mprotect.c
++++ b/mm/mprotect.c
+@@ -212,6 +212,7 @@ success:
+       mmu_notifier_invalidate_range_end(mm, start, end);
+       vm_stat_account(mm, oldflags, vma->vm_file, -nrpages);
+       vm_stat_account(mm, newflags, vma->vm_file, nrpages);
++      perf_event_mmap(vma);
+       return 0;
+ fail:
+@@ -300,7 +301,6 @@ SYSCALL_DEFINE3(mprotect, unsigned long,
+               error = mprotect_fixup(vma, &prev, nstart, tmp, newflags);
+               if (error)
+                       goto out;
+-              perf_event_mmap(vma);
+               nstart = tmp;
+               if (nstart < prev->vm_end)
index 9aae6846d6417d7ec652e508d4155831738aa8dc..2e47a3c063e9d071095c7dcfb169492ef8f7f01d 100644 (file)
@@ -70,3 +70,22 @@ usb-misc-iowarrior-fix-information-leak-to-userland.patch
 usb-core-fix-information-leak-to-userland.patch
 usb-ehci-fix-obscure-race-in-ehci_endpoint_disable.patch
 usb-storage-sierra_ms-fix-sysfs-file-attribute.patch
+usb-atm-ueagle-atm-fix-up-some-permissions-on-the-sysfs-files.patch
+usb-misc-cypress_cy7c63-fix-up-some-sysfs-attribute-permissions.patch
+usb-misc-usbled-fix-up-some-sysfs-attribute-permissions.patch
+usb-ftdi_sio-revert-usb-ftdi_sio-fix-dtr-rts-line-modes.patch
+usb-misc-trancevibrator-fix-up-a-sysfs-attribute-permission.patch
+usb-misc-usbsevseg-fix-up-some-sysfs-attribute-permissions.patch
+usb-ftdi_sio-add-id-for-rt-systems-usb-29b-radio-cable.patch
+usb-serial-ftdi_sio-vardaan-usb-rs422-485-converter-pid-added.patch
+acpi-cpufreq-fix-a-memleak-when-unloading-driver.patch
+acpi-ec-add-vista-incompatibility-dmi-entry-for-toshiba-satellite-l355.patch
+fuse-fix-attributes-after-open-o_trunc.patch
+do_exit-make-sure-that-we-run-with-get_fs-user_ds.patch
+uml-disable-winch-irq-before-freeing-handler-data.patch
+backlight-grab-ops_lock-before-testing-bd-ops.patch
+nommu-yield-cpu-while-disposing-vm.patch
+decnet-don-t-leak-uninitialized-stack-byte.patch
+perf_events-fix-perf_counter_mmap-hook-in-mprotect.patch
+arm-6489-1-thumb2-fix-incorrect-optimisation-in-usracc.patch
+arm-6482-2-fix-find_next_zero_bit-and-related-assembly.patch
diff --git a/queue-2.6.32/uml-disable-winch-irq-before-freeing-handler-data.patch b/queue-2.6.32/uml-disable-winch-irq-before-freeing-handler-data.patch
new file mode 100644 (file)
index 0000000..3e544b5
--- /dev/null
@@ -0,0 +1,66 @@
+From 69e83dad5207f8f03c9699e57e1febb114383cb8 Mon Sep 17 00:00:00 2001
+From: Will Newton <will.newton@gmail.com>
+Date: Wed, 24 Nov 2010 12:56:55 -0800
+Subject: uml: disable winch irq before freeing handler data
+
+From: Will Newton <will.newton@gmail.com>
+
+commit 69e83dad5207f8f03c9699e57e1febb114383cb8 upstream.
+
+Disable the winch irq early to make sure we don't take an interrupt part
+way through the freeing of the handler data, resulting in a crash on
+shutdown:
+
+  winch_interrupt : read failed, errno = 9
+  fd 13 is losing SIGWINCH support
+  ------------[ cut here ]------------
+  WARNING: at lib/list_debug.c:48 list_del+0xc6/0x100()
+  list_del corruption, next is LIST_POISON1 (00100100)
+  082578c8:  [<081fd77f>] dump_stack+0x22/0x24
+  082578e0:  [<0807a18a>] warn_slowpath_common+0x5a/0x80
+  08257908:  [<0807a23e>] warn_slowpath_fmt+0x2e/0x30
+  08257920:  [<08172196>] list_del+0xc6/0x100
+  08257940:  [<08060244>] free_winch+0x14/0x80
+  08257958:  [<080606fb>] winch_interrupt+0xdb/0xe0
+  08257978:  [<080a65b5>] handle_IRQ_event+0x35/0xe0
+  08257998:  [<080a8717>] handle_edge_irq+0xb7/0x170
+  082579bc:  [<08059bc4>] do_IRQ+0x34/0x50
+  082579d4:  [<08059e1b>] sigio_handler+0x5b/0x80
+  082579ec:  [<0806a374>] sig_handler_common+0x44/0xb0
+  08257a68:  [<0806a538>] sig_handler+0x38/0x50
+  08257a78:  [<0806a77c>] handle_signal+0x5c/0xa0
+  08257a9c:  [<0806be28>] hard_handler+0x18/0x20
+  08257aac:  [<00c14400>] 0xc14400
+
+Signed-off-by: Will Newton <will.newton@gmail.com>
+Acked-by: WANG Cong <xiyou.wangcong@gmail.com>
+Cc: Jeff Dike <jdike@addtoit.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/um/drivers/line.c |    5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+--- a/arch/um/drivers/line.c
++++ b/arch/um/drivers/line.c
+@@ -727,6 +727,9 @@ struct winch {
+ static void free_winch(struct winch *winch, int free_irq_ok)
+ {
++      if (free_irq_ok)
++              free_irq(WINCH_IRQ, winch);
++
+       list_del(&winch->list);
+       if (winch->pid != -1)
+@@ -735,8 +738,6 @@ static void free_winch(struct winch *win
+               os_close_file(winch->fd);
+       if (winch->stack != 0)
+               free_stack(winch->stack, 0);
+-      if (free_irq_ok)
+-              free_irq(WINCH_IRQ, winch);
+       kfree(winch);
+ }
diff --git a/queue-2.6.32/usb-atm-ueagle-atm-fix-up-some-permissions-on-the-sysfs-files.patch b/queue-2.6.32/usb-atm-ueagle-atm-fix-up-some-permissions-on-the-sysfs-files.patch
new file mode 100644 (file)
index 0000000..20a0346
--- /dev/null
@@ -0,0 +1,51 @@
+From e502ac5e1eca99d7dc3f12b2a6780ccbca674858 Mon Sep 17 00:00:00 2001
+From: Greg Kroah-Hartman <gregkh@suse.de>
+Date: Mon, 15 Nov 2010 11:11:45 -0800
+Subject: USB: atm: ueagle-atm: fix up some permissions on the sysfs files
+
+From: Greg Kroah-Hartman <gregkh@suse.de>
+
+commit e502ac5e1eca99d7dc3f12b2a6780ccbca674858 upstream.
+
+Some of the sysfs files had the incorrect permissions.  Some didn't make
+sense at all (writable for a file that you could not write to?)
+
+Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
+Cc: Matthieu Castet <castet.matthieu@free.fr>
+Cc: Stanislaw Gruszka <stf_xl@wp.pl>
+Cc: Damien Bergamini <damien.bergamini@free.fr>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/atm/ueagle-atm.c |    6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/drivers/usb/atm/ueagle-atm.c
++++ b/drivers/usb/atm/ueagle-atm.c
+@@ -2259,7 +2259,7 @@ out:
+       return ret;
+ }
+-static DEVICE_ATTR(stat_status, S_IWUGO | S_IRUGO, read_status, reboot);
++static DEVICE_ATTR(stat_status, S_IWUSR | S_IRUGO, read_status, reboot);
+ static ssize_t read_human_status(struct device *dev, struct device_attribute *attr,
+               char *buf)
+@@ -2322,7 +2322,7 @@ out:
+       return ret;
+ }
+-static DEVICE_ATTR(stat_human_status, S_IWUGO | S_IRUGO, read_human_status, NULL);
++static DEVICE_ATTR(stat_human_status, S_IRUGO, read_human_status, NULL);
+ static ssize_t read_delin(struct device *dev, struct device_attribute *attr,
+               char *buf)
+@@ -2354,7 +2354,7 @@ out:
+       return ret;
+ }
+-static DEVICE_ATTR(stat_delin, S_IWUGO | S_IRUGO, read_delin, NULL);
++static DEVICE_ATTR(stat_delin, S_IRUGO, read_delin, NULL);
+ #define UEA_ATTR(name, reset)                                         \
+                                                               \
diff --git a/queue-2.6.32/usb-ftdi_sio-add-id-for-rt-systems-usb-29b-radio-cable.patch b/queue-2.6.32/usb-ftdi_sio-add-id-for-rt-systems-usb-29b-radio-cable.patch
new file mode 100644 (file)
index 0000000..1a0aa7a
--- /dev/null
@@ -0,0 +1,39 @@
+From 28942bb6a9dd4e2ed793675e515cfb8297ed355b Mon Sep 17 00:00:00 2001
+From: Michael Stuermer <ms@mallorn.de>
+Date: Thu, 18 Nov 2010 00:45:43 +0100
+Subject: USB: ftdi_sio: Add ID for RT Systems USB-29B radio cable
+
+From: Michael Stuermer <ms@mallorn.de>
+
+commit 28942bb6a9dd4e2ed793675e515cfb8297ed355b upstream.
+
+Another variant of the RT Systems programming cable for ham radios.
+
+Signed-off-by: Michael Stuermer <ms@mallorn.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ 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
+@@ -702,6 +702,7 @@ static struct usb_device_id id_table_com
+               .driver_info = (kernel_ulong_t)&ftdi_NDI_device_quirk },
+       { USB_DEVICE(TELLDUS_VID, TELLDUS_TELLSTICK_PID) },
+       { USB_DEVICE(RTSYSTEMS_VID, RTSYSTEMS_SERIAL_VX7_PID) },
++      { USB_DEVICE(RTSYSTEMS_VID, RTSYSTEMS_CT29B_PID) },
+       { USB_DEVICE(FTDI_VID, FTDI_MAXSTREAM_PID) },
+       { USB_DEVICE(FTDI_VID, FTDI_PHI_FISCO_PID) },
+       { USB_DEVICE(TML_VID, TML_USB_SERIAL_PID) },
+--- a/drivers/usb/serial/ftdi_sio_ids.h
++++ b/drivers/usb/serial/ftdi_sio_ids.h
+@@ -728,6 +728,7 @@
+  */
+ #define RTSYSTEMS_VID                 0x2100  /* Vendor ID */
+ #define RTSYSTEMS_SERIAL_VX7_PID      0x9e52  /* Serial converter for VX-7 Radios using FT232RL */
++#define RTSYSTEMS_CT29B_PID           0x9e54  /* CT29B Radio Cable */
+ /*
+  * Bayer Ascensia Contour blood glucose meter USB-converter cable.
diff --git a/queue-2.6.32/usb-ftdi_sio-revert-usb-ftdi_sio-fix-dtr-rts-line-modes.patch b/queue-2.6.32/usb-ftdi_sio-revert-usb-ftdi_sio-fix-dtr-rts-line-modes.patch
new file mode 100644 (file)
index 0000000..c3f761f
--- /dev/null
@@ -0,0 +1,54 @@
+From 677aeafe19e88c282af74564048243ccabb1c590 Mon Sep 17 00:00:00 2001
+From: Johan Hovold <jhovold@gmail.com>
+Date: Sun, 12 Sep 2010 16:31:45 +0200
+Subject: USB: ftdi_sio: revert "USB: ftdi_sio: fix DTR/RTS line modes"
+
+From: Johan Hovold <jhovold@gmail.com>
+
+commit 677aeafe19e88c282af74564048243ccabb1c590 upstream.
+
+This reverts commit 6a1a82df91fa0eb1cc76069a9efe5714d087eccd.
+
+RTS and DTR should not be modified based on CRTSCTS when calling
+set_termios.
+
+Modem control lines are raised at port open by the tty layer and should stay
+raised regardless of whether hardware flow control is enabled or not.
+
+This is in conformance with the way serial ports work today and many
+applications depend on this behaviour to be able to talk to hardware
+implementing hardware flow control (without the applications actually using
+it).
+
+Hardware which expects different behaviour on these lines can always
+use TIOCMSET/TIOCMBI[SC] after port open to change them.
+
+Reported-by: Daniel Mack <daniel@caiaq.de>
+Reported-by: Dave Mielke <dave@mielke.cc>
+Signed-off-by: Johan Hovold <jhovold@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/serial/ftdi_sio.c |    4 ----
+ 1 file changed, 4 deletions(-)
+
+--- a/drivers/usb/serial/ftdi_sio.c
++++ b/drivers/usb/serial/ftdi_sio.c
+@@ -2365,8 +2365,6 @@ static void ftdi_set_termios(struct tty_
+                               "urb failed to set to rts/cts flow control\n");
+               }
+-              /* raise DTR/RTS */
+-              set_mctrl(port, TIOCM_DTR | TIOCM_RTS);
+       } else {
+               /*
+                * Xon/Xoff code
+@@ -2414,8 +2412,6 @@ static void ftdi_set_termios(struct tty_
+                       }
+               }
+-              /* lower DTR/RTS */
+-              clear_mctrl(port, TIOCM_DTR | TIOCM_RTS);
+       }
+       return;
+ }
diff --git a/queue-2.6.32/usb-misc-cypress_cy7c63-fix-up-some-sysfs-attribute-permissions.patch b/queue-2.6.32/usb-misc-cypress_cy7c63-fix-up-some-sysfs-attribute-permissions.patch
new file mode 100644 (file)
index 0000000..ffd0e72
--- /dev/null
@@ -0,0 +1,35 @@
+From c990600d340641150f7270470a64bd99a5c0b225 Mon Sep 17 00:00:00 2001
+From: Greg Kroah-Hartman <gregkh@suse.de>
+Date: Mon, 15 Nov 2010 11:32:38 -0800
+Subject: USB: misc: cypress_cy7c63: fix up some sysfs attribute permissions
+
+From: Greg Kroah-Hartman <gregkh@suse.de>
+
+commit c990600d340641150f7270470a64bd99a5c0b225 upstream.
+
+They should not be writable by any user.
+
+Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
+Cc: Oliver Bock <bock@tfh-berlin.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/misc/cypress_cy7c63.c |    6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+--- a/drivers/usb/misc/cypress_cy7c63.c
++++ b/drivers/usb/misc/cypress_cy7c63.c
+@@ -195,11 +195,9 @@ static ssize_t get_port1_handler(struct
+       return read_port(dev, attr, buf, 1, CYPRESS_READ_PORT_ID1);
+ }
+-static DEVICE_ATTR(port0, S_IWUGO | S_IRUGO,
+-                 get_port0_handler, set_port0_handler);
++static DEVICE_ATTR(port0, S_IRUGO | S_IWUSR, get_port0_handler, set_port0_handler);
+-static DEVICE_ATTR(port1, S_IWUGO | S_IRUGO,
+-                 get_port1_handler, set_port1_handler);
++static DEVICE_ATTR(port1, S_IRUGO | S_IWUSR, get_port1_handler, set_port1_handler);
+ static int cypress_probe(struct usb_interface *interface,
diff --git a/queue-2.6.32/usb-misc-trancevibrator-fix-up-a-sysfs-attribute-permission.patch b/queue-2.6.32/usb-misc-trancevibrator-fix-up-a-sysfs-attribute-permission.patch
new file mode 100644 (file)
index 0000000..cb71604
--- /dev/null
@@ -0,0 +1,30 @@
+From d489a4b3926bad571d404ca6508f6744b9602776 Mon Sep 17 00:00:00 2001
+From: Greg Kroah-Hartman <gregkh@suse.de>
+Date: Mon, 15 Nov 2010 11:34:26 -0800
+Subject: USB: misc: trancevibrator: fix up a sysfs attribute permission
+
+From: Greg Kroah-Hartman <gregkh@suse.de>
+
+commit d489a4b3926bad571d404ca6508f6744b9602776 upstream.
+
+It should not be writable by any user.
+
+Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
+Cc: Sam Hocevar <sam@zoy.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/misc/trancevibrator.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/usb/misc/trancevibrator.c
++++ b/drivers/usb/misc/trancevibrator.c
+@@ -85,7 +85,7 @@ static ssize_t set_speed(struct device *
+       return count;
+ }
+-static DEVICE_ATTR(speed, S_IWUGO | S_IRUGO, show_speed, set_speed);
++static DEVICE_ATTR(speed, S_IRUGO | S_IWUSR, show_speed, set_speed);
+ static int tv_probe(struct usb_interface *interface,
+                   const struct usb_device_id *id)
diff --git a/queue-2.6.32/usb-misc-usbled-fix-up-some-sysfs-attribute-permissions.patch b/queue-2.6.32/usb-misc-usbled-fix-up-some-sysfs-attribute-permissions.patch
new file mode 100644 (file)
index 0000000..71be625
--- /dev/null
@@ -0,0 +1,29 @@
+From 48f115470e68d443436b76b22dad63ffbffd6b97 Mon Sep 17 00:00:00 2001
+From: Greg Kroah-Hartman <gregkh@suse.de>
+Date: Mon, 15 Nov 2010 11:35:49 -0800
+Subject: USB: misc: usbled: fix up some sysfs attribute permissions
+
+From: Greg Kroah-Hartman <gregkh@suse.de>
+
+commit 48f115470e68d443436b76b22dad63ffbffd6b97 upstream.
+
+They should not be writable by any user.
+
+Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/misc/usbled.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/usb/misc/usbled.c
++++ b/drivers/usb/misc/usbled.c
+@@ -94,7 +94,7 @@ static ssize_t set_##value(struct device
+       change_color(led);                                              \
+       return count;                                                   \
+ }                                                                     \
+-static DEVICE_ATTR(value, S_IWUGO | S_IRUGO, show_##value, set_##value);
++static DEVICE_ATTR(value, S_IRUGO | S_IWUSR, show_##value, set_##value);
+ show_set(blue);
+ show_set(red);
+ show_set(green);
diff --git a/queue-2.6.32/usb-misc-usbsevseg-fix-up-some-sysfs-attribute-permissions.patch b/queue-2.6.32/usb-misc-usbsevseg-fix-up-some-sysfs-attribute-permissions.patch
new file mode 100644 (file)
index 0000000..49c32b3
--- /dev/null
@@ -0,0 +1,59 @@
+From e24d7ace4e822debcb78386bf279c9aba4d7fbd1 Mon Sep 17 00:00:00 2001
+From: Greg Kroah-Hartman <gregkh@suse.de>
+Date: Mon, 15 Nov 2010 11:36:44 -0800
+Subject: USB: misc: usbsevseg: fix up some sysfs attribute permissions
+
+From: Greg Kroah-Hartman <gregkh@suse.de>
+
+commit e24d7ace4e822debcb78386bf279c9aba4d7fbd1 upstream.
+
+They should not be writable by any user.
+
+Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
+Cc: Harrison Metzger <harrisonmetz@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/misc/usbsevseg.c |   10 ++++------
+ 1 file changed, 4 insertions(+), 6 deletions(-)
+
+--- a/drivers/usb/misc/usbsevseg.c
++++ b/drivers/usb/misc/usbsevseg.c
+@@ -185,7 +185,7 @@ static ssize_t set_attr_##name(struct de
+                                                               \
+       return count;                                           \
+ }                                                             \
+-static DEVICE_ATTR(name, S_IWUGO | S_IRUGO, show_attr_##name, set_attr_##name);
++static DEVICE_ATTR(name, S_IRUGO | S_IWUSR, show_attr_##name, set_attr_##name);
+ static ssize_t show_attr_text(struct device *dev,
+       struct device_attribute *attr, char *buf)
+@@ -216,7 +216,7 @@ static ssize_t set_attr_text(struct devi
+       return count;
+ }
+-static DEVICE_ATTR(text, S_IWUGO | S_IRUGO, show_attr_text, set_attr_text);
++static DEVICE_ATTR(text, S_IRUGO | S_IWUSR, show_attr_text, set_attr_text);
+ static ssize_t show_attr_decimals(struct device *dev,
+       struct device_attribute *attr, char *buf)
+@@ -265,8 +265,7 @@ static ssize_t set_attr_decimals(struct
+       return count;
+ }
+-static DEVICE_ATTR(decimals, S_IWUGO | S_IRUGO,
+-      show_attr_decimals, set_attr_decimals);
++static DEVICE_ATTR(decimals, S_IRUGO | S_IWUSR, show_attr_decimals, set_attr_decimals);
+ static ssize_t show_attr_textmode(struct device *dev,
+       struct device_attribute *attr, char *buf)
+@@ -312,8 +311,7 @@ static ssize_t set_attr_textmode(struct
+       return -EINVAL;
+ }
+-static DEVICE_ATTR(textmode, S_IWUGO | S_IRUGO,
+-      show_attr_textmode, set_attr_textmode);
++static DEVICE_ATTR(textmode, S_IRUGO | S_IWUSR, show_attr_textmode, set_attr_textmode);
+ MYDEV_ATTR_SIMPLE_UNSIGNED(powered, update_display_powered);
diff --git a/queue-2.6.32/usb-serial-ftdi_sio-vardaan-usb-rs422-485-converter-pid-added.patch b/queue-2.6.32/usb-serial-ftdi_sio-vardaan-usb-rs422-485-converter-pid-added.patch
new file mode 100644 (file)
index 0000000..0ba24f3
--- /dev/null
@@ -0,0 +1,45 @@
+From 6fdbad8021151a9e93af8159a6232c8f26415c09 Mon Sep 17 00:00:00 2001
+From: Jacques Viviers <jacques.viviers@gmail.com>
+Date: Wed, 24 Nov 2010 11:56:38 +0200
+Subject: USB: serial: ftdi_sio: Vardaan USB RS422/485 converter PID added
+
+From: Jacques Viviers <jacques.viviers@gmail.com>
+
+commit 6fdbad8021151a9e93af8159a6232c8f26415c09 upstream.
+
+Add the PID for the Vardaan Enterprises VEUSB422R3 USB to RS422/485
+converter. It uses the same chip as the FTDI_8U232AM_PID 0x6001.
+
+This should also work with the stable branches for:
+2.6.31, 2.6.32, 2.6.33, 2.6.34, 2.6.35, 2.6.36
+
+Signed-off-by: Jacques Viviers <jacques.viviers@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/serial/ftdi_sio.c     |    1 +
+ drivers/usb/serial/ftdi_sio_ids.h |    3 +++
+ 2 files changed, 4 insertions(+)
+
+--- a/drivers/usb/serial/ftdi_sio.c
++++ b/drivers/usb/serial/ftdi_sio.c
+@@ -206,6 +206,7 @@ static struct usb_device_id id_table_com
+       { USB_DEVICE(FTDI_VID, FTDI_MTXORB_5_PID) },
+       { USB_DEVICE(FTDI_VID, FTDI_MTXORB_6_PID) },
+       { USB_DEVICE(FTDI_VID, FTDI_R2000KU_TRUE_RNG) },
++      { USB_DEVICE(FTDI_VID, FTDI_VARDAAN_PID) },
+       { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_0100_PID) },
+       { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_0101_PID) },
+       { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_0102_PID) },
+--- a/drivers/usb/serial/ftdi_sio_ids.h
++++ b/drivers/usb/serial/ftdi_sio_ids.h
+@@ -114,6 +114,9 @@
+ /* Lenz LI-USB Computer Interface. */
+ #define FTDI_LENZ_LIUSB_PID   0xD780
++/* Vardaan Enterprises Serial Interface VEUSB422R3 */
++#define FTDI_VARDAAN_PID      0xF070
++
+ /*
+  * Xsens Technologies BV products (http://www.xsens.com).
+  */