From: Greg Kroah-Hartman Date: Sat, 2 May 2015 14:32:37 +0000 (+0200) Subject: 3.19-stable patches X-Git-Tag: v3.10.77~40 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0ebc93fab59f98dd4f43b2dcae2f95230ba98706;p=thirdparty%2Fkernel%2Fstable-queue.git 3.19-stable patches added patches: ext4-make-fsync-to-sync-parent-dir-in-no-journal-for-real-this-time.patch fs-binfmt_elf.c-fix-bug-in-loading-of-pie-binaries.patch input-elantech-fix-absolute-mode-setting-on-some-asus-laptops.patch mfd-core-fix-platform-device-name-collisions.patch nfc-st21nfcb-retry-i2c_master_send-if-it-returns-a-negative-value.patch ptrace-fix-race-between-ptrace_resume-and-wait_task_stopped.patch rtlwifi-rtl8192cu-add-new-device-id.patch rtlwifi-rtl8192cu-add-new-usb-id.patch --- diff --git a/queue-3.19/ext4-make-fsync-to-sync-parent-dir-in-no-journal-for-real-this-time.patch b/queue-3.19/ext4-make-fsync-to-sync-parent-dir-in-no-journal-for-real-this-time.patch new file mode 100644 index 00000000000..18d12937ef3 --- /dev/null +++ b/queue-3.19/ext4-make-fsync-to-sync-parent-dir-in-no-journal-for-real-this-time.patch @@ -0,0 +1,101 @@ +From e12fb97222fc41e8442896934f76d39ef99b590a Mon Sep 17 00:00:00 2001 +From: Lukas Czerner +Date: Fri, 3 Apr 2015 10:46:58 -0400 +Subject: ext4: make fsync to sync parent dir in no-journal for real this time + +From: Lukas Czerner + +commit e12fb97222fc41e8442896934f76d39ef99b590a upstream. + +Previously commit 14ece1028b3ed53ffec1b1213ffc6acaf79ad77c added a +support for for syncing parent directory of newly created inodes to +make sure that the inode is not lost after a power failure in +no-journal mode. + +However this does not work in majority of cases, namely: + - if the directory has inline data + - if the directory is already indexed + - if the directory already has at least one block and: + - the new entry fits into it + - or we've successfully converted it to indexed + +So in those cases we might lose the inode entirely even after fsync in +the no-journal mode. This also includes ext2 default mode obviously. + +I've noticed this while running xfstest generic/321 and even though the +test should fail (we need to run fsck after a crash in no-journal mode) +I could not find a newly created entries even when if it was fsynced +before. + +Fix this by adjusting the ext4_add_entry() successful exit paths to set +the inode EXT4_STATE_NEWENTRY so that fsync has the chance to fsync the +parent directory as well. + +Signed-off-by: Lukas Czerner +Signed-off-by: Theodore Ts'o +Reviewed-by: Jan Kara +Cc: Frank Mayhar +Signed-off-by: Greg Kroah-Hartman + +--- + fs/ext4/namei.c | 20 +++++++++++--------- + 1 file changed, 11 insertions(+), 9 deletions(-) + +--- a/fs/ext4/namei.c ++++ b/fs/ext4/namei.c +@@ -1865,7 +1865,7 @@ static int ext4_add_entry(handle_t *hand + struct inode *inode) + { + struct inode *dir = dentry->d_parent->d_inode; +- struct buffer_head *bh; ++ struct buffer_head *bh = NULL; + struct ext4_dir_entry_2 *de; + struct ext4_dir_entry_tail *t; + struct super_block *sb; +@@ -1889,14 +1889,14 @@ static int ext4_add_entry(handle_t *hand + return retval; + if (retval == 1) { + retval = 0; +- return retval; ++ goto out; + } + } + + if (is_dx(dir)) { + retval = ext4_dx_add_entry(handle, dentry, inode); + if (!retval || (retval != ERR_BAD_DX_DIR)) +- return retval; ++ goto out; + ext4_clear_inode_flag(dir, EXT4_INODE_INDEX); + dx_fallback++; + ext4_mark_inode_dirty(handle, dir); +@@ -1908,14 +1908,15 @@ static int ext4_add_entry(handle_t *hand + return PTR_ERR(bh); + + retval = add_dirent_to_buf(handle, dentry, inode, NULL, bh); +- if (retval != -ENOSPC) { +- brelse(bh); +- return retval; +- } ++ if (retval != -ENOSPC) ++ goto out; + + if (blocks == 1 && !dx_fallback && +- EXT4_HAS_COMPAT_FEATURE(sb, EXT4_FEATURE_COMPAT_DIR_INDEX)) +- return make_indexed_dir(handle, dentry, inode, bh); ++ EXT4_HAS_COMPAT_FEATURE(sb, EXT4_FEATURE_COMPAT_DIR_INDEX)) { ++ retval = make_indexed_dir(handle, dentry, inode, bh); ++ bh = NULL; /* make_indexed_dir releases bh */ ++ goto out; ++ } + brelse(bh); + } + bh = ext4_append(handle, dir, &block); +@@ -1931,6 +1932,7 @@ static int ext4_add_entry(handle_t *hand + } + + retval = add_dirent_to_buf(handle, dentry, inode, de, bh); ++out: + brelse(bh); + if (retval == 0) + ext4_set_inode_state(inode, EXT4_STATE_NEWENTRY); diff --git a/queue-3.19/fs-binfmt_elf.c-fix-bug-in-loading-of-pie-binaries.patch b/queue-3.19/fs-binfmt_elf.c-fix-bug-in-loading-of-pie-binaries.patch new file mode 100644 index 00000000000..6bbf9edca2d --- /dev/null +++ b/queue-3.19/fs-binfmt_elf.c-fix-bug-in-loading-of-pie-binaries.patch @@ -0,0 +1,72 @@ +From a87938b2e246b81b4fb713edb371a9fa3c5c3c86 Mon Sep 17 00:00:00 2001 +From: Michael Davidson +Date: Tue, 14 Apr 2015 15:47:38 -0700 +Subject: fs/binfmt_elf.c: fix bug in loading of PIE binaries + +From: Michael Davidson + +commit a87938b2e246b81b4fb713edb371a9fa3c5c3c86 upstream. + +With CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE enabled, and a normal top-down +address allocation strategy, load_elf_binary() will attempt to map a PIE +binary into an address range immediately below mm->mmap_base. + +Unfortunately, load_elf_ binary() does not take account of the need to +allocate sufficient space for the entire binary which means that, while +the first PT_LOAD segment is mapped below mm->mmap_base, the subsequent +PT_LOAD segment(s) end up being mapped above mm->mmap_base into the are +that is supposed to be the "gap" between the stack and the binary. + +Since the size of the "gap" on x86_64 is only guaranteed to be 128MB this +means that binaries with large data segments > 128MB can end up mapping +part of their data segment over their stack resulting in corruption of the +stack (and the data segment once the binary starts to run). + +Any PIE binary with a data segment > 128MB is vulnerable to this although +address randomization means that the actual gap between the stack and the +end of the binary is normally greater than 128MB. The larger the data +segment of the binary the higher the probability of failure. + +Fix this by calculating the total size of the binary in the same way as +load_elf_interp(). + +Signed-off-by: Michael Davidson +Cc: Alexander Viro +Cc: Jiri Kosina +Cc: Kees Cook +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + fs/binfmt_elf.c | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +--- a/fs/binfmt_elf.c ++++ b/fs/binfmt_elf.c +@@ -862,6 +862,7 @@ static int load_elf_binary(struct linux_ + i < loc->elf_ex.e_phnum; i++, elf_ppnt++) { + int elf_prot = 0, elf_flags; + unsigned long k, vaddr; ++ unsigned long total_size = 0; + + if (elf_ppnt->p_type != PT_LOAD) + continue; +@@ -924,10 +925,16 @@ static int load_elf_binary(struct linux_ + #else + load_bias = ELF_PAGESTART(ELF_ET_DYN_BASE - vaddr); + #endif ++ total_size = total_mapping_size(elf_phdata, ++ loc->elf_ex.e_phnum); ++ if (!total_size) { ++ error = -EINVAL; ++ goto out_free_dentry; ++ } + } + + error = elf_map(bprm->file, load_bias + vaddr, elf_ppnt, +- elf_prot, elf_flags, 0); ++ elf_prot, elf_flags, total_size); + if (BAD_ADDR(error)) { + retval = IS_ERR((void *)error) ? + PTR_ERR((void*)error) : -EINVAL; diff --git a/queue-3.19/input-elantech-fix-absolute-mode-setting-on-some-asus-laptops.patch b/queue-3.19/input-elantech-fix-absolute-mode-setting-on-some-asus-laptops.patch new file mode 100644 index 00000000000..2550e4cbc35 --- /dev/null +++ b/queue-3.19/input-elantech-fix-absolute-mode-setting-on-some-asus-laptops.patch @@ -0,0 +1,86 @@ +From bd884149aca61de269fd9bad83fe2a4232ffab21 Mon Sep 17 00:00:00 2001 +From: Ulrik De Bie +Date: Mon, 6 Apr 2015 15:35:38 -0700 +Subject: Input: elantech - fix absolute mode setting on some ASUS laptops + +From: Ulrik De Bie + +commit bd884149aca61de269fd9bad83fe2a4232ffab21 upstream. + +On ASUS TP500LN and X750JN, the touchpad absolute mode is reset each +time set_rate is done. + +In order to fix this, we will verify the firmware version, and if it +matches the one in those laptops, the set_rate function is overloaded +with a function elantech_set_rate_restore_reg_07 that performs the +set_rate with the original function, followed by a restore of reg_07 +(the register that sets the absolute mode on elantech v4 hardware). + +Also the ASUS TP500LN and X750JN firmware version, capabilities, and +button constellation is added to elantech.c + +Reported-and-tested-by: George Moutsopoulos +Signed-off-by: Ulrik De Bie +Signed-off-by: Dmitry Torokhov +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/input/mouse/elantech.c | 22 ++++++++++++++++++++++ + drivers/input/mouse/elantech.h | 1 + + 2 files changed, 23 insertions(+) + +--- a/drivers/input/mouse/elantech.c ++++ b/drivers/input/mouse/elantech.c +@@ -893,6 +893,21 @@ static psmouse_ret_t elantech_process_by + } + + /* ++ * This writes the reg_07 value again to the hardware at the end of every ++ * set_rate call because the register loses its value. reg_07 allows setting ++ * absolute mode on v4 hardware ++ */ ++static void elantech_set_rate_restore_reg_07(struct psmouse *psmouse, ++ unsigned int rate) ++{ ++ struct elantech_data *etd = psmouse->private; ++ ++ etd->original_set_rate(psmouse, rate); ++ if (elantech_write_reg(psmouse, 0x07, etd->reg_07)) ++ psmouse_err(psmouse, "restoring reg_07 failed\n"); ++} ++ ++/* + * Put the touchpad into absolute mode + */ + static int elantech_set_absolute_mode(struct psmouse *psmouse) +@@ -1094,6 +1109,8 @@ static int elantech_get_resolution_v4(st + * Asus K53SV 0x450f01 78, 15, 0c 2 hw buttons + * Asus G46VW 0x460f02 00, 18, 0c 2 hw buttons + * Asus G750JX 0x360f00 00, 16, 0c 2 hw buttons ++ * Asus TP500LN 0x381f17 10, 14, 0e clickpad ++ * Asus X750JN 0x381f17 10, 14, 0e clickpad + * Asus UX31 0x361f00 20, 15, 0e clickpad + * Asus UX32VD 0x361f02 00, 15, 0e clickpad + * Avatar AVIU-145A2 0x361f00 ? clickpad +@@ -1635,6 +1652,11 @@ int elantech_init(struct psmouse *psmous + goto init_fail; + } + ++ if (etd->fw_version == 0x381f17) { ++ etd->original_set_rate = psmouse->set_rate; ++ psmouse->set_rate = elantech_set_rate_restore_reg_07; ++ } ++ + if (elantech_set_input_params(psmouse)) { + psmouse_err(psmouse, "failed to query touchpad range.\n"); + goto init_fail; +--- a/drivers/input/mouse/elantech.h ++++ b/drivers/input/mouse/elantech.h +@@ -142,6 +142,7 @@ struct elantech_data { + struct finger_pos mt[ETP_MAX_FINGERS]; + unsigned char parity[256]; + int (*send_cmd)(struct psmouse *psmouse, unsigned char c, unsigned char *param); ++ void (*original_set_rate)(struct psmouse *psmouse, unsigned int rate); + }; + + #ifdef CONFIG_MOUSE_PS2_ELANTECH diff --git a/queue-3.19/mfd-core-fix-platform-device-name-collisions.patch b/queue-3.19/mfd-core-fix-platform-device-name-collisions.patch new file mode 100644 index 00000000000..3249a3f721a --- /dev/null +++ b/queue-3.19/mfd-core-fix-platform-device-name-collisions.patch @@ -0,0 +1,47 @@ +From a77c50b44cfb663ad03faba9800fec19bdf83577 Mon Sep 17 00:00:00 2001 +From: Johan Hovold +Date: Wed, 25 Mar 2015 12:07:05 +0100 +Subject: mfd: core: Fix platform-device name collisions + +From: Johan Hovold + +commit a77c50b44cfb663ad03faba9800fec19bdf83577 upstream. + +Since commit 6e3f62f0793e ("mfd: core: Fix platform-device id +generation") we honour PLATFORM_DEVID_AUTO and PLATFORM_DEVID_NONE when +registering mfd-devices. + +Unfortunately, some mfd-drivers rely on the old behaviour of generating +platform-device ids by adding the cell id also to the special value of +PLATFORM_DEVID_NONE. The resulting platform ids are not only used to +generate device-unique names, but are also used instead of the cell id +to identify cells when probing subdevices. + +These drivers should be updated to use PLATFORM_DEVID_AUTO, which would +also allow more than one device to be registered without resorting to +hacks (see for example wm831x), but lets fix the regression first by +partially reverting the above mentioned commit with respect to +PLATFORM_DEVID_NONE. + +Fixes: 6e3f62f0793e ("mfd: core: Fix platform-device id generation") +Reported-by: Bartlomiej Zolnierkiewicz +Signed-off-by: Johan Hovold +Acked-by: Bartlomiej Zolnierkiewicz +Signed-off-by: Lee Jones +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/mfd/mfd-core.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/mfd/mfd-core.c ++++ b/drivers/mfd/mfd-core.c +@@ -128,7 +128,7 @@ static int mfd_add_device(struct device + int platform_id; + int r; + +- if (id < 0) ++ if (id == PLATFORM_DEVID_AUTO) + platform_id = id; + else + platform_id = id + cell->id; diff --git a/queue-3.19/nfc-st21nfcb-retry-i2c_master_send-if-it-returns-a-negative-value.patch b/queue-3.19/nfc-st21nfcb-retry-i2c_master_send-if-it-returns-a-negative-value.patch new file mode 100644 index 00000000000..90c30bccb2f --- /dev/null +++ b/queue-3.19/nfc-st21nfcb-retry-i2c_master_send-if-it-returns-a-negative-value.patch @@ -0,0 +1,42 @@ +From d4a41d10b2cb5890aeda6b2912973b2a754b05b1 Mon Sep 17 00:00:00 2001 +From: Christophe Ricard +Date: Tue, 31 Mar 2015 08:02:15 +0200 +Subject: NFC: st21nfcb: Retry i2c_master_send if it returns a negative value + +From: Christophe Ricard + +commit d4a41d10b2cb5890aeda6b2912973b2a754b05b1 upstream. + +i2c_master_send may return many negative values different than +-EREMOTEIO. +In case an i2c transaction is NACK'ed, on raspberry pi B+ +kernel 3.18, -EIO is generated instead. + +Signed-off-by: Christophe Ricard +Signed-off-by: Samuel Ortiz +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/nfc/st21nfcb/i2c.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/nfc/st21nfcb/i2c.c ++++ b/drivers/nfc/st21nfcb/i2c.c +@@ -109,7 +109,7 @@ static int st21nfcb_nci_i2c_write(void * + return phy->ndlc->hard_fault; + + r = i2c_master_send(client, skb->data, skb->len); +- if (r == -EREMOTEIO) { /* Retry, chip was in standby */ ++ if (r < 0) { /* Retry, chip was in standby */ + usleep_range(1000, 4000); + r = i2c_master_send(client, skb->data, skb->len); + } +@@ -148,7 +148,7 @@ static int st21nfcb_nci_i2c_read(struct + struct i2c_client *client = phy->i2c_dev; + + r = i2c_master_recv(client, buf, ST21NFCB_NCI_I2C_MIN_SIZE); +- if (r == -EREMOTEIO) { /* Retry, chip was in standby */ ++ if (r < 0) { /* Retry, chip was in standby */ + usleep_range(1000, 4000); + r = i2c_master_recv(client, buf, ST21NFCB_NCI_I2C_MIN_SIZE); + } diff --git a/queue-3.19/ptrace-fix-race-between-ptrace_resume-and-wait_task_stopped.patch b/queue-3.19/ptrace-fix-race-between-ptrace_resume-and-wait_task_stopped.patch new file mode 100644 index 00000000000..68eec6667f6 --- /dev/null +++ b/queue-3.19/ptrace-fix-race-between-ptrace_resume-and-wait_task_stopped.patch @@ -0,0 +1,115 @@ +From b72c186999e689cb0b055ab1c7b3cd8fffbeb5ed Mon Sep 17 00:00:00 2001 +From: Oleg Nesterov +Date: Thu, 16 Apr 2015 12:47:29 -0700 +Subject: ptrace: fix race between ptrace_resume() and wait_task_stopped() + +From: Oleg Nesterov + +commit b72c186999e689cb0b055ab1c7b3cd8fffbeb5ed upstream. + +ptrace_resume() is called when the tracee is still __TASK_TRACED. We set +tracee->exit_code and then wake_up_state() changes tracee->state. If the +tracer's sub-thread does wait() in between, task_stopped_code(ptrace => T) +wrongly looks like another report from tracee. + +This confuses debugger, and since wait_task_stopped() clears ->exit_code +the tracee can miss a signal. + +Test-case: + + #include + #include + #include + #include + #include + #include + + int pid; + + void *waiter(void *arg) + { + int stat; + + for (;;) { + assert(pid == wait(&stat)); + assert(WIFSTOPPED(stat)); + if (WSTOPSIG(stat) == SIGHUP) + continue; + + assert(WSTOPSIG(stat) == SIGCONT); + printf("ERR! extra/wrong report:%x\n", stat); + } + } + + int main(void) + { + pthread_t thread; + + pid = fork(); + if (!pid) { + assert(ptrace(PTRACE_TRACEME, 0,0,0) == 0); + for (;;) + kill(getpid(), SIGHUP); + } + + assert(pthread_create(&thread, NULL, waiter, NULL) == 0); + + for (;;) + ptrace(PTRACE_CONT, pid, 0, SIGCONT); + + return 0; + } + +Note for stable: the bug is very old, but without 9899d11f6544 "ptrace: +ensure arch_ptrace/ptrace_request can never race with SIGKILL" the fix +should use lock_task_sighand(child). + +Signed-off-by: Oleg Nesterov +Reported-by: Pavel Labath +Tested-by: Pavel Labath +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + kernel/ptrace.c | 20 ++++++++++++++++++++ + 1 file changed, 20 insertions(+) + +--- a/kernel/ptrace.c ++++ b/kernel/ptrace.c +@@ -697,6 +697,8 @@ static int ptrace_peek_siginfo(struct ta + static int ptrace_resume(struct task_struct *child, long request, + unsigned long data) + { ++ bool need_siglock; ++ + if (!valid_signal(data)) + return -EIO; + +@@ -724,8 +726,26 @@ static int ptrace_resume(struct task_str + user_disable_single_step(child); + } + ++ /* ++ * Change ->exit_code and ->state under siglock to avoid the race ++ * with wait_task_stopped() in between; a non-zero ->exit_code will ++ * wrongly look like another report from tracee. ++ * ++ * Note that we need siglock even if ->exit_code == data and/or this ++ * status was not reported yet, the new status must not be cleared by ++ * wait_task_stopped() after resume. ++ * ++ * If data == 0 we do not care if wait_task_stopped() reports the old ++ * status and clears the code too; this can't race with the tracee, it ++ * takes siglock after resume. ++ */ ++ need_siglock = data && !thread_group_empty(current); ++ if (need_siglock) ++ spin_lock_irq(&child->sighand->siglock); + child->exit_code = data; + wake_up_state(child, __TASK_TRACED); ++ if (need_siglock) ++ spin_unlock_irq(&child->sighand->siglock); + + return 0; + } diff --git a/queue-3.19/rtlwifi-rtl8192cu-add-new-device-id.patch b/queue-3.19/rtlwifi-rtl8192cu-add-new-device-id.patch new file mode 100644 index 00000000000..68deec6e9fa --- /dev/null +++ b/queue-3.19/rtlwifi-rtl8192cu-add-new-device-id.patch @@ -0,0 +1,33 @@ +From 9374e7d2fdcad3c36dafc8d3effd554bc702c4b6 Mon Sep 17 00:00:00 2001 +From: Marek Vasut +Date: Thu, 26 Mar 2015 02:16:06 +0100 +Subject: rtlwifi: rtl8192cu: Add new device ID + +From: Marek Vasut + +commit 9374e7d2fdcad3c36dafc8d3effd554bc702c4b6 upstream. + +Add new ID for ASUS N10 WiFi dongle. + +Signed-off-by: Marek Vasut +Tested-by: Marek Vasut +Cc: Larry Finger +Cc: John W. Linville +Acked-by: Larry Finger +Signed-off-by: Kalle Valo +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/net/wireless/rtlwifi/rtl8192cu/sw.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c ++++ b/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c +@@ -321,6 +321,7 @@ static struct usb_device_id rtl8192c_usb + {RTL_USB_DEVICE(0x07b8, 0x8188, rtl92cu_hal_cfg)}, /*Abocom - Abocom*/ + {RTL_USB_DEVICE(0x07b8, 0x8189, rtl92cu_hal_cfg)}, /*Funai - Abocom*/ + {RTL_USB_DEVICE(0x0846, 0x9041, rtl92cu_hal_cfg)}, /*NetGear WNA1000M*/ ++ {RTL_USB_DEVICE(0x0b05, 0x17ba, rtl92cu_hal_cfg)}, /*ASUS-Edimax*/ + {RTL_USB_DEVICE(0x0bda, 0x5088, rtl92cu_hal_cfg)}, /*Thinkware-CC&C*/ + {RTL_USB_DEVICE(0x0df6, 0x0052, rtl92cu_hal_cfg)}, /*Sitecom - Edimax*/ + {RTL_USB_DEVICE(0x0df6, 0x005c, rtl92cu_hal_cfg)}, /*Sitecom - Edimax*/ diff --git a/queue-3.19/rtlwifi-rtl8192cu-add-new-usb-id.patch b/queue-3.19/rtlwifi-rtl8192cu-add-new-usb-id.patch new file mode 100644 index 00000000000..9c63678a35d --- /dev/null +++ b/queue-3.19/rtlwifi-rtl8192cu-add-new-usb-id.patch @@ -0,0 +1,29 @@ +From 2f92b314f4daff2117847ac5343c54d3d041bf78 Mon Sep 17 00:00:00 2001 +From: Larry Finger +Date: Mon, 23 Mar 2015 18:14:10 -0500 +Subject: rtlwifi: rtl8192cu: Add new USB ID + +From: Larry Finger + +commit 2f92b314f4daff2117847ac5343c54d3d041bf78 upstream. + +USB ID 2001:330d is used for a D-Link DWA-131. + +Signed-off-by: Larry Finger +Signed-off-by: Kalle Valo +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/net/wireless/rtlwifi/rtl8192cu/sw.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c ++++ b/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c +@@ -377,6 +377,7 @@ static struct usb_device_id rtl8192c_usb + {RTL_USB_DEVICE(0x2001, 0x3307, rtl92cu_hal_cfg)}, /*D-Link-Cameo*/ + {RTL_USB_DEVICE(0x2001, 0x3309, rtl92cu_hal_cfg)}, /*D-Link-Alpha*/ + {RTL_USB_DEVICE(0x2001, 0x330a, rtl92cu_hal_cfg)}, /*D-Link-Alpha*/ ++ {RTL_USB_DEVICE(0x2001, 0x330d, rtl92cu_hal_cfg)}, /*D-Link DWA-131 */ + {RTL_USB_DEVICE(0x2019, 0xab2b, rtl92cu_hal_cfg)}, /*Planex -Abocom*/ + {RTL_USB_DEVICE(0x20f4, 0x624d, rtl92cu_hal_cfg)}, /*TRENDNet*/ + {RTL_USB_DEVICE(0x2357, 0x0100, rtl92cu_hal_cfg)}, /*TP-Link WN8200ND*/ diff --git a/queue-3.19/series b/queue-3.19/series index 23380d8de81..b44bfaf59ed 100644 --- a/queue-3.19/series +++ b/queue-3.19/series @@ -82,3 +82,11 @@ alsa-emu10k1-don-t-deadlock-in-proc-functions.patch alsa-hda-realtek-enable-the-alc292-dock-fixup-on-the-thinkpad-t450.patch alsa-hda-fix-num_steps-0-error-on-alc256.patch alsa-hda-realtek-fix-headphone-mic-doesn-t-recording-for-alc256.patch +input-elantech-fix-absolute-mode-setting-on-some-asus-laptops.patch +mfd-core-fix-platform-device-name-collisions.patch +fs-binfmt_elf.c-fix-bug-in-loading-of-pie-binaries.patch +ptrace-fix-race-between-ptrace_resume-and-wait_task_stopped.patch +nfc-st21nfcb-retry-i2c_master_send-if-it-returns-a-negative-value.patch +rtlwifi-rtl8192cu-add-new-usb-id.patch +rtlwifi-rtl8192cu-add-new-device-id.patch +ext4-make-fsync-to-sync-parent-dir-in-no-journal-for-real-this-time.patch