kernel: bump to version 4.14.25
compile/test target mvebu/rango Signed-off-by: Kabuli Chana <newtownBuild@gmail.com>
This commit is contained in:
parent
fa22714181
commit
7c1dae6e26
27 changed files with 80 additions and 251 deletions
|
@ -5,12 +5,12 @@ LINUX_RELEASE?=1
|
|||
LINUX_VERSION-3.18 = .71
|
||||
LINUX_VERSION-4.4 = .119
|
||||
LINUX_VERSION-4.9 = .85
|
||||
LINUX_VERSION-4.14 = .23
|
||||
LINUX_VERSION-4.14 = .25
|
||||
|
||||
LINUX_KERNEL_HASH-3.18.71 = 5abc9778ad44ce02ed6c8ab52ece8a21c6d20d21f6ed8a19287b4a38a50c1240
|
||||
LINUX_KERNEL_HASH-4.4.119 = 4f1f9b7b6b2ee93597239d89bb3b6b60c71ebd8c91d706fadd36f515c68443e6
|
||||
LINUX_KERNEL_HASH-4.9.85 = 80fe13eee45bd0d5aee6193281dc85dad14500e27d238dc45ebcbcc77cd965c1
|
||||
LINUX_KERNEL_HASH-4.14.23 = 9a97b5555a2baaed9aa7711524ae3b9179579efb902d76a814a916aefe5712ca
|
||||
LINUX_KERNEL_HASH-4.14.25 = 6dcfbf79c068e51c1b06edb1ce58ddc9ca351f862bf2a144e96106ec3f21e587
|
||||
|
||||
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
||||
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
|
||||
|
|
|
@ -74,7 +74,7 @@ Cc: Kir Kolyshkin <kir@openvz.org>
|
|||
sk->sk_gso_max_size - 1 - MAX_TCP_HEADER);
|
||||
|
||||
/* Goal is to send at least one packet per ms,
|
||||
@@ -2145,7 +2145,7 @@ static bool tcp_small_queue_check(struct
|
||||
@@ -2172,7 +2172,7 @@ static bool tcp_small_queue_check(struct
|
||||
{
|
||||
unsigned int limit;
|
||||
|
||||
|
|
|
@ -1,147 +0,0 @@
|
|||
From c6bdd0d302119819de72439972d0462c26ef9eda Mon Sep 17 00:00:00 2001
|
||||
From: Felix Janda <felix.janda@posteo.de>
|
||||
Date: Sun, 12 Nov 2017 13:30:17 -0500
|
||||
Subject: uapi libc compat: add fallback for unsupported libcs
|
||||
|
||||
libc-compat.h aims to prevent symbol collisions between uapi and libc
|
||||
headers for each supported libc. This requires continuous coordination
|
||||
between them.
|
||||
|
||||
The goal of this commit is to improve the situation for libcs (such as
|
||||
musl) which are not yet supported and/or do not wish to be explicitly
|
||||
supported, while not affecting supported libcs. More precisely, with
|
||||
this commit, unsupported libcs can request the suppression of any
|
||||
specific uapi definition by defining the correspondings _UAPI_DEF_*
|
||||
macro as 0. This can fix symbol collisions for them, as long as the
|
||||
libc headers are included before the uapi headers. Inclusion in the
|
||||
other order is outside the scope of this commit.
|
||||
|
||||
All infrastructure in order to enable this fallback for unsupported
|
||||
libcs is already in place, except that libc-compat.h unconditionally
|
||||
defines all _UAPI_DEF_* macros to 1 for all unsupported libcs so that
|
||||
any previous definitions are ignored. In order to fix this, this commit
|
||||
merely makes these definitions conditional.
|
||||
|
||||
This commit together with the musl libc commit
|
||||
|
||||
http://git.musl-libc.org/cgit/musl/commit/?id=04983f2272382af92eb8f8838964ff944fbb8258
|
||||
|
||||
fixes for example the following compiler errors when <linux/in6.h> is
|
||||
included after musl's <netinet/in.h>:
|
||||
|
||||
./linux/in6.h:32:8: error: redefinition of 'struct in6_addr'
|
||||
./linux/in6.h:49:8: error: redefinition of 'struct sockaddr_in6'
|
||||
./linux/in6.h:59:8: error: redefinition of 'struct ipv6_mreq'
|
||||
|
||||
The comments referencing glibc are still correct, but this file is not
|
||||
only used for glibc any more.
|
||||
|
||||
Signed-off-by: Felix Janda <felix.janda@posteo.de>
|
||||
Reviewed-by: Hauke Mehrtens <hauke@hauke-m.de>
|
||||
---
|
||||
include/uapi/linux/libc-compat.h | 55 +++++++++++++++++++++++++++++++++++++++-
|
||||
1 file changed, 54 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/include/uapi/linux/libc-compat.h
|
||||
+++ b/include/uapi/linux/libc-compat.h
|
||||
@@ -168,46 +168,99 @@
|
||||
|
||||
/* If we did not see any headers from any supported C libraries,
|
||||
* or we are being included in the kernel, then define everything
|
||||
- * that we need. */
|
||||
+ * that we need. Check for previous __UAPI_* definitions to give
|
||||
+ * unsupported C libraries a way to opt out of any kernel definition. */
|
||||
#else /* !defined(__GLIBC__) */
|
||||
|
||||
/* Definitions for if.h */
|
||||
+#ifndef __UAPI_DEF_IF_IFCONF
|
||||
#define __UAPI_DEF_IF_IFCONF 1
|
||||
+#endif
|
||||
+#ifndef __UAPI_DEF_IF_IFMAP
|
||||
#define __UAPI_DEF_IF_IFMAP 1
|
||||
+#endif
|
||||
+#ifndef __UAPI_DEF_IF_IFNAMSIZ
|
||||
#define __UAPI_DEF_IF_IFNAMSIZ 1
|
||||
+#endif
|
||||
+#ifndef __UAPI_DEF_IF_IFREQ
|
||||
#define __UAPI_DEF_IF_IFREQ 1
|
||||
+#endif
|
||||
/* Everything up to IFF_DYNAMIC, matches net/if.h until glibc 2.23 */
|
||||
+#ifndef __UAPI_DEF_IF_NET_DEVICE_FLAGS
|
||||
#define __UAPI_DEF_IF_NET_DEVICE_FLAGS 1
|
||||
+#endif
|
||||
/* For the future if glibc adds IFF_LOWER_UP, IFF_DORMANT and IFF_ECHO */
|
||||
+#ifndef __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO
|
||||
#define __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO 1
|
||||
+#endif
|
||||
|
||||
/* Definitions for in.h */
|
||||
+#ifndef __UAPI_DEF_IN_ADDR
|
||||
#define __UAPI_DEF_IN_ADDR 1
|
||||
+#endif
|
||||
+#ifndef __UAPI_DEF_IN_IPPROTO
|
||||
#define __UAPI_DEF_IN_IPPROTO 1
|
||||
+#endif
|
||||
+#ifndef __UAPI_DEF_IN_PKTINFO
|
||||
#define __UAPI_DEF_IN_PKTINFO 1
|
||||
+#endif
|
||||
+#ifndef __UAPI_DEF_IP_MREQ
|
||||
#define __UAPI_DEF_IP_MREQ 1
|
||||
+#endif
|
||||
+#ifndef __UAPI_DEF_SOCKADDR_IN
|
||||
#define __UAPI_DEF_SOCKADDR_IN 1
|
||||
+#endif
|
||||
+#ifndef __UAPI_DEF_IN_CLASS
|
||||
#define __UAPI_DEF_IN_CLASS 1
|
||||
+#endif
|
||||
|
||||
/* Definitions for in6.h */
|
||||
+#ifndef __UAPI_DEF_IN6_ADDR
|
||||
#define __UAPI_DEF_IN6_ADDR 1
|
||||
+#endif
|
||||
+#ifndef __UAPI_DEF_IN6_ADDR_ALT
|
||||
#define __UAPI_DEF_IN6_ADDR_ALT 1
|
||||
+#endif
|
||||
+#ifndef __UAPI_DEF_SOCKADDR_IN6
|
||||
#define __UAPI_DEF_SOCKADDR_IN6 1
|
||||
+#endif
|
||||
+#ifndef __UAPI_DEF_IPV6_MREQ
|
||||
#define __UAPI_DEF_IPV6_MREQ 1
|
||||
+#endif
|
||||
+#ifndef __UAPI_DEF_IPPROTO_V6
|
||||
#define __UAPI_DEF_IPPROTO_V6 1
|
||||
+#endif
|
||||
+#ifndef __UAPI_DEF_IPV6_OPTIONS
|
||||
#define __UAPI_DEF_IPV6_OPTIONS 1
|
||||
+#endif
|
||||
+#ifndef __UAPI_DEF_IN6_PKTINFO
|
||||
#define __UAPI_DEF_IN6_PKTINFO 1
|
||||
+#endif
|
||||
+#ifndef __UAPI_DEF_IP6_MTUINFO
|
||||
#define __UAPI_DEF_IP6_MTUINFO 1
|
||||
+#endif
|
||||
|
||||
/* Definitions for ipx.h */
|
||||
+#ifndef __UAPI_DEF_SOCKADDR_IPX
|
||||
#define __UAPI_DEF_SOCKADDR_IPX 1
|
||||
+#endif
|
||||
+#ifndef __UAPI_DEF_IPX_ROUTE_DEFINITION
|
||||
#define __UAPI_DEF_IPX_ROUTE_DEFINITION 1
|
||||
+#endif
|
||||
+#ifndef __UAPI_DEF_IPX_INTERFACE_DEFINITION
|
||||
#define __UAPI_DEF_IPX_INTERFACE_DEFINITION 1
|
||||
+#endif
|
||||
+#ifndef __UAPI_DEF_IPX_CONFIG_DATA
|
||||
#define __UAPI_DEF_IPX_CONFIG_DATA 1
|
||||
+#endif
|
||||
+#ifndef __UAPI_DEF_IPX_ROUTE_DEF
|
||||
#define __UAPI_DEF_IPX_ROUTE_DEF 1
|
||||
+#endif
|
||||
|
||||
/* Definitions for xattr.h */
|
||||
+#ifndef __UAPI_DEF_XATTR
|
||||
#define __UAPI_DEF_XATTR 1
|
||||
+#endif
|
||||
|
||||
#endif /* __GLIBC__ */
|
||||
|
|
@ -265,7 +265,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
}
|
||||
nft_chain_release_hook(&hook);
|
||||
}
|
||||
@@ -5060,10 +5048,9 @@ static int nf_tables_commit(struct net *
|
||||
@@ -5062,10 +5050,9 @@ static int nf_tables_commit(struct net *
|
||||
case NFT_MSG_DELCHAIN:
|
||||
list_del_rcu(&trans->ctx.chain->list);
|
||||
nf_tables_chain_notify(&trans->ctx, NFT_MSG_DELCHAIN);
|
||||
|
@ -279,7 +279,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
break;
|
||||
case NFT_MSG_NEWRULE:
|
||||
nft_clear(trans->ctx.net, nft_trans_rule(trans));
|
||||
@@ -5200,10 +5187,9 @@ static int nf_tables_abort(struct net *n
|
||||
@@ -5202,10 +5189,9 @@ static int nf_tables_abort(struct net *n
|
||||
} else {
|
||||
trans->ctx.table->use--;
|
||||
list_del_rcu(&trans->ctx.chain->list);
|
||||
|
@ -293,7 +293,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
}
|
||||
break;
|
||||
case NFT_MSG_DELCHAIN:
|
||||
@@ -5304,7 +5290,7 @@ int nft_chain_validate_hooks(const struc
|
||||
@@ -5306,7 +5292,7 @@ int nft_chain_validate_hooks(const struc
|
||||
if (nft_is_base_chain(chain)) {
|
||||
basechain = nft_base_chain(chain);
|
||||
|
||||
|
@ -302,7 +302,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
return 0;
|
||||
|
||||
return -EOPNOTSUPP;
|
||||
@@ -5786,8 +5772,7 @@ int __nft_release_basechain(struct nft_c
|
||||
@@ -5788,8 +5774,7 @@ int __nft_release_basechain(struct nft_c
|
||||
|
||||
BUG_ON(!nft_is_base_chain(ctx->chain));
|
||||
|
||||
|
@ -312,7 +312,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
list_for_each_entry_safe(rule, nr, &ctx->chain->rules, list) {
|
||||
list_del(&rule->list);
|
||||
ctx->chain->use--;
|
||||
@@ -5816,8 +5801,7 @@ static void __nft_release_afinfo(struct
|
||||
@@ -5818,8 +5803,7 @@ static void __nft_release_afinfo(struct
|
||||
|
||||
list_for_each_entry_safe(table, nt, &afi->tables, list) {
|
||||
list_for_each_entry(chain, &table->chains, list)
|
||||
|
|
|
@ -292,7 +292,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
list_for_each_entry_safe(obj, ne, &ctx->table->objects, list) {
|
||||
err = nft_delobj(ctx, obj);
|
||||
if (err < 0)
|
||||
@@ -4765,6 +4809,605 @@ static void nf_tables_obj_notify(const s
|
||||
@@ -4767,6 +4811,605 @@ static void nf_tables_obj_notify(const s
|
||||
ctx->afi->family, ctx->report, GFP_KERNEL);
|
||||
}
|
||||
|
||||
|
@ -898,7 +898,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
static int nf_tables_fill_gen_info(struct sk_buff *skb, struct net *net,
|
||||
u32 portid, u32 seq)
|
||||
{
|
||||
@@ -4795,6 +5438,49 @@ nla_put_failure:
|
||||
@@ -4797,6 +5440,49 @@ nla_put_failure:
|
||||
return -EMSGSIZE;
|
||||
}
|
||||
|
||||
|
@ -948,7 +948,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
static void nf_tables_gen_notify(struct net *net, struct sk_buff *skb,
|
||||
int event)
|
||||
{
|
||||
@@ -4947,6 +5633,21 @@ static const struct nfnl_callback nf_tab
|
||||
@@ -4949,6 +5635,21 @@ static const struct nfnl_callback nf_tab
|
||||
.attr_count = NFTA_OBJ_MAX,
|
||||
.policy = nft_obj_policy,
|
||||
},
|
||||
|
@ -970,7 +970,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
};
|
||||
|
||||
static void nft_chain_commit_update(struct nft_trans *trans)
|
||||
@@ -4992,6 +5693,9 @@ static void nf_tables_commit_release(str
|
||||
@@ -4994,6 +5695,9 @@ static void nf_tables_commit_release(str
|
||||
case NFT_MSG_DELOBJ:
|
||||
nft_obj_destroy(nft_trans_obj(trans));
|
||||
break;
|
||||
|
@ -980,7 +980,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
}
|
||||
kfree(trans);
|
||||
}
|
||||
@@ -5109,6 +5813,21 @@ static int nf_tables_commit(struct net *
|
||||
@@ -5111,6 +5815,21 @@ static int nf_tables_commit(struct net *
|
||||
nf_tables_obj_notify(&trans->ctx, nft_trans_obj(trans),
|
||||
NFT_MSG_DELOBJ);
|
||||
break;
|
||||
|
@ -1002,7 +1002,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
}
|
||||
}
|
||||
|
||||
@@ -5146,6 +5865,9 @@ static void nf_tables_abort_release(stru
|
||||
@@ -5148,6 +5867,9 @@ static void nf_tables_abort_release(stru
|
||||
case NFT_MSG_NEWOBJ:
|
||||
nft_obj_destroy(nft_trans_obj(trans));
|
||||
break;
|
||||
|
@ -1012,7 +1012,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
}
|
||||
kfree(trans);
|
||||
}
|
||||
@@ -5235,6 +5957,17 @@ static int nf_tables_abort(struct net *n
|
||||
@@ -5237,6 +5959,17 @@ static int nf_tables_abort(struct net *n
|
||||
nft_clear(trans->ctx.net, nft_trans_obj(trans));
|
||||
nft_trans_destroy(trans);
|
||||
break;
|
||||
|
@ -1030,7 +1030,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
}
|
||||
}
|
||||
|
||||
@@ -5785,6 +6518,7 @@ EXPORT_SYMBOL_GPL(__nft_release_basechai
|
||||
@@ -5787,6 +6520,7 @@ EXPORT_SYMBOL_GPL(__nft_release_basechai
|
||||
/* Called by nft_unregister_afinfo() from __net_exit path, nfnl_lock is held. */
|
||||
static void __nft_release_afinfo(struct net *net, struct nft_af_info *afi)
|
||||
{
|
||||
|
@ -1038,7 +1038,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
struct nft_table *table, *nt;
|
||||
struct nft_chain *chain, *nc;
|
||||
struct nft_object *obj, *ne;
|
||||
@@ -5798,6 +6532,9 @@ static void __nft_release_afinfo(struct
|
||||
@@ -5800,6 +6534,9 @@ static void __nft_release_afinfo(struct
|
||||
list_for_each_entry_safe(table, nt, &afi->tables, list) {
|
||||
list_for_each_entry(chain, &table->chains, list)
|
||||
nf_tables_unregister_hook(net, table, chain);
|
||||
|
@ -1048,7 +1048,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
/* No packets are walking on these chains anymore. */
|
||||
ctx.table = table;
|
||||
list_for_each_entry(chain, &table->chains, list) {
|
||||
@@ -5808,6 +6545,11 @@ static void __nft_release_afinfo(struct
|
||||
@@ -5810,6 +6547,11 @@ static void __nft_release_afinfo(struct
|
||||
nf_tables_rule_destroy(&ctx, rule);
|
||||
}
|
||||
}
|
||||
|
@ -1060,7 +1060,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
list_for_each_entry_safe(set, ns, &table->sets, list) {
|
||||
list_del(&set->list);
|
||||
table->use--;
|
||||
@@ -5851,6 +6593,8 @@ static int __init nf_tables_module_init(
|
||||
@@ -5853,6 +6595,8 @@ static int __init nf_tables_module_init(
|
||||
if (err < 0)
|
||||
goto err3;
|
||||
|
||||
|
@ -1069,7 +1069,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
pr_info("nf_tables: (c) 2007-2009 Patrick McHardy <kaber@trash.net>\n");
|
||||
return register_pernet_subsys(&nf_tables_net_ops);
|
||||
err3:
|
||||
@@ -5865,6 +6609,7 @@ static void __exit nf_tables_module_exit
|
||||
@@ -5867,6 +6611,7 @@ static void __exit nf_tables_module_exit
|
||||
{
|
||||
unregister_pernet_subsys(&nf_tables_net_ops);
|
||||
nfnetlink_subsys_unregister(&nf_tables_subsys);
|
||||
|
|
|
@ -82,7 +82,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
hook->priority = ntohl(nla_get_be32(ha[NFTA_HOOK_PRIORITY]));
|
||||
|
||||
type = chain_type[afi->family][NFT_CHAIN_T_DEFAULT];
|
||||
@@ -4917,7 +4914,7 @@ static int nf_tables_flowtable_parse_hoo
|
||||
@@ -4919,7 +4916,7 @@ static int nf_tables_flowtable_parse_hoo
|
||||
return -EINVAL;
|
||||
|
||||
hooknum = ntohl(nla_get_be32(tb[NFTA_FLOWTABLE_HOOK_NUM]));
|
||||
|
|
|
@ -11,7 +11,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
|
||||
--- a/net/netfilter/nf_tables_api.c
|
||||
+++ b/net/netfilter/nf_tables_api.c
|
||||
@@ -5341,7 +5341,7 @@ static int nf_tables_getflowtable(struct
|
||||
@@ -5343,7 +5343,7 @@ static int nf_tables_getflowtable(struct
|
||||
|
||||
flowtable = nf_tables_flowtable_lookup(table, nla[NFTA_FLOWTABLE_NAME],
|
||||
genmask);
|
||||
|
|
|
@ -62,7 +62,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
if (ret >= 0) {
|
||||
ctx->table->flags &= ~NFT_TABLE_F_DORMANT;
|
||||
nft_trans_table_enable(trans) = true;
|
||||
@@ -5719,7 +5712,6 @@ static int nf_tables_commit(struct net *
|
||||
@@ -5721,7 +5714,6 @@ static int nf_tables_commit(struct net *
|
||||
if (nft_trans_table_update(trans)) {
|
||||
if (!nft_trans_table_enable(trans)) {
|
||||
nf_tables_table_disable(net,
|
||||
|
@ -70,7 +70,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
trans->ctx.table);
|
||||
trans->ctx.table->flags |= NFT_TABLE_F_DORMANT;
|
||||
}
|
||||
@@ -5881,7 +5873,6 @@ static int nf_tables_abort(struct net *n
|
||||
@@ -5883,7 +5875,6 @@ static int nf_tables_abort(struct net *n
|
||||
if (nft_trans_table_update(trans)) {
|
||||
if (nft_trans_table_enable(trans)) {
|
||||
nf_tables_table_disable(net,
|
||||
|
|
|
@ -1,24 +0,0 @@
|
|||
From: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
Date: Tue, 19 Dec 2017 12:01:21 +0100
|
||||
Subject: [PATCH] netfilter: nf_tables: fix chain filter in
|
||||
nf_tables_dump_rules()
|
||||
|
||||
ctx->chain may be null now that we have very large object names,
|
||||
so we cannot check for ctx->chain[0] here.
|
||||
|
||||
Fixes: b7263e071aba7 ("netfilter: nf_tables: Allow table names of up to 255 chars")
|
||||
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
Acked-by: Phil Sutter <phil@nwl.cc>
|
||||
---
|
||||
|
||||
--- a/net/netfilter/nf_tables_api.c
|
||||
+++ b/net/netfilter/nf_tables_api.c
|
||||
@@ -2090,7 +2090,7 @@ static int nf_tables_dump_rules(struct s
|
||||
continue;
|
||||
|
||||
list_for_each_entry_rcu(chain, &table->chains, list) {
|
||||
- if (ctx && ctx->chain[0] &&
|
||||
+ if (ctx && ctx->chain &&
|
||||
strcmp(ctx->chain, chain->name) != 0)
|
||||
continue;
|
||||
|
|
@ -15,9 +15,9 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
|
||||
--- a/net/netfilter/nf_tables_api.c
|
||||
+++ b/net/netfilter/nf_tables_api.c
|
||||
@@ -4614,8 +4614,10 @@ static int nf_tables_dump_obj_done(struc
|
||||
{
|
||||
struct nft_obj_filter *filter = cb->data;
|
||||
@@ -5262,8 +5262,10 @@ static int nf_tables_dump_flowtable_done
|
||||
if (!filter)
|
||||
return 0;
|
||||
|
||||
- kfree(filter->table);
|
||||
- kfree(filter);
|
||||
|
|
|
@ -1107,7 +1107,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
}
|
||||
}
|
||||
done:
|
||||
@@ -5328,7 +5314,8 @@ static int nf_tables_getflowtable(struct
|
||||
@@ -5330,7 +5316,8 @@ static int nf_tables_getflowtable(struct
|
||||
if (IS_ERR(afi))
|
||||
return PTR_ERR(afi);
|
||||
|
||||
|
@ -1117,7 +1117,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
if (IS_ERR(table))
|
||||
return PTR_ERR(table);
|
||||
|
||||
@@ -5371,7 +5358,7 @@ static void nf_tables_flowtable_notify(s
|
||||
@@ -5373,7 +5360,7 @@ static void nf_tables_flowtable_notify(s
|
||||
|
||||
err = nf_tables_fill_flowtable_info(skb, ctx->net, ctx->portid,
|
||||
ctx->seq, event, 0,
|
||||
|
@ -1126,7 +1126,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
if (err < 0) {
|
||||
kfree_skb(skb);
|
||||
goto err;
|
||||
@@ -5449,17 +5436,14 @@ static int nf_tables_flowtable_event(str
|
||||
@@ -5451,17 +5438,14 @@ static int nf_tables_flowtable_event(str
|
||||
struct net_device *dev = netdev_notifier_info_to_dev(ptr);
|
||||
struct nft_flowtable *flowtable;
|
||||
struct nft_table *table;
|
||||
|
@ -1147,7 +1147,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
}
|
||||
}
|
||||
nfnl_unlock(NFNL_SUBSYS_NFTABLES);
|
||||
@@ -6478,6 +6462,7 @@ EXPORT_SYMBOL_GPL(nft_data_dump);
|
||||
@@ -6480,6 +6464,7 @@ EXPORT_SYMBOL_GPL(nft_data_dump);
|
||||
static int __net_init nf_tables_init_net(struct net *net)
|
||||
{
|
||||
INIT_LIST_HEAD(&net->nft.af_info);
|
||||
|
@ -1155,7 +1155,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
INIT_LIST_HEAD(&net->nft.commit_list);
|
||||
net->nft.base_seq = 1;
|
||||
return 0;
|
||||
@@ -6514,10 +6499,10 @@ static void __nft_release_afinfo(struct
|
||||
@@ -6516,10 +6501,10 @@ static void __nft_release_afinfo(struct
|
||||
struct nft_set *set, *ns;
|
||||
struct nft_ctx ctx = {
|
||||
.net = net,
|
||||
|
|
|
@ -21,7 +21,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
static struct pernet_operations clusterip_net_ops = {
|
||||
--- a/net/netfilter/nf_tables_api.c
|
||||
+++ b/net/netfilter/nf_tables_api.c
|
||||
@@ -6468,6 +6468,12 @@ static int __net_init nf_tables_init_net
|
||||
@@ -6470,6 +6470,12 @@ static int __net_init nf_tables_init_net
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -34,7 +34,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
int __nft_release_basechain(struct nft_ctx *ctx)
|
||||
{
|
||||
struct nft_rule *rule, *nr;
|
||||
@@ -6545,6 +6551,7 @@ static void __nft_release_afinfo(struct
|
||||
@@ -6547,6 +6553,7 @@ static void __nft_release_afinfo(struct
|
||||
|
||||
static struct pernet_operations nf_tables_net_ops = {
|
||||
.init = nf_tables_init_net,
|
||||
|
|
|
@ -383,7 +383,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
}
|
||||
}
|
||||
rcu_read_unlock();
|
||||
@@ -6459,21 +6454,6 @@ int nft_data_dump(struct sk_buff *skb, i
|
||||
@@ -6461,21 +6456,6 @@ int nft_data_dump(struct sk_buff *skb, i
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(nft_data_dump);
|
||||
|
||||
|
@ -405,7 +405,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
int __nft_release_basechain(struct nft_ctx *ctx)
|
||||
{
|
||||
struct nft_rule *rule, *nr;
|
||||
@@ -6494,8 +6474,7 @@ int __nft_release_basechain(struct nft_c
|
||||
@@ -6496,8 +6476,7 @@ int __nft_release_basechain(struct nft_c
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(__nft_release_basechain);
|
||||
|
||||
|
@ -415,7 +415,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
{
|
||||
struct nft_flowtable *flowtable, *nf;
|
||||
struct nft_table *table, *nt;
|
||||
@@ -6505,10 +6484,11 @@ static void __nft_release_afinfo(struct
|
||||
@@ -6507,10 +6486,11 @@ static void __nft_release_afinfo(struct
|
||||
struct nft_set *set, *ns;
|
||||
struct nft_ctx ctx = {
|
||||
.net = net,
|
||||
|
@ -428,7 +428,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
list_for_each_entry(chain, &table->chains, list)
|
||||
nf_tables_unregister_hook(net, table, chain);
|
||||
list_for_each_entry(flowtable, &table->flowtables, list)
|
||||
@@ -6549,6 +6529,21 @@ static void __nft_release_afinfo(struct
|
||||
@@ -6551,6 +6531,21 @@ static void __nft_release_afinfo(struct
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1041,7 +1041,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
goto done;
|
||||
|
||||
nl_dump_check_consistent(cb, nlmsg_hdr(skb));
|
||||
@@ -5279,7 +5119,6 @@ static int nf_tables_getflowtable(struct
|
||||
@@ -5281,7 +5121,6 @@ static int nf_tables_getflowtable(struct
|
||||
u8 genmask = nft_genmask_cur(net);
|
||||
int family = nfmsg->nfgen_family;
|
||||
struct nft_flowtable *flowtable;
|
||||
|
@ -1049,7 +1049,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
const struct nft_table *table;
|
||||
struct sk_buff *skb2;
|
||||
int err;
|
||||
@@ -5305,12 +5144,8 @@ static int nf_tables_getflowtable(struct
|
||||
@@ -5307,12 +5146,8 @@ static int nf_tables_getflowtable(struct
|
||||
if (!nla[NFTA_FLOWTABLE_NAME])
|
||||
return -EINVAL;
|
||||
|
||||
|
@ -1063,7 +1063,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
if (IS_ERR(table))
|
||||
return PTR_ERR(table);
|
||||
|
||||
@@ -6474,7 +6309,7 @@ int __nft_release_basechain(struct nft_c
|
||||
@@ -6476,7 +6311,7 @@ int __nft_release_basechain(struct nft_c
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(__nft_release_basechain);
|
||||
|
||||
|
@ -1072,7 +1072,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
{
|
||||
struct nft_flowtable *flowtable, *nf;
|
||||
struct nft_table *table, *nt;
|
||||
@@ -6487,7 +6322,7 @@ static void __nft_release_afinfo(struct
|
||||
@@ -6489,7 +6324,7 @@ static void __nft_release_afinfo(struct
|
||||
};
|
||||
|
||||
list_for_each_entry_safe(table, nt, &net->nft.tables, list) {
|
||||
|
@ -1081,7 +1081,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
|
||||
list_for_each_entry(chain, &table->chains, list)
|
||||
nf_tables_unregister_hook(net, table, chain);
|
||||
@@ -6539,7 +6374,7 @@ static int __net_init nf_tables_init_net
|
||||
@@ -6541,7 +6376,7 @@ static int __net_init nf_tables_init_net
|
||||
|
||||
static void __net_exit nf_tables_exit_net(struct net *net)
|
||||
{
|
||||
|
|
|
@ -118,7 +118,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||
};
|
||||
--- a/net/netfilter/nf_tables_api.c
|
||||
+++ b/net/netfilter/nf_tables_api.c
|
||||
@@ -5201,17 +5201,12 @@ err:
|
||||
@@ -5203,17 +5203,12 @@ err:
|
||||
nfnetlink_set_err(ctx->net, ctx->portid, NFNLGRP_NFTABLES, -ENOBUFS);
|
||||
}
|
||||
|
||||
|
|
|
@ -285,7 +285,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
err3:
|
||||
module_put(type->owner);
|
||||
err2:
|
||||
@@ -5325,10 +5323,8 @@ err:
|
||||
@@ -5327,10 +5325,8 @@ err:
|
||||
|
||||
static void nf_tables_flowtable_destroy(struct nft_flowtable *flowtable)
|
||||
{
|
||||
|
|
|
@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
|
||||
--- a/include/net/sch_generic.h
|
||||
+++ b/include/net/sch_generic.h
|
||||
@@ -369,12 +369,13 @@ extern struct Qdisc_ops noop_qdisc_ops;
|
||||
@@ -368,12 +368,13 @@ extern struct Qdisc_ops noop_qdisc_ops;
|
||||
extern struct Qdisc_ops pfifo_fast_ops;
|
||||
extern struct Qdisc_ops mq_qdisc_ops;
|
||||
extern struct Qdisc_ops noqueue_qdisc_ops;
|
||||
|
|
|
@ -101,7 +101,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
help
|
||||
--- a/net/core/dev.c
|
||||
+++ b/net/core/dev.c
|
||||
@@ -2975,10 +2975,20 @@ static int xmit_one(struct sk_buff *skb,
|
||||
@@ -2982,10 +2982,20 @@ static int xmit_one(struct sk_buff *skb,
|
||||
if (!list_empty(&ptype_all) || !list_empty(&dev->ptype_all))
|
||||
dev_queue_xmit_nit(skb, dev);
|
||||
|
||||
|
|
|
@ -393,7 +393,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
|
||||
--- a/net/ipv4/route.c
|
||||
+++ b/net/ipv4/route.c
|
||||
@@ -424,6 +424,9 @@ static struct pernet_operations ip_rt_pr
|
||||
@@ -427,6 +427,9 @@ static struct pernet_operations ip_rt_pr
|
||||
|
||||
static int __init ip_rt_proc_init(void)
|
||||
{
|
||||
|
|
|
@ -300,7 +300,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
|||
/**
|
||||
* ip6_tnl_addr_conflict - compare packet addresses to tunnel's own
|
||||
* @t: the outgoing tunnel device
|
||||
@@ -1296,6 +1436,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
|
||||
@@ -1301,6 +1441,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
|
||||
{
|
||||
struct ip6_tnl *t = netdev_priv(dev);
|
||||
struct ipv6hdr *ipv6h = ipv6_hdr(skb);
|
||||
|
@ -308,7 +308,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
|||
int encap_limit = -1;
|
||||
__u16 offset;
|
||||
struct flowi6 fl6;
|
||||
@@ -1358,6 +1499,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
|
||||
@@ -1363,6 +1504,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
|
||||
|
||||
fl6.flowi6_uid = sock_net_uid(dev_net(dev), NULL);
|
||||
|
||||
|
@ -327,7 +327,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
|||
if (iptunnel_handle_offloads(skb, SKB_GSO_IPXIP6))
|
||||
return -1;
|
||||
|
||||
@@ -1486,6 +1639,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
|
||||
@@ -1491,6 +1644,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
|
||||
t->parms.link = p->link;
|
||||
t->parms.proto = p->proto;
|
||||
t->parms.fwmark = p->fwmark;
|
||||
|
@ -342,7 +342,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
|||
dst_cache_reset(&t->dst_cache);
|
||||
ip6_tnl_link_config(t);
|
||||
return 0;
|
||||
@@ -1524,6 +1685,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
|
||||
@@ -1529,6 +1690,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
|
||||
p->flowinfo = u->flowinfo;
|
||||
p->link = u->link;
|
||||
p->proto = u->proto;
|
||||
|
@ -350,7 +350,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
|||
memcpy(p->name, u->name, sizeof(u->name));
|
||||
}
|
||||
|
||||
@@ -1905,6 +2067,15 @@ static int ip6_tnl_validate(struct nlatt
|
||||
@@ -1910,6 +2072,15 @@ static int ip6_tnl_validate(struct nlatt
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -366,7 +366,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
|||
static void ip6_tnl_netlink_parms(struct nlattr *data[],
|
||||
struct __ip6_tnl_parm *parms)
|
||||
{
|
||||
@@ -1942,6 +2113,46 @@ static void ip6_tnl_netlink_parms(struct
|
||||
@@ -1947,6 +2118,46 @@ static void ip6_tnl_netlink_parms(struct
|
||||
|
||||
if (data[IFLA_IPTUN_FWMARK])
|
||||
parms->fwmark = nla_get_u32(data[IFLA_IPTUN_FWMARK]);
|
||||
|
@ -413,7 +413,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
|||
}
|
||||
|
||||
static bool ip6_tnl_netlink_encap_parms(struct nlattr *data[],
|
||||
@@ -2053,6 +2264,12 @@ static void ip6_tnl_dellink(struct net_d
|
||||
@@ -2058,6 +2269,12 @@ static void ip6_tnl_dellink(struct net_d
|
||||
|
||||
static size_t ip6_tnl_get_size(const struct net_device *dev)
|
||||
{
|
||||
|
@ -426,7 +426,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
|||
return
|
||||
/* IFLA_IPTUN_LINK */
|
||||
nla_total_size(4) +
|
||||
@@ -2082,6 +2299,24 @@ static size_t ip6_tnl_get_size(const str
|
||||
@@ -2087,6 +2304,24 @@ static size_t ip6_tnl_get_size(const str
|
||||
nla_total_size(0) +
|
||||
/* IFLA_IPTUN_FWMARK */
|
||||
nla_total_size(4) +
|
||||
|
@ -451,7 +451,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
|||
0;
|
||||
}
|
||||
|
||||
@@ -2089,6 +2324,9 @@ static int ip6_tnl_fill_info(struct sk_b
|
||||
@@ -2094,6 +2329,9 @@ static int ip6_tnl_fill_info(struct sk_b
|
||||
{
|
||||
struct ip6_tnl *tunnel = netdev_priv(dev);
|
||||
struct __ip6_tnl_parm *parm = &tunnel->parms;
|
||||
|
@ -461,7 +461,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
|||
|
||||
if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
|
||||
nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) ||
|
||||
@@ -2098,9 +2336,27 @@ static int ip6_tnl_fill_info(struct sk_b
|
||||
@@ -2103,9 +2341,27 @@ static int ip6_tnl_fill_info(struct sk_b
|
||||
nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) ||
|
||||
nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) ||
|
||||
nla_put_u8(skb, IFLA_IPTUN_PROTO, parm->proto) ||
|
||||
|
@ -490,7 +490,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
|||
if (nla_put_u16(skb, IFLA_IPTUN_ENCAP_TYPE, tunnel->encap.type) ||
|
||||
nla_put_be16(skb, IFLA_IPTUN_ENCAP_SPORT, tunnel->encap.sport) ||
|
||||
nla_put_be16(skb, IFLA_IPTUN_ENCAP_DPORT, tunnel->encap.dport) ||
|
||||
@@ -2140,6 +2396,7 @@ static const struct nla_policy ip6_tnl_p
|
||||
@@ -2145,6 +2401,7 @@ static const struct nla_policy ip6_tnl_p
|
||||
[IFLA_IPTUN_ENCAP_DPORT] = { .type = NLA_U16 },
|
||||
[IFLA_IPTUN_COLLECT_METADATA] = { .type = NLA_FLAG },
|
||||
[IFLA_IPTUN_FWMARK] = { .type = NLA_U32 },
|
||||
|
|
|
@ -141,7 +141,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||
static const struct rt6_info ip6_blk_hole_entry_template = {
|
||||
.dst = {
|
||||
.__refcnt = ATOMIC_INIT(1),
|
||||
@@ -2037,6 +2054,11 @@ static struct rt6_info *ip6_route_info_c
|
||||
@@ -2038,6 +2055,11 @@ static struct rt6_info *ip6_route_info_c
|
||||
rt->dst.output = ip6_pkt_prohibit_out;
|
||||
rt->dst.input = ip6_pkt_prohibit;
|
||||
break;
|
||||
|
@ -153,7 +153,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||
case RTN_THROW:
|
||||
case RTN_UNREACHABLE:
|
||||
default:
|
||||
@@ -2762,6 +2784,17 @@ static int ip6_pkt_prohibit_out(struct n
|
||||
@@ -2763,6 +2785,17 @@ static int ip6_pkt_prohibit_out(struct n
|
||||
return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
|
||||
}
|
||||
|
||||
|
@ -171,7 +171,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||
/*
|
||||
* Allocate a dst for local (unicast / anycast) address.
|
||||
*/
|
||||
@@ -2996,7 +3029,8 @@ static int rtm_to_fib6_config(struct sk_
|
||||
@@ -2997,7 +3030,8 @@ static int rtm_to_fib6_config(struct sk_
|
||||
if (rtm->rtm_type == RTN_UNREACHABLE ||
|
||||
rtm->rtm_type == RTN_BLACKHOLE ||
|
||||
rtm->rtm_type == RTN_PROHIBIT ||
|
||||
|
@ -181,7 +181,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||
cfg->fc_flags |= RTF_REJECT;
|
||||
|
||||
if (rtm->rtm_type == RTN_LOCAL)
|
||||
@@ -3486,6 +3520,9 @@ static int rt6_fill_node(struct net *net
|
||||
@@ -3487,6 +3521,9 @@ static int rt6_fill_node(struct net *net
|
||||
case -EACCES:
|
||||
rtm->rtm_type = RTN_PROHIBIT;
|
||||
break;
|
||||
|
@ -191,7 +191,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||
case -EAGAIN:
|
||||
rtm->rtm_type = RTN_THROW;
|
||||
break;
|
||||
@@ -3804,6 +3841,8 @@ static int ip6_route_dev_notify(struct n
|
||||
@@ -3805,6 +3842,8 @@ static int ip6_route_dev_notify(struct n
|
||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||
net->ipv6.ip6_prohibit_entry->dst.dev = dev;
|
||||
net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
|
||||
|
@ -200,7 +200,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||
net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
|
||||
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
|
||||
#endif
|
||||
@@ -4031,6 +4070,17 @@ static int __net_init ip6_route_net_init
|
||||
@@ -4032,6 +4071,17 @@ static int __net_init ip6_route_net_init
|
||||
net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
|
||||
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
|
||||
ip6_template_metrics, true);
|
||||
|
@ -218,7 +218,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||
#endif
|
||||
|
||||
net->ipv6.sysctl.flush_delay = 0;
|
||||
@@ -4049,6 +4099,8 @@ out:
|
||||
@@ -4050,6 +4100,8 @@ out:
|
||||
return ret;
|
||||
|
||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||
|
@ -227,7 +227,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||
out_ip6_prohibit_entry:
|
||||
kfree(net->ipv6.ip6_prohibit_entry);
|
||||
out_ip6_null_entry:
|
||||
@@ -4066,6 +4118,7 @@ static void __net_exit ip6_route_net_exi
|
||||
@@ -4067,6 +4119,7 @@ static void __net_exit ip6_route_net_exi
|
||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||
kfree(net->ipv6.ip6_prohibit_entry);
|
||||
kfree(net->ipv6.ip6_blk_hole_entry);
|
||||
|
@ -235,7 +235,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||
#endif
|
||||
dst_entries_destroy(&net->ipv6.ip6_dst_ops);
|
||||
}
|
||||
@@ -4139,6 +4192,9 @@ void __init ip6_route_init_special_entri
|
||||
@@ -4140,6 +4193,9 @@ void __init ip6_route_init_special_entri
|
||||
init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
|
||||
init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
|
||||
init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
|
||||
|
|
|
@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
__u16 tc_index; /* traffic control index */
|
||||
--- a/net/core/dev.c
|
||||
+++ b/net/core/dev.c
|
||||
@@ -4768,6 +4768,9 @@ static enum gro_result dev_gro_receive(s
|
||||
@@ -4775,6 +4775,9 @@ static enum gro_result dev_gro_receive(s
|
||||
enum gro_result ret;
|
||||
int grow;
|
||||
|
||||
|
@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
if (netif_elide_gro(skb->dev))
|
||||
goto normal;
|
||||
|
||||
@@ -6238,6 +6241,48 @@ static void __netdev_adjacent_dev_unlink
|
||||
@@ -6245,6 +6248,48 @@ static void __netdev_adjacent_dev_unlink
|
||||
&upper_dev->adj_list.lower);
|
||||
}
|
||||
|
||||
|
@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
static int __netdev_upper_dev_link(struct net_device *dev,
|
||||
struct net_device *upper_dev, bool master,
|
||||
void *upper_priv, void *upper_info)
|
||||
@@ -6276,6 +6321,7 @@ static int __netdev_upper_dev_link(struc
|
||||
@@ -6283,6 +6328,7 @@ static int __netdev_upper_dev_link(struc
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
|
||||
&changeupper_info.info);
|
||||
ret = notifier_to_errno(ret);
|
||||
@@ -6353,6 +6399,7 @@ void netdev_upper_dev_unlink(struct net_
|
||||
@@ -6360,6 +6406,7 @@ void netdev_upper_dev_unlink(struct net_
|
||||
|
||||
__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
|
||||
|
||||
|
@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
|
||||
&changeupper_info.info);
|
||||
}
|
||||
@@ -6923,6 +6970,7 @@ int dev_set_mac_address(struct net_devic
|
||||
@@ -6930,6 +6977,7 @@ int dev_set_mac_address(struct net_devic
|
||||
if (err)
|
||||
return err;
|
||||
dev->addr_assign_type = NET_ADDR_SET;
|
||||
|
|
|
@ -22,7 +22,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
|
|||
|
||||
mapped_addr = dma_map_single(eth->dev, skb->data,
|
||||
skb_headlen(skb), DMA_TO_DEVICE);
|
||||
@@ -1979,7 +1979,10 @@ static int mtk_hw_init(struct mtk_eth *e
|
||||
@@ -1980,7 +1980,10 @@ static int mtk_hw_init(struct mtk_eth *e
|
||||
mtk_w32(eth, val | MTK_CDMQ_STAG_EN, MTK_CDMQ_IG_CTRL);
|
||||
|
||||
/* Enable RX VLan Offloading */
|
||||
|
|
|
@ -17,7 +17,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
|
|||
|
||||
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
@@ -1983,6 +1983,8 @@ static int mtk_hw_init(struct mtk_eth *e
|
||||
@@ -1984,6 +1984,8 @@ static int mtk_hw_init(struct mtk_eth *e
|
||||
*/
|
||||
val = mtk_r32(eth, MTK_CDMQ_IG_CTRL);
|
||||
mtk_w32(eth, val | MTK_CDMQ_STAG_EN, MTK_CDMQ_IG_CTRL);
|
||||
|
|
|
@ -11,7 +11,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
|
|||
|
||||
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
@@ -1994,6 +1994,7 @@ static int mtk_hw_init(struct mtk_eth *e
|
||||
@@ -1995,6 +1995,7 @@ static int mtk_hw_init(struct mtk_eth *e
|
||||
|
||||
/* enable interrupt delay for RX */
|
||||
mtk_w32(eth, MTK_PDMA_DELAY_RX_DELAY, MTK_PDMA_DELAY_INT);
|
||||
|
|
|
@ -10,7 +10,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
|
|||
|
||||
--- a/net/core/dev.c
|
||||
+++ b/net/core/dev.c
|
||||
@@ -3621,6 +3621,58 @@ set_rps_cpu(struct net_device *dev, stru
|
||||
@@ -3628,6 +3628,58 @@ set_rps_cpu(struct net_device *dev, stru
|
||||
return rflow;
|
||||
}
|
||||
|
||||
|
@ -69,7 +69,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
|
|||
/*
|
||||
* get_rps_cpu is called from netif_receive_skb and returns the target
|
||||
* CPU from the RPS map of the receiving queue for a given skb.
|
||||
@@ -3710,7 +3762,7 @@ static int get_rps_cpu(struct net_device
|
||||
@@ -3717,7 +3769,7 @@ static int get_rps_cpu(struct net_device
|
||||
try_rps:
|
||||
|
||||
if (map) {
|
||||
|
@ -78,7 +78,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
|
|||
if (cpu_online(tcpu)) {
|
||||
cpu = tcpu;
|
||||
goto done;
|
||||
@@ -8795,6 +8847,9 @@ static int __init net_dev_init(void)
|
||||
@@ -8802,6 +8854,9 @@ static int __init net_dev_init(void)
|
||||
sd->backlog.weight = weight_p;
|
||||
}
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
|
|||
|
||||
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
@@ -2453,7 +2453,7 @@ static int mtk_add_mac(struct mtk_eth *e
|
||||
@@ -2454,7 +2454,7 @@ static int mtk_add_mac(struct mtk_eth *e
|
||||
mac->hw_stats->reg_offset = id * MTK_STAT_OFFSET;
|
||||
|
||||
SET_NETDEV_DEV(eth->netdev[id], eth->dev);
|
||||
|
|
Loading…
Reference in a new issue