KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
endif
-LINUX_VERSION-4.14 = .171
+LINUX_VERSION-4.14 = .173
-LINUX_KERNEL_HASH-4.14.171 = b1be764e5a40fcc827cbfbf5e59965caf693b2387c2d599eaecec6ca88120dab
+LINUX_KERNEL_HASH-4.14.173 = 615f3a798d99b2e986627f0c5618bee8dfd61e7f645bcc3bb90cfaf953d9cb26
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
};
--- a/net/netfilter/nf_conntrack_core.c
+++ b/net/netfilter/nf_conntrack_core.c
-@@ -960,6 +960,9 @@ static unsigned int early_drop_list(stru
+@@ -974,6 +974,9 @@ static unsigned int early_drop_list(stru
hlist_nulls_for_each_entry_rcu(h, n, head, hnnode) {
tmp = nf_ct_tuplehash_to_ctrack(h);
if (nf_ct_is_expired(tmp)) {
nf_ct_gc_expired(tmp);
continue;
-@@ -1037,6 +1040,18 @@ static bool gc_worker_can_early_drop(con
+@@ -1051,6 +1054,18 @@ static bool gc_worker_can_early_drop(con
return false;
}
static void gc_worker(struct work_struct *work)
{
unsigned int min_interval = max(HZ / GC_MAX_BUCKETS_DIV, 1u);
-@@ -1073,6 +1088,11 @@ static void gc_worker(struct work_struct
+@@ -1087,6 +1102,11 @@ static void gc_worker(struct work_struct
tmp = nf_ct_tuplehash_to_ctrack(h);
scanned++;
--- a/net/netfilter/nf_conntrack_core.c
+++ b/net/netfilter/nf_conntrack_core.c
-@@ -1040,18 +1040,6 @@ static bool gc_worker_can_early_drop(con
+@@ -1054,18 +1054,6 @@ static bool gc_worker_can_early_drop(con
return false;
}
static void gc_worker(struct work_struct *work)
{
unsigned int min_interval = max(HZ / GC_MAX_BUCKETS_DIV, 1u);
-@@ -1088,10 +1076,8 @@ static void gc_worker(struct work_struct
+@@ -1102,10 +1090,8 @@ static void gc_worker(struct work_struct
tmp = nf_ct_tuplehash_to_ctrack(h);
scanned++;
--- a/drivers/tty/serial/8250/8250_exar.c
+++ b/drivers/tty/serial/8250/8250_exar.c
-@@ -275,8 +275,32 @@ static int xr17v35x_register_gpio(struct
+@@ -283,8 +283,32 @@ static int xr17v35x_register_gpio(struct
return 0;
}
};
static int iot2040_rs485_config(struct uart_port *port,
-@@ -309,19 +333,7 @@ static int iot2040_rs485_config(struct u
+@@ -317,19 +341,7 @@ static int iot2040_rs485_config(struct u
value |= mode;
writeb(value, p + UART_EXAR_MPIOLVL_7_0);
}
--- a/kernel/irq/proc.c
+++ b/kernel/irq/proc.c
-@@ -396,6 +396,9 @@ void register_irq_proc(unsigned int irq,
+@@ -418,6 +418,9 @@ void register_irq_proc(unsigned int irq,
void __maybe_unused *irqp = (void *)(unsigned long) irq;
char name [MAX_NAMELEN];
if (!root_irq_dir || (desc->irq_data.chip == &no_irq_chip))
return;
-@@ -449,6 +452,9 @@ void unregister_irq_proc(unsigned int ir
+@@ -471,6 +474,9 @@ void unregister_irq_proc(unsigned int ir
{
char name [MAX_NAMELEN];
if (!root_irq_dir || !desc->dir)
return;
#ifdef CONFIG_SMP
-@@ -487,6 +493,9 @@ void init_irq_proc(void)
+@@ -509,6 +515,9 @@ void init_irq_proc(void)
unsigned int irq;
struct irq_desc *desc;
cfg->fc_flags |= RTF_REJECT;
if (rtm->rtm_type == RTN_LOCAL)
-@@ -3514,6 +3548,9 @@ static int rt6_fill_node(struct net *net
+@@ -3515,6 +3549,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;
-@@ -3832,6 +3869,8 @@ static int ip6_route_dev_notify(struct n
+@@ -3833,6 +3870,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
-@@ -3843,6 +3882,7 @@ static int ip6_route_dev_notify(struct n
+@@ -3844,6 +3883,7 @@ static int ip6_route_dev_notify(struct n
in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev);
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev);
in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev);
#endif
}
-@@ -4059,6 +4099,17 @@ static int __net_init ip6_route_net_init
+@@ -4060,6 +4100,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;
-@@ -4077,6 +4128,8 @@ out:
+@@ -4078,6 +4129,8 @@ out:
return ret;
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
out_ip6_prohibit_entry:
kfree(net->ipv6.ip6_prohibit_entry);
out_ip6_null_entry:
-@@ -4094,6 +4147,7 @@ static void __net_exit ip6_route_net_exi
+@@ -4095,6 +4148,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);
}
-@@ -4167,6 +4221,9 @@ void __init ip6_route_init_special_entri
+@@ -4168,6 +4222,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);
}
if (!of_property_read_u32(node, "allwinner,tx-delay-ps", &val)) {
-@@ -747,81 +896,21 @@ static void sun8i_dwmac_unset_syscon(str
+@@ -750,81 +899,21 @@ static void sun8i_dwmac_unset_syscon(str
regmap_write(gmac->regmap, SYSCON_EMAC_REG, reg);
}
clk_disable_unprepare(gmac->tx_clk);
-@@ -850,7 +939,7 @@ static struct mac_device_info *sun8i_dwm
+@@ -853,7 +942,7 @@ static struct mac_device_info *sun8i_dwm
if (!mac)
return NULL;
if (ret)
return NULL;
-@@ -892,6 +981,8 @@ static int sun8i_dwmac_probe(struct plat
+@@ -895,6 +984,8 @@ static int sun8i_dwmac_probe(struct plat
struct sunxi_priv_data *gmac;
struct device *dev = &pdev->dev;
int ret;
ret = stmmac_get_platform_resources(pdev, &stmmac_res);
if (ret)
-@@ -935,29 +1026,6 @@ static int sun8i_dwmac_probe(struct plat
+@@ -938,29 +1029,6 @@ static int sun8i_dwmac_probe(struct plat
}
plat_dat->interface = of_get_phy_mode(dev->of_node);
/* platform data specifying hardware features and callbacks.
* hardware features were copied from Allwinner drivers.
-@@ -976,9 +1044,34 @@ static int sun8i_dwmac_probe(struct plat
+@@ -979,9 +1047,34 @@ static int sun8i_dwmac_probe(struct plat
ret = stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res);
if (ret)
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
-@@ -1075,6 +1075,14 @@ return ret;
+@@ -1078,6 +1078,14 @@ return ret;
}
static const struct of_device_id sun8i_dwmac_match[] = {
pinctrl-0 = <&mmc2_pins>;
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
-@@ -449,6 +449,26 @@
+@@ -450,6 +450,26 @@
#size-cells = <0>;
};
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
-@@ -464,6 +464,7 @@
+@@ -465,6 +465,7 @@
#size-cells = <0>;
mdio: mdio {
Example:
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
-@@ -537,5 +537,12 @@
+@@ -538,5 +538,12 @@
#address-cells = <1>;
#size-cells = <0>;
};
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
-@@ -325,6 +325,16 @@
+@@ -326,6 +326,16 @@
drive-strength = <40>;
};
uart0_pins_a: uart0@0 {
pins = "PB8", "PB9";
function = "uart0";
-@@ -470,6 +480,37 @@
+@@ -471,6 +481,37 @@
};
};
# CONFIG_X86_CPUFREQ_NFORCE2 is not set
# CONFIG_X86_CPUID is not set
# CONFIG_X86_DEBUG_FPU is not set
+# CONFIG_X86_DECODER_SELFTEST is not set
# CONFIG_X86_EXTENDED_PLATFORM is not set
CONFIG_X86_F00F_BUG=y
CONFIG_X86_FAST_FEATURE_TESTS=y