LINUX_VERSION-3.18 = .27
LINUX_VERSION-4.1 = .16
LINUX_VERSION-4.3 = .4
-LINUX_VERSION-4.4 = .3
+LINUX_VERSION-4.4 = .4
LINUX_KERNEL_MD5SUM-3.18.27 = 015a01bf84e7c6bc9952551b4da45044
LINUX_KERNEL_MD5SUM-4.1.16 = e4bf22fed49b476b47acffc00c03267a
LINUX_KERNEL_MD5SUM-4.3.4 = 5275d02132107c28b85f986bad576d91
-LINUX_KERNEL_MD5SUM-4.4.3 = 5feab5a2c016e186e3088d4fae963ed7
+LINUX_KERNEL_MD5SUM-4.4.4 = 73d1835cfb6dd348d87c8c2413190c21
ifdef KERNEL_PATCHVER
LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))
--- a/lib/Kconfig
+++ b/lib/Kconfig
-@@ -245,6 +245,9 @@ config LZMA_COMPRESS
+@@ -247,6 +247,9 @@ config LZMA_COMPRESS
config LZMA_DECOMPRESS
tristate
#include <linux/uaccess.h>
#include <linux/ipv6.h>
#include <linux/icmpv6.h>
-@@ -778,10 +779,10 @@ static void tcp_v6_send_response(const s
+@@ -779,10 +780,10 @@ static void tcp_v6_send_response(const s
topt = (__be32 *)(t1 + 1);
if (tsecr) {
*/
--- a/net/ipv6/datagram.c
+++ b/net/ipv6/datagram.c
-@@ -426,7 +426,7 @@ int ipv6_recv_error(struct sock *sk, str
+@@ -429,7 +429,7 @@ int ipv6_recv_error(struct sock *sk, str
ipv6_iface_scope_id(&sin->sin6_addr,
IP6CB(skb)->iif);
} else {
&sin->sin6_addr);
sin->sin6_scope_id = 0;
}
-@@ -763,12 +763,12 @@ int ip6_datagram_send_ctl(struct net *ne
+@@ -766,12 +766,12 @@ int ip6_datagram_send_ctl(struct net *ne
}
if (fl6->flowlabel&IPV6_FLOWINFO_MASK) {
for (p = *head; p; p = p->next) {
--- a/net/ipv4/route.c
+++ b/net/ipv4/route.c
-@@ -457,7 +457,7 @@ static struct neighbour *ipv4_neigh_look
+@@ -458,7 +458,7 @@ static struct neighbour *ipv4_neigh_look
else if (skb)
pkey = &ip_hdr(skb)->daddr;
source "arch/arm/mach-alpine/Kconfig"
--- a/arch/arm/Kconfig.debug
+++ b/arch/arm/Kconfig.debug
-@@ -1241,6 +1241,14 @@ choice
+@@ -1240,6 +1240,14 @@ choice
options; the platform specific options are deprecated
and will be soon removed.
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
-@@ -5273,7 +5273,7 @@ int __init cgroup_init_early(void)
+@@ -5286,7 +5286,7 @@ int __init cgroup_init_early(void)
return 0;
}
/**
* cgroup_init - cgroup initialization
-@@ -5769,6 +5769,27 @@ static int __init cgroup_disable(char *s
+@@ -5782,6 +5782,27 @@ static int __init cgroup_disable(char *s
}
__setup("cgroup_disable=", cgroup_disable);
--- a/lib/Kconfig
+++ b/lib/Kconfig
-@@ -332,16 +332,16 @@ config BCH_CONST_T
+@@ -334,16 +334,16 @@ config BCH_CONST_T
# Textsearch support is select'ed if needed
#
config TEXTSEARCH
--- a/lib/Kconfig
+++ b/lib/Kconfig
-@@ -216,26 +216,26 @@ config 842_DECOMPRESS
+@@ -218,26 +218,26 @@ config 842_DECOMPRESS
tristate
config ZLIB_INFLATE
+#endif
--- a/lib/Kconfig
+++ b/lib/Kconfig
-@@ -239,6 +239,12 @@ config LZ4_DECOMPRESS
+@@ -241,6 +241,12 @@ config LZ4_DECOMPRESS
source "lib/xz/Kconfig"
--- a/drivers/net/ppp/pppoe.c
+++ b/drivers/net/ppp/pppoe.c
-@@ -877,7 +877,7 @@ static int pppoe_sendmsg(struct socket *
+@@ -879,7 +879,7 @@ static int pppoe_sendmsg(struct socket *
goto end;
0, GFP_KERNEL);
if (!skb) {
error = -ENOMEM;
-@@ -885,7 +885,7 @@ static int pppoe_sendmsg(struct socket *
+@@ -887,7 +887,7 @@ static int pppoe_sendmsg(struct socket *
}
/* Reserve space for headers. */
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
-@@ -2154,7 +2154,7 @@ static inline int pskb_network_may_pull(
+@@ -2155,7 +2155,7 @@ static inline int pskb_network_may_pull(
* NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
*/
#ifndef NET_SKB_PAD
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
-@@ -2199,6 +2199,24 @@ static inline void pskb_trim_unique(stru
+@@ -2200,6 +2200,24 @@ static inline void pskb_trim_unique(stru
BUG_ON(err);
}
--- a/net/sched/sch_api.c
+++ b/net/sched/sch_api.c
-@@ -1945,7 +1945,7 @@ static int __init pktsched_init(void)
+@@ -1946,7 +1946,7 @@ static int __init pktsched_init(void)
return err;
}
static const struct rt6_info ip6_blk_hole_entry_template = {
.dst = {
.__refcnt = ATOMIC_INIT(1),
-@@ -1884,6 +1901,11 @@ static struct rt6_info *ip6_route_info_c
+@@ -1883,6 +1900,11 @@ static struct rt6_info *ip6_route_info_c
rt->dst.output = ip6_pkt_prohibit_out;
rt->dst.input = ip6_pkt_prohibit;
break;
case RTN_THROW:
case RTN_UNREACHABLE:
default:
-@@ -2485,6 +2507,17 @@ static int ip6_pkt_prohibit_out(struct n
+@@ -2484,6 +2506,17 @@ static int ip6_pkt_prohibit_out(struct n
return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
}
/*
* Allocate a dst for local (unicast / anycast) address.
*/
-@@ -2727,7 +2760,8 @@ static int rtm_to_fib6_config(struct sk_
+@@ -2726,7 +2759,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 ||
cfg->fc_flags |= RTF_REJECT;
if (rtm->rtm_type == RTN_LOCAL)
-@@ -3086,6 +3120,9 @@ static int rt6_fill_node(struct net *net
+@@ -3085,6 +3119,9 @@ static int rt6_fill_node(struct net *net
case -EACCES:
rtm->rtm_type = RTN_PROHIBIT;
break;
case -EAGAIN:
rtm->rtm_type = RTN_THROW;
break;
-@@ -3359,6 +3396,8 @@ static int ip6_route_dev_notify(struct n
+@@ -3358,6 +3395,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);
net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
#endif
-@@ -3575,6 +3614,17 @@ static int __net_init ip6_route_net_init
+@@ -3574,6 +3613,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);
#endif
net->ipv6.sysctl.flush_delay = 0;
-@@ -3593,6 +3643,8 @@ out:
+@@ -3592,6 +3642,8 @@ out:
return ret;
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
out_ip6_prohibit_entry:
kfree(net->ipv6.ip6_prohibit_entry);
out_ip6_null_entry:
-@@ -3610,6 +3662,7 @@ static void __net_exit ip6_route_net_exi
+@@ -3609,6 +3661,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);
#endif
dst_entries_destroy(&net->ipv6.ip6_dst_ops);
}
-@@ -3707,6 +3760,9 @@ int __init ip6_route_init(void)
+@@ -3706,6 +3759,9 @@ int __init ip6_route_init(void)
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);
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -4204,6 +4204,9 @@ static enum gro_result dev_gro_receive(s
+@@ -4205,6 +4205,9 @@ static enum gro_result dev_gro_receive(s
enum gro_result ret;
int grow;
if (!(skb->dev->features & NETIF_F_GRO))
goto normal;
-@@ -5354,6 +5357,48 @@ static void __netdev_adjacent_dev_unlink
+@@ -5357,6 +5360,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 *private)
-@@ -5425,6 +5470,7 @@ static int __netdev_upper_dev_link(struc
+@@ -5428,6 +5473,7 @@ static int __netdev_upper_dev_link(struc
goto rollback_lower_mesh;
}
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
&changeupper_info.info);
return 0;
-@@ -5551,6 +5597,7 @@ void netdev_upper_dev_unlink(struct net_
+@@ -5554,6 +5600,7 @@ void netdev_upper_dev_unlink(struct net_
list_for_each_entry(i, &upper_dev->all_adj_list.upper, list)
__netdev_adjacent_dev_unlink(dev, i->dev);
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
&changeupper_info.info);
}
-@@ -6091,6 +6138,7 @@ int dev_set_mac_address(struct net_devic
+@@ -6094,6 +6141,7 @@ int dev_set_mac_address(struct net_devic
if (err)
return err;
dev->addr_assign_type = NET_ADDR_SET;
#endif
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
-@@ -641,7 +641,8 @@ struct sk_buff {
+@@ -642,7 +642,8 @@ struct sk_buff {
__u8 ipvs_property:1;
__u8 inner_protocol_type:1;
__u8 remcsum_offload:1;
*/
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
-@@ -2185,6 +2185,10 @@ static inline int pskb_trim(struct sk_bu
+@@ -2186,6 +2186,10 @@ static inline int pskb_trim(struct sk_bu
return (len < skb->len) ? __pskb_trim(skb, len) : 0;
}
/**
* pskb_trim_unique - remove end from a paged unique (not cloned) buffer
* @skb: buffer to alter
-@@ -2307,16 +2311,6 @@ static inline struct sk_buff *dev_alloc_
+@@ -2308,16 +2312,6 @@ static inline struct sk_buff *dev_alloc_
}
#include <net/protocol.h>
#include <net/dst.h>
-@@ -518,6 +519,22 @@ skb_fail:
+@@ -520,6 +521,22 @@ skb_fail:
}
EXPORT_SYMBOL(__napi_alloc_skb);
--- a/fs/locks.c
+++ b/fs/locks.c
-@@ -2703,6 +2703,8 @@ static const struct file_operations proc
+@@ -2712,6 +2712,8 @@ static const struct file_operations proc
static int __init proc_locks_init(void)
{
--- a/net/ipv4/route.c
+++ b/net/ipv4/route.c
-@@ -419,6 +419,9 @@ static struct pernet_operations ip_rt_pr
+@@ -420,6 +420,9 @@ static struct pernet_operations ip_rt_pr
static int __init ip_rt_proc_init(void)
{
--- a/drivers/regulator/Kconfig
+++ b/drivers/regulator/Kconfig
-@@ -461,6 +461,14 @@ config REGULATOR_MT6397
+@@ -462,6 +462,14 @@ config REGULATOR_MT6397
This driver supports the control of different power rails of device
through regulator interface.
+++ /dev/null
---- a/scripts/link-vmlinux.sh
-+++ b/scripts/link-vmlinux.sh
-@@ -62,7 +62,7 @@ vmlinux_link()
- -Wl,--start-group \
- ${KBUILD_VMLINUX_MAIN} \
- -Wl,--end-group \
-- -lutil -lrt ${1}
-+ -lutil -lrt -lpthread ${1}
- rm -f linux
- fi
- }