Refreshed all patches.
Altered patches:
- 150-bridge_allow_receiption_on_disabled_port.patch
- 201-extra_optimization.patch
Compile-tested on: cns3xxx, imx6
Runtime-tested on: cns3xxx, imx6
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
LINUX_VERSION-3.18 = .136
LINUX_VERSION-4.9 = .171
LINUX_VERSION-4.14 = .114
-LINUX_VERSION-4.19 = .36
+LINUX_VERSION-4.19 = .37
LINUX_KERNEL_HASH-3.18.136 = 48c8775013d23229462134f911bbb14c7935096fcccfb19ce28ecd5f7154f35c
LINUX_KERNEL_HASH-4.9.171 = 431cd992bf74da9851dd5938dbe45ff7577219b84b237ae5e30067d483b57f01
LINUX_KERNEL_HASH-4.14.114 = b75e1dcfabc8d18051a07cbf9b60eaee8ac470a2311fed20447fd0d022c19e15
-LINUX_KERNEL_HASH-4.19.36 = b808b508177f9d288d94a3b9df7b01d5eac9fcc1804a794c913b2144de63f2bc
+LINUX_KERNEL_HASH-4.19.37 = ecb0b30ec32c0c7d614c394158c7d37099a815507ed62235cca32052d7ff9c65
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
--- a/Makefile
+++ b/Makefile
-@@ -1232,7 +1232,6 @@ all: modules
+@@ -1231,7 +1231,6 @@ all: modules
PHONY += modules
modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin
@$(kecho) ' Building modules, stage 2.';
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
-@@ -1261,7 +1260,6 @@ _modinst_:
+@@ -1260,7 +1259,6 @@ _modinst_:
rm -f $(MODLIB)/build ; \
ln -s $(CURDIR) $(MODLIB)/build ; \
fi
# 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)
-@@ -788,11 +793,6 @@ ifdef CONFIG_DEBUG_SECTION_MISMATCH
+@@ -787,11 +792,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
-@@ -1512,6 +1512,7 @@ enum netdev_priv_flags {
- IFF_FAILOVER = 1<<27,
+@@ -1514,6 +1514,7 @@ enum netdev_priv_flags {
IFF_FAILOVER_SLAVE = 1<<28,
IFF_L3MDEV_RX_HANDLER = 1<<29,
-+ IFF_NO_IP_ALIGN = 1<<30,
+ IFF_LIVE_RENAME_OK = 1<<30,
++ IFF_NO_IP_ALIGN = 1<<31,
};
#define IFF_802_1Q_VLAN IFF_802_1Q_VLAN
-@@ -1543,6 +1544,7 @@ enum netdev_priv_flags {
- #define IFF_FAILOVER IFF_FAILOVER
+@@ -1546,6 +1547,7 @@ enum netdev_priv_flags {
#define IFF_FAILOVER_SLAVE IFF_FAILOVER_SLAVE
#define IFF_L3MDEV_RX_HANDLER IFF_L3MDEV_RX_HANDLER
+ #define IFF_LIVE_RENAME_OK IFF_LIVE_RENAME_OK
+#define IFF_NO_IP_ALIGN IFF_NO_IP_ALIGN
/**
* struct net_device - The DEVICE structure.
-@@ -1841,6 +1843,11 @@ struct net_device {
+@@ -1844,6 +1846,11 @@ struct net_device {
const struct tlsdev_ops *tlsdev_ops;
#endif
const struct header_ops *header_ops;
unsigned int flags;
-@@ -1916,6 +1923,10 @@ struct net_device {
+@@ -1919,6 +1926,10 @@ struct net_device {
struct mpls_dev __rcu *mpls_ptr;
#endif
help
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -3238,10 +3238,20 @@ static int xmit_one(struct sk_buff *skb,
+@@ -3252,10 +3252,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);
&vmalloc_op,
--- a/mm/vmstat.c
+++ b/mm/vmstat.c
-@@ -1976,10 +1976,12 @@ void __init init_mm_internals(void)
+@@ -1971,10 +1971,12 @@ void __init init_mm_internals(void)
start_shepherd_timer();
#endif
#ifdef CONFIG_PROC_FS
--- a/net/bridge/br_input.c
+++ b/net/bridge/br_input.c
-@@ -197,7 +197,8 @@ static int br_handle_local_finish(struct
+@@ -195,6 +195,9 @@ static void __br_handle_local_finish(str
+ /* note: already called with rcu_read_lock */
+ static int br_handle_local_finish(struct net *net, struct sock *sk, struct sk_buff *skb)
{
- struct net_bridge_port *p = br_port_get_rcu(skb->dev);
-
-- __br_handle_local_finish(skb);
++ struct net_bridge_port *p = br_port_get_rcu(skb->dev);
++
+ if (p->state != BR_STATE_DISABLED)
-+ __br_handle_local_finish(skb);
+ __br_handle_local_finish(skb);
- BR_INPUT_SKB_CB(skb)->brdev = p->br->dev;
- br_pass_frame_up(skb);
-@@ -286,6 +287,15 @@ rx_handler_result_t br_handle_frame(stru
+ /* return 1 to signal the okfn() was called so it's ok to use the skb */
+@@ -291,6 +294,15 @@ rx_handler_result_t br_handle_frame(stru
forward:
switch (p->state) {
--- a/Makefile
+++ b/Makefile
-@@ -662,12 +662,12 @@ KBUILD_CFLAGS += $(call cc-disable-warni
+@@ -661,12 +661,12 @@ KBUILD_CFLAGS += $(call cc-disable-warni
+ KBUILD_CFLAGS += $(call cc-disable-warning, int-in-bool-context)
ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
- KBUILD_CFLAGS += $(call cc-option,-Oz,-Os)
--KBUILD_CFLAGS += $(call cc-disable-warning,maybe-uninitialized,)
-+KBUILD_CFLAGS += $(call cc-disable-warning,maybe-uninitialized,) $(EXTRA_OPTIMIZATION)
+-KBUILD_CFLAGS += -Os $(call cc-disable-warning,maybe-uninitialized,)
++KBUILD_CFLAGS += -Os $(call cc-disable-warning,maybe-uninitialized,) $(EXTRA_OPTIMIZATION)
else
ifdef CONFIG_PROFILE_ALL_BRANCHES
-KBUILD_CFLAGS += -O2 $(call cc-disable-warning,maybe-uninitialized,)
case RTN_THROW:
case RTN_UNREACHABLE:
default:
-@@ -3765,6 +3784,17 @@ static int ip6_pkt_prohibit_out(struct n
+@@ -3769,6 +3788,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.
*/
-@@ -4212,7 +4242,8 @@ static int rtm_to_fib6_config(struct sk_
+@@ -4216,7 +4246,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)
-@@ -5056,6 +5087,8 @@ static int ip6_route_dev_notify(struct n
+@@ -5060,6 +5091,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
-@@ -5067,6 +5100,7 @@ static int ip6_route_dev_notify(struct n
+@@ -5071,6 +5104,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
}
-@@ -5261,6 +5295,15 @@ static int __net_init ip6_route_net_init
+@@ -5265,6 +5299,15 @@ 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;
-@@ -5279,6 +5322,8 @@ out:
+@@ -5283,6 +5326,8 @@ out:
return ret;
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
out_ip6_prohibit_entry:
kfree(net->ipv6.ip6_prohibit_entry);
out_ip6_null_entry:
-@@ -5299,6 +5344,7 @@ static void __net_exit ip6_route_net_exi
+@@ -5303,6 +5348,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);
}
-@@ -5375,6 +5421,9 @@ void __init ip6_route_init_special_entri
+@@ -5379,6 +5425,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);
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
-@@ -1879,6 +1879,8 @@ struct net_device {
+@@ -1882,6 +1882,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
-@@ -5454,6 +5454,9 @@ static enum gro_result dev_gro_receive(s
+@@ -5468,6 +5468,9 @@ static enum gro_result dev_gro_receive(s
int same_flow;
int grow;
if (netif_elide_gro(skb->dev))
goto normal;
-@@ -6948,6 +6951,48 @@ static void __netdev_adjacent_dev_unlink
+@@ -6962,6 +6965,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,
-@@ -6995,6 +7040,7 @@ static int __netdev_upper_dev_link(struc
+@@ -7009,6 +7054,7 @@ static int __netdev_upper_dev_link(struc
if (ret)
return ret;
ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
&changeupper_info.info);
ret = notifier_to_errno(ret);
-@@ -7081,6 +7127,7 @@ void netdev_upper_dev_unlink(struct net_
+@@ -7095,6 +7141,7 @@ void netdev_upper_dev_unlink(struct net_
__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
&changeupper_info.info);
}
-@@ -7704,6 +7751,7 @@ int dev_set_mac_address(struct net_devic
+@@ -7718,6 +7765,7 @@ int dev_set_mac_address(struct net_devic
if (err)
return err;
dev->addr_assign_type = NET_ADDR_SET;