KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
endif
-LINUX_VERSION-4.14 = .303
+LINUX_VERSION-4.14 = .311
LIBRE_REV = 1
-LINUX_KERNEL_HASH-4.14.303 = 4e39c980ff217cd4f9d7423303d46715a8ce36fcdd82b05ff6991b0e06fec5b5
+LINUX_KERNEL_HASH-4.14.311 = 4dc1ac5b02624164b22986aef5fde452f7461a287de270c1f9138a5b477d14d0
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
#include <linux/uaccess.h>
#include <linux/ipv6.h>
#include <linux/icmpv6.h>
-@@ -837,10 +838,10 @@ static void tcp_v6_send_response(const s
+@@ -838,10 +839,10 @@ static void tcp_v6_send_response(const s
topt = (__be32 *)(t1 + 1);
if (tsecr) {
--- a/Makefile
+++ b/Makefile
-@@ -430,8 +430,8 @@ LDFLAGS :=
+@@ -437,8 +437,8 @@ LDFLAGS :=
GCC_PLUGINS_CFLAGS :=
CLANG_FLAGS :=
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
-@@ -2133,7 +2133,8 @@ static const struct usb_device_id option
+@@ -2154,7 +2154,8 @@ static const struct usb_device_id option
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d01, 0xff) }, /* D-Link DWM-156 (variant) */
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d02, 0xff) },
{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d03, 0xff) },
+#endif
--- a/net/sched/Kconfig
+++ b/net/sched/Kconfig
-@@ -808,6 +808,19 @@ config NET_ACT_CONNMARK
+@@ -797,6 +797,19 @@ config NET_ACT_CONNMARK
To compile this code as a module, choose M here: the
module will be called act_connmark.
--- a/Makefile
+++ b/Makefile
-@@ -1264,7 +1264,6 @@ endif
+@@ -1271,7 +1271,6 @@ endif
PHONY += modules
modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin
@$(kecho) ' Building modules, stage 2.';
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
-@@ -1293,7 +1292,6 @@ _modinst_:
+@@ -1300,7 +1299,6 @@ _modinst_:
rm -f $(MODLIB)/build ; \
ln -s $(CURDIR) $(MODLIB)/build ; \
fi
--- a/Makefile
+++ b/Makefile
-@@ -272,6 +272,11 @@ else
+@@ -279,6 +279,11 @@ else
scripts/Kbuild.include: ;
include scripts/Kbuild.include
# Read KERNELRELEASE from include/config/kernel.release (if it exists)
KERNELRELEASE = $(shell cat include/config/kernel.release 2> /dev/null)
KERNELVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION)
-@@ -786,11 +791,6 @@ ifdef CONFIG_DEBUG_SECTION_MISMATCH
+@@ -793,11 +798,6 @@ ifdef CONFIG_DEBUG_SECTION_MISMATCH
KBUILD_CFLAGS += $(call cc-option, -fno-inline-functions-called-once)
endif
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
-@@ -1413,6 +1413,7 @@ enum netdev_priv_flags {
+@@ -1415,6 +1415,7 @@ enum netdev_priv_flags {
IFF_PHONY_HEADROOM = 1<<26,
IFF_MACSEC = 1<<27,
IFF_L3MDEV_RX_HANDLER = 1<<28,
};
#define IFF_802_1Q_VLAN IFF_802_1Q_VLAN
-@@ -1443,6 +1444,7 @@ enum netdev_priv_flags {
+@@ -1445,6 +1446,7 @@ enum netdev_priv_flags {
#define IFF_RXFH_CONFIGURED IFF_RXFH_CONFIGURED
#define IFF_MACSEC IFF_MACSEC
#define IFF_L3MDEV_RX_HANDLER IFF_L3MDEV_RX_HANDLER
/**
* struct net_device - The DEVICE structure.
-@@ -1729,6 +1731,11 @@ struct net_device {
+@@ -1731,6 +1733,11 @@ struct net_device {
const struct xfrmdev_ops *xfrmdev_ops;
#endif
const struct header_ops *header_ops;
unsigned int flags;
-@@ -1803,6 +1810,10 @@ struct net_device {
+@@ -1805,6 +1812,10 @@ struct net_device {
struct mpls_dev __rcu *mpls_ptr;
#endif
help
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -3000,10 +3000,20 @@ static int xmit_one(struct sk_buff *skb,
+@@ -3002,10 +3002,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);
--- a/Makefile
+++ b/Makefile
-@@ -653,9 +653,9 @@ KBUILD_CFLAGS += $(call cc-disable-warni
+@@ -660,9 +660,9 @@ KBUILD_CFLAGS += $(call cc-disable-warni
KBUILD_CFLAGS += $(call cc-disable-warning, attribute-alias)
ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
--- a/drivers/mtd/ubi/build.c
+++ b/drivers/mtd/ubi/build.c
-@@ -1165,6 +1165,73 @@ static struct mtd_info * __init open_mtd
+@@ -1172,6 +1172,73 @@ static struct mtd_info * __init open_mtd
return mtd;
}
static int __init ubi_init(void)
{
int err, i, k;
-@@ -1248,6 +1315,12 @@ static int __init ubi_init(void)
+@@ -1255,6 +1322,12 @@ static int __init ubi_init(void)
}
}
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
-@@ -827,6 +827,13 @@ struct xfrmdev_ops {
+@@ -829,6 +829,13 @@ struct xfrmdev_ops {
};
#endif
/*
* This structure defines the management hooks for network devices.
* The following hooks can be defined; unless noted otherwise, they are
-@@ -1058,6 +1065,10 @@ struct xfrmdev_ops {
+@@ -1060,6 +1067,10 @@ struct xfrmdev_ops {
* int (*ndo_bridge_dellink)(struct net_device *dev, struct nlmsghdr *nlh,
* u16 flags);
*
* int (*ndo_change_carrier)(struct net_device *dev, bool new_carrier);
* Called to change device carrier. Soft-devices (like dummy, team, etc)
* which do not represent real hardware may define this to allow their
-@@ -1282,6 +1293,8 @@ struct net_device_ops {
+@@ -1284,6 +1295,8 @@ struct net_device_ops {
int (*ndo_bridge_dellink)(struct net_device *dev,
struct nlmsghdr *nlh,
u16 flags);
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
-@@ -828,6 +828,7 @@ struct xfrmdev_ops {
+@@ -830,6 +830,7 @@ struct xfrmdev_ops {
#endif
struct flow_offload;
enum flow_offload_type {
FLOW_OFFLOAD_ADD = 0,
-@@ -1065,8 +1066,15 @@ enum flow_offload_type {
+@@ -1067,8 +1068,15 @@ enum flow_offload_type {
* int (*ndo_bridge_dellink)(struct net_device *dev, struct nlmsghdr *nlh,
* u16 flags);
*
* Adds/deletes flow entry to/from net device flowtable.
*
* int (*ndo_change_carrier)(struct net_device *dev, bool new_carrier);
-@@ -1293,8 +1301,11 @@ struct net_device_ops {
+@@ -1295,8 +1303,11 @@ struct net_device_ops {
int (*ndo_bridge_dellink)(struct net_device *dev,
struct nlmsghdr *nlh,
u16 flags);
if (iptunnel_handle_offloads(skb, SKB_GSO_IPXIP6))
return -1;
-@@ -1505,6 +1658,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
+@@ -1507,6 +1660,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
t->parms.link = p->link;
t->parms.proto = p->proto;
t->parms.fwmark = p->fwmark;
dst_cache_reset(&t->dst_cache);
ip6_tnl_link_config(t);
return 0;
-@@ -1543,6 +1704,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
+@@ -1545,6 +1706,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
p->flowinfo = u->flowinfo;
p->link = u->link;
p->proto = u->proto;
memcpy(p->name, u->name, sizeof(u->name));
}
-@@ -1927,6 +2089,15 @@ static int ip6_tnl_validate(struct nlatt
+@@ -1929,6 +2091,15 @@ static int ip6_tnl_validate(struct nlatt
return 0;
}
static void ip6_tnl_netlink_parms(struct nlattr *data[],
struct __ip6_tnl_parm *parms)
{
-@@ -1964,6 +2135,46 @@ static void ip6_tnl_netlink_parms(struct
+@@ -1966,6 +2137,46 @@ static void ip6_tnl_netlink_parms(struct
if (data[IFLA_IPTUN_FWMARK])
parms->fwmark = nla_get_u32(data[IFLA_IPTUN_FWMARK]);
}
static bool ip6_tnl_netlink_encap_parms(struct nlattr *data[],
-@@ -2079,6 +2290,12 @@ static void ip6_tnl_dellink(struct net_d
+@@ -2081,6 +2292,12 @@ static void ip6_tnl_dellink(struct net_d
static size_t ip6_tnl_get_size(const struct net_device *dev)
{
return
/* IFLA_IPTUN_LINK */
nla_total_size(4) +
-@@ -2108,6 +2325,24 @@ static size_t ip6_tnl_get_size(const str
+@@ -2110,6 +2327,24 @@ static size_t ip6_tnl_get_size(const str
nla_total_size(0) +
/* IFLA_IPTUN_FWMARK */
nla_total_size(4) +
0;
}
-@@ -2115,6 +2350,9 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -2117,6 +2352,9 @@ static int ip6_tnl_fill_info(struct sk_b
{
struct ip6_tnl *tunnel = netdev_priv(dev);
struct __ip6_tnl_parm *parm = &tunnel->parms;
if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) ||
-@@ -2124,9 +2362,27 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -2126,9 +2364,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) ||
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) ||
-@@ -2166,6 +2422,7 @@ static const struct nla_policy ip6_tnl_p
+@@ -2168,6 +2424,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 },
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
-@@ -1772,6 +1772,8 @@ struct net_device {
+@@ -1774,6 +1774,8 @@ struct net_device {
struct netdev_hw_addr_list mc;
struct netdev_hw_addr_list dev_addrs;
__u16 tc_index; /* traffic control index */
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -4803,6 +4803,9 @@ static enum gro_result dev_gro_receive(s
+@@ -4805,6 +4805,9 @@ static enum gro_result dev_gro_receive(s
enum gro_result ret;
int grow;
if (netif_elide_gro(skb->dev))
goto normal;
-@@ -6288,6 +6291,48 @@ static void __netdev_adjacent_dev_unlink
+@@ -6290,6 +6293,48 @@ static void __netdev_adjacent_dev_unlink
&upper_dev->adj_list.lower);
}
static int __netdev_upper_dev_link(struct net_device *dev,
struct net_device *upper_dev, bool master,
void *upper_priv, void *upper_info)
-@@ -6326,6 +6371,7 @@ static int __netdev_upper_dev_link(struc
+@@ -6328,6 +6373,7 @@ static int __netdev_upper_dev_link(struc
if (ret)
return ret;
ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
&changeupper_info.info);
ret = notifier_to_errno(ret);
-@@ -6403,6 +6449,7 @@ void netdev_upper_dev_unlink(struct net_
+@@ -6405,6 +6451,7 @@ void netdev_upper_dev_unlink(struct net_
__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
&changeupper_info.info);
}
-@@ -6967,6 +7014,7 @@ int dev_set_mac_address(struct net_devic
+@@ -6969,6 +7016,7 @@ int dev_set_mac_address(struct net_devic
if (err)
return err;
dev->addr_assign_type = NET_ADDR_SET;