diff --git a/include/kernel-version.mk b/include/kernel-version.mk index 1c4b711e7aed29d78d88d439c887095cd35dc179..69b0c91230659acae315864dadae226fd70179cc 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -26,6 +26,9 @@ endif ifeq ($(LINUX_VERSION),3.13.7) LINUX_KERNEL_MD5SUM:=370adced5e5c1cb1d0d621c2dae2723f endif +ifeq ($(LINUX_VERSION),3.14) + LINUX_KERNEL_MD5SUM:=b621207b3f6ecbb67db18b13258f8ea8 +endif # disable the md5sum check for unknown kernel versions LINUX_KERNEL_MD5SUM?=x diff --git a/target/linux/generic/patches-3.14/100-overlayfs.patch b/target/linux/generic/patches-3.14/100-overlayfs.patch index 5a7150db869612d8b836c252f6bd38402c9235ce..9007c96debef53644efe7fab6111b7f7e3b76b0e 100644 --- a/target/linux/generic/patches-3.14/100-overlayfs.patch +++ b/target/linux/generic/patches-3.14/100-overlayfs.patch @@ -243,7 +243,7 @@ will be called when part or all of the page is to be removed --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -6451,6 +6451,13 @@ F: drivers/scsi/osd/ +@@ -6452,6 +6452,13 @@ F: drivers/scsi/osd/ F: include/scsi/osd_* F: fs/exofs/ @@ -326,7 +326,7 @@ /** * sb_permission - Check superblock-level permissions -@@ -3038,9 +3039,12 @@ finish_open_created: +@@ -3035,9 +3036,12 @@ finish_open_created: error = may_open(&nd->path, acc_mode, open_flag); if (error) goto out; @@ -344,7 +344,7 @@ goto out; --- a/fs/namespace.c +++ b/fs/namespace.c -@@ -1495,6 +1495,33 @@ void drop_collected_mounts(struct vfsmou +@@ -1541,6 +1541,33 @@ void drop_collected_mounts(struct vfsmou namespace_unlock(); } diff --git a/target/linux/generic/patches-3.14/120-bridge_allow_receiption_on_disabled_port.patch b/target/linux/generic/patches-3.14/120-bridge_allow_receiption_on_disabled_port.patch index 0daa509dc9b775427686baff40c92822fc1f6aed..948d4eb18b1eea179de5ea22fa2d4e71a67d1645 100644 --- a/target/linux/generic/patches-3.14/120-bridge_allow_receiption_on_disabled_port.patch +++ b/target/linux/generic/patches-3.14/120-bridge_allow_receiption_on_disabled_port.patch @@ -15,7 +15,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> --- a/net/bridge/br_input.c +++ b/net/bridge/br_input.c -@@ -144,11 +144,13 @@ drop: +@@ -145,11 +145,13 @@ drop: static int br_handle_local_finish(struct sk_buff *skb) { struct net_bridge_port *p = br_port_get_rcu(skb->dev); @@ -33,7 +33,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> return 0; /* process further */ } -@@ -218,6 +220,18 @@ rx_handler_result_t br_handle_frame(stru +@@ -219,6 +221,18 @@ rx_handler_result_t br_handle_frame(stru forward: switch (p->state) { diff --git a/target/linux/generic/patches-3.14/640-bridge_no_eap_forward.patch b/target/linux/generic/patches-3.14/640-bridge_no_eap_forward.patch index 9e1a81d08850dac10e5dc5fc488c5f75977e18ac..acbf1e206e5cc06f0addf66511c3b82cbc588d5c 100644 --- a/target/linux/generic/patches-3.14/640-bridge_no_eap_forward.patch +++ b/target/linux/generic/patches-3.14/640-bridge_no_eap_forward.patch @@ -1,6 +1,6 @@ --- a/net/bridge/br_input.c +++ b/net/bridge/br_input.c -@@ -96,7 +96,11 @@ int br_handle_frame_finish(struct sk_buf +@@ -97,7 +97,11 @@ int br_handle_frame_finish(struct sk_buf dst = NULL; diff --git a/target/linux/generic/patches-3.14/641-bridge_always_accept_eap.patch b/target/linux/generic/patches-3.14/641-bridge_always_accept_eap.patch index f612c4b924c6f97b773bdd039d89f8f562345b05..d20773a495852640047e56e6d0e042923cf3ee5b 100644 --- a/target/linux/generic/patches-3.14/641-bridge_always_accept_eap.patch +++ b/target/linux/generic/patches-3.14/641-bridge_always_accept_eap.patch @@ -1,6 +1,6 @@ --- a/net/bridge/br_input.c +++ b/net/bridge/br_input.c -@@ -83,7 +83,7 @@ int br_handle_frame_finish(struct sk_buf +@@ -84,7 +84,7 @@ int br_handle_frame_finish(struct sk_buf br_multicast_rcv(br, p, skb, vid)) goto drop; diff --git a/target/linux/generic/patches-3.14/642-bridge_port_isolate.patch b/target/linux/generic/patches-3.14/642-bridge_port_isolate.patch index 5c5662d808681cd3d59583b593a47aaa7cbe0349..f387435867b5b57e09c87b73ce099497008d8183 100644 --- a/target/linux/generic/patches-3.14/642-bridge_port_isolate.patch +++ b/target/linux/generic/patches-3.14/642-bridge_port_isolate.patch @@ -43,7 +43,7 @@ --- a/net/bridge/br_input.c +++ b/net/bridge/br_input.c -@@ -119,8 +119,8 @@ int br_handle_frame_finish(struct sk_buf +@@ -120,8 +120,8 @@ int br_handle_frame_finish(struct sk_buf unicast = false; br->dev->stats.multicast++; diff --git a/target/linux/generic/patches-3.14/643-bridge_remove_ipv6_dependency.patch b/target/linux/generic/patches-3.14/643-bridge_remove_ipv6_dependency.patch index 2d807431d60df2b3b6c365d3760cf36c1c7c9b87..5b2a7318c70eb1c168d3ac3a83f5cf39f02e74fd 100644 --- a/target/linux/generic/patches-3.14/643-bridge_remove_ipv6_dependency.patch +++ b/target/linux/generic/patches-3.14/643-bridge_remove_ipv6_dependency.patch @@ -32,7 +32,7 @@ +obj-$(subst m,y,$(CONFIG_IPV6)) += inet6_stubs.o --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c -@@ -1307,7 +1307,7 @@ out: +@@ -1311,7 +1311,7 @@ out: return ret; } @@ -41,7 +41,7 @@ const struct in6_addr *daddr, unsigned int prefs, struct in6_addr *saddr) { -@@ -1432,7 +1432,6 @@ try_nextdev: +@@ -1436,7 +1436,6 @@ try_nextdev: in6_ifa_put(hiscore->ifa); return 0; } @@ -49,7 +49,7 @@ int __ipv6_get_lladdr(struct inet6_dev *idev, struct in6_addr *addr, u32 banned_flags) -@@ -5297,6 +5296,9 @@ int __init addrconf_init(void) +@@ -5385,6 +5384,9 @@ int __init addrconf_init(void) ipv6_addr_label_rtnl_register(); @@ -59,7 +59,7 @@ return 0; errout: rtnl_af_unregister(&inet6_ops); -@@ -5314,6 +5316,9 @@ void addrconf_cleanup(void) +@@ -5404,6 +5406,9 @@ void addrconf_cleanup(void) struct net_device *dev; int i; diff --git a/target/linux/generic/patches-3.14/644-bridge_optimize_netfilter_hooks.patch b/target/linux/generic/patches-3.14/644-bridge_optimize_netfilter_hooks.patch index 84b2420d20217203eec12b52d0ac8122b251b4e0..3af45ecfc900361f9c7278db754823b413d7ba6f 100644 --- a/target/linux/generic/patches-3.14/644-bridge_optimize_netfilter_hooks.patch +++ b/target/linux/generic/patches-3.14/644-bridge_optimize_netfilter_hooks.patch @@ -29,16 +29,16 @@ --- a/net/bridge/br_input.c +++ b/net/bridge/br_input.c -@@ -52,7 +52,7 @@ static int br_pass_frame_up(struct sk_bu - indev = skb->dev; - skb->dev = brdev; +@@ -53,7 +53,7 @@ static int br_pass_frame_up(struct sk_bu + if (!skb) + return NET_RX_DROP; - return NF_HOOK(NFPROTO_BRIDGE, NF_BR_LOCAL_IN, skb, indev, NULL, + return BR_HOOK(NFPROTO_BRIDGE, NF_BR_LOCAL_IN, skb, indev, NULL, netif_receive_skb); } -@@ -213,7 +213,7 @@ rx_handler_result_t br_handle_frame(stru +@@ -214,7 +214,7 @@ rx_handler_result_t br_handle_frame(stru } /* Deliver packet to local host only */ @@ -47,7 +47,7 @@ NULL, br_handle_local_finish)) { return RX_HANDLER_CONSUMED; /* consumed by filter */ } else { -@@ -228,7 +228,7 @@ forward: +@@ -229,7 +229,7 @@ forward: if (ether_addr_equal(p->br->dev->dev_addr, dest)) skb->pkt_type = PACKET_HOST; @@ -56,7 +56,7 @@ br_handle_local_finish)) break; -@@ -250,7 +250,7 @@ forward: +@@ -251,7 +251,7 @@ forward: if (ether_addr_equal(p->br->dev->dev_addr, dest)) skb->pkt_type = PACKET_HOST; diff --git a/target/linux/generic/patches-3.14/721-phy_packets.patch b/target/linux/generic/patches-3.14/721-phy_packets.patch index 7a245e81d440df21b6cd94131f7bf2f85031eed0..3421e4dc214ac9979ac22ec438fe9b154c2df8a5 100644 --- a/target/linux/generic/patches-3.14/721-phy_packets.patch +++ b/target/linux/generic/patches-3.14/721-phy_packets.patch @@ -79,7 +79,7 @@ help --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -2602,10 +2602,20 @@ int dev_hard_start_xmit(struct sk_buff * +@@ -2607,10 +2607,20 @@ int dev_hard_start_xmit(struct sk_buff * if (!list_empty(&ptype_all)) dev_queue_xmit_nit(skb, dev);