From 622952ea5a009d7d6a5cd856f5c3d5305286d4d5 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 6 Dec 2010 14:47:33 -0800 Subject: [PATCH] .32 patches --- ...-fix-a-memleak-when-unloading-driver.patch | 53 +++++++++++++++ ...dmi-entry-for-toshiba-satellite-l355.patch | 35 ++++++++++ ...d_next_zero_bit-and-related-assembly.patch | 49 ++++++++++++++ ...fix-incorrect-optimisation-in-usracc.patch | 40 +++++++++++ ...-grab-ops_lock-before-testing-bd-ops.patch | 63 ++++++++++++++++++ ...-don-t-leak-uninitialized-stack-byte.patch | 30 +++++++++ ...sure-that-we-run-with-get_fs-user_ds.patch | 55 ++++++++++++++++ ...se-fix-attributes-after-open-o_trunc.patch | 57 ++++++++++++++++ .../nommu-yield-cpu-while-disposing-vm.patch | 36 ++++++++++ ...x-perf_counter_mmap-hook-in-mprotect.patch | 49 ++++++++++++++ queue-2.6.32/series | 19 ++++++ ...inch-irq-before-freeing-handler-data.patch | 66 +++++++++++++++++++ ...-some-permissions-on-the-sysfs-files.patch | 51 ++++++++++++++ ...d-for-rt-systems-usb-29b-radio-cable.patch | 39 +++++++++++ ...-usb-ftdi_sio-fix-dtr-rts-line-modes.patch | 54 +++++++++++++++ ...-up-some-sysfs-attribute-permissions.patch | 35 ++++++++++ ...-fix-up-a-sysfs-attribute-permission.patch | 30 +++++++++ ...-up-some-sysfs-attribute-permissions.patch | 29 ++++++++ ...-up-some-sysfs-attribute-permissions.patch | 59 +++++++++++++++++ ...an-usb-rs422-485-converter-pid-added.patch | 45 +++++++++++++ 20 files changed, 894 insertions(+) create mode 100644 queue-2.6.32/acpi-cpufreq-fix-a-memleak-when-unloading-driver.patch create mode 100644 queue-2.6.32/acpi-ec-add-vista-incompatibility-dmi-entry-for-toshiba-satellite-l355.patch create mode 100644 queue-2.6.32/arm-6482-2-fix-find_next_zero_bit-and-related-assembly.patch create mode 100644 queue-2.6.32/arm-6489-1-thumb2-fix-incorrect-optimisation-in-usracc.patch create mode 100644 queue-2.6.32/backlight-grab-ops_lock-before-testing-bd-ops.patch create mode 100644 queue-2.6.32/decnet-don-t-leak-uninitialized-stack-byte.patch create mode 100644 queue-2.6.32/do_exit-make-sure-that-we-run-with-get_fs-user_ds.patch create mode 100644 queue-2.6.32/fuse-fix-attributes-after-open-o_trunc.patch create mode 100644 queue-2.6.32/nommu-yield-cpu-while-disposing-vm.patch create mode 100644 queue-2.6.32/perf_events-fix-perf_counter_mmap-hook-in-mprotect.patch create mode 100644 queue-2.6.32/uml-disable-winch-irq-before-freeing-handler-data.patch create mode 100644 queue-2.6.32/usb-atm-ueagle-atm-fix-up-some-permissions-on-the-sysfs-files.patch create mode 100644 queue-2.6.32/usb-ftdi_sio-add-id-for-rt-systems-usb-29b-radio-cable.patch create mode 100644 queue-2.6.32/usb-ftdi_sio-revert-usb-ftdi_sio-fix-dtr-rts-line-modes.patch create mode 100644 queue-2.6.32/usb-misc-cypress_cy7c63-fix-up-some-sysfs-attribute-permissions.patch create mode 100644 queue-2.6.32/usb-misc-trancevibrator-fix-up-a-sysfs-attribute-permission.patch create mode 100644 queue-2.6.32/usb-misc-usbled-fix-up-some-sysfs-attribute-permissions.patch create mode 100644 queue-2.6.32/usb-misc-usbsevseg-fix-up-some-sysfs-attribute-permissions.patch create mode 100644 queue-2.6.32/usb-serial-ftdi_sio-vardaan-usb-rs422-485-converter-pid-added.patch 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 index 00000000000..dc5bbd0ded6 --- /dev/null +++ b/queue-2.6.32/acpi-cpufreq-fix-a-memleak-when-unloading-driver.patch @@ -0,0 +1,53 @@ +From dab5fff14df2cd16eb1ad4c02e83915e1063fece Mon Sep 17 00:00:00 2001 +From: Zhang Rui +Date: Tue, 12 Oct 2010 09:09:37 +0800 +Subject: acpi-cpufreq: fix a memleak when unloading driver + +From: Zhang Rui + +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: + [] kmemleak_alloc+0x27/0x50 + [] __kmalloc+0xcf/0x110 + [] acpi_cpufreq_cpu_init+0x1ee/0x4e4 [acpi_cpufreq] + [] cpufreq_add_dev+0x142/0x3a0 + [] sysdev_driver_register+0x97/0x110 + [] cpufreq_register_driver+0x86/0x140 + [] 0xf9dad080 + [] do_one_initcall+0x30/0x160 + [] sys_init_module+0x99/0x1e0 + [] sysenter_do_call+0x12/0x26 + [] 0xffffffff + +https://bugzilla.kernel.org/show_bug.cgi?id=15807#c21 + +Tested-by: Toralf Forster +Signed-off-by: Zhang Rui +Signed-off-by: Len Brown +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..2744374bf34 --- /dev/null +++ b/queue-2.6.32/acpi-ec-add-vista-incompatibility-dmi-entry-for-toshiba-satellite-l355.patch @@ -0,0 +1,35 @@ +From 7a1d602f5fc35d14907b7da98d5627acb69589d1 Mon Sep 17 00:00:00 2001 +From: Len Brown +Date: Tue, 28 Sep 2010 17:51:51 -0400 +Subject: ACPI: EC: add Vista incompatibility DMI entry for Toshiba Satellite L355 + +From: Len Brown + +commit 7a1d602f5fc35d14907b7da98d5627acb69589d1 upstream. + +https://bugzilla.kernel.org/show_bug.cgi?id=12641 + +Signed-off-by: Len Brown +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..887bdb49e46 --- /dev/null +++ b/queue-2.6.32/arm-6482-2-fix-find_next_zero_bit-and-related-assembly.patch @@ -0,0 +1,49 @@ +From 0e91ec0c06d2cd15071a6021c94840a50e6671aa Mon Sep 17 00:00:00 2001 +From: James Jones +Date: Wed, 24 Nov 2010 00:21:37 +0100 +Subject: ARM: 6482/2: Fix find_next_zero_bit and related assembly + +From: James Jones + +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 +Tested-by: Stephen Warren +Signed-off-by: James Jones +Signed-off-by: Russell King +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..4910b18b2fc --- /dev/null +++ b/queue-2.6.32/arm-6489-1-thumb2-fix-incorrect-optimisation-in-usracc.patch @@ -0,0 +1,40 @@ +From 1142b71d85894dcff1466dd6c871ea3c89e0352c Mon Sep 17 00:00:00 2001 +From: Will Deacon +Date: Fri, 19 Nov 2010 13:18:31 +0100 +Subject: ARM: 6489/1: thumb2: fix incorrect optimisation in usracc + +From: Will Deacon + +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 +Acked-by: Catalin Marinas +Signed-off-by: Will Deacon +Signed-off-by: Russell King +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..4247503e38b --- /dev/null +++ b/queue-2.6.32/backlight-grab-ops_lock-before-testing-bd-ops.patch @@ -0,0 +1,63 @@ +From d1d73578e053b981c3611e5a211534290d24a5eb Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= +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?= + +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 +Acked-by: Richard Purdie +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..4dd13c59b06 --- /dev/null +++ b/queue-2.6.32/decnet-don-t-leak-uninitialized-stack-byte.patch @@ -0,0 +1,30 @@ +From 3c6f27bf33052ea6ba9d82369fb460726fb779c0 Mon Sep 17 00:00:00 2001 +From: Dan Rosenberg +Date: Tue, 23 Nov 2010 11:02:13 +0000 +Subject: DECnet: don't leak uninitialized stack byte + +From: Dan Rosenberg + +commit 3c6f27bf33052ea6ba9d82369fb460726fb779c0 upstream. + +A single uninitialized padding byte is leaked to userspace. + +Signed-off-by: Dan Rosenberg +Signed-off-by: David S. Miller +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..e1a45a91394 --- /dev/null +++ b/queue-2.6.32/do_exit-make-sure-that-we-run-with-get_fs-user_ds.patch @@ -0,0 +1,55 @@ +From 33dd94ae1ccbfb7bf0fb6c692bc3d1c4269e6177 Mon Sep 17 00:00:00 2001 +From: Nelson Elhage +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 + +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 +Cc: KOSAKI Motohiro +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..3e882a4da17 --- /dev/null +++ b/queue-2.6.32/fuse-fix-attributes-after-open-o_trunc.patch @@ -0,0 +1,57 @@ +From a0822c55779d9319939eac69f00bb729ea9d23da Mon Sep 17 00:00:00 2001 +From: Ken Sumrall +Date: Wed, 24 Nov 2010 12:57:00 -0800 +Subject: fuse: fix attributes after open(O_TRUNC) + +From: Ken Sumrall + +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 +Cc: Anfei +Cc: "Anand V. Avati" +Signed-off-by: Miklos Szeredi +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..bcf7ddece47 --- /dev/null +++ b/queue-2.6.32/nommu-yield-cpu-while-disposing-vm.patch @@ -0,0 +1,36 @@ +From 04c3496152394d17e3bc2316f9731ee3e8a026bc Mon Sep 17 00:00:00 2001 +From: Steven J. Magnani +Date: Wed, 24 Nov 2010 12:56:54 -0800 +Subject: nommu: yield CPU while disposing VM + +From: Steven J. Magnani + +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 +Cc: Greg Ungerer +Reviewed-by: KOSAKI Motohiro +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..4eb3c7deac8 --- /dev/null +++ b/queue-2.6.32/perf_events-fix-perf_counter_mmap-hook-in-mprotect.patch @@ -0,0 +1,49 @@ +From 63bfd7384b119409685a17d5c58f0b56e5dc03da Mon Sep 17 00:00:00 2001 +From: Pekka Enberg +Date: Mon, 8 Nov 2010 21:29:07 +0200 +Subject: perf_events: Fix perf_counter_mmap() hook in mprotect() + +From: Pekka Enberg + +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 +Analyzed-by: Linus Torvalds +Cc: Ingo Molnar +Reviewed-by: Peter Zijlstra +Signed-off-by: Pekka Enberg +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + 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) diff --git a/queue-2.6.32/series b/queue-2.6.32/series index 9aae6846d64..2e47a3c063e 100644 --- a/queue-2.6.32/series +++ b/queue-2.6.32/series @@ -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 index 00000000000..3e544b567ab --- /dev/null +++ b/queue-2.6.32/uml-disable-winch-irq-before-freeing-handler-data.patch @@ -0,0 +1,66 @@ +From 69e83dad5207f8f03c9699e57e1febb114383cb8 Mon Sep 17 00:00:00 2001 +From: Will Newton +Date: Wed, 24 Nov 2010 12:56:55 -0800 +Subject: uml: disable winch irq before freeing handler data + +From: Will Newton + +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 +Acked-by: WANG Cong +Cc: Jeff Dike +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..20a03462051 --- /dev/null +++ b/queue-2.6.32/usb-atm-ueagle-atm-fix-up-some-permissions-on-the-sysfs-files.patch @@ -0,0 +1,51 @@ +From e502ac5e1eca99d7dc3f12b2a6780ccbca674858 Mon Sep 17 00:00:00 2001 +From: Greg Kroah-Hartman +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 + +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 +Cc: Matthieu Castet +Cc: Stanislaw Gruszka +Cc: Damien Bergamini +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..1a0aa7a8c3d --- /dev/null +++ b/queue-2.6.32/usb-ftdi_sio-add-id-for-rt-systems-usb-29b-radio-cable.patch @@ -0,0 +1,39 @@ +From 28942bb6a9dd4e2ed793675e515cfb8297ed355b Mon Sep 17 00:00:00 2001 +From: Michael Stuermer +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 + +commit 28942bb6a9dd4e2ed793675e515cfb8297ed355b upstream. + +Another variant of the RT Systems programming cable for ham radios. + +Signed-off-by: Michael Stuermer +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..c3f761fd2db --- /dev/null +++ b/queue-2.6.32/usb-ftdi_sio-revert-usb-ftdi_sio-fix-dtr-rts-line-modes.patch @@ -0,0 +1,54 @@ +From 677aeafe19e88c282af74564048243ccabb1c590 Mon Sep 17 00:00:00 2001 +From: Johan Hovold +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 + +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 +Reported-by: Dave Mielke +Signed-off-by: Johan Hovold +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..ffd0e72d75e --- /dev/null +++ b/queue-2.6.32/usb-misc-cypress_cy7c63-fix-up-some-sysfs-attribute-permissions.patch @@ -0,0 +1,35 @@ +From c990600d340641150f7270470a64bd99a5c0b225 Mon Sep 17 00:00:00 2001 +From: Greg Kroah-Hartman +Date: Mon, 15 Nov 2010 11:32:38 -0800 +Subject: USB: misc: cypress_cy7c63: fix up some sysfs attribute permissions + +From: Greg Kroah-Hartman + +commit c990600d340641150f7270470a64bd99a5c0b225 upstream. + +They should not be writable by any user. + +Reported-by: Linus Torvalds +Cc: Oliver Bock +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..cb71604b774 --- /dev/null +++ b/queue-2.6.32/usb-misc-trancevibrator-fix-up-a-sysfs-attribute-permission.patch @@ -0,0 +1,30 @@ +From d489a4b3926bad571d404ca6508f6744b9602776 Mon Sep 17 00:00:00 2001 +From: Greg Kroah-Hartman +Date: Mon, 15 Nov 2010 11:34:26 -0800 +Subject: USB: misc: trancevibrator: fix up a sysfs attribute permission + +From: Greg Kroah-Hartman + +commit d489a4b3926bad571d404ca6508f6744b9602776 upstream. + +It should not be writable by any user. + +Reported-by: Linus Torvalds +Cc: Sam Hocevar +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..71be6253b1a --- /dev/null +++ b/queue-2.6.32/usb-misc-usbled-fix-up-some-sysfs-attribute-permissions.patch @@ -0,0 +1,29 @@ +From 48f115470e68d443436b76b22dad63ffbffd6b97 Mon Sep 17 00:00:00 2001 +From: Greg Kroah-Hartman +Date: Mon, 15 Nov 2010 11:35:49 -0800 +Subject: USB: misc: usbled: fix up some sysfs attribute permissions + +From: Greg Kroah-Hartman + +commit 48f115470e68d443436b76b22dad63ffbffd6b97 upstream. + +They should not be writable by any user. + +Reported-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..49c32b3b416 --- /dev/null +++ b/queue-2.6.32/usb-misc-usbsevseg-fix-up-some-sysfs-attribute-permissions.patch @@ -0,0 +1,59 @@ +From e24d7ace4e822debcb78386bf279c9aba4d7fbd1 Mon Sep 17 00:00:00 2001 +From: Greg Kroah-Hartman +Date: Mon, 15 Nov 2010 11:36:44 -0800 +Subject: USB: misc: usbsevseg: fix up some sysfs attribute permissions + +From: Greg Kroah-Hartman + +commit e24d7ace4e822debcb78386bf279c9aba4d7fbd1 upstream. + +They should not be writable by any user. + +Reported-by: Linus Torvalds +Cc: Harrison Metzger +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..0ba24f32a27 --- /dev/null +++ b/queue-2.6.32/usb-serial-ftdi_sio-vardaan-usb-rs422-485-converter-pid-added.patch @@ -0,0 +1,45 @@ +From 6fdbad8021151a9e93af8159a6232c8f26415c09 Mon Sep 17 00:00:00 2001 +From: Jacques Viviers +Date: Wed, 24 Nov 2010 11:56:38 +0200 +Subject: USB: serial: ftdi_sio: Vardaan USB RS422/485 converter PID added + +From: Jacques Viviers + +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 +Signed-off-by: Greg Kroah-Hartman + +--- + 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). + */ -- 2.47.3