kernel: bump 4.9 to 4.9.86
- Refreshed all patches - Removed 1 patch which got upstreamed Compile tested on: ar71xx (Rocket M5, Mikrotik RB2011) Runtime tested on: ar71xx (Rocket M5, Mikrotik RB2011) Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
This commit is contained in:
parent
7c1dae6e26
commit
cfc5867bce
6 changed files with 24 additions and 171 deletions
|
@ -4,12 +4,12 @@ LINUX_RELEASE?=1
|
||||||
|
|
||||||
LINUX_VERSION-3.18 = .71
|
LINUX_VERSION-3.18 = .71
|
||||||
LINUX_VERSION-4.4 = .119
|
LINUX_VERSION-4.4 = .119
|
||||||
LINUX_VERSION-4.9 = .85
|
LINUX_VERSION-4.9 = .86
|
||||||
LINUX_VERSION-4.14 = .25
|
LINUX_VERSION-4.14 = .25
|
||||||
|
|
||||||
LINUX_KERNEL_HASH-3.18.71 = 5abc9778ad44ce02ed6c8ab52ece8a21c6d20d21f6ed8a19287b4a38a50c1240
|
LINUX_KERNEL_HASH-3.18.71 = 5abc9778ad44ce02ed6c8ab52ece8a21c6d20d21f6ed8a19287b4a38a50c1240
|
||||||
LINUX_KERNEL_HASH-4.4.119 = 4f1f9b7b6b2ee93597239d89bb3b6b60c71ebd8c91d706fadd36f515c68443e6
|
LINUX_KERNEL_HASH-4.4.119 = 4f1f9b7b6b2ee93597239d89bb3b6b60c71ebd8c91d706fadd36f515c68443e6
|
||||||
LINUX_KERNEL_HASH-4.9.85 = 80fe13eee45bd0d5aee6193281dc85dad14500e27d238dc45ebcbcc77cd965c1
|
LINUX_KERNEL_HASH-4.9.86 = a7cf6eb5efcf182f1760fdfc06118eecce5d8c9d82d6945e68fc15db990c6e85
|
||||||
LINUX_KERNEL_HASH-4.14.25 = 6dcfbf79c068e51c1b06edb1ce58ddc9ca351f862bf2a144e96106ec3f21e587
|
LINUX_KERNEL_HASH-4.14.25 = 6dcfbf79c068e51c1b06edb1ce58ddc9ca351f862bf2a144e96106ec3f21e587
|
||||||
|
|
||||||
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
||||||
|
|
|
@ -51,7 +51,7 @@ Tested with raspbian-jessie 2016-09-23.
|
||||||
+
|
+
|
||||||
config ARCH_SUNXI
|
config ARCH_SUNXI
|
||||||
bool "Allwinner sunxi 64-bit SoC Family"
|
bool "Allwinner sunxi 64-bit SoC Family"
|
||||||
select ARCH_HAS_RESET_CONTROLLER
|
select ARCH_HAS_RESET_CONTROLLER
|
||||||
--- a/arch/arm64/boot/dts/broadcom/Makefile
|
--- a/arch/arm64/boot/dts/broadcom/Makefile
|
||||||
+++ b/arch/arm64/boot/dts/broadcom/Makefile
|
+++ b/arch/arm64/boot/dts/broadcom/Makefile
|
||||||
@@ -1,6 +1,7 @@
|
@@ -1,6 +1,7 @@
|
||||||
|
|
|
@ -280,7 +280,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
|
|
||||||
--- a/drivers/net/ethernet/arc/emac_main.c
|
--- a/drivers/net/ethernet/arc/emac_main.c
|
||||||
+++ b/drivers/net/ethernet/arc/emac_main.c
|
+++ b/drivers/net/ethernet/arc/emac_main.c
|
||||||
@@ -275,7 +275,7 @@ static int arc_emac_poll(struct napi_str
|
@@ -284,7 +284,7 @@ static int arc_emac_poll(struct napi_str
|
||||||
|
|
||||||
work_done = arc_emac_rx(ndev, budget);
|
work_done = arc_emac_rx(ndev, budget);
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
|
|
|
@ -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
|
|
||||||
@@ -167,46 +167,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__ */
|
|
||||||
|
|
|
@ -300,7 +300,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||||
/**
|
/**
|
||||||
* ip6_tnl_addr_conflict - compare packet addresses to tunnel's own
|
* ip6_tnl_addr_conflict - compare packet addresses to tunnel's own
|
||||||
* @t: the outgoing tunnel device
|
* @t: the outgoing tunnel device
|
||||||
@@ -1287,6 +1427,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
|
@@ -1292,6 +1432,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
|
||||||
{
|
{
|
||||||
struct ip6_tnl *t = netdev_priv(dev);
|
struct ip6_tnl *t = netdev_priv(dev);
|
||||||
struct ipv6hdr *ipv6h = ipv6_hdr(skb);
|
struct ipv6hdr *ipv6h = ipv6_hdr(skb);
|
||||||
|
@ -308,7 +308,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||||
int encap_limit = -1;
|
int encap_limit = -1;
|
||||||
__u16 offset;
|
__u16 offset;
|
||||||
struct flowi6 fl6;
|
struct flowi6 fl6;
|
||||||
@@ -1345,6 +1486,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
|
@@ -1350,6 +1491,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
|
||||||
fl6.flowi6_mark = skb->mark;
|
fl6.flowi6_mark = skb->mark;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -327,7 +327,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||||
if (iptunnel_handle_offloads(skb, SKB_GSO_IPXIP6))
|
if (iptunnel_handle_offloads(skb, SKB_GSO_IPXIP6))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
@@ -1472,6 +1625,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
|
@@ -1477,6 +1630,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
|
||||||
t->parms.flowinfo = p->flowinfo;
|
t->parms.flowinfo = p->flowinfo;
|
||||||
t->parms.link = p->link;
|
t->parms.link = p->link;
|
||||||
t->parms.proto = p->proto;
|
t->parms.proto = p->proto;
|
||||||
|
@ -342,7 +342,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||||
dst_cache_reset(&t->dst_cache);
|
dst_cache_reset(&t->dst_cache);
|
||||||
ip6_tnl_link_config(t);
|
ip6_tnl_link_config(t);
|
||||||
return 0;
|
return 0;
|
||||||
@@ -1510,6 +1671,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
|
@@ -1515,6 +1676,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
|
||||||
p->flowinfo = u->flowinfo;
|
p->flowinfo = u->flowinfo;
|
||||||
p->link = u->link;
|
p->link = u->link;
|
||||||
p->proto = u->proto;
|
p->proto = u->proto;
|
||||||
|
@ -350,7 +350,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||||
memcpy(p->name, u->name, sizeof(u->name));
|
memcpy(p->name, u->name, sizeof(u->name));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1887,6 +2049,15 @@ static int ip6_tnl_validate(struct nlatt
|
@@ -1892,6 +2054,15 @@ static int ip6_tnl_validate(struct nlatt
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -366,7 +366,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||||
static void ip6_tnl_netlink_parms(struct nlattr *data[],
|
static void ip6_tnl_netlink_parms(struct nlattr *data[],
|
||||||
struct __ip6_tnl_parm *parms)
|
struct __ip6_tnl_parm *parms)
|
||||||
{
|
{
|
||||||
@@ -1921,6 +2092,46 @@ static void ip6_tnl_netlink_parms(struct
|
@@ -1926,6 +2097,46 @@ static void ip6_tnl_netlink_parms(struct
|
||||||
|
|
||||||
if (data[IFLA_IPTUN_COLLECT_METADATA])
|
if (data[IFLA_IPTUN_COLLECT_METADATA])
|
||||||
parms->collect_md = true;
|
parms->collect_md = true;
|
||||||
|
@ -413,7 +413,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool ip6_tnl_netlink_encap_parms(struct nlattr *data[],
|
static bool ip6_tnl_netlink_encap_parms(struct nlattr *data[],
|
||||||
@@ -2030,6 +2241,12 @@ static void ip6_tnl_dellink(struct net_d
|
@@ -2035,6 +2246,12 @@ static void ip6_tnl_dellink(struct net_d
|
||||||
|
|
||||||
static size_t ip6_tnl_get_size(const struct net_device *dev)
|
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
|
return
|
||||||
/* IFLA_IPTUN_LINK */
|
/* IFLA_IPTUN_LINK */
|
||||||
nla_total_size(4) +
|
nla_total_size(4) +
|
||||||
@@ -2057,6 +2274,24 @@ static size_t ip6_tnl_get_size(const str
|
@@ -2062,6 +2279,24 @@ static size_t ip6_tnl_get_size(const str
|
||||||
nla_total_size(2) +
|
nla_total_size(2) +
|
||||||
/* IFLA_IPTUN_COLLECT_METADATA */
|
/* IFLA_IPTUN_COLLECT_METADATA */
|
||||||
nla_total_size(0) +
|
nla_total_size(0) +
|
||||||
|
@ -451,7 +451,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||||
0;
|
0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2064,6 +2299,9 @@ static int ip6_tnl_fill_info(struct sk_b
|
@@ -2069,6 +2304,9 @@ static int ip6_tnl_fill_info(struct sk_b
|
||||||
{
|
{
|
||||||
struct ip6_tnl *tunnel = netdev_priv(dev);
|
struct ip6_tnl *tunnel = netdev_priv(dev);
|
||||||
struct __ip6_tnl_parm *parm = &tunnel->parms;
|
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) ||
|
if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
|
||||||
nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) ||
|
nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) ||
|
||||||
@@ -2072,9 +2310,27 @@ static int ip6_tnl_fill_info(struct sk_b
|
@@ -2077,9 +2315,27 @@ static int ip6_tnl_fill_info(struct sk_b
|
||||||
nla_put_u8(skb, IFLA_IPTUN_ENCAP_LIMIT, parm->encap_limit) ||
|
nla_put_u8(skb, IFLA_IPTUN_ENCAP_LIMIT, parm->encap_limit) ||
|
||||||
nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) ||
|
nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) ||
|
||||||
nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) ||
|
nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) ||
|
||||||
|
@ -490,7 +490,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||||
if (nla_put_u16(skb, IFLA_IPTUN_ENCAP_TYPE, tunnel->encap.type) ||
|
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_SPORT, tunnel->encap.sport) ||
|
||||||
nla_put_be16(skb, IFLA_IPTUN_ENCAP_DPORT, tunnel->encap.dport) ||
|
nla_put_be16(skb, IFLA_IPTUN_ENCAP_DPORT, tunnel->encap.dport) ||
|
||||||
@@ -2112,6 +2368,7 @@ static const struct nla_policy ip6_tnl_p
|
@@ -2117,6 +2373,7 @@ static const struct nla_policy ip6_tnl_p
|
||||||
[IFLA_IPTUN_ENCAP_SPORT] = { .type = NLA_U16 },
|
[IFLA_IPTUN_ENCAP_SPORT] = { .type = NLA_U16 },
|
||||||
[IFLA_IPTUN_ENCAP_DPORT] = { .type = NLA_U16 },
|
[IFLA_IPTUN_ENCAP_DPORT] = { .type = NLA_U16 },
|
||||||
[IFLA_IPTUN_COLLECT_METADATA] = { .type = NLA_FLAG },
|
[IFLA_IPTUN_COLLECT_METADATA] = { .type = NLA_FLAG },
|
||||||
|
|
|
@ -141,7 +141,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||||
static const struct rt6_info ip6_blk_hole_entry_template = {
|
static const struct rt6_info ip6_blk_hole_entry_template = {
|
||||||
.dst = {
|
.dst = {
|
||||||
.__refcnt = ATOMIC_INIT(1),
|
.__refcnt = ATOMIC_INIT(1),
|
||||||
@@ -1966,6 +1983,11 @@ static struct rt6_info *ip6_route_info_c
|
@@ -1967,6 +1984,11 @@ static struct rt6_info *ip6_route_info_c
|
||||||
rt->dst.output = ip6_pkt_prohibit_out;
|
rt->dst.output = ip6_pkt_prohibit_out;
|
||||||
rt->dst.input = ip6_pkt_prohibit;
|
rt->dst.input = ip6_pkt_prohibit;
|
||||||
break;
|
break;
|
||||||
|
@ -153,7 +153,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||||
case RTN_THROW:
|
case RTN_THROW:
|
||||||
case RTN_UNREACHABLE:
|
case RTN_UNREACHABLE:
|
||||||
default:
|
default:
|
||||||
@@ -2609,6 +2631,17 @@ static int ip6_pkt_prohibit_out(struct n
|
@@ -2610,6 +2632,17 @@ static int ip6_pkt_prohibit_out(struct n
|
||||||
return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
|
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.
|
* Allocate a dst for local (unicast / anycast) address.
|
||||||
*/
|
*/
|
||||||
@@ -2844,7 +2877,8 @@ static int rtm_to_fib6_config(struct sk_
|
@@ -2845,7 +2878,8 @@ static int rtm_to_fib6_config(struct sk_
|
||||||
if (rtm->rtm_type == RTN_UNREACHABLE ||
|
if (rtm->rtm_type == RTN_UNREACHABLE ||
|
||||||
rtm->rtm_type == RTN_BLACKHOLE ||
|
rtm->rtm_type == RTN_BLACKHOLE ||
|
||||||
rtm->rtm_type == RTN_PROHIBIT ||
|
rtm->rtm_type == RTN_PROHIBIT ||
|
||||||
|
@ -181,7 +181,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||||
cfg->fc_flags |= RTF_REJECT;
|
cfg->fc_flags |= RTF_REJECT;
|
||||||
|
|
||||||
if (rtm->rtm_type == RTN_LOCAL)
|
if (rtm->rtm_type == RTN_LOCAL)
|
||||||
@@ -3216,6 +3250,9 @@ static int rt6_fill_node(struct net *net
|
@@ -3217,6 +3251,9 @@ static int rt6_fill_node(struct net *net
|
||||||
case -EACCES:
|
case -EACCES:
|
||||||
rtm->rtm_type = RTN_PROHIBIT;
|
rtm->rtm_type = RTN_PROHIBIT;
|
||||||
break;
|
break;
|
||||||
|
@ -191,7 +191,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||||
case -EAGAIN:
|
case -EAGAIN:
|
||||||
rtm->rtm_type = RTN_THROW;
|
rtm->rtm_type = RTN_THROW;
|
||||||
break;
|
break;
|
||||||
@@ -3492,6 +3529,8 @@ static int ip6_route_dev_notify(struct n
|
@@ -3493,6 +3530,8 @@ static int ip6_route_dev_notify(struct n
|
||||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||||
net->ipv6.ip6_prohibit_entry->dst.dev = dev;
|
net->ipv6.ip6_prohibit_entry->dst.dev = dev;
|
||||||
net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(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->dst.dev = dev;
|
||||||
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
|
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
|
||||||
#endif
|
#endif
|
||||||
@@ -3718,6 +3757,17 @@ static int __net_init ip6_route_net_init
|
@@ -3719,6 +3758,17 @@ static int __net_init ip6_route_net_init
|
||||||
net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
|
net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
|
||||||
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
|
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
|
||||||
ip6_template_metrics, true);
|
ip6_template_metrics, true);
|
||||||
|
@ -218,7 +218,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
net->ipv6.sysctl.flush_delay = 0;
|
net->ipv6.sysctl.flush_delay = 0;
|
||||||
@@ -3736,6 +3786,8 @@ out:
|
@@ -3737,6 +3787,8 @@ out:
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||||
|
@ -227,7 +227,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||||
out_ip6_prohibit_entry:
|
out_ip6_prohibit_entry:
|
||||||
kfree(net->ipv6.ip6_prohibit_entry);
|
kfree(net->ipv6.ip6_prohibit_entry);
|
||||||
out_ip6_null_entry:
|
out_ip6_null_entry:
|
||||||
@@ -3753,6 +3805,7 @@ static void __net_exit ip6_route_net_exi
|
@@ -3754,6 +3806,7 @@ static void __net_exit ip6_route_net_exi
|
||||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||||
kfree(net->ipv6.ip6_prohibit_entry);
|
kfree(net->ipv6.ip6_prohibit_entry);
|
||||||
kfree(net->ipv6.ip6_blk_hole_entry);
|
kfree(net->ipv6.ip6_blk_hole_entry);
|
||||||
|
@ -235,7 +235,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||||
#endif
|
#endif
|
||||||
dst_entries_destroy(&net->ipv6.ip6_dst_ops);
|
dst_entries_destroy(&net->ipv6.ip6_dst_ops);
|
||||||
}
|
}
|
||||||
@@ -3826,6 +3879,9 @@ void __init ip6_route_init_special_entri
|
@@ -3827,6 +3880,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_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->dst.dev = init_net.loopback_dev;
|
||||||
init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
|
init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
|
||||||
|
|
Loading…
Reference in a new issue