mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-24 15:56:49 +00:00
kernel: bump 4.14 to 4.14.154
Refreshed all patches. Altered patches: - 902-debloat_proc.patch - 040-dmaengine-qcom-bam-Process-multiple-pending-descript.patch - 807-usb-support-layerscape.patch - 809-flexcan-support-layerscape.patch - 816-pcie-support-layerscape.patch Remove upstreamed: - 150-MIPS-bmips-mark-exception-vectors-as-char-arrays.patch - 303-spi-nor-enable-4B-opcodes-for-mx66l51235l.patch New symbols: X86_INTEL_MPX X86_INTEL_MEMORY_PROTECTION_KEYS X86_INTEL_TSX_MODE_OFF X86_INTEL_TSX_MODE_ON X86_INTEL_TSX_MODE_AUTO SGL_ALLOC Compile-tested on: cns3xxx, x86_64 Runtime-tested on: cns3xxx Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
This commit is contained in:
parent
d2ee922051
commit
d6aea46a50
@ -7,11 +7,11 @@ ifdef CONFIG_TESTING_KERNEL
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
LINUX_VERSION-4.9 = .202
|
LINUX_VERSION-4.9 = .202
|
||||||
LINUX_VERSION-4.14 = .152
|
LINUX_VERSION-4.14 = .154
|
||||||
LINUX_VERSION-4.19 = .82
|
LINUX_VERSION-4.19 = .82
|
||||||
|
|
||||||
LINUX_KERNEL_HASH-4.9.202 = 8108ec1cd10fc40821c84e9f087dba10b1767aad66596f4a36925faef55e4ebf
|
LINUX_KERNEL_HASH-4.9.202 = 8108ec1cd10fc40821c84e9f087dba10b1767aad66596f4a36925faef55e4ebf
|
||||||
LINUX_KERNEL_HASH-4.14.152 = a9239fd9d341aae07b48a8e7a2afd528fe5cde2617d783454c71e6f3dae2b0aa
|
LINUX_KERNEL_HASH-4.14.154 = 86de4a24379a78d67fc08b2e249ccf7b689eb6c37fbe329fc3dfbe8ab4300603
|
||||||
LINUX_KERNEL_HASH-4.19.82 = 58d96d6c2c5ee8288fe9714891e4037a18f457b008e369e33fc744afc2cb595d
|
LINUX_KERNEL_HASH-4.19.82 = 58d96d6c2c5ee8288fe9714891e4037a18f457b008e369e33fc744afc2cb595d
|
||||||
|
|
||||||
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
||||||
|
@ -1,93 +0,0 @@
|
|||||||
From badf0fc9f7dc72d06a47357123c7d97dc45792f5 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jonas Gorski <jonas.gorski@gmail.com>
|
|
||||||
Date: Tue, 15 Oct 2019 23:27:10 +0200
|
|
||||||
Subject: [PATCH v2] MIPS: bmips: mark exception vectors as char arrays
|
|
||||||
|
|
||||||
The vectors span more than one byte, so mark them as arrays.
|
|
||||||
|
|
||||||
Fixes the following build error when building when using GCC 8.3:
|
|
||||||
|
|
||||||
In file included from ./include/linux/string.h:19,
|
|
||||||
from ./include/linux/bitmap.h:9,
|
|
||||||
from ./include/linux/cpumask.h:12,
|
|
||||||
from ./arch/mips/include/asm/processor.h:15,
|
|
||||||
from ./arch/mips/include/asm/thread_info.h:16,
|
|
||||||
from ./include/linux/thread_info.h:38,
|
|
||||||
from ./include/asm-generic/preempt.h:5,
|
|
||||||
from ./arch/mips/include/generated/asm/preempt.h:1,
|
|
||||||
from ./include/linux/preempt.h:81,
|
|
||||||
from ./include/linux/spinlock.h:51,
|
|
||||||
from ./include/linux/mmzone.h:8,
|
|
||||||
from ./include/linux/bootmem.h:8,
|
|
||||||
from arch/mips/bcm63xx/prom.c:10:
|
|
||||||
arch/mips/bcm63xx/prom.c: In function 'prom_init':
|
|
||||||
./arch/mips/include/asm/string.h:162:11: error: '__builtin_memcpy' forming offset [2, 32] is out of the bounds [0, 1] of object 'bmips_smp_movevec' with type 'char' [-Werror=array-bounds]
|
|
||||||
__ret = __builtin_memcpy((dst), (src), __len); \
|
|
||||||
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
arch/mips/bcm63xx/prom.c:97:3: note: in expansion of macro 'memcpy'
|
|
||||||
memcpy((void *)0xa0000200, &bmips_smp_movevec, 0x20);
|
|
||||||
^~~~~~
|
|
||||||
In file included from arch/mips/bcm63xx/prom.c:14:
|
|
||||||
./arch/mips/include/asm/bmips.h:80:13: note: 'bmips_smp_movevec' declared here
|
|
||||||
extern char bmips_smp_movevec;
|
|
||||||
|
|
||||||
Fixes: 18a1eef92dcd ("MIPS: BMIPS: Introduce bmips.h")
|
|
||||||
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
|
|
||||||
---
|
|
||||||
|
|
||||||
v1 -> v2:
|
|
||||||
* Actually update the callers as well, to not break the build in a
|
|
||||||
different way.
|
|
||||||
|
|
||||||
arch/mips/bcm63xx/prom.c | 2 +-
|
|
||||||
arch/mips/include/asm/bmips.h | 10 +++++-----
|
|
||||||
arch/mips/kernel/smp-bmips.c | 8 ++++----
|
|
||||||
3 files changed, 10 insertions(+), 10 deletions(-)
|
|
||||||
|
|
||||||
--- a/arch/mips/bcm63xx/prom.c
|
|
||||||
+++ b/arch/mips/bcm63xx/prom.c
|
|
||||||
@@ -84,7 +84,7 @@ void __init prom_init(void)
|
|
||||||
* Here we will start up CPU1 in the background and ask it to
|
|
||||||
* reconfigure itself then go back to sleep.
|
|
||||||
*/
|
|
||||||
- memcpy((void *)0xa0000200, &bmips_smp_movevec, 0x20);
|
|
||||||
+ memcpy((void *)0xa0000200, bmips_smp_movevec, 0x20);
|
|
||||||
__sync();
|
|
||||||
set_c0_cause(C_SW0);
|
|
||||||
cpumask_set_cpu(1, &bmips_booted_mask);
|
|
||||||
--- a/arch/mips/include/asm/bmips.h
|
|
||||||
+++ b/arch/mips/include/asm/bmips.h
|
|
||||||
@@ -75,11 +75,11 @@ static inline int register_bmips_smp_ops
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
-extern char bmips_reset_nmi_vec;
|
|
||||||
-extern char bmips_reset_nmi_vec_end;
|
|
||||||
-extern char bmips_smp_movevec;
|
|
||||||
-extern char bmips_smp_int_vec;
|
|
||||||
-extern char bmips_smp_int_vec_end;
|
|
||||||
+extern char bmips_reset_nmi_vec[];
|
|
||||||
+extern char bmips_reset_nmi_vec_end[];
|
|
||||||
+extern char bmips_smp_movevec[];
|
|
||||||
+extern char bmips_smp_int_vec[];
|
|
||||||
+extern char bmips_smp_int_vec_end[];
|
|
||||||
|
|
||||||
extern int bmips_smp_enabled;
|
|
||||||
extern int bmips_cpu_offset;
|
|
||||||
--- a/arch/mips/kernel/smp-bmips.c
|
|
||||||
+++ b/arch/mips/kernel/smp-bmips.c
|
|
||||||
@@ -457,10 +457,10 @@ static void bmips_wr_vec(unsigned long d
|
|
||||||
|
|
||||||
static inline void bmips_nmi_handler_setup(void)
|
|
||||||
{
|
|
||||||
- bmips_wr_vec(BMIPS_NMI_RESET_VEC, &bmips_reset_nmi_vec,
|
|
||||||
- &bmips_reset_nmi_vec_end);
|
|
||||||
- bmips_wr_vec(BMIPS_WARM_RESTART_VEC, &bmips_smp_int_vec,
|
|
||||||
- &bmips_smp_int_vec_end);
|
|
||||||
+ bmips_wr_vec(BMIPS_NMI_RESET_VEC, bmips_reset_nmi_vec,
|
|
||||||
+ bmips_reset_nmi_vec_end);
|
|
||||||
+ bmips_wr_vec(BMIPS_WARM_RESTART_VEC, bmips_smp_int_vec,
|
|
||||||
+ bmips_smp_int_vec_end);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct reset_vec_info {
|
|
@ -11,7 +11,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||||||
|
|
||||||
--- a/include/net/netfilter/nf_tables.h
|
--- a/include/net/netfilter/nf_tables.h
|
||||||
+++ b/include/net/netfilter/nf_tables.h
|
+++ b/include/net/netfilter/nf_tables.h
|
||||||
@@ -897,8 +897,6 @@ struct nft_stats {
|
@@ -898,8 +898,6 @@ struct nft_stats {
|
||||||
struct u64_stats_sync syncp;
|
struct u64_stats_sync syncp;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -20,7 +20,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||||||
/**
|
/**
|
||||||
* struct nft_base_chain - nf_tables base chain
|
* struct nft_base_chain - nf_tables base chain
|
||||||
*
|
*
|
||||||
@@ -910,7 +908,7 @@ struct nft_stats {
|
@@ -911,7 +909,7 @@ struct nft_stats {
|
||||||
* @dev_name: device name that this base chain is attached to (if any)
|
* @dev_name: device name that this base chain is attached to (if any)
|
||||||
*/
|
*/
|
||||||
struct nft_base_chain {
|
struct nft_base_chain {
|
||||||
@ -29,7 +29,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||||||
const struct nf_chain_type *type;
|
const struct nf_chain_type *type;
|
||||||
u8 policy;
|
u8 policy;
|
||||||
u8 flags;
|
u8 flags;
|
||||||
@@ -971,8 +969,6 @@ enum nft_af_flags {
|
@@ -972,8 +970,6 @@ enum nft_af_flags {
|
||||||
* @owner: module owner
|
* @owner: module owner
|
||||||
* @tables: used internally
|
* @tables: used internally
|
||||||
* @flags: family flags
|
* @flags: family flags
|
||||||
@ -38,7 +38,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||||||
* @hooks: hookfn overrides for packet validation
|
* @hooks: hookfn overrides for packet validation
|
||||||
*/
|
*/
|
||||||
struct nft_af_info {
|
struct nft_af_info {
|
||||||
@@ -982,9 +978,6 @@ struct nft_af_info {
|
@@ -983,9 +979,6 @@ struct nft_af_info {
|
||||||
struct module *owner;
|
struct module *owner;
|
||||||
struct list_head tables;
|
struct list_head tables;
|
||||||
u32 flags;
|
u32 flags;
|
||||||
|
@ -10,7 +10,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||||||
|
|
||||||
--- a/include/net/netfilter/nf_tables.h
|
--- a/include/net/netfilter/nf_tables.h
|
||||||
+++ b/include/net/netfilter/nf_tables.h
|
+++ b/include/net/netfilter/nf_tables.h
|
||||||
@@ -875,7 +875,7 @@ enum nft_chain_type {
|
@@ -876,7 +876,7 @@ enum nft_chain_type {
|
||||||
* @family: address family
|
* @family: address family
|
||||||
* @owner: module owner
|
* @owner: module owner
|
||||||
* @hook_mask: mask of valid hooks
|
* @hook_mask: mask of valid hooks
|
||||||
@ -19,7 +19,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||||||
*/
|
*/
|
||||||
struct nf_chain_type {
|
struct nf_chain_type {
|
||||||
const char *name;
|
const char *name;
|
||||||
@@ -969,7 +969,6 @@ enum nft_af_flags {
|
@@ -970,7 +970,6 @@ enum nft_af_flags {
|
||||||
* @owner: module owner
|
* @owner: module owner
|
||||||
* @tables: used internally
|
* @tables: used internally
|
||||||
* @flags: family flags
|
* @flags: family flags
|
||||||
@ -27,7 +27,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||||||
*/
|
*/
|
||||||
struct nft_af_info {
|
struct nft_af_info {
|
||||||
struct list_head list;
|
struct list_head list;
|
||||||
@@ -978,7 +977,6 @@ struct nft_af_info {
|
@@ -979,7 +978,6 @@ struct nft_af_info {
|
||||||
struct module *owner;
|
struct module *owner;
|
||||||
struct list_head tables;
|
struct list_head tables;
|
||||||
u32 flags;
|
u32 flags;
|
||||||
|
@ -50,7 +50,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||||||
#include <net/netlink.h>
|
#include <net/netlink.h>
|
||||||
|
|
||||||
#define NFT_JUMP_STACK_SIZE 16
|
#define NFT_JUMP_STACK_SIZE 16
|
||||||
@@ -938,6 +939,7 @@ unsigned int nft_do_chain(struct nft_pkt
|
@@ -939,6 +940,7 @@ unsigned int nft_do_chain(struct nft_pkt
|
||||||
* @chains: chains in the table
|
* @chains: chains in the table
|
||||||
* @sets: sets in the table
|
* @sets: sets in the table
|
||||||
* @objects: stateful objects in the table
|
* @objects: stateful objects in the table
|
||||||
@ -58,7 +58,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||||||
* @hgenerator: handle generator state
|
* @hgenerator: handle generator state
|
||||||
* @use: number of chain references to this table
|
* @use: number of chain references to this table
|
||||||
* @flags: table flag (see enum nft_table_flags)
|
* @flags: table flag (see enum nft_table_flags)
|
||||||
@@ -949,6 +951,7 @@ struct nft_table {
|
@@ -950,6 +952,7 @@ struct nft_table {
|
||||||
struct list_head chains;
|
struct list_head chains;
|
||||||
struct list_head sets;
|
struct list_head sets;
|
||||||
struct list_head objects;
|
struct list_head objects;
|
||||||
@ -66,7 +66,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||||||
u64 hgenerator;
|
u64 hgenerator;
|
||||||
u32 use;
|
u32 use;
|
||||||
u16 flags:14,
|
u16 flags:14,
|
||||||
@@ -1080,6 +1083,44 @@ int nft_register_obj(struct nft_object_t
|
@@ -1081,6 +1084,44 @@ int nft_register_obj(struct nft_object_t
|
||||||
void nft_unregister_obj(struct nft_object_type *obj_type);
|
void nft_unregister_obj(struct nft_object_type *obj_type);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -111,7 +111,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||||||
* struct nft_traceinfo - nft tracing information and state
|
* struct nft_traceinfo - nft tracing information and state
|
||||||
*
|
*
|
||||||
* @pkt: pktinfo currently processed
|
* @pkt: pktinfo currently processed
|
||||||
@@ -1315,4 +1356,11 @@ struct nft_trans_obj {
|
@@ -1316,4 +1357,11 @@ struct nft_trans_obj {
|
||||||
#define nft_trans_obj(trans) \
|
#define nft_trans_obj(trans) \
|
||||||
(((struct nft_trans_obj *)trans->data)->obj)
|
(((struct nft_trans_obj *)trans->data)->obj)
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||||||
|
|
||||||
--- a/include/net/netfilter/nf_tables.h
|
--- a/include/net/netfilter/nf_tables.h
|
||||||
+++ b/include/net/netfilter/nf_tables.h
|
+++ b/include/net/netfilter/nf_tables.h
|
||||||
@@ -968,7 +968,6 @@ enum nft_af_flags {
|
@@ -969,7 +969,6 @@ enum nft_af_flags {
|
||||||
*
|
*
|
||||||
* @list: used internally
|
* @list: used internally
|
||||||
* @family: address family
|
* @family: address family
|
||||||
@ -22,7 +22,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||||||
* @owner: module owner
|
* @owner: module owner
|
||||||
* @tables: used internally
|
* @tables: used internally
|
||||||
* @flags: family flags
|
* @flags: family flags
|
||||||
@@ -976,7 +975,6 @@ enum nft_af_flags {
|
@@ -977,7 +976,6 @@ enum nft_af_flags {
|
||||||
struct nft_af_info {
|
struct nft_af_info {
|
||||||
struct list_head list;
|
struct list_head list;
|
||||||
int family;
|
int family;
|
||||||
|
@ -10,7 +10,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||||||
|
|
||||||
--- a/include/net/netfilter/nf_tables.h
|
--- a/include/net/netfilter/nf_tables.h
|
||||||
+++ b/include/net/netfilter/nf_tables.h
|
+++ b/include/net/netfilter/nf_tables.h
|
||||||
@@ -959,10 +959,6 @@ struct nft_table {
|
@@ -960,10 +960,6 @@ struct nft_table {
|
||||||
char *name;
|
char *name;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -21,7 +21,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||||||
/**
|
/**
|
||||||
* struct nft_af_info - nf_tables address family info
|
* struct nft_af_info - nf_tables address family info
|
||||||
*
|
*
|
||||||
@@ -970,14 +966,12 @@ enum nft_af_flags {
|
@@ -971,14 +967,12 @@ enum nft_af_flags {
|
||||||
* @family: address family
|
* @family: address family
|
||||||
* @owner: module owner
|
* @owner: module owner
|
||||||
* @tables: used internally
|
* @tables: used internally
|
||||||
|
@ -42,7 +42,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||||||
bool report;
|
bool report;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -944,6 +944,7 @@ unsigned int nft_do_chain(struct nft_pkt
|
@@ -945,6 +945,7 @@ unsigned int nft_do_chain(struct nft_pkt
|
||||||
* @use: number of chain references to this table
|
* @use: number of chain references to this table
|
||||||
* @flags: table flag (see enum nft_table_flags)
|
* @flags: table flag (see enum nft_table_flags)
|
||||||
* @genmask: generation mask
|
* @genmask: generation mask
|
||||||
@ -50,7 +50,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||||||
* @name: name of the table
|
* @name: name of the table
|
||||||
*/
|
*/
|
||||||
struct nft_table {
|
struct nft_table {
|
||||||
@@ -956,6 +957,7 @@ struct nft_table {
|
@@ -957,6 +958,7 @@ struct nft_table {
|
||||||
u32 use;
|
u32 use;
|
||||||
u16 flags:14,
|
u16 flags:14,
|
||||||
genmask:2;
|
genmask:2;
|
||||||
@ -58,7 +58,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||||||
char *name;
|
char *name;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -965,13 +967,11 @@ struct nft_table {
|
@@ -966,13 +968,11 @@ struct nft_table {
|
||||||
* @list: used internally
|
* @list: used internally
|
||||||
* @family: address family
|
* @family: address family
|
||||||
* @owner: module owner
|
* @owner: module owner
|
||||||
|
@ -14,7 +14,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||||||
|
|
||||||
--- a/include/net/netfilter/nf_tables.h
|
--- a/include/net/netfilter/nf_tables.h
|
||||||
+++ b/include/net/netfilter/nf_tables.h
|
+++ b/include/net/netfilter/nf_tables.h
|
||||||
@@ -974,8 +974,8 @@ struct nft_af_info {
|
@@ -975,8 +975,8 @@ struct nft_af_info {
|
||||||
struct module *owner;
|
struct module *owner;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||||||
|
|
||||||
--- a/include/net/netfilter/nf_tables.h
|
--- a/include/net/netfilter/nf_tables.h
|
||||||
+++ b/include/net/netfilter/nf_tables.h
|
+++ b/include/net/netfilter/nf_tables.h
|
||||||
@@ -955,28 +955,12 @@ struct nft_table {
|
@@ -956,28 +956,12 @@ struct nft_table {
|
||||||
struct list_head flowtables;
|
struct list_head flowtables;
|
||||||
u64 hgenerator;
|
u64 hgenerator;
|
||||||
u32 use;
|
u32 use;
|
||||||
@ -42,7 +42,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||||||
int nft_register_chain_type(const struct nf_chain_type *);
|
int nft_register_chain_type(const struct nf_chain_type *);
|
||||||
void nft_unregister_chain_type(const struct nf_chain_type *);
|
void nft_unregister_chain_type(const struct nf_chain_type *);
|
||||||
|
|
||||||
@@ -1144,9 +1128,6 @@ void nft_trace_notify(struct nft_tracein
|
@@ -1145,9 +1129,6 @@ void nft_trace_notify(struct nft_tracein
|
||||||
#define nft_dereference(p) \
|
#define nft_dereference(p) \
|
||||||
nfnl_dereference(p, NFNL_SUBSYS_NFTABLES)
|
nfnl_dereference(p, NFNL_SUBSYS_NFTABLES)
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||||||
u32 ktype;
|
u32 ktype;
|
||||||
u32 dtype;
|
u32 dtype;
|
||||||
u32 objtype;
|
u32 objtype;
|
||||||
@@ -941,6 +943,7 @@ unsigned int nft_do_chain(struct nft_pkt
|
@@ -942,6 +944,7 @@ unsigned int nft_do_chain(struct nft_pkt
|
||||||
* @objects: stateful objects in the table
|
* @objects: stateful objects in the table
|
||||||
* @flowtables: flow tables in the table
|
* @flowtables: flow tables in the table
|
||||||
* @hgenerator: handle generator state
|
* @hgenerator: handle generator state
|
||||||
@ -36,7 +36,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||||||
* @use: number of chain references to this table
|
* @use: number of chain references to this table
|
||||||
* @flags: table flag (see enum nft_table_flags)
|
* @flags: table flag (see enum nft_table_flags)
|
||||||
* @genmask: generation mask
|
* @genmask: generation mask
|
||||||
@@ -954,6 +957,7 @@ struct nft_table {
|
@@ -955,6 +958,7 @@ struct nft_table {
|
||||||
struct list_head objects;
|
struct list_head objects;
|
||||||
struct list_head flowtables;
|
struct list_head flowtables;
|
||||||
u64 hgenerator;
|
u64 hgenerator;
|
||||||
@ -44,7 +44,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||||||
u32 use;
|
u32 use;
|
||||||
u16 family:6,
|
u16 family:6,
|
||||||
flags:8,
|
flags:8,
|
||||||
@@ -978,9 +982,9 @@ int nft_verdict_dump(struct sk_buff *skb
|
@@ -979,9 +983,9 @@ int nft_verdict_dump(struct sk_buff *skb
|
||||||
* @name: name of this stateful object
|
* @name: name of this stateful object
|
||||||
* @genmask: generation mask
|
* @genmask: generation mask
|
||||||
* @use: number of references to this stateful object
|
* @use: number of references to this stateful object
|
||||||
@ -56,7 +56,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||||||
*/
|
*/
|
||||||
struct nft_object {
|
struct nft_object {
|
||||||
struct list_head list;
|
struct list_head list;
|
||||||
@@ -988,6 +992,7 @@ struct nft_object {
|
@@ -989,6 +993,7 @@ struct nft_object {
|
||||||
struct nft_table *table;
|
struct nft_table *table;
|
||||||
u32 genmask:2,
|
u32 genmask:2,
|
||||||
use:30;
|
use:30;
|
||||||
@ -64,7 +64,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||||||
/* runtime data below here */
|
/* runtime data below here */
|
||||||
const struct nft_object_ops *ops ____cacheline_aligned;
|
const struct nft_object_ops *ops ____cacheline_aligned;
|
||||||
unsigned char data[]
|
unsigned char data[]
|
||||||
@@ -1069,6 +1074,7 @@ void nft_unregister_obj(struct nft_objec
|
@@ -1070,6 +1075,7 @@ void nft_unregister_obj(struct nft_objec
|
||||||
* @ops_len: number of hooks in array
|
* @ops_len: number of hooks in array
|
||||||
* @genmask: generation mask
|
* @genmask: generation mask
|
||||||
* @use: number of references to this flow table
|
* @use: number of references to this flow table
|
||||||
@ -72,7 +72,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||||||
* @data: rhashtable and garbage collector
|
* @data: rhashtable and garbage collector
|
||||||
* @ops: array of hooks
|
* @ops: array of hooks
|
||||||
*/
|
*/
|
||||||
@@ -1081,6 +1087,7 @@ struct nft_flowtable {
|
@@ -1082,6 +1088,7 @@ struct nft_flowtable {
|
||||||
int ops_len;
|
int ops_len;
|
||||||
u32 genmask:2,
|
u32 genmask:2,
|
||||||
use:30;
|
use:30;
|
||||||
|
@ -21,7 +21,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
struct delayed_work gc_work;
|
struct delayed_work gc_work;
|
||||||
--- a/include/net/netfilter/nf_tables.h
|
--- a/include/net/netfilter/nf_tables.h
|
||||||
+++ b/include/net/netfilter/nf_tables.h
|
+++ b/include/net/netfilter/nf_tables.h
|
||||||
@@ -1096,9 +1096,6 @@ struct nft_flowtable {
|
@@ -1097,9 +1097,6 @@ struct nft_flowtable {
|
||||||
struct nft_flowtable *nf_tables_flowtable_lookup(const struct nft_table *table,
|
struct nft_flowtable *nf_tables_flowtable_lookup(const struct nft_table *table,
|
||||||
const struct nlattr *nla,
|
const struct nlattr *nla,
|
||||||
u8 genmask);
|
u8 genmask);
|
||||||
|
@ -23,12 +23,10 @@ Signed-off-by: Martin Schiller <ms@dev.tdt.de>
|
|||||||
drivers/leds/trigger/ledtrig-netdev.c | 5 ++++-
|
drivers/leds/trigger/ledtrig-netdev.c | 5 ++++-
|
||||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/drivers/leds/trigger/ledtrig-netdev.c b/drivers/leds/trigger/ledtrig-netdev.c
|
|
||||||
index 136f86a1627d..d5e774d83021 100644
|
|
||||||
--- a/drivers/leds/trigger/ledtrig-netdev.c
|
--- a/drivers/leds/trigger/ledtrig-netdev.c
|
||||||
+++ b/drivers/leds/trigger/ledtrig-netdev.c
|
+++ b/drivers/leds/trigger/ledtrig-netdev.c
|
||||||
@@ -302,10 +302,12 @@ static int netdev_trig_notify(struct notifier_block *nb,
|
@@ -299,10 +299,12 @@ static int netdev_trig_notify(struct not
|
||||||
container_of(nb, struct led_netdev_data, notifier);
|
notifier);
|
||||||
|
|
||||||
if (evt != NETDEV_UP && evt != NETDEV_DOWN && evt != NETDEV_CHANGE
|
if (evt != NETDEV_UP && evt != NETDEV_DOWN && evt != NETDEV_CHANGE
|
||||||
- && evt != NETDEV_REGISTER && evt != NETDEV_UNREGISTER)
|
- && evt != NETDEV_REGISTER && evt != NETDEV_UNREGISTER)
|
||||||
@ -41,7 +39,7 @@ index 136f86a1627d..d5e774d83021 100644
|
|||||||
(evt == NETDEV_REGISTER && !strcmp(dev->name, trigger_data->device_name))))
|
(evt == NETDEV_REGISTER && !strcmp(dev->name, trigger_data->device_name))))
|
||||||
return NOTIFY_DONE;
|
return NOTIFY_DONE;
|
||||||
|
|
||||||
@@ -315,6 +317,7 @@ static int netdev_trig_notify(struct notifier_block *nb,
|
@@ -312,6 +314,7 @@ static int netdev_trig_notify(struct not
|
||||||
|
|
||||||
clear_bit(NETDEV_LED_MODE_LINKUP, &trigger_data->mode);
|
clear_bit(NETDEV_LED_MODE_LINKUP, &trigger_data->mode);
|
||||||
switch (evt) {
|
switch (evt) {
|
||||||
@ -49,6 +47,3 @@ index 136f86a1627d..d5e774d83021 100644
|
|||||||
case NETDEV_REGISTER:
|
case NETDEV_REGISTER:
|
||||||
if (trigger_data->net_dev)
|
if (trigger_data->net_dev)
|
||||||
dev_put(trigger_data->net_dev);
|
dev_put(trigger_data->net_dev);
|
||||||
--
|
|
||||||
2.20.1
|
|
||||||
|
|
||||||
|
@ -4336,6 +4336,7 @@ CONFIG_SERIAL_EARLYCON=y
|
|||||||
# CONFIG_SGI_IP28 is not set
|
# CONFIG_SGI_IP28 is not set
|
||||||
# CONFIG_SGI_IP32 is not set
|
# CONFIG_SGI_IP32 is not set
|
||||||
# CONFIG_SGI_PARTITION is not set
|
# CONFIG_SGI_PARTITION is not set
|
||||||
|
# CONFIG_SGL_ALLOC is not set
|
||||||
# CONFIG_SG_POOL is not set
|
# CONFIG_SG_POOL is not set
|
||||||
# CONFIG_SG_SPLIT is not set
|
# CONFIG_SG_SPLIT is not set
|
||||||
CONFIG_SHMEM=y
|
CONFIG_SHMEM=y
|
||||||
|
@ -15,7 +15,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
|
|
||||||
--- a/Makefile
|
--- a/Makefile
|
||||||
+++ b/Makefile
|
+++ b/Makefile
|
||||||
@@ -1243,7 +1243,6 @@ all: modules
|
@@ -1252,7 +1252,6 @@ all: modules
|
||||||
|
|
||||||
PHONY += modules
|
PHONY += modules
|
||||||
modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin
|
modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin
|
||||||
@ -23,7 +23,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
@$(kecho) ' Building modules, stage 2.';
|
@$(kecho) ' Building modules, stage 2.';
|
||||||
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
|
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
|
||||||
|
|
||||||
@@ -1272,7 +1271,6 @@ _modinst_:
|
@@ -1281,7 +1280,6 @@ _modinst_:
|
||||||
rm -f $(MODLIB)/build ; \
|
rm -f $(MODLIB)/build ; \
|
||||||
ln -s $(CURDIR) $(MODLIB)/build ; \
|
ln -s $(CURDIR) $(MODLIB)/build ; \
|
||||||
fi
|
fi
|
||||||
|
@ -56,7 +56,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
*/
|
*/
|
||||||
--- a/include/linux/skbuff.h
|
--- a/include/linux/skbuff.h
|
||||||
+++ b/include/linux/skbuff.h
|
+++ b/include/linux/skbuff.h
|
||||||
@@ -2514,6 +2514,10 @@ static inline int pskb_trim(struct sk_bu
|
@@ -2530,6 +2530,10 @@ static inline int pskb_trim(struct sk_bu
|
||||||
return (len < skb->len) ? __pskb_trim(skb, len) : 0;
|
return (len < skb->len) ? __pskb_trim(skb, len) : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -67,7 +67,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
/**
|
/**
|
||||||
* pskb_trim_unique - remove end from a paged unique (not cloned) buffer
|
* pskb_trim_unique - remove end from a paged unique (not cloned) buffer
|
||||||
* @skb: buffer to alter
|
* @skb: buffer to alter
|
||||||
@@ -2645,16 +2649,6 @@ static inline struct sk_buff *dev_alloc_
|
@@ -2661,16 +2665,6 @@ static inline struct sk_buff *dev_alloc_
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -248,10 +248,10 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_PROC_FS
|
#ifdef CONFIG_PROC_FS
|
||||||
- proc_create("buddyinfo", 0444, NULL, &buddyinfo_file_operations);
|
- proc_create("buddyinfo", 0444, NULL, &buddyinfo_file_operations);
|
||||||
- proc_create("pagetypeinfo", 0444, NULL, &pagetypeinfo_file_operations);
|
- proc_create("pagetypeinfo", 0400, NULL, &pagetypeinfo_file_operations);
|
||||||
+ if (!IS_ENABLED(CONFIG_PROC_STRIPPED)) {
|
+ if (!IS_ENABLED(CONFIG_PROC_STRIPPED)) {
|
||||||
+ proc_create("buddyinfo", 0444, NULL, &buddyinfo_file_operations);
|
+ proc_create("buddyinfo", 0444, NULL, &buddyinfo_file_operations);
|
||||||
+ proc_create("pagetypeinfo", 0444, NULL, &pagetypeinfo_file_operations);
|
+ proc_create("pagetypeinfo", 0400, NULL, &pagetypeinfo_file_operations);
|
||||||
+ proc_create("zoneinfo", 0444, NULL, &zoneinfo_file_operations);
|
+ proc_create("zoneinfo", 0444, NULL, &zoneinfo_file_operations);
|
||||||
+ }
|
+ }
|
||||||
proc_create("vmstat", 0444, NULL, &vmstat_file_operations);
|
proc_create("vmstat", 0444, NULL, &vmstat_file_operations);
|
||||||
|
@ -54,7 +54,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
+MODULE_LICENSE("GPL");
|
+MODULE_LICENSE("GPL");
|
||||||
--- a/kernel/sched/core.c
|
--- a/kernel/sched/core.c
|
||||||
+++ b/kernel/sched/core.c
|
+++ b/kernel/sched/core.c
|
||||||
@@ -2164,6 +2164,7 @@ int wake_up_state(struct task_struct *p,
|
@@ -2165,6 +2165,7 @@ int wake_up_state(struct task_struct *p,
|
||||||
{
|
{
|
||||||
return try_to_wake_up(p, state, 0);
|
return try_to_wake_up(p, state, 0);
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
|
|
||||||
--- a/include/linux/skbuff.h
|
--- a/include/linux/skbuff.h
|
||||||
+++ b/include/linux/skbuff.h
|
+++ b/include/linux/skbuff.h
|
||||||
@@ -2478,7 +2478,7 @@ static inline int pskb_network_may_pull(
|
@@ -2494,7 +2494,7 @@ static inline int pskb_network_may_pull(
|
||||||
* NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
|
* NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
|
||||||
*/
|
*/
|
||||||
#ifndef NET_SKB_PAD
|
#ifndef NET_SKB_PAD
|
||||||
|
@ -132,7 +132,7 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com>
|
|||||||
|
|
||||||
async_desc->num_desc = num_alloc;
|
async_desc->num_desc = num_alloc;
|
||||||
async_desc->curr_desc = async_desc->desc;
|
async_desc->curr_desc = async_desc->desc;
|
||||||
@@ -685,14 +688,16 @@ err_out:
|
@@ -685,29 +688,16 @@ err_out:
|
||||||
static int bam_dma_terminate_all(struct dma_chan *chan)
|
static int bam_dma_terminate_all(struct dma_chan *chan)
|
||||||
{
|
{
|
||||||
struct bam_chan *bchan = to_bam_chan(chan);
|
struct bam_chan *bchan = to_bam_chan(chan);
|
||||||
@ -142,17 +142,32 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com>
|
|||||||
|
|
||||||
/* remove all transactions, including active transaction */
|
/* remove all transactions, including active transaction */
|
||||||
spin_lock_irqsave(&bchan->vc.lock, flag);
|
spin_lock_irqsave(&bchan->vc.lock, flag);
|
||||||
|
- /*
|
||||||
|
- * If we have transactions queued, then some might be committed to the
|
||||||
|
- * hardware in the desc fifo. The only way to reset the desc fifo is
|
||||||
|
- * to do a hardware reset (either by pipe or the entire block).
|
||||||
|
- * bam_chan_init_hw() will trigger a pipe reset, and also reinit the
|
||||||
|
- * pipe. If the pipe is left disabled (default state after pipe reset)
|
||||||
|
- * and is accessed by a connected hardware engine, a fatal error in
|
||||||
|
- * the BAM will occur. There is a small window where this could happen
|
||||||
|
- * with bam_chan_init_hw(), but it is assumed that the caller has
|
||||||
|
- * stopped activity on any attached hardware engine. Make sure to do
|
||||||
|
- * this first so that the BAM hardware doesn't cause memory corruption
|
||||||
|
- * by accessing freed resources.
|
||||||
|
- */
|
||||||
- if (bchan->curr_txd) {
|
- if (bchan->curr_txd) {
|
||||||
|
- bam_chan_init_hw(bchan, bchan->curr_txd->dir);
|
||||||
- list_add(&bchan->curr_txd->vd.node, &bchan->vc.desc_issued);
|
- list_add(&bchan->curr_txd->vd.node, &bchan->vc.desc_issued);
|
||||||
- bchan->curr_txd = NULL;
|
- bchan->curr_txd = NULL;
|
||||||
|
- }
|
||||||
+ list_for_each_entry_safe(async_desc, tmp,
|
+ list_for_each_entry_safe(async_desc, tmp,
|
||||||
+ &bchan->desc_list, desc_node) {
|
+ &bchan->desc_list, desc_node) {
|
||||||
+ list_add(&async_desc->vd.node, &bchan->vc.desc_issued);
|
+ list_add(&async_desc->vd.node, &bchan->vc.desc_issued);
|
||||||
+ list_del(&async_desc->desc_node);
|
+ list_del(&async_desc->desc_node);
|
||||||
}
|
|
||||||
|
|
||||||
vchan_get_all_descriptors(&bchan->vc, &head);
|
vchan_get_all_descriptors(&bchan->vc, &head);
|
||||||
@@ -764,9 +769,9 @@ static int bam_resume(struct dma_chan *c
|
spin_unlock_irqrestore(&bchan->vc.lock, flag);
|
||||||
|
@@ -778,9 +768,9 @@ static int bam_resume(struct dma_chan *c
|
||||||
*/
|
*/
|
||||||
static u32 process_channel_irqs(struct bam_device *bdev)
|
static u32 process_channel_irqs(struct bam_device *bdev)
|
||||||
{
|
{
|
||||||
@ -164,7 +179,7 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com>
|
|||||||
|
|
||||||
srcs = readl_relaxed(bam_addr(bdev, 0, BAM_IRQ_SRCS_EE));
|
srcs = readl_relaxed(bam_addr(bdev, 0, BAM_IRQ_SRCS_EE));
|
||||||
|
|
||||||
@@ -786,27 +791,40 @@ static u32 process_channel_irqs(struct b
|
@@ -800,27 +790,40 @@ static u32 process_channel_irqs(struct b
|
||||||
writel_relaxed(pipe_stts, bam_addr(bdev, i, BAM_P_IRQ_CLR));
|
writel_relaxed(pipe_stts, bam_addr(bdev, i, BAM_P_IRQ_CLR));
|
||||||
|
|
||||||
spin_lock_irqsave(&bchan->vc.lock, flags);
|
spin_lock_irqsave(&bchan->vc.lock, flags);
|
||||||
@ -214,7 +229,7 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com>
|
|||||||
}
|
}
|
||||||
|
|
||||||
spin_unlock_irqrestore(&bchan->vc.lock, flags);
|
spin_unlock_irqrestore(&bchan->vc.lock, flags);
|
||||||
@@ -868,6 +886,7 @@ static enum dma_status bam_tx_status(str
|
@@ -882,6 +885,7 @@ static enum dma_status bam_tx_status(str
|
||||||
struct dma_tx_state *txstate)
|
struct dma_tx_state *txstate)
|
||||||
{
|
{
|
||||||
struct bam_chan *bchan = to_bam_chan(chan);
|
struct bam_chan *bchan = to_bam_chan(chan);
|
||||||
@ -222,7 +237,7 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com>
|
|||||||
struct virt_dma_desc *vd;
|
struct virt_dma_desc *vd;
|
||||||
int ret;
|
int ret;
|
||||||
size_t residue = 0;
|
size_t residue = 0;
|
||||||
@@ -883,11 +902,17 @@ static enum dma_status bam_tx_status(str
|
@@ -897,11 +901,17 @@ static enum dma_status bam_tx_status(str
|
||||||
|
|
||||||
spin_lock_irqsave(&bchan->vc.lock, flags);
|
spin_lock_irqsave(&bchan->vc.lock, flags);
|
||||||
vd = vchan_find_desc(&bchan->vc, cookie);
|
vd = vchan_find_desc(&bchan->vc, cookie);
|
||||||
@ -244,7 +259,7 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com>
|
|||||||
|
|
||||||
spin_unlock_irqrestore(&bchan->vc.lock, flags);
|
spin_unlock_irqrestore(&bchan->vc.lock, flags);
|
||||||
|
|
||||||
@@ -928,63 +953,86 @@ static void bam_start_dma(struct bam_cha
|
@@ -942,63 +952,86 @@ static void bam_start_dma(struct bam_cha
|
||||||
{
|
{
|
||||||
struct virt_dma_desc *vd = vchan_next_desc(&bchan->vc);
|
struct virt_dma_desc *vd = vchan_next_desc(&bchan->vc);
|
||||||
struct bam_device *bdev = bchan->bdev;
|
struct bam_device *bdev = bchan->bdev;
|
||||||
@ -311,19 +326,19 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com>
|
|||||||
+ async_desc->xfer_len = avail;
|
+ async_desc->xfer_len = avail;
|
||||||
+ else
|
+ else
|
||||||
+ async_desc->xfer_len = async_desc->num_desc;
|
+ async_desc->xfer_len = async_desc->num_desc;
|
||||||
+
|
|
||||||
|
- if (bchan->tail + async_desc->xfer_len > MAX_DESCRIPTORS) {
|
||||||
|
- u32 partial = MAX_DESCRIPTORS - bchan->tail;
|
||||||
+ /* set any special flags on the last descriptor */
|
+ /* set any special flags on the last descriptor */
|
||||||
+ if (async_desc->num_desc == async_desc->xfer_len)
|
+ if (async_desc->num_desc == async_desc->xfer_len)
|
||||||
+ desc[async_desc->xfer_len - 1].flags |=
|
+ desc[async_desc->xfer_len - 1].flags |=
|
||||||
+ cpu_to_le16(async_desc->flags);
|
+ cpu_to_le16(async_desc->flags);
|
||||||
|
|
||||||
- if (bchan->tail + async_desc->xfer_len > MAX_DESCRIPTORS) {
|
|
||||||
- u32 partial = MAX_DESCRIPTORS - bchan->tail;
|
|
||||||
+ vd = vchan_next_desc(&bchan->vc);
|
|
||||||
|
|
||||||
- memcpy(&fifo[bchan->tail], desc,
|
- memcpy(&fifo[bchan->tail], desc,
|
||||||
- partial * sizeof(struct bam_desc_hw));
|
- partial * sizeof(struct bam_desc_hw));
|
||||||
- memcpy(fifo, &desc[partial], (async_desc->xfer_len - partial) *
|
- memcpy(fifo, &desc[partial], (async_desc->xfer_len - partial) *
|
||||||
|
+ vd = vchan_next_desc(&bchan->vc);
|
||||||
|
+
|
||||||
+ dmaengine_desc_get_callback(&async_desc->vd.tx, &cb);
|
+ dmaengine_desc_get_callback(&async_desc->vd.tx, &cb);
|
||||||
+
|
+
|
||||||
+ /*
|
+ /*
|
||||||
@ -367,7 +382,7 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com>
|
|||||||
|
|
||||||
/* ensure descriptor writes and dma start not reordered */
|
/* ensure descriptor writes and dma start not reordered */
|
||||||
wmb();
|
wmb();
|
||||||
@@ -1013,7 +1061,7 @@ static void dma_tasklet(unsigned long da
|
@@ -1027,7 +1060,7 @@ static void dma_tasklet(unsigned long da
|
||||||
bchan = &bdev->channels[i];
|
bchan = &bdev->channels[i];
|
||||||
spin_lock_irqsave(&bchan->vc.lock, flags);
|
spin_lock_irqsave(&bchan->vc.lock, flags);
|
||||||
|
|
||||||
@ -376,7 +391,7 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com>
|
|||||||
bam_start_dma(bchan);
|
bam_start_dma(bchan);
|
||||||
spin_unlock_irqrestore(&bchan->vc.lock, flags);
|
spin_unlock_irqrestore(&bchan->vc.lock, flags);
|
||||||
}
|
}
|
||||||
@@ -1034,7 +1082,7 @@ static void bam_issue_pending(struct dma
|
@@ -1048,7 +1081,7 @@ static void bam_issue_pending(struct dma
|
||||||
spin_lock_irqsave(&bchan->vc.lock, flags);
|
spin_lock_irqsave(&bchan->vc.lock, flags);
|
||||||
|
|
||||||
/* if work pending and idle, start a transaction */
|
/* if work pending and idle, start a transaction */
|
||||||
@ -385,7 +400,7 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com>
|
|||||||
bam_start_dma(bchan);
|
bam_start_dma(bchan);
|
||||||
|
|
||||||
spin_unlock_irqrestore(&bchan->vc.lock, flags);
|
spin_unlock_irqrestore(&bchan->vc.lock, flags);
|
||||||
@@ -1138,6 +1186,7 @@ static void bam_channel_init(struct bam_
|
@@ -1152,6 +1185,7 @@ static void bam_channel_init(struct bam_
|
||||||
|
|
||||||
vchan_init(&bchan->vc, &bdev->common);
|
vchan_init(&bchan->vc, &bdev->common);
|
||||||
bchan->vc.desc_free = bam_dma_free_desc;
|
bchan->vc.desc_free = bam_dma_free_desc;
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
+ { "mx25l25635f", INFO(0xc22019, 0, 64 * 1024, 512, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
|
+ { "mx25l25635f", INFO(0xc22019, 0, 64 * 1024, 512, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
|
||||||
{ "mx25u25635f", INFO(0xc22539, 0, 64 * 1024, 512, SECT_4K | SPI_NOR_4B_OPCODES) },
|
{ "mx25u25635f", INFO(0xc22539, 0, 64 * 1024, 512, SECT_4K | SPI_NOR_4B_OPCODES) },
|
||||||
{ "mx25l25655e", INFO(0xc22619, 0, 64 * 1024, 512, 0) },
|
{ "mx25l25655e", INFO(0xc22619, 0, 64 * 1024, 512, 0) },
|
||||||
{ "mx66l51235l", INFO(0xc2201a, 0, 64 * 1024, 1024, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
|
{ "mx66l51235l", INFO(0xc2201a, 0, 64 * 1024, 1024, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
|
||||||
@@ -1201,11 +1202,12 @@ static const struct flash_info spi_nor_i
|
@@ -1201,11 +1202,12 @@ static const struct flash_info spi_nor_i
|
||||||
{ },
|
{ },
|
||||||
};
|
};
|
||||||
|
@ -19,4 +19,4 @@ the ubi volume created by the other.
|
|||||||
+ { "mx25l25635f", INFO(0xc22019, 0, 64 * 1024, 512, SECT_4K) },
|
+ { "mx25l25635f", INFO(0xc22019, 0, 64 * 1024, 512, SECT_4K) },
|
||||||
{ "mx25u25635f", INFO(0xc22539, 0, 64 * 1024, 512, SECT_4K | SPI_NOR_4B_OPCODES) },
|
{ "mx25u25635f", INFO(0xc22539, 0, 64 * 1024, 512, SECT_4K | SPI_NOR_4B_OPCODES) },
|
||||||
{ "mx25l25655e", INFO(0xc22619, 0, 64 * 1024, 512, 0) },
|
{ "mx25l25655e", INFO(0xc22619, 0, 64 * 1024, 512, 0) },
|
||||||
{ "mx66l51235l", INFO(0xc2201a, 0, 64 * 1024, 1024, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
|
{ "mx66l51235l", INFO(0xc2201a, 0, 64 * 1024, 1024, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
|
||||||
|
@ -580,7 +580,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
|||||||
void __kfree_skb(struct sk_buff *skb);
|
void __kfree_skb(struct sk_buff *skb);
|
||||||
extern struct kmem_cache *skbuff_head_cache;
|
extern struct kmem_cache *skbuff_head_cache;
|
||||||
|
|
||||||
@@ -3297,6 +3298,7 @@ static inline void skb_free_datagram_loc
|
@@ -3313,6 +3314,7 @@ static inline void skb_free_datagram_loc
|
||||||
}
|
}
|
||||||
int skb_kill_datagram(struct sock *sk, struct sk_buff *skb, unsigned int flags);
|
int skb_kill_datagram(struct sock *sk, struct sk_buff *skb, unsigned int flags);
|
||||||
int skb_copy_bits(const struct sk_buff *skb, int offset, void *to, int len);
|
int skb_copy_bits(const struct sk_buff *skb, int offset, void *to, int len);
|
||||||
|
@ -285,7 +285,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
|
|||||||
#define PAGE_NONE __pgprot(((_PAGE_DEFAULT) & ~PTE_VALID) | PTE_PROT_NONE | PTE_RDONLY | PTE_NG | PTE_PXN | PTE_UXN)
|
#define PAGE_NONE __pgprot(((_PAGE_DEFAULT) & ~PTE_VALID) | PTE_PROT_NONE | PTE_RDONLY | PTE_NG | PTE_PXN | PTE_UXN)
|
||||||
--- a/arch/arm64/include/asm/pgtable.h
|
--- a/arch/arm64/include/asm/pgtable.h
|
||||||
+++ b/arch/arm64/include/asm/pgtable.h
|
+++ b/arch/arm64/include/asm/pgtable.h
|
||||||
@@ -377,6 +377,11 @@ static inline int pmd_protnone(pmd_t pmd
|
@@ -360,6 +360,11 @@ static inline int pmd_protnone(pmd_t pmd
|
||||||
__pgprot_modify(prot, PTE_ATTRINDX_MASK, PTE_ATTRINDX(MT_DEVICE_nGnRnE) | PTE_PXN | PTE_UXN)
|
__pgprot_modify(prot, PTE_ATTRINDX_MASK, PTE_ATTRINDX(MT_DEVICE_nGnRnE) | PTE_PXN | PTE_UXN)
|
||||||
#define pgprot_writecombine(prot) \
|
#define pgprot_writecombine(prot) \
|
||||||
__pgprot_modify(prot, PTE_ATTRINDX_MASK, PTE_ATTRINDX(MT_NORMAL_NC) | PTE_PXN | PTE_UXN)
|
__pgprot_modify(prot, PTE_ATTRINDX_MASK, PTE_ATTRINDX(MT_NORMAL_NC) | PTE_PXN | PTE_UXN)
|
||||||
|
@ -217,7 +217,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void __dwc3_set_mode(struct work_struct *work)
|
static void __dwc3_set_mode(struct work_struct *work)
|
||||||
@@ -766,6 +810,96 @@ static void dwc3_core_setup_global_contr
|
@@ -765,6 +809,96 @@ static void dwc3_core_setup_global_contr
|
||||||
static int dwc3_core_get_phy(struct dwc3 *dwc);
|
static int dwc3_core_get_phy(struct dwc3 *dwc);
|
||||||
static int dwc3_core_ulpi_init(struct dwc3 *dwc);
|
static int dwc3_core_ulpi_init(struct dwc3 *dwc);
|
||||||
|
|
||||||
@ -314,7 +314,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
|
|||||||
/**
|
/**
|
||||||
* dwc3_core_init - Low-level initialization of DWC3 Core
|
* dwc3_core_init - Low-level initialization of DWC3 Core
|
||||||
* @dwc: Pointer to our controller context structure
|
* @dwc: Pointer to our controller context structure
|
||||||
@@ -828,6 +962,8 @@ static int dwc3_core_init(struct dwc3 *d
|
@@ -827,6 +961,8 @@ static int dwc3_core_init(struct dwc3 *d
|
||||||
/* Adjust Frame Length */
|
/* Adjust Frame Length */
|
||||||
dwc3_frame_length_adjustment(dwc);
|
dwc3_frame_length_adjustment(dwc);
|
||||||
|
|
||||||
@ -323,7 +323,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
|
|||||||
usb_phy_set_suspend(dwc->usb2_phy, 0);
|
usb_phy_set_suspend(dwc->usb2_phy, 0);
|
||||||
usb_phy_set_suspend(dwc->usb3_phy, 0);
|
usb_phy_set_suspend(dwc->usb3_phy, 0);
|
||||||
ret = phy_power_on(dwc->usb2_generic_phy);
|
ret = phy_power_on(dwc->usb2_generic_phy);
|
||||||
@@ -871,6 +1007,22 @@ static int dwc3_core_init(struct dwc3 *d
|
@@ -870,6 +1006,22 @@ static int dwc3_core_init(struct dwc3 *d
|
||||||
dwc3_writel(dwc->regs, DWC3_GUCTL1, reg);
|
dwc3_writel(dwc->regs, DWC3_GUCTL1, reg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -346,7 +346,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
err4:
|
err4:
|
||||||
@@ -1074,6 +1226,8 @@ static void dwc3_get_properties(struct d
|
@@ -1073,6 +1225,8 @@ static void dwc3_get_properties(struct d
|
||||||
&hird_threshold);
|
&hird_threshold);
|
||||||
dwc->usb3_lpm_capable = device_property_read_bool(dev,
|
dwc->usb3_lpm_capable = device_property_read_bool(dev,
|
||||||
"snps,usb3_lpm_capable");
|
"snps,usb3_lpm_capable");
|
||||||
@ -355,7 +355,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
|
|||||||
|
|
||||||
dwc->disable_scramble_quirk = device_property_read_bool(dev,
|
dwc->disable_scramble_quirk = device_property_read_bool(dev,
|
||||||
"snps,disable_scramble_quirk");
|
"snps,disable_scramble_quirk");
|
||||||
@@ -1106,8 +1260,16 @@ static void dwc3_get_properties(struct d
|
@@ -1105,8 +1259,16 @@ static void dwc3_get_properties(struct d
|
||||||
dwc->dis_tx_ipgap_linecheck_quirk = device_property_read_bool(dev,
|
dwc->dis_tx_ipgap_linecheck_quirk = device_property_read_bool(dev,
|
||||||
"snps,dis-tx-ipgap-linecheck-quirk");
|
"snps,dis-tx-ipgap-linecheck-quirk");
|
||||||
|
|
||||||
@ -372,9 +372,9 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
|
|||||||
device_property_read_u8(dev, "snps,tx_de_emphasis",
|
device_property_read_u8(dev, "snps,tx_de_emphasis",
|
||||||
&tx_de_emphasis);
|
&tx_de_emphasis);
|
||||||
device_property_read_string(dev, "snps,hsphy_interface",
|
device_property_read_string(dev, "snps,hsphy_interface",
|
||||||
@@ -1115,6 +1277,9 @@ static void dwc3_get_properties(struct d
|
@@ -1117,6 +1279,9 @@ static void dwc3_get_properties(struct d
|
||||||
device_property_read_u32(dev, "snps,quirk-frame-length-adjustment",
|
dwc->dis_metastability_quirk = device_property_read_bool(dev,
|
||||||
&dwc->fladj);
|
"snps,dis_metastability_quirk");
|
||||||
|
|
||||||
+ dwc->host_vbus_glitches = device_property_read_bool(dev,
|
+ dwc->host_vbus_glitches = device_property_read_bool(dev,
|
||||||
+ "snps,host-vbus-glitches");
|
+ "snps,host-vbus-glitches");
|
||||||
@ -382,7 +382,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
|
|||||||
dwc->lpm_nyet_threshold = lpm_nyet_threshold;
|
dwc->lpm_nyet_threshold = lpm_nyet_threshold;
|
||||||
dwc->tx_de_emphasis = tx_de_emphasis;
|
dwc->tx_de_emphasis = tx_de_emphasis;
|
||||||
|
|
||||||
@@ -1365,12 +1530,14 @@ static int dwc3_resume_common(struct dwc
|
@@ -1367,12 +1532,14 @@ static int dwc3_resume_common(struct dwc
|
||||||
|
|
||||||
switch (dwc->dr_mode) {
|
switch (dwc->dr_mode) {
|
||||||
case USB_DR_MODE_PERIPHERAL:
|
case USB_DR_MODE_PERIPHERAL:
|
||||||
@ -473,21 +473,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
|
|||||||
* @disable_scramble_quirk: set if we enable the disable scramble quirk
|
* @disable_scramble_quirk: set if we enable the disable scramble quirk
|
||||||
* @u2exit_lfps_quirk: set if we enable u2exit lfps quirk
|
* @u2exit_lfps_quirk: set if we enable u2exit lfps quirk
|
||||||
* @u2ss_inp3_quirk: set if we enable P3 OK for U2/SS Inactive quirk
|
* @u2ss_inp3_quirk: set if we enable P3 OK for U2/SS Inactive quirk
|
||||||
@@ -869,6 +908,13 @@ struct dwc3_scratchpad_array {
|
@@ -922,6 +961,12 @@ struct dwc3 {
|
||||||
* 1 - -3.5dB de-emphasis
|
|
||||||
* 2 - No de-emphasis
|
|
||||||
* 3 - Reserved
|
|
||||||
+ * @disable_devinit_u1u2_quirk: disable device-initiated U1/U2 request.
|
|
||||||
+ * @quirk_reverse_in_out: prevent tx fifo reverse the data direction
|
|
||||||
+ * @quirk_stop_transfer_in_block: prevent block transmission from being
|
|
||||||
+ * interrupted
|
|
||||||
+ * @quirk_stop_ep_in_u1: replace stop commad with disable slot command
|
|
||||||
+ * @host-vbus-glitches: set to avoid vbus glitch during
|
|
||||||
+ * xhci reset.
|
|
||||||
* @imod_interval: set the interrupt moderation interval in 250ns
|
|
||||||
* increments or 0 to disable.
|
|
||||||
*/
|
|
||||||
@@ -921,6 +967,12 @@ struct dwc3 {
|
|
||||||
enum usb_phy_interface hsphy_mode;
|
enum usb_phy_interface hsphy_mode;
|
||||||
|
|
||||||
u32 fladj;
|
u32 fladj;
|
||||||
@ -500,7 +486,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
|
|||||||
u32 irq_gadget;
|
u32 irq_gadget;
|
||||||
u32 nr_scratch;
|
u32 nr_scratch;
|
||||||
u32 u1u2;
|
u32 u1u2;
|
||||||
@@ -1005,6 +1057,7 @@ struct dwc3 {
|
@@ -1006,6 +1051,7 @@ struct dwc3 {
|
||||||
unsigned setup_packet_pending:1;
|
unsigned setup_packet_pending:1;
|
||||||
unsigned three_stage_setup:1;
|
unsigned three_stage_setup:1;
|
||||||
unsigned usb3_lpm_capable:1;
|
unsigned usb3_lpm_capable:1;
|
||||||
@ -508,7 +494,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
|
|||||||
|
|
||||||
unsigned disable_scramble_quirk:1;
|
unsigned disable_scramble_quirk:1;
|
||||||
unsigned u2exit_lfps_quirk:1;
|
unsigned u2exit_lfps_quirk:1;
|
||||||
@@ -1024,6 +1077,11 @@ struct dwc3 {
|
@@ -1025,6 +1071,11 @@ struct dwc3 {
|
||||||
|
|
||||||
unsigned tx_de_emphasis_quirk:1;
|
unsigned tx_de_emphasis_quirk:1;
|
||||||
unsigned tx_de_emphasis:2;
|
unsigned tx_de_emphasis:2;
|
||||||
@ -518,8 +504,8 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
|
|||||||
+ unsigned quirk_stop_ep_in_u1:1;
|
+ unsigned quirk_stop_ep_in_u1:1;
|
||||||
+ unsigned host_vbus_glitches:1;
|
+ unsigned host_vbus_glitches:1;
|
||||||
|
|
||||||
u16 imod_interval;
|
unsigned dis_metastability_quirk:1;
|
||||||
};
|
|
||||||
--- a/drivers/usb/dwc3/ep0.c
|
--- a/drivers/usb/dwc3/ep0.c
|
||||||
+++ b/drivers/usb/dwc3/ep0.c
|
+++ b/drivers/usb/dwc3/ep0.c
|
||||||
@@ -391,7 +391,7 @@ static int dwc3_ep0_handle_u1(struct dwc
|
@@ -391,7 +391,7 @@ static int dwc3_ep0_handle_u1(struct dwc
|
||||||
@ -542,7 +528,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
|
|||||||
reg &= ~DWC3_DCTL_INITU2ENA;
|
reg &= ~DWC3_DCTL_INITU2ENA;
|
||||||
--- a/drivers/usb/dwc3/gadget.c
|
--- a/drivers/usb/dwc3/gadget.c
|
||||||
+++ b/drivers/usb/dwc3/gadget.c
|
+++ b/drivers/usb/dwc3/gadget.c
|
||||||
@@ -3210,6 +3210,7 @@ int dwc3_gadget_init(struct dwc3 *dwc)
|
@@ -3211,6 +3211,7 @@ int dwc3_gadget_init(struct dwc3 *dwc)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
int irq;
|
int irq;
|
||||||
@ -550,7 +536,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
|
|||||||
|
|
||||||
irq = dwc3_gadget_get_irq(dwc);
|
irq = dwc3_gadget_get_irq(dwc);
|
||||||
if (irq < 0) {
|
if (irq < 0) {
|
||||||
@@ -3288,6 +3289,12 @@ int dwc3_gadget_init(struct dwc3 *dwc)
|
@@ -3290,6 +3291,12 @@ int dwc3_gadget_init(struct dwc3 *dwc)
|
||||||
|
|
||||||
dwc3_gadget_set_speed(&dwc->gadget, dwc->maximum_speed);
|
dwc3_gadget_set_speed(&dwc->gadget, dwc->maximum_speed);
|
||||||
|
|
||||||
@ -754,15 +740,6 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
|
|||||||
/* DR has been stopped in usb_gadget_unregister_driver() */
|
/* DR has been stopped in usb_gadget_unregister_driver() */
|
||||||
remove_proc_file();
|
remove_proc_file();
|
||||||
|
|
||||||
@@ -2569,7 +2579,7 @@ static int fsl_udc_remove(struct platfor
|
|
||||||
dma_pool_destroy(udc_controller->td_pool);
|
|
||||||
free_irq(udc_controller->irq, udc_controller);
|
|
||||||
iounmap(dr_regs);
|
|
||||||
- if (pdata->operating_mode == FSL_USB2_DR_DEVICE)
|
|
||||||
+ if (res && (pdata->operating_mode == FSL_USB2_DR_DEVICE))
|
|
||||||
release_mem_region(res->start, resource_size(res));
|
|
||||||
|
|
||||||
/* free udc --wait for the release() finished */
|
|
||||||
--- a/drivers/usb/gadget/udc/fsl_usb2_udc.h
|
--- a/drivers/usb/gadget/udc/fsl_usb2_udc.h
|
||||||
+++ b/drivers/usb/gadget/udc/fsl_usb2_udc.h
|
+++ b/drivers/usb/gadget/udc/fsl_usb2_udc.h
|
||||||
@@ -20,6 +20,10 @@
|
@@ -20,6 +20,10 @@
|
||||||
|
@ -470,7 +470,7 @@ Signed-off-by: Biwen Li <biwen.li@nxp.com>
|
|||||||
|
|
||||||
/* On Vybrid, disable memory error detection interrupts
|
/* On Vybrid, disable memory error detection interrupts
|
||||||
* and freeze mode.
|
* and freeze mode.
|
||||||
@@ -1011,16 +1028,16 @@ static int flexcan_chip_start(struct net
|
@@ -1011,17 +1028,17 @@ static int flexcan_chip_start(struct net
|
||||||
* and Correction of Memory Errors" to write to
|
* and Correction of Memory Errors" to write to
|
||||||
* MECR register
|
* MECR register
|
||||||
*/
|
*/
|
||||||
@ -485,6 +485,7 @@ Signed-off-by: Biwen Li <biwen.li@nxp.com>
|
|||||||
reg_mecr &= ~FLEXCAN_MECR_ECRWRDIS;
|
reg_mecr &= ~FLEXCAN_MECR_ECRWRDIS;
|
||||||
- flexcan_write(reg_mecr, ®s->mecr);
|
- flexcan_write(reg_mecr, ®s->mecr);
|
||||||
+ priv->write(reg_mecr, ®s->mecr);
|
+ priv->write(reg_mecr, ®s->mecr);
|
||||||
|
reg_mecr |= FLEXCAN_MECR_ECCDIS;
|
||||||
reg_mecr &= ~(FLEXCAN_MECR_NCEFAFRZ | FLEXCAN_MECR_HANCEI_MSK |
|
reg_mecr &= ~(FLEXCAN_MECR_NCEFAFRZ | FLEXCAN_MECR_HANCEI_MSK |
|
||||||
FLEXCAN_MECR_FANCEI_MSK);
|
FLEXCAN_MECR_FANCEI_MSK);
|
||||||
- flexcan_write(reg_mecr, ®s->mecr);
|
- flexcan_write(reg_mecr, ®s->mecr);
|
||||||
@ -492,7 +493,7 @@ Signed-off-by: Biwen Li <biwen.li@nxp.com>
|
|||||||
}
|
}
|
||||||
|
|
||||||
err = flexcan_transceiver_enable(priv);
|
err = flexcan_transceiver_enable(priv);
|
||||||
@@ -1036,14 +1053,14 @@ static int flexcan_chip_start(struct net
|
@@ -1037,14 +1054,14 @@ static int flexcan_chip_start(struct net
|
||||||
|
|
||||||
/* enable interrupts atomically */
|
/* enable interrupts atomically */
|
||||||
disable_irq(dev->irq);
|
disable_irq(dev->irq);
|
||||||
@ -511,7 +512,7 @@ Signed-off-by: Biwen Li <biwen.li@nxp.com>
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
@@ -1068,10 +1085,10 @@ static void flexcan_chip_stop(struct net
|
@@ -1069,10 +1086,10 @@ static void flexcan_chip_stop(struct net
|
||||||
flexcan_chip_disable(priv);
|
flexcan_chip_disable(priv);
|
||||||
|
|
||||||
/* Disable all interrupts */
|
/* Disable all interrupts */
|
||||||
@ -526,7 +527,7 @@ Signed-off-by: Biwen Li <biwen.li@nxp.com>
|
|||||||
|
|
||||||
flexcan_transceiver_disable(priv);
|
flexcan_transceiver_disable(priv);
|
||||||
priv->can.state = CAN_STATE_STOPPED;
|
priv->can.state = CAN_STATE_STOPPED;
|
||||||
@@ -1186,26 +1203,26 @@ static int register_flexcandev(struct ne
|
@@ -1187,26 +1204,26 @@ static int register_flexcandev(struct ne
|
||||||
err = flexcan_chip_disable(priv);
|
err = flexcan_chip_disable(priv);
|
||||||
if (err)
|
if (err)
|
||||||
goto out_disable_per;
|
goto out_disable_per;
|
||||||
@ -558,7 +559,7 @@ Signed-off-by: Biwen Li <biwen.li@nxp.com>
|
|||||||
if (!(reg & FLEXCAN_MCR_FEN)) {
|
if (!(reg & FLEXCAN_MCR_FEN)) {
|
||||||
netdev_err(dev, "Could not enable RX FIFO, unsupported core\n");
|
netdev_err(dev, "Could not enable RX FIFO, unsupported core\n");
|
||||||
err = -ENODEV;
|
err = -ENODEV;
|
||||||
@@ -1233,8 +1250,12 @@ static void unregister_flexcandev(struct
|
@@ -1234,8 +1251,12 @@ static void unregister_flexcandev(struct
|
||||||
static const struct of_device_id flexcan_of_match[] = {
|
static const struct of_device_id flexcan_of_match[] = {
|
||||||
{ .compatible = "fsl,imx6q-flexcan", .data = &fsl_imx6q_devtype_data, },
|
{ .compatible = "fsl,imx6q-flexcan", .data = &fsl_imx6q_devtype_data, },
|
||||||
{ .compatible = "fsl,imx28-flexcan", .data = &fsl_imx28_devtype_data, },
|
{ .compatible = "fsl,imx28-flexcan", .data = &fsl_imx28_devtype_data, },
|
||||||
@ -571,7 +572,7 @@ Signed-off-by: Biwen Li <biwen.li@nxp.com>
|
|||||||
{ /* sentinel */ },
|
{ /* sentinel */ },
|
||||||
};
|
};
|
||||||
MODULE_DEVICE_TABLE(of, flexcan_of_match);
|
MODULE_DEVICE_TABLE(of, flexcan_of_match);
|
||||||
@@ -1314,6 +1335,21 @@ static int flexcan_probe(struct platform
|
@@ -1315,6 +1336,21 @@ static int flexcan_probe(struct platform
|
||||||
dev->flags |= IFF_ECHO;
|
dev->flags |= IFF_ECHO;
|
||||||
|
|
||||||
priv = netdev_priv(dev);
|
priv = netdev_priv(dev);
|
||||||
|
@ -286,15 +286,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
|||||||
enum pci_barno {
|
enum pci_barno {
|
||||||
BAR_0,
|
BAR_0,
|
||||||
BAR_1,
|
BAR_1,
|
||||||
@@ -92,6 +103,7 @@ struct pci_endpoint_test {
|
@@ -103,7 +114,7 @@ struct pci_endpoint_test {
|
||||||
void __iomem *bar[6];
|
|
||||||
struct completion irq_raised;
|
|
||||||
int last_irq;
|
|
||||||
+ int num_irqs;
|
|
||||||
/* mutex to protect the ioctls */
|
|
||||||
struct mutex mutex;
|
|
||||||
struct miscdevice miscdev;
|
|
||||||
@@ -102,7 +114,7 @@ struct pci_endpoint_test {
|
|
||||||
struct pci_endpoint_test_data {
|
struct pci_endpoint_test_data {
|
||||||
enum pci_barno test_reg_bar;
|
enum pci_barno test_reg_bar;
|
||||||
size_t alignment;
|
size_t alignment;
|
||||||
@ -303,7 +295,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
|||||||
};
|
};
|
||||||
|
|
||||||
static inline u32 pci_endpoint_test_readl(struct pci_endpoint_test *test,
|
static inline u32 pci_endpoint_test_readl(struct pci_endpoint_test *test,
|
||||||
@@ -146,6 +158,100 @@ static irqreturn_t pci_endpoint_test_irq
|
@@ -147,6 +158,100 @@ static irqreturn_t pci_endpoint_test_irq
|
||||||
return IRQ_HANDLED;
|
return IRQ_HANDLED;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -404,7 +396,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
|||||||
static bool pci_endpoint_test_bar(struct pci_endpoint_test *test,
|
static bool pci_endpoint_test_bar(struct pci_endpoint_test *test,
|
||||||
enum pci_barno barno)
|
enum pci_barno barno)
|
||||||
{
|
{
|
||||||
@@ -178,6 +284,9 @@ static bool pci_endpoint_test_legacy_irq
|
@@ -179,6 +284,9 @@ static bool pci_endpoint_test_legacy_irq
|
||||||
{
|
{
|
||||||
u32 val;
|
u32 val;
|
||||||
|
|
||||||
@ -414,7 +406,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
|||||||
pci_endpoint_test_writel(test, PCI_ENDPOINT_TEST_COMMAND,
|
pci_endpoint_test_writel(test, PCI_ENDPOINT_TEST_COMMAND,
|
||||||
COMMAND_RAISE_LEGACY_IRQ);
|
COMMAND_RAISE_LEGACY_IRQ);
|
||||||
val = wait_for_completion_timeout(&test->irq_raised,
|
val = wait_for_completion_timeout(&test->irq_raised,
|
||||||
@@ -189,20 +298,24 @@ static bool pci_endpoint_test_legacy_irq
|
@@ -190,20 +298,24 @@ static bool pci_endpoint_test_legacy_irq
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool pci_endpoint_test_msi_irq(struct pci_endpoint_test *test,
|
static bool pci_endpoint_test_msi_irq(struct pci_endpoint_test *test,
|
||||||
@ -443,9 +435,9 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
@@ -226,10 +339,18 @@ static bool pci_endpoint_test_copy(struc
|
@@ -230,10 +342,18 @@ static bool pci_endpoint_test_copy(struc
|
||||||
u32 src_crc32;
|
if (size > SIZE_MAX - alignment)
|
||||||
u32 dst_crc32;
|
goto err;
|
||||||
|
|
||||||
+ if (size > SIZE_MAX - alignment)
|
+ if (size > SIZE_MAX - alignment)
|
||||||
+ goto err;
|
+ goto err;
|
||||||
@ -463,7 +455,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
|||||||
ret = false;
|
ret = false;
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
@@ -255,7 +376,7 @@ static bool pci_endpoint_test_copy(struc
|
@@ -259,7 +379,7 @@ static bool pci_endpoint_test_copy(struc
|
||||||
orig_dst_addr = dma_alloc_coherent(dev, size + alignment,
|
orig_dst_addr = dma_alloc_coherent(dev, size + alignment,
|
||||||
&orig_dst_phys_addr, GFP_KERNEL);
|
&orig_dst_phys_addr, GFP_KERNEL);
|
||||||
if (!orig_dst_addr) {
|
if (!orig_dst_addr) {
|
||||||
@ -472,7 +464,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
|||||||
ret = false;
|
ret = false;
|
||||||
goto err_orig_src_addr;
|
goto err_orig_src_addr;
|
||||||
}
|
}
|
||||||
@@ -277,8 +398,10 @@ static bool pci_endpoint_test_copy(struc
|
@@ -281,8 +401,10 @@ static bool pci_endpoint_test_copy(struc
|
||||||
pci_endpoint_test_writel(test, PCI_ENDPOINT_TEST_SIZE,
|
pci_endpoint_test_writel(test, PCI_ENDPOINT_TEST_SIZE,
|
||||||
size);
|
size);
|
||||||
|
|
||||||
@ -484,9 +476,9 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
|||||||
|
|
||||||
wait_for_completion(&test->irq_raised);
|
wait_for_completion(&test->irq_raised);
|
||||||
|
|
||||||
@@ -311,10 +434,18 @@ static bool pci_endpoint_test_write(stru
|
@@ -318,10 +440,18 @@ static bool pci_endpoint_test_write(stru
|
||||||
size_t alignment = test->alignment;
|
if (size > SIZE_MAX - alignment)
|
||||||
u32 crc32;
|
goto err;
|
||||||
|
|
||||||
+ if (size > SIZE_MAX - alignment)
|
+ if (size > SIZE_MAX - alignment)
|
||||||
+ goto err;
|
+ goto err;
|
||||||
@ -504,7 +496,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
|||||||
ret = false;
|
ret = false;
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
@@ -341,8 +472,10 @@ static bool pci_endpoint_test_write(stru
|
@@ -348,8 +478,10 @@ static bool pci_endpoint_test_write(stru
|
||||||
|
|
||||||
pci_endpoint_test_writel(test, PCI_ENDPOINT_TEST_SIZE, size);
|
pci_endpoint_test_writel(test, PCI_ENDPOINT_TEST_SIZE, size);
|
||||||
|
|
||||||
@ -516,9 +508,9 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
|||||||
|
|
||||||
wait_for_completion(&test->irq_raised);
|
wait_for_completion(&test->irq_raised);
|
||||||
|
|
||||||
@@ -369,10 +502,18 @@ static bool pci_endpoint_test_read(struc
|
@@ -379,10 +511,18 @@ static bool pci_endpoint_test_read(struc
|
||||||
size_t alignment = test->alignment;
|
if (size > SIZE_MAX - alignment)
|
||||||
u32 crc32;
|
goto err;
|
||||||
|
|
||||||
+ if (size > SIZE_MAX - alignment)
|
+ if (size > SIZE_MAX - alignment)
|
||||||
+ goto err;
|
+ goto err;
|
||||||
@ -536,7 +528,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
|||||||
ret = false;
|
ret = false;
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
@@ -393,8 +534,10 @@ static bool pci_endpoint_test_read(struc
|
@@ -403,8 +543,10 @@ static bool pci_endpoint_test_read(struc
|
||||||
|
|
||||||
pci_endpoint_test_writel(test, PCI_ENDPOINT_TEST_SIZE, size);
|
pci_endpoint_test_writel(test, PCI_ENDPOINT_TEST_SIZE, size);
|
||||||
|
|
||||||
@ -548,7 +540,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
|||||||
|
|
||||||
wait_for_completion(&test->irq_raised);
|
wait_for_completion(&test->irq_raised);
|
||||||
|
|
||||||
@@ -407,6 +550,38 @@ err:
|
@@ -417,6 +559,38 @@ err:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -587,7 +579,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
|||||||
static long pci_endpoint_test_ioctl(struct file *file, unsigned int cmd,
|
static long pci_endpoint_test_ioctl(struct file *file, unsigned int cmd,
|
||||||
unsigned long arg)
|
unsigned long arg)
|
||||||
{
|
{
|
||||||
@@ -426,7 +601,8 @@ static long pci_endpoint_test_ioctl(stru
|
@@ -436,7 +610,8 @@ static long pci_endpoint_test_ioctl(stru
|
||||||
ret = pci_endpoint_test_legacy_irq(test);
|
ret = pci_endpoint_test_legacy_irq(test);
|
||||||
break;
|
break;
|
||||||
case PCITEST_MSI:
|
case PCITEST_MSI:
|
||||||
@ -597,7 +589,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
|||||||
break;
|
break;
|
||||||
case PCITEST_WRITE:
|
case PCITEST_WRITE:
|
||||||
ret = pci_endpoint_test_write(test, arg);
|
ret = pci_endpoint_test_write(test, arg);
|
||||||
@@ -437,6 +613,12 @@ static long pci_endpoint_test_ioctl(stru
|
@@ -447,6 +622,12 @@ static long pci_endpoint_test_ioctl(stru
|
||||||
case PCITEST_COPY:
|
case PCITEST_COPY:
|
||||||
ret = pci_endpoint_test_copy(test, arg);
|
ret = pci_endpoint_test_copy(test, arg);
|
||||||
break;
|
break;
|
||||||
@ -610,7 +602,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
|||||||
}
|
}
|
||||||
|
|
||||||
ret:
|
ret:
|
||||||
@@ -452,9 +634,7 @@ static const struct file_operations pci_
|
@@ -462,9 +643,7 @@ static const struct file_operations pci_
|
||||||
static int pci_endpoint_test_probe(struct pci_dev *pdev,
|
static int pci_endpoint_test_probe(struct pci_dev *pdev,
|
||||||
const struct pci_device_id *ent)
|
const struct pci_device_id *ent)
|
||||||
{
|
{
|
||||||
@ -620,7 +612,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
|||||||
int id;
|
int id;
|
||||||
char name[20];
|
char name[20];
|
||||||
enum pci_barno bar;
|
enum pci_barno bar;
|
||||||
@@ -476,12 +656,15 @@ static int pci_endpoint_test_probe(struc
|
@@ -486,12 +665,15 @@ static int pci_endpoint_test_probe(struc
|
||||||
test->alignment = 0;
|
test->alignment = 0;
|
||||||
test->pdev = pdev;
|
test->pdev = pdev;
|
||||||
|
|
||||||
@ -637,7 +629,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
|||||||
}
|
}
|
||||||
|
|
||||||
init_completion(&test->irq_raised);
|
init_completion(&test->irq_raised);
|
||||||
@@ -501,35 +684,21 @@ static int pci_endpoint_test_probe(struc
|
@@ -511,36 +693,21 @@ static int pci_endpoint_test_probe(struc
|
||||||
|
|
||||||
pci_set_master(pdev);
|
pci_set_master(pdev);
|
||||||
|
|
||||||
@ -645,6 +637,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
|||||||
- irq = pci_alloc_irq_vectors(pdev, 1, 32, PCI_IRQ_MSI);
|
- irq = pci_alloc_irq_vectors(pdev, 1, 32, PCI_IRQ_MSI);
|
||||||
- if (irq < 0)
|
- if (irq < 0)
|
||||||
- dev_err(dev, "failed to get MSI interrupts\n");
|
- dev_err(dev, "failed to get MSI interrupts\n");
|
||||||
|
- test->num_irqs = irq;
|
||||||
- }
|
- }
|
||||||
+ if (!pci_endpoint_test_alloc_irq_vectors(test, irq_type))
|
+ if (!pci_endpoint_test_alloc_irq_vectors(test, irq_type))
|
||||||
+ goto err_disable_irq;
|
+ goto err_disable_irq;
|
||||||
@ -684,7 +677,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
|||||||
}
|
}
|
||||||
|
|
||||||
test->base = test->bar[test_reg_bar];
|
test->base = test->bar[test_reg_bar];
|
||||||
@@ -545,24 +714,31 @@ static int pci_endpoint_test_probe(struc
|
@@ -556,24 +723,31 @@ static int pci_endpoint_test_probe(struc
|
||||||
id = ida_simple_get(&pci_endpoint_test_ida, 0, 0, GFP_KERNEL);
|
id = ida_simple_get(&pci_endpoint_test_ida, 0, 0, GFP_KERNEL);
|
||||||
if (id < 0) {
|
if (id < 0) {
|
||||||
err = id;
|
err = id;
|
||||||
@ -720,20 +713,23 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
|||||||
err_ida_remove:
|
err_ida_remove:
|
||||||
ida_simple_remove(&pci_endpoint_test_ida, id);
|
ida_simple_remove(&pci_endpoint_test_ida, id);
|
||||||
|
|
||||||
@@ -571,9 +747,10 @@ err_iounmap:
|
@@ -583,11 +757,13 @@ err_iounmap:
|
||||||
if (test->bar[bar])
|
|
||||||
pci_iounmap(pdev, test->bar[bar]);
|
pci_iounmap(pdev, test->bar[bar]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- for (i = 0; i < irq; i++)
|
||||||
|
- devm_free_irq(dev, pdev->irq + i, test);
|
||||||
+ pci_endpoint_test_release_irq(test);
|
+ pci_endpoint_test_release_irq(test);
|
||||||
|
|
||||||
-err_disable_msi:
|
err_disable_msi:
|
||||||
- pci_disable_msi(pdev);
|
pci_disable_msi(pdev);
|
||||||
|
+
|
||||||
+err_disable_irq:
|
+err_disable_irq:
|
||||||
+ pci_endpoint_test_free_irq_vectors(test);
|
+ pci_endpoint_test_free_irq_vectors(test);
|
||||||
pci_release_regions(pdev);
|
pci_release_regions(pdev);
|
||||||
|
|
||||||
err_disable_pdev:
|
err_disable_pdev:
|
||||||
@@ -595,12 +772,16 @@ static void pci_endpoint_test_remove(str
|
@@ -610,14 +786,15 @@ static void pci_endpoint_test_remove(str
|
||||||
return;
|
return;
|
||||||
|
|
||||||
misc_deregister(&test->miscdev);
|
misc_deregister(&test->miscdev);
|
||||||
@ -743,15 +739,16 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
|
|||||||
if (test->bar[bar])
|
if (test->bar[bar])
|
||||||
pci_iounmap(pdev, test->bar[bar]);
|
pci_iounmap(pdev, test->bar[bar]);
|
||||||
}
|
}
|
||||||
|
- for (i = 0; i < test->num_irqs; i++)
|
||||||
|
- devm_free_irq(&pdev->dev, pdev->irq + i, test);
|
||||||
- pci_disable_msi(pdev);
|
- pci_disable_msi(pdev);
|
||||||
+
|
+
|
||||||
+ pci_endpoint_test_release_irq(test);
|
+ pci_endpoint_test_release_irq(test);
|
||||||
+ pci_endpoint_test_free_irq_vectors(test);
|
+ pci_endpoint_test_free_irq_vectors(test);
|
||||||
+
|
|
||||||
pci_release_regions(pdev);
|
pci_release_regions(pdev);
|
||||||
pci_disable_device(pdev);
|
pci_disable_device(pdev);
|
||||||
}
|
}
|
||||||
@@ -608,6 +789,7 @@ static void pci_endpoint_test_remove(str
|
@@ -625,6 +802,7 @@ static void pci_endpoint_test_remove(str
|
||||||
static const struct pci_device_id pci_endpoint_test_tbl[] = {
|
static const struct pci_device_id pci_endpoint_test_tbl[] = {
|
||||||
{ PCI_DEVICE(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_DRA74x) },
|
{ PCI_DEVICE(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_DRA74x) },
|
||||||
{ PCI_DEVICE(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_DRA72x) },
|
{ PCI_DEVICE(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_DRA72x) },
|
||||||
|
@ -159,7 +159,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|||||||
#include <linux/slab.h>
|
#include <linux/slab.h>
|
||||||
#include <linux/rtnetlink.h>
|
#include <linux/rtnetlink.h>
|
||||||
#include <linux/sched/signal.h>
|
#include <linux/sched/signal.h>
|
||||||
@@ -2212,6 +2213,9 @@ static int __ethtool_get_module_info(str
|
@@ -2214,6 +2215,9 @@ static int __ethtool_get_module_info(str
|
||||||
const struct ethtool_ops *ops = dev->ethtool_ops;
|
const struct ethtool_ops *ops = dev->ethtool_ops;
|
||||||
struct phy_device *phydev = dev->phydev;
|
struct phy_device *phydev = dev->phydev;
|
||||||
|
|
||||||
@ -169,7 +169,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|||||||
if (phydev && phydev->drv && phydev->drv->module_info)
|
if (phydev && phydev->drv && phydev->drv->module_info)
|
||||||
return phydev->drv->module_info(phydev, modinfo);
|
return phydev->drv->module_info(phydev, modinfo);
|
||||||
|
|
||||||
@@ -2246,6 +2250,9 @@ static int __ethtool_get_module_eeprom(s
|
@@ -2248,6 +2252,9 @@ static int __ethtool_get_module_eeprom(s
|
||||||
const struct ethtool_ops *ops = dev->ethtool_ops;
|
const struct ethtool_ops *ops = dev->ethtool_ops;
|
||||||
struct phy_device *phydev = dev->phydev;
|
struct phy_device *phydev = dev->phydev;
|
||||||
|
|
||||||
|
@ -1,11 +0,0 @@
|
|||||||
--- a/drivers/mtd/spi-nor/spi-nor.c
|
|
||||||
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
|
||||||
@@ -1100,7 +1100,7 @@ static const struct flash_info spi_nor_i
|
|
||||||
{ "mx25l25635e", INFO(0xc22019, 0, 64 * 1024, 512, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
|
|
||||||
{ "mx25u25635f", INFO(0xc22539, 0, 64 * 1024, 512, SECT_4K | SPI_NOR_4B_OPCODES) },
|
|
||||||
{ "mx25l25655e", INFO(0xc22619, 0, 64 * 1024, 512, 0) },
|
|
||||||
- { "mx66l51235l", INFO(0xc2201a, 0, 64 * 1024, 1024, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
|
|
||||||
+ { "mx66l51235l", INFO(0xc2201a, 0, 64 * 1024, 1024, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
|
|
||||||
{ "mx66u51235f", INFO(0xc2253a, 0, 64 * 1024, 1024, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
|
|
||||||
{ "mx66l1g45g", INFO(0xc2201b, 0, 64 * 1024, 2048, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
|
|
||||||
{ "mx66l1g55g", INFO(0xc2261b, 0, 64 * 1024, 2048, SPI_NOR_QUAD_READ) },
|
|
@ -475,7 +475,12 @@ CONFIG_X86_FAST_FEATURE_TESTS=y
|
|||||||
CONFIG_X86_FEATURE_NAMES=y
|
CONFIG_X86_FEATURE_NAMES=y
|
||||||
CONFIG_X86_GENERIC=y
|
CONFIG_X86_GENERIC=y
|
||||||
# CONFIG_X86_GX_SUSPMOD is not set
|
# CONFIG_X86_GX_SUSPMOD is not set
|
||||||
|
# CONFIG_X86_INTEL_MPX is not set
|
||||||
|
# CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS is not set
|
||||||
# CONFIG_X86_INTEL_PSTATE is not set
|
# CONFIG_X86_INTEL_PSTATE is not set
|
||||||
|
CONFIG_X86_INTEL_TSX_MODE_OFF=y
|
||||||
|
# CONFIG_X86_INTEL_TSX_MODE_ON is not set
|
||||||
|
# CONFIG_X86_INTEL_TSX_MODE_AUTO is not set
|
||||||
CONFIG_X86_INTEL_USERCOPY=y
|
CONFIG_X86_INTEL_USERCOPY=y
|
||||||
CONFIG_X86_INTERNODE_CACHE_SHIFT=6
|
CONFIG_X86_INTERNODE_CACHE_SHIFT=6
|
||||||
CONFIG_X86_IO_APIC=y
|
CONFIG_X86_IO_APIC=y
|
||||||
|
Loading…
Reference in New Issue
Block a user