Update linux-drd to 3.14-5
This commit is contained in:
parent
bee882c367
commit
746ff07616
14 changed files with 1821 additions and 97 deletions
|
@ -1,7 +1,7 @@
|
|||
From 5d77ba2d26110c678b40fd723866a17d4036de12 Mon Sep 17 00:00:00 2001
|
||||
From: Lucas De Marchi <lucas.demarchi@intel.com>
|
||||
Date: Tue, 18 Feb 2014 02:19:26 -0300
|
||||
Subject: [PATCH 1/6] Bluetooth: allocate static minor for vhci
|
||||
Subject: [PATCH 01/10] Bluetooth: allocate static minor for vhci
|
||||
|
||||
Commit bfacbb9 (Bluetooth: Use devname:vhci module alias for virtual HCI
|
||||
driver) added the module alias to hci_vhci module so it's possible to
|
||||
|
@ -70,5 +70,5 @@ index 3737f72..7bb6148 100644
|
|||
#define DMAPI_MINOR 140 /* DMAPI */
|
||||
#define NVRAM_MINOR 144
|
||||
--
|
||||
1.9.1
|
||||
1.9.2
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
From 9bc5b710f5957763d6944f38143b627d127c15ff Mon Sep 17 00:00:00 2001
|
||||
From: Tom Gundersen <teg@jklm.no>
|
||||
Date: Mon, 3 Feb 2014 11:14:13 +1030
|
||||
Subject: [PATCH 2/6] module: allow multiple calls to MODULE_DEVICE_TABLE() per
|
||||
module
|
||||
Subject: [PATCH 02/10] module: allow multiple calls to MODULE_DEVICE_TABLE()
|
||||
per module
|
||||
|
||||
Commit 78551277e4df5: "Input: i8042 - add PNP modaliases" had a bug, where the
|
||||
second call to MODULE_DEVICE_TABLE() overrode the first resulting in not all
|
||||
|
@ -89,5 +89,5 @@ index 25e5cb0..ce16404 100644
|
|||
/* Handle all-NULL symbols allocated into .bss */
|
||||
if (info->sechdrs[get_secindex(info, sym)].sh_type & SHT_NOBITS) {
|
||||
--
|
||||
1.9.1
|
||||
1.9.2
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From 06d2e746733a83469944481cb7f4fb1c7134a8ce Mon Sep 17 00:00:00 2001
|
||||
From: Rusty Russell <rusty@rustcorp.com.au>
|
||||
Date: Mon, 3 Feb 2014 11:15:13 +1030
|
||||
Subject: [PATCH 3/6] module: remove MODULE_GENERIC_TABLE
|
||||
Subject: [PATCH 03/10] module: remove MODULE_GENERIC_TABLE
|
||||
|
||||
MODULE_DEVICE_TABLE() calles MODULE_GENERIC_TABLE(); make it do the
|
||||
work directly. This also removes a wart introduced in the last patch,
|
||||
|
@ -71,5 +71,5 @@ index ad18f60..5686b37 100644
|
|||
/* Version of form [<epoch>:]<version>[-<extra-version>].
|
||||
* Or for CVS/RCS ID version, everything but the number is stripped.
|
||||
--
|
||||
1.9.1
|
||||
1.9.2
|
||||
|
||||
|
|
|
@ -1,60 +0,0 @@
|
|||
From 268984331a319f47179d6f0b62aa0e312fe4497d Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Thomas=20B=C3=A4chler?= <thomas@archlinux.org>
|
||||
Date: Tue, 1 Apr 2014 01:15:34 +0200
|
||||
Subject: [PATCH 4/6] Revert "syscalls.h: use gcc alias instead of assembler
|
||||
aliases for syscalls"
|
||||
|
||||
This reverts commit 83460ec8dcac14142e7860a01fa59c267ac4657c.
|
||||
|
||||
For details, see https://lkml.org/lkml/2014/1/26/22.
|
||||
---
|
||||
include/linux/compat.h | 4 ++--
|
||||
include/linux/syscalls.h | 4 ++--
|
||||
2 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/include/linux/compat.h b/include/linux/compat.h
|
||||
index 3f448c6..90c199f 100644
|
||||
--- a/include/linux/compat.h
|
||||
+++ b/include/linux/compat.h
|
||||
@@ -41,14 +41,14 @@
|
||||
COMPAT_SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
|
||||
|
||||
#define COMPAT_SYSCALL_DEFINEx(x, name, ...) \
|
||||
- asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))\
|
||||
- __attribute__((alias(__stringify(compat_SyS##name)))); \
|
||||
+ asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
|
||||
static inline long C_SYSC##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
|
||||
asmlinkage long compat_SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__));\
|
||||
asmlinkage long compat_SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__))\
|
||||
{ \
|
||||
return C_SYSC##name(__MAP(x,__SC_DELOUSE,__VA_ARGS__)); \
|
||||
} \
|
||||
+ SYSCALL_ALIAS(compat_sys##name, compat_SyS##name); \
|
||||
static inline long C_SYSC##name(__MAP(x,__SC_DECL,__VA_ARGS__))
|
||||
|
||||
#ifndef compat_user_stack_pointer
|
||||
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
|
||||
index a747a77..9e7cb9d 100644
|
||||
--- a/include/linux/syscalls.h
|
||||
+++ b/include/linux/syscalls.h
|
||||
@@ -185,8 +185,7 @@ extern struct trace_event_functions exit_syscall_print_funcs;
|
||||
|
||||
#define __PROTECT(...) asmlinkage_protect(__VA_ARGS__)
|
||||
#define __SYSCALL_DEFINEx(x, name, ...) \
|
||||
- asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \
|
||||
- __attribute__((alias(__stringify(SyS##name)))); \
|
||||
+ asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)); \
|
||||
static inline long SYSC##name(__MAP(x,__SC_DECL,__VA_ARGS__)); \
|
||||
asmlinkage long SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__)); \
|
||||
asmlinkage long SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
|
||||
@@ -196,6 +195,7 @@ extern struct trace_event_functions exit_syscall_print_funcs;
|
||||
__PROTECT(x, ret,__MAP(x,__SC_ARGS,__VA_ARGS__)); \
|
||||
return ret; \
|
||||
} \
|
||||
+ SYSCALL_ALIAS(sys##name, SyS##name); \
|
||||
static inline long SYSC##name(__MAP(x,__SC_DECL,__VA_ARGS__))
|
||||
|
||||
asmlinkage long sys_time(time_t __user *tloc);
|
||||
--
|
||||
1.9.1
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
From 0de4ffcad031c1d0b8422ebcceb9caa80995a73e Mon Sep 17 00:00:00 2001
|
||||
From 835a463e190af87a36df681863db7c3ea7ba0d66 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Thomas=20B=C3=A4chler?= <thomas@archlinux.org>
|
||||
Date: Thu, 3 Apr 2014 21:55:37 +0200
|
||||
Subject: [PATCH 5/6] fs: Don't return 0 from get_anon_bdev
|
||||
Subject: [PATCH 04/10] fs: Don't return 0 from get_anon_bdev
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
@ -40,5 +40,5 @@ index 80d5cf2..7624267 100644
|
|||
int get_anon_bdev(dev_t *p)
|
||||
{
|
||||
--
|
||||
1.9.1
|
||||
1.9.2
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
From d02e0fc02f3cfa078e301698f0475adcdf6f72ab Mon Sep 17 00:00:00 2001
|
||||
From 71d4f3022d1f625d94187f7cda682d2233a692d8 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Thomas=20B=C3=A4chler?= <thomas@archlinux.org>
|
||||
Date: Thu, 3 Apr 2014 23:59:49 +0200
|
||||
Subject: [PATCH 6/6] Revert "Bluetooth: Enable autosuspend for Intel Bluetooth
|
||||
device"
|
||||
Subject: [PATCH 05/10] Revert "Bluetooth: Enable autosuspend for Intel
|
||||
Bluetooth device"
|
||||
|
||||
This reverts commit d2bee8fb6e18f6116aada39851918473761f7ab1.
|
||||
|
||||
|
@ -29,5 +29,5 @@ index baeaaed..6d6e09e 100644
|
|||
/* Interface numbers are hardcoded in the specification */
|
||||
data->isoc = usb_ifnum_to_if(data->udev, 1);
|
||||
--
|
||||
1.9.1
|
||||
1.9.2
|
||||
|
1360
linux-drd/0006-genksyms-fix-typeof-handling.patch
Normal file
1360
linux-drd/0006-genksyms-fix-typeof-handling.patch
Normal file
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,110 @@
|
|||
From 720a9dbf61c88bd57d6f8198ed8ccb2bd4a6abd8 Mon Sep 17 00:00:00 2001
|
||||
From: Matt Fleming <matt@console-pimps.org>
|
||||
Date: Wed, 9 Apr 2014 10:33:49 +0200
|
||||
Subject: [PATCH 07/10] x86/efi: Correct EFI boot stub use of code32_start
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
code32_start should point at the start of the protected mode code, and
|
||||
*not* at the beginning of the bzImage. This is much easier to do in
|
||||
assembly so document that callers of make_boot_params() need to fill out
|
||||
code32_start.
|
||||
|
||||
The fallout from this bug is that we would end up relocating the image
|
||||
but copying the image at some offset, resulting in what appeared to be
|
||||
memory corruption.
|
||||
|
||||
Reported-by: Thomas Bächler <thomas@archlinux.org>
|
||||
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
||||
---
|
||||
arch/x86/boot/compressed/eboot.c | 5 +++--
|
||||
arch/x86/boot/compressed/head_32.S | 14 ++++++++------
|
||||
arch/x86/boot/compressed/head_64.S | 9 +++------
|
||||
3 files changed, 14 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c
|
||||
index a7677ba..78cbb2d 100644
|
||||
--- a/arch/x86/boot/compressed/eboot.c
|
||||
+++ b/arch/x86/boot/compressed/eboot.c
|
||||
@@ -425,6 +425,9 @@ void setup_graphics(struct boot_params *boot_params)
|
||||
* Because the x86 boot code expects to be passed a boot_params we
|
||||
* need to create one ourselves (usually the bootloader would create
|
||||
* one for us).
|
||||
+ *
|
||||
+ * The caller is responsible for filling out ->code32_start in the
|
||||
+ * returned boot_params.
|
||||
*/
|
||||
struct boot_params *make_boot_params(void *handle, efi_system_table_t *_table)
|
||||
{
|
||||
@@ -483,8 +486,6 @@ struct boot_params *make_boot_params(void *handle, efi_system_table_t *_table)
|
||||
hdr->vid_mode = 0xffff;
|
||||
hdr->boot_flag = 0xAA55;
|
||||
|
||||
- hdr->code32_start = (__u64)(unsigned long)image->image_base;
|
||||
-
|
||||
hdr->type_of_loader = 0x21;
|
||||
|
||||
/* Convert unicode cmdline to ascii */
|
||||
diff --git a/arch/x86/boot/compressed/head_32.S b/arch/x86/boot/compressed/head_32.S
|
||||
index 9116aac..f45ab7a 100644
|
||||
--- a/arch/x86/boot/compressed/head_32.S
|
||||
+++ b/arch/x86/boot/compressed/head_32.S
|
||||
@@ -50,6 +50,13 @@ ENTRY(efi_pe_entry)
|
||||
pushl %eax
|
||||
pushl %esi
|
||||
pushl %ecx
|
||||
+
|
||||
+ call reloc
|
||||
+reloc:
|
||||
+ popl %ecx
|
||||
+ subl reloc, %ecx
|
||||
+ movl %ecx, BP_code32_start(%eax)
|
||||
+
|
||||
sub $0x4, %esp
|
||||
|
||||
ENTRY(efi_stub_entry)
|
||||
@@ -63,12 +70,7 @@ ENTRY(efi_stub_entry)
|
||||
hlt
|
||||
jmp 1b
|
||||
2:
|
||||
- call 3f
|
||||
-3:
|
||||
- popl %eax
|
||||
- subl $3b, %eax
|
||||
- subl BP_pref_address(%esi), %eax
|
||||
- add BP_code32_start(%esi), %eax
|
||||
+ movl BP_code32_start(%esi), %eax
|
||||
leal preferred_addr(%eax), %eax
|
||||
jmp *%eax
|
||||
|
||||
diff --git a/arch/x86/boot/compressed/head_64.S b/arch/x86/boot/compressed/head_64.S
|
||||
index c5c1ae0..b10fa66 100644
|
||||
--- a/arch/x86/boot/compressed/head_64.S
|
||||
+++ b/arch/x86/boot/compressed/head_64.S
|
||||
@@ -217,6 +217,8 @@ ENTRY(efi_pe_entry)
|
||||
cmpq $0,%rax
|
||||
je 1f
|
||||
mov %rax, %rdx
|
||||
+ leaq startup_32(%rip), %rax
|
||||
+ movl %eax, BP_code32_start(%rdx)
|
||||
popq %rsi
|
||||
popq %rdi
|
||||
|
||||
@@ -230,12 +232,7 @@ ENTRY(efi_stub_entry)
|
||||
hlt
|
||||
jmp 1b
|
||||
2:
|
||||
- call 3f
|
||||
-3:
|
||||
- popq %rax
|
||||
- subq $3b, %rax
|
||||
- subq BP_pref_address(%rsi), %rax
|
||||
- add BP_code32_start(%esi), %eax
|
||||
+ movl BP_code32_start(%esi), %eax
|
||||
leaq preferred_addr(%rax), %rax
|
||||
jmp *%rax
|
||||
|
||||
--
|
||||
1.9.2
|
||||
|
|
@ -0,0 +1,94 @@
|
|||
From aafcd8f8692fb9e389608c1efad2e57c0bbb9362 Mon Sep 17 00:00:00 2001
|
||||
From: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
Date: Tue, 8 Apr 2014 15:30:07 -0700
|
||||
Subject: [PATCH 08/10] futex: avoid race between requeue and wake
|
||||
|
||||
commit 69cd9eba38867a493a043bb13eb9b33cad5f1a9a upstream.
|
||||
|
||||
Jan Stancek reported:
|
||||
"pthread_cond_broadcast/4-1.c testcase from openposix testsuite (LTP)
|
||||
occasionally fails, because some threads fail to wake up.
|
||||
|
||||
Testcase creates 5 threads, which are all waiting on same condition.
|
||||
Main thread then calls pthread_cond_broadcast() without holding mutex,
|
||||
which calls:
|
||||
|
||||
futex(uaddr1, FUTEX_CMP_REQUEUE_PRIVATE, 1, 2147483647, uaddr2, ..)
|
||||
|
||||
This immediately wakes up single thread A, which unlocks mutex and
|
||||
tries to wake up another thread:
|
||||
|
||||
futex(uaddr2, FUTEX_WAKE_PRIVATE, 1)
|
||||
|
||||
If thread A manages to call futex_wake() before any waiters are
|
||||
requeued for uaddr2, no other thread is woken up"
|
||||
|
||||
The ordering constraints for the hash bucket waiter counting are that
|
||||
the waiter counts have to be incremented _before_ getting the spinlock
|
||||
(because the spinlock acts as part of the memory barrier), but the
|
||||
"requeue" operation didn't honor those rules, and nobody had even
|
||||
thought about that case.
|
||||
|
||||
This fairly simple patch just increments the waiter count for the target
|
||||
hash bucket (hb2) when requeing a futex before taking the locks. It
|
||||
then decrements them again after releasing the lock - the code that
|
||||
actually moves the futex(es) between hash buckets will do the additional
|
||||
required waiter count housekeeping.
|
||||
|
||||
Reported-and-tested-by: Jan Stancek <jstancek@redhat.com>
|
||||
Acked-by: Davidlohr Bueso <davidlohr@hp.com>
|
||||
Cc: Peter Zijlstra <peterz@infradead.org>
|
||||
Cc: Thomas Gleixner <tglx@linutronix.de>
|
||||
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
kernel/futex.c | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/kernel/futex.c b/kernel/futex.c
|
||||
index 08ec814..16b1f2c 100644
|
||||
--- a/kernel/futex.c
|
||||
+++ b/kernel/futex.c
|
||||
@@ -1450,6 +1450,7 @@ retry:
|
||||
hb2 = hash_futex(&key2);
|
||||
|
||||
retry_private:
|
||||
+ hb_waiters_inc(hb2);
|
||||
double_lock_hb(hb1, hb2);
|
||||
|
||||
if (likely(cmpval != NULL)) {
|
||||
@@ -1459,6 +1460,7 @@ retry_private:
|
||||
|
||||
if (unlikely(ret)) {
|
||||
double_unlock_hb(hb1, hb2);
|
||||
+ hb_waiters_dec(hb2);
|
||||
|
||||
ret = get_user(curval, uaddr1);
|
||||
if (ret)
|
||||
@@ -1508,6 +1510,7 @@ retry_private:
|
||||
break;
|
||||
case -EFAULT:
|
||||
double_unlock_hb(hb1, hb2);
|
||||
+ hb_waiters_dec(hb2);
|
||||
put_futex_key(&key2);
|
||||
put_futex_key(&key1);
|
||||
ret = fault_in_user_writeable(uaddr2);
|
||||
@@ -1517,6 +1520,7 @@ retry_private:
|
||||
case -EAGAIN:
|
||||
/* The owner was exiting, try again. */
|
||||
double_unlock_hb(hb1, hb2);
|
||||
+ hb_waiters_dec(hb2);
|
||||
put_futex_key(&key2);
|
||||
put_futex_key(&key1);
|
||||
cond_resched();
|
||||
@@ -1592,6 +1596,7 @@ retry_private:
|
||||
|
||||
out_unlock:
|
||||
double_unlock_hb(hb1, hb2);
|
||||
+ hb_waiters_dec(hb2);
|
||||
|
||||
/*
|
||||
* drop_futex_key_refs() must be called outside the spinlocks. During
|
||||
--
|
||||
1.9.2
|
||||
|
125
linux-drd/0009-iwlwifi-mvm-rs-fix-search-cycle-rules.patch
Normal file
125
linux-drd/0009-iwlwifi-mvm-rs-fix-search-cycle-rules.patch
Normal file
|
@ -0,0 +1,125 @@
|
|||
From 06af061dd673d749d5516bea41e2becb034e00b8 Mon Sep 17 00:00:00 2001
|
||||
From: Eyal Shapira <eyal@wizery.com>
|
||||
Date: Sun, 16 Mar 2014 05:23:21 +0200
|
||||
Subject: [PATCH 09/10] iwlwifi: mvm: rs: fix search cycle rules
|
||||
|
||||
commit 8930b05090acd321b1fc7c642528c697cb105c42 upstream.
|
||||
|
||||
We should explore all possible columns when searching to be
|
||||
as resilient as possible to changing conditions. This fixes
|
||||
for example a scenario where even after a sudden creation of
|
||||
rssi difference between the 2 antennas we would keep doing MIMO
|
||||
at a low rate instead of switching to SISO at a higher rate using
|
||||
the better antenna which was the optimal configuration.
|
||||
|
||||
Signed-off-by: Eyal Shapira <eyalx.shapira@intel.com>
|
||||
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
drivers/net/wireless/iwlwifi/mvm/rs.c | 36 +++++++++++++++++------------------
|
||||
1 file changed, 18 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/iwlwifi/mvm/rs.c b/drivers/net/wireless/iwlwifi/mvm/rs.c
|
||||
index 6abf74e..5bc8715 100644
|
||||
--- a/drivers/net/wireless/iwlwifi/mvm/rs.c
|
||||
+++ b/drivers/net/wireless/iwlwifi/mvm/rs.c
|
||||
@@ -211,9 +211,9 @@ static const struct rs_tx_column rs_tx_columns[] = {
|
||||
.next_columns = {
|
||||
RS_COLUMN_LEGACY_ANT_B,
|
||||
RS_COLUMN_SISO_ANT_A,
|
||||
+ RS_COLUMN_SISO_ANT_B,
|
||||
RS_COLUMN_MIMO2,
|
||||
- RS_COLUMN_INVALID,
|
||||
- RS_COLUMN_INVALID,
|
||||
+ RS_COLUMN_MIMO2_SGI,
|
||||
},
|
||||
},
|
||||
[RS_COLUMN_LEGACY_ANT_B] = {
|
||||
@@ -221,10 +221,10 @@ static const struct rs_tx_column rs_tx_columns[] = {
|
||||
.ant = ANT_B,
|
||||
.next_columns = {
|
||||
RS_COLUMN_LEGACY_ANT_A,
|
||||
+ RS_COLUMN_SISO_ANT_A,
|
||||
RS_COLUMN_SISO_ANT_B,
|
||||
RS_COLUMN_MIMO2,
|
||||
- RS_COLUMN_INVALID,
|
||||
- RS_COLUMN_INVALID,
|
||||
+ RS_COLUMN_MIMO2_SGI,
|
||||
},
|
||||
},
|
||||
[RS_COLUMN_SISO_ANT_A] = {
|
||||
@@ -234,8 +234,8 @@ static const struct rs_tx_column rs_tx_columns[] = {
|
||||
RS_COLUMN_SISO_ANT_B,
|
||||
RS_COLUMN_MIMO2,
|
||||
RS_COLUMN_SISO_ANT_A_SGI,
|
||||
- RS_COLUMN_INVALID,
|
||||
- RS_COLUMN_INVALID,
|
||||
+ RS_COLUMN_SISO_ANT_B_SGI,
|
||||
+ RS_COLUMN_MIMO2_SGI,
|
||||
},
|
||||
.checks = {
|
||||
rs_siso_allow,
|
||||
@@ -248,8 +248,8 @@ static const struct rs_tx_column rs_tx_columns[] = {
|
||||
RS_COLUMN_SISO_ANT_A,
|
||||
RS_COLUMN_MIMO2,
|
||||
RS_COLUMN_SISO_ANT_B_SGI,
|
||||
- RS_COLUMN_INVALID,
|
||||
- RS_COLUMN_INVALID,
|
||||
+ RS_COLUMN_SISO_ANT_A_SGI,
|
||||
+ RS_COLUMN_MIMO2_SGI,
|
||||
},
|
||||
.checks = {
|
||||
rs_siso_allow,
|
||||
@@ -263,8 +263,8 @@ static const struct rs_tx_column rs_tx_columns[] = {
|
||||
RS_COLUMN_SISO_ANT_B_SGI,
|
||||
RS_COLUMN_MIMO2_SGI,
|
||||
RS_COLUMN_SISO_ANT_A,
|
||||
- RS_COLUMN_INVALID,
|
||||
- RS_COLUMN_INVALID,
|
||||
+ RS_COLUMN_SISO_ANT_B,
|
||||
+ RS_COLUMN_MIMO2,
|
||||
},
|
||||
.checks = {
|
||||
rs_siso_allow,
|
||||
@@ -279,8 +279,8 @@ static const struct rs_tx_column rs_tx_columns[] = {
|
||||
RS_COLUMN_SISO_ANT_A_SGI,
|
||||
RS_COLUMN_MIMO2_SGI,
|
||||
RS_COLUMN_SISO_ANT_B,
|
||||
- RS_COLUMN_INVALID,
|
||||
- RS_COLUMN_INVALID,
|
||||
+ RS_COLUMN_SISO_ANT_A,
|
||||
+ RS_COLUMN_MIMO2,
|
||||
},
|
||||
.checks = {
|
||||
rs_siso_allow,
|
||||
@@ -292,10 +292,10 @@ static const struct rs_tx_column rs_tx_columns[] = {
|
||||
.ant = ANT_AB,
|
||||
.next_columns = {
|
||||
RS_COLUMN_SISO_ANT_A,
|
||||
+ RS_COLUMN_SISO_ANT_B,
|
||||
+ RS_COLUMN_SISO_ANT_A_SGI,
|
||||
+ RS_COLUMN_SISO_ANT_B_SGI,
|
||||
RS_COLUMN_MIMO2_SGI,
|
||||
- RS_COLUMN_INVALID,
|
||||
- RS_COLUMN_INVALID,
|
||||
- RS_COLUMN_INVALID,
|
||||
},
|
||||
.checks = {
|
||||
rs_mimo_allow,
|
||||
@@ -307,10 +307,10 @@ static const struct rs_tx_column rs_tx_columns[] = {
|
||||
.sgi = true,
|
||||
.next_columns = {
|
||||
RS_COLUMN_SISO_ANT_A_SGI,
|
||||
+ RS_COLUMN_SISO_ANT_B_SGI,
|
||||
+ RS_COLUMN_SISO_ANT_A,
|
||||
+ RS_COLUMN_SISO_ANT_B,
|
||||
RS_COLUMN_MIMO2,
|
||||
- RS_COLUMN_INVALID,
|
||||
- RS_COLUMN_INVALID,
|
||||
- RS_COLUMN_INVALID,
|
||||
},
|
||||
.checks = {
|
||||
rs_mimo_allow,
|
||||
--
|
||||
1.9.2
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
From 784c4f0b18f89922ddc0fe21e5ec64cc370bb3f2 Mon Sep 17 00:00:00 2001
|
||||
From: Johannes Berg <johannes.berg@intel.com>
|
||||
Date: Wed, 19 Mar 2014 18:36:39 +0100
|
||||
Subject: [PATCH 10/10] iwlwifi: mvm: delay enabling smart FIFO until after
|
||||
beacon RX
|
||||
|
||||
If we have no beacon data before association, delay smart FIFO
|
||||
enablement until after we have this data.
|
||||
|
||||
Not doing so can cause association failures in extremely silent
|
||||
environments (usually only a shielded box/room) as beacon RX is
|
||||
not sent to the host immediately, and then the association time
|
||||
event ends without the host receiving any beacon even though it
|
||||
was on the air - it's just stuck on the FIFO.
|
||||
|
||||
Cc: <stable@vger.kernel.org> [3.14]
|
||||
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
||||
---
|
||||
drivers/net/wireless/iwlwifi/mvm/mac80211.c | 1 +
|
||||
drivers/net/wireless/iwlwifi/mvm/sf.c | 3 ++-
|
||||
2 files changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/iwlwifi/mvm/mac80211.c
|
||||
index c35b866..45e861e 100644
|
||||
--- a/drivers/net/wireless/iwlwifi/mvm/mac80211.c
|
||||
+++ b/drivers/net/wireless/iwlwifi/mvm/mac80211.c
|
||||
@@ -971,6 +971,7 @@ static void iwl_mvm_bss_info_changed_station(struct iwl_mvm *mvm,
|
||||
*/
|
||||
iwl_mvm_remove_time_event(mvm, mvmvif,
|
||||
&mvmvif->time_event_data);
|
||||
+ iwl_mvm_sf_update(mvm, vif, false);
|
||||
} else if (changes & (BSS_CHANGED_PS | BSS_CHANGED_P2P_PS |
|
||||
BSS_CHANGED_QOS)) {
|
||||
ret = iwl_mvm_power_update_mode(mvm, vif);
|
||||
diff --git a/drivers/net/wireless/iwlwifi/mvm/sf.c b/drivers/net/wireless/iwlwifi/mvm/sf.c
|
||||
index 8401627..88809b2 100644
|
||||
--- a/drivers/net/wireless/iwlwifi/mvm/sf.c
|
||||
+++ b/drivers/net/wireless/iwlwifi/mvm/sf.c
|
||||
@@ -274,7 +274,8 @@ int iwl_mvm_sf_update(struct iwl_mvm *mvm, struct ieee80211_vif *changed_vif,
|
||||
return -EINVAL;
|
||||
if (changed_vif->type != NL80211_IFTYPE_STATION) {
|
||||
new_state = SF_UNINIT;
|
||||
- } else if (changed_vif->bss_conf.assoc) {
|
||||
+ } else if (changed_vif->bss_conf.assoc &&
|
||||
+ changed_vif->bss_conf.dtim_period) {
|
||||
mvmvif = iwl_mvm_vif_from_mac80211(changed_vif);
|
||||
sta_id = mvmvif->ap_sta_id;
|
||||
new_state = SF_FULL_ON;
|
||||
--
|
||||
1.9.2
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
# $Id: PKGBUILD 209775 2014-04-03 22:58:09Z thomas $
|
||||
# $Id: PKGBUILD 210212 2014-04-11 22:01:40Z thomas $
|
||||
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
|
||||
# Maintainer: Thomas Baechler <thomas@archlinux.org>
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
|||
pkgbase=linux-drd # Build kernel with a different name
|
||||
_srcname=linux-3.14
|
||||
pkgver=3.14
|
||||
pkgrel=3
|
||||
pkgrel=5
|
||||
arch=('i686' 'x86_64')
|
||||
url="http://www.kernel.org/"
|
||||
license=('GPL2')
|
||||
|
@ -22,23 +22,31 @@ source=("https://www.kernel.org/pub/linux/kernel/v3.x/${_srcname}.tar.xz"
|
|||
'0001-Bluetooth-allocate-static-minor-for-vhci.patch'
|
||||
'0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch'
|
||||
'0003-module-remove-MODULE_GENERIC_TABLE.patch'
|
||||
'0004-Revert-syscalls.h-use-gcc-alias-instead-of-assembler.patch'
|
||||
'0005-fs-Don-t-return-0-from-get_anon_bdev.patch'
|
||||
'0006-Revert-Bluetooth-Enable-autosuspend-for-Intel-Blueto.patch'
|
||||
'aufs3-standalone::git://git.code.sf.net/p/aufs/aufs3-standalone#branch=aufs3.13'
|
||||
'0004-fs-Don-t-return-0-from-get_anon_bdev.patch'
|
||||
'0005-Revert-Bluetooth-Enable-autosuspend-for-Intel-Blueto.patch'
|
||||
'0006-genksyms-fix-typeof-handling.patch'
|
||||
'0007-x86-efi-Correct-EFI-boot-stub-use-of-code32_start.patch'
|
||||
'0008-futex-avoid-race-between-requeue-and-wake.patch'
|
||||
'0009-iwlwifi-mvm-rs-fix-search-cycle-rules.patch'
|
||||
'0010-iwlwifi-mvm-delay-enabling-smart-FIFO-until-after-be.patch'
|
||||
'aufs3-standalone::git://git.code.sf.net/p/aufs/aufs3-standalone#branch=aufs3.14'
|
||||
# 'aufs3-mmap.patch'
|
||||
)
|
||||
sha256sums=('61558aa490855f42b6340d1a1596be47454909629327c49a5e4e10268065dffa'
|
||||
'91b05561c96e09c8c3a4ea05fdab0745f578c4bb879feae25f552306bbe6522a'
|
||||
'736d0d27d5ddec10fbf2c0ae5f4fb17b041d2b2484af7175bc726898b58ed68a'
|
||||
'f2131f0f5a20a6cc65a987cf5363d08c343041c859686ceb4bb93d2d2a3d6b34'
|
||||
'a61e5aecd497d88bd3dc0d7be8c100f8f71095cb465a5ff252612c6a2118cd76'
|
||||
'f0d90e756f14533ee67afda280500511a62465b4f76adcc5effa95a40045179c'
|
||||
'faced4eb4c47c4eb1a9ee8a5bf8a7c4b49d6b4d78efbe426e410730e6267d182'
|
||||
'ad22f6e1a2869730828ddaf93da8b8a748421b7afdd34e1213566985fe7b01dd'
|
||||
'29e612a8dda2b2b8af116c16b546a0e1d159f249bfd9628d640cad0f61f0cc4f'
|
||||
'555133445de48e781ced3a450bcdf9bfbe4d66b118bbd5b28fea789fa023dd66'
|
||||
'dc1eca93dad93c9c015332d188f5a69508c2077536b8be653d2ff45f1b034941'
|
||||
'1f572e748d96403218e846ec469474f557f04d2f5ff137dd2a31fffa193f760e'
|
||||
'a413700adf3b45b7d3c18d2ffed390b9e5769cb361a9a0530f98bfff29fd0aef'
|
||||
'6d72e14552df59e6310f16c176806c408355951724cd5b48a47bf01591b8be02'
|
||||
'52dec83a8805a8642d74d764494acda863e0aa23e3d249e80d4b457e20a3fd29'
|
||||
'65d58f63215ee3c5f9c4fc6bce36fc5311a6c7dbdbe1ad29de40647b47ff9c0d'
|
||||
'1e1ae0f31f722e80da083ecada1f1be57f9ddad133941820c4483b0240e494c1'
|
||||
'3fffb01cf97a5a7ab9601cb277d2468c0fb1e1cceba4225915f3ffae3a5694ec'
|
||||
'cf2e7a2d00787f754028e7459688c2755a406e632ce48b60952fa4ff7ed6f4b7'
|
||||
'a98bc3836bcf85774a974a1585e6b64432ba8c42363ee484d14515ccd6a88e24'
|
||||
'f8699fcf4242c0727c3c0af56928515cef9b6ce329968537ce2894b30d43eade'
|
||||
'1d4c7b24312ed3781e5d139dfb52f0c22350bf5a2845fe747469dfa7b6ed861f'
|
||||
'c0af4622f75c89fef62183e18b7d49998228d4eaa906c6accaf4aa4ff0134f85'
|
||||
'SKIP')
|
||||
|
||||
_kernelname=${pkgbase#linux}
|
||||
|
@ -64,18 +72,34 @@ prepare() {
|
|||
patch -p1 -i "${srcdir}/0002-module-allow-multiple-calls-to-MODULE_DEVICE_TABLE-p.patch"
|
||||
patch -p1 -i "${srcdir}/0003-module-remove-MODULE_GENERIC_TABLE.patch"
|
||||
|
||||
# Fix symbols: Revert http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=83460ec8dcac14142e7860a01fa59c267ac4657c
|
||||
# For details, see https://lkml.org/lkml/2014/1/26/22
|
||||
patch -p1 -i "${srcdir}/0004-Revert-syscalls.h-use-gcc-alias-instead-of-assembler.patch"
|
||||
|
||||
# Fix various bugs caused by rootfs having FSID 0
|
||||
# See http://www.spinics.net/lists/kernel/msg1716924.html
|
||||
patch -p1 -i "${srcdir}/0005-fs-Don-t-return-0-from-get_anon_bdev.patch"
|
||||
patch -p1 -i "${srcdir}/0004-fs-Don-t-return-0-from-get_anon_bdev.patch"
|
||||
|
||||
# Disable usb autosuspend for intel btusb
|
||||
# See http://www.spinics.net/lists/kernel/msg1716461.html
|
||||
# Until a solution is found, make sure the driver leaves autosuspend alone
|
||||
patch -p1 -i "${srcdir}/0006-Revert-Bluetooth-Enable-autosuspend-for-Intel-Blueto.patch"
|
||||
patch -p1 -i "${srcdir}/0005-Revert-Bluetooth-Enable-autosuspend-for-Intel-Blueto.patch"
|
||||
|
||||
# Fix generation of symbol CRCs
|
||||
# http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=dc53324060f324e8af6867f57bf4891c13c6ef18
|
||||
patch -p1 -i "${srcdir}/0006-genksyms-fix-typeof-handling.patch"
|
||||
|
||||
# Fix the use of code32_start in the EFI boot stub
|
||||
# http://permalink.gmane.org/gmane.linux.kernel/1679881
|
||||
# https://git.kernel.org/cgit/linux/kernel/git/mfleming/efi.git/commit/?h=urgent&id=7e8213c1f3acc064aef37813a39f13cbfe7c3ce7
|
||||
patch -p1 -i "${srcdir}/0007-x86-efi-Correct-EFI-boot-stub-use-of-code32_start.patch"
|
||||
|
||||
# https://git.kernel.org/cgit/linux/kernel/git/stable/stable-queue.git/tree/queue-3.14/futex-avoid-race-between-requeue-and-wake.patch
|
||||
# FS#39806
|
||||
patch -p1 -i "${srcdir}/0008-futex-avoid-race-between-requeue-and-wake.patch"
|
||||
|
||||
# Fix some intel wifi issues
|
||||
# https://git.kernel.org/cgit/linux/kernel/git/stable/stable-queue.git/tree/queue-3.14/iwlwifi-mvm-rs-fix-search-cycle-rules.patch
|
||||
patch -p1 -i "${srcdir}/0009-iwlwifi-mvm-rs-fix-search-cycle-rules.patch"
|
||||
# https://git.kernel.org/cgit/linux/kernel/git/iwlwifi/iwlwifi-fixes.git/commit/?id=12f853a89e29f50b17698e17e73c328a35f1498d
|
||||
# FS#39815
|
||||
patch -p1 -i "${srcdir}/0010-iwlwifi-mvm-delay-enabling-smart-FIFO-until-after-be.patch"
|
||||
|
||||
## aufs3
|
||||
patch -p1 -i "${srcdir}/aufs3-standalone/aufs3-kbuild.patch"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/x86 3.14.0-1 Kernel Configuration
|
||||
# Linux/x86 3.14.0-4 Kernel Configuration
|
||||
#
|
||||
# CONFIG_64BIT is not set
|
||||
CONFIG_X86_32=y
|
||||
|
@ -1600,7 +1600,24 @@ CONFIG_MTD_BLOCK2MTD=m
|
|||
CONFIG_MTD_DOCG3=m
|
||||
CONFIG_BCH_CONST_M=14
|
||||
CONFIG_BCH_CONST_T=4
|
||||
# CONFIG_MTD_NAND is not set
|
||||
CONFIG_MTD_NAND_ECC=m
|
||||
CONFIG_MTD_NAND_ECC_SMC=y
|
||||
CONFIG_MTD_NAND=m
|
||||
# CONFIG_MTD_NAND_ECC_BCH is not set
|
||||
CONFIG_MTD_SM_COMMON=m
|
||||
# CONFIG_MTD_NAND_DENALI is not set
|
||||
CONFIG_MTD_NAND_GPIO=m
|
||||
CONFIG_MTD_NAND_IDS=m
|
||||
CONFIG_MTD_NAND_RICOH=m
|
||||
CONFIG_MTD_NAND_DISKONCHIP=m
|
||||
# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
|
||||
CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
|
||||
# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
|
||||
CONFIG_MTD_NAND_DOCG4=m
|
||||
CONFIG_MTD_NAND_CAFE=m
|
||||
CONFIG_MTD_NAND_CS553X=m
|
||||
CONFIG_MTD_NAND_NANDSIM=m
|
||||
# CONFIG_MTD_NAND_PLATFORM is not set
|
||||
# CONFIG_MTD_ONENAND is not set
|
||||
|
||||
#
|
||||
|
@ -5718,6 +5735,7 @@ CONFIG_DGRP=m
|
|||
CONFIG_FIREWIRE_SERIAL=m
|
||||
CONFIG_FWTTY_MAX_TOTAL_PORTS=64
|
||||
CONFIG_FWTTY_MAX_CARD_PORTS=32
|
||||
# CONFIG_MTD_SPINAND_MT29F is not set
|
||||
CONFIG_LUSTRE_FS=m
|
||||
CONFIG_LUSTRE_OBD_MAX_IOCTL_BUFFER=8192
|
||||
# CONFIG_LUSTRE_DEBUG_EXPENSIVE_CHECK is not set
|
||||
|
@ -6631,6 +6649,7 @@ CONFIG_GENERIC_ALLOCATOR=y
|
|||
CONFIG_REED_SOLOMON=m
|
||||
CONFIG_REED_SOLOMON_ENC8=y
|
||||
CONFIG_REED_SOLOMON_DEC8=y
|
||||
CONFIG_REED_SOLOMON_DEC16=y
|
||||
CONFIG_BCH=m
|
||||
CONFIG_BCH_CONST_PARAMS=y
|
||||
CONFIG_TEXTSEARCH=y
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/x86 3.14.0-3 Kernel Configuration
|
||||
# Linux/x86 3.14.0-5 Kernel Configuration
|
||||
#
|
||||
CONFIG_64BIT=y
|
||||
CONFIG_X86_64=y
|
||||
|
|
Loading…
Reference in a new issue