diff options
Diffstat (limited to 'target/linux')
20 files changed, 84 insertions, 82 deletions
diff --git a/target/linux/bcm53xx/patches-4.14/400-mtd-spi-nor-detect-JEDEC-incompatible-w25q128-using-.patch b/target/linux/bcm53xx/patches-4.14/400-mtd-spi-nor-detect-JEDEC-incompatible-w25q128-using-.patch index 7510526..8eb70b4 100644 --- a/target/linux/bcm53xx/patches-4.14/400-mtd-spi-nor-detect-JEDEC-incompatible-w25q128-using-.patch +++ b/target/linux/bcm53xx/patches-4.14/400-mtd-spi-nor-detect-JEDEC-incompatible-w25q128-using-.patch @@ -13,7 +13,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com> --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c -@@ -1205,6 +1205,18 @@ static const struct flash_info *spi_nor_ +@@ -1209,6 +1209,18 @@ static const struct flash_info *spi_nor_ } dev_err(nor->dev, "unrecognized JEDEC id bytes: %02x, %02x, %02x\n", id[0], id[1], id[2]); diff --git a/target/linux/brcm47xx/patches-4.14/159-cpu_fixes.patch b/target/linux/brcm47xx/patches-4.14/159-cpu_fixes.patch index 1b776fd..32df800 100644 --- a/target/linux/brcm47xx/patches-4.14/159-cpu_fixes.patch +++ b/target/linux/brcm47xx/patches-4.14/159-cpu_fixes.patch @@ -63,7 +63,7 @@ cache_op(Hit_Invalidate_D, addr); __dflush_epilogue } -@@ -205,6 +240,7 @@ static inline void protected_flush_icach +@@ -205,6 +240,7 @@ static inline int protected_flush_icache #ifdef CONFIG_EVA return protected_cachee_op(Hit_Invalidate_I, addr); #else @@ -71,7 +71,7 @@ return protected_cache_op(Hit_Invalidate_I, addr); #endif } -@@ -218,6 +254,7 @@ static inline void protected_flush_icach +@@ -218,6 +254,7 @@ static inline int protected_flush_icache */ static inline int protected_writeback_dcache_line(unsigned long addr) { @@ -457,7 +457,7 @@ /* --- a/arch/mips/mm/tlbex.c +++ b/arch/mips/mm/tlbex.c -@@ -971,6 +971,9 @@ build_get_pgde32(u32 **p, unsigned int t +@@ -971,6 +971,9 @@ void build_get_pgde32(u32 **p, unsigned uasm_i_srl(p, ptr, ptr, SMP_CPUID_PTRSHIFT); uasm_i_addu(p, ptr, tmp, ptr); #else diff --git a/target/linux/brcm47xx/patches-4.14/400-mtd-bcm47xxpart-get-nvram.patch b/target/linux/brcm47xx/patches-4.14/400-mtd-bcm47xxpart-get-nvram.patch index 7e4ae20..df9d434 100644 --- a/target/linux/brcm47xx/patches-4.14/400-mtd-bcm47xxpart-get-nvram.patch +++ b/target/linux/brcm47xx/patches-4.14/400-mtd-bcm47xxpart-get-nvram.patch @@ -8,7 +8,7 @@ /* * Some really old flashes (like AT45DB*) had smaller erasesize-s, but -@@ -269,12 +270,23 @@ static int bcm47xxpart_parse(struct mtd_ +@@ -283,12 +284,23 @@ static int bcm47xxpart_parse(struct mtd_ if (buf[0] == NVRAM_HEADER) { bcm47xxpart_add_part(&parts[curr_part++], "nvram", master->size - blocksize, 0); diff --git a/target/linux/generic/backport-4.14/313-netfilter-remove-defensive-check-on-malformed-packet.patch b/target/linux/generic/backport-4.14/313-netfilter-remove-defensive-check-on-malformed-packet.patch index 30b0bc7..5e56d0d 100644 --- a/target/linux/generic/backport-4.14/313-netfilter-remove-defensive-check-on-malformed-packet.patch +++ b/target/linux/generic/backport-4.14/313-netfilter-remove-defensive-check-on-malformed-packet.patch @@ -87,9 +87,9 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> - ip_hdrlen(skb) < sizeof(struct iphdr)) - return NF_ACCEPT; - - if (ip_is_fragment(ip_hdr(skb))) /* IP_NODEFRAG setsockopt set */ - return NF_ACCEPT; - + if (ip_is_fragment(ip_hdr(skb))) { /* IP_NODEFRAG setsockopt set */ + enum ip_conntrack_info ctinfo; + struct nf_conn *tmpl; --- a/net/ipv4/netfilter/nf_nat_l3proto_ipv4.c +++ b/net/ipv4/netfilter/nf_nat_l3proto_ipv4.c @@ -355,11 +355,6 @@ nf_nat_ipv4_out(void *priv, struct sk_bu diff --git a/target/linux/generic/backport-4.14/324-netfilter-flow-table-support-for-IPv6.patch b/target/linux/generic/backport-4.14/324-netfilter-flow-table-support-for-IPv6.patch index a5bbac4..abe7ef0 100644 --- a/target/linux/generic/backport-4.14/324-netfilter-flow-table-support-for-IPv6.patch +++ b/target/linux/generic/backport-4.14/324-netfilter-flow-table-support-for-IPv6.patch @@ -26,7 +26,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> struct dst_entry *ip6_dst_lookup_flow(const struct sock *sk, struct flowi6 *fl6, --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c -@@ -370,7 +370,7 @@ static inline int ip6_forward_finish(str +@@ -383,7 +383,7 @@ static inline int ip6_forward_finish(str return dst_output(net, sk, skb); } @@ -35,7 +35,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> { unsigned int mtu; struct inet6_dev *idev; -@@ -390,6 +390,7 @@ static unsigned int ip6_dst_mtu_forward( +@@ -403,6 +403,7 @@ static unsigned int ip6_dst_mtu_forward( return mtu; } diff --git a/target/linux/generic/backport-4.14/336-netfilter-exit_net-cleanup-check-added.patch b/target/linux/generic/backport-4.14/336-netfilter-exit_net-cleanup-check-added.patch index 8a2dbd8..92d7942 100644 --- a/target/linux/generic/backport-4.14/336-netfilter-exit_net-cleanup-check-added.patch +++ b/target/linux/generic/backport-4.14/336-netfilter-exit_net-cleanup-check-added.patch @@ -80,7 +80,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> static void nfnl_queue_net_exit_batch(struct list_head *net_exit_list) --- a/net/netfilter/x_tables.c +++ b/net/netfilter/x_tables.c -@@ -1719,8 +1719,17 @@ static int __net_init xt_net_init(struct +@@ -1754,8 +1754,17 @@ static int __net_init xt_net_init(struct return 0; } diff --git a/target/linux/generic/backport-4.14/350-ipv6-make-ip6_dst_mtu_forward-inline.patch b/target/linux/generic/backport-4.14/350-ipv6-make-ip6_dst_mtu_forward-inline.patch index 3a0275b..e16f13a 100644 --- a/target/linux/generic/backport-4.14/350-ipv6-make-ip6_dst_mtu_forward-inline.patch +++ b/target/linux/generic/backport-4.14/350-ipv6-make-ip6_dst_mtu_forward-inline.patch @@ -49,7 +49,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> struct dst_entry *ip6_dst_lookup_flow(const struct sock *sk, struct flowi6 *fl6, --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c -@@ -370,28 +370,6 @@ static inline int ip6_forward_finish(str +@@ -383,28 +383,6 @@ static inline int ip6_forward_finish(str return dst_output(net, sk, skb); } diff --git a/target/linux/generic/hack-4.14/250-netfilter_depends.patch b/target/linux/generic/hack-4.14/250-netfilter_depends.patch index 6f6e1be..264d766 100644 --- a/target/linux/generic/hack-4.14/250-netfilter_depends.patch +++ b/target/linux/generic/hack-4.14/250-netfilter_depends.patch @@ -17,7 +17,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> depends on NETFILTER_ADVANCED help H.323 is a VoIP signalling protocol from ITU-T. As one of the most -@@ -1037,7 +1036,6 @@ config NETFILTER_XT_TARGET_SECMARK +@@ -1046,7 +1045,6 @@ config NETFILTER_XT_TARGET_SECMARK config NETFILTER_XT_TARGET_TCPMSS tristate '"TCPMSS" target support' diff --git a/target/linux/generic/hack-4.14/721-phy_packets.patch b/target/linux/generic/hack-4.14/721-phy_packets.patch index 62d0295..86ff0fe 100644 --- a/target/linux/generic/hack-4.14/721-phy_packets.patch +++ b/target/linux/generic/hack-4.14/721-phy_packets.patch @@ -15,7 +15,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h -@@ -1386,6 +1386,7 @@ enum netdev_priv_flags { +@@ -1410,6 +1410,7 @@ enum netdev_priv_flags { IFF_RXFH_CONFIGURED = 1<<25, IFF_PHONY_HEADROOM = 1<<26, IFF_MACSEC = 1<<27, @@ -23,7 +23,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> }; #define IFF_802_1Q_VLAN IFF_802_1Q_VLAN -@@ -1415,6 +1416,7 @@ enum netdev_priv_flags { +@@ -1439,6 +1440,7 @@ enum netdev_priv_flags { #define IFF_TEAM IFF_TEAM #define IFF_RXFH_CONFIGURED IFF_RXFH_CONFIGURED #define IFF_MACSEC IFF_MACSEC @@ -31,7 +31,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> /** * struct net_device - The DEVICE structure. -@@ -1701,6 +1703,11 @@ struct net_device { +@@ -1725,6 +1727,11 @@ struct net_device { const struct xfrmdev_ops *xfrmdev_ops; #endif @@ -43,7 +43,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> const struct header_ops *header_ops; unsigned int flags; -@@ -1770,6 +1777,10 @@ struct net_device { +@@ -1794,6 +1801,10 @@ struct net_device { struct mpls_dev __rcu *mpls_ptr; #endif diff --git a/target/linux/generic/pending-4.14/641-netfilter-nf_flow_table-support-hw-offload-through-v.patch b/target/linux/generic/pending-4.14/641-netfilter-nf_flow_table-support-hw-offload-through-v.patch index 5835973..9311725 100644 --- a/target/linux/generic/pending-4.14/641-netfilter-nf_flow_table-support-hw-offload-through-v.patch +++ b/target/linux/generic/pending-4.14/641-netfilter-nf_flow_table-support-hw-offload-through-v.patch @@ -103,75 +103,76 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> - indev = dev_get_by_index(net, ifindex); - if (WARN_ON(!indev)) - return 0; -+ if (dev->type != ARPHRD_ETHER) -+ return; - +- - mutex_lock(&nf_flow_offload_hw_mutex); - ret = indev->netdev_ops->ndo_flow_offload(type, flow); - mutex_unlock(&nf_flow_offload_hw_mutex); ++ if (dev->type != ARPHRD_ETHER) ++ return; + +- dev_put(indev); + memcpy(path->eth_src, path->dev->dev_addr, ETH_ALEN); + n = dst_neigh_lookup(tuple->dst_cache, &tuple->src_v4); + if (!n) + return; -- dev_put(indev); +- return ret; + memcpy(path->eth_dest, n->ha, ETH_ALEN); + path->flags |= FLOW_OFFLOAD_PATH_ETHERNET; + neigh_release(n); -+} + } -- return ret; +-static void flow_offload_hw_work_add(struct flow_offload_hw *offload) +static int flow_offload_check_path(struct net *net, + struct flow_offload_tuple *tuple, + struct flow_offload_hw_path *path) -+{ + { +- struct net *net; +- int ret; + struct net_device *dev; -+ + +- if (nf_ct_is_dying(offload->ct)) +- return; + dev = dev_get_by_index_rcu(net, tuple->iifidx); + if (!dev) + return -ENOENT; + + path->dev = dev; + flow_offload_check_ethernet(tuple, path); -+ + +- net = read_pnet(&offload->flow_hw_net); +- ret = do_flow_offload_hw(net, offload->flow, FLOW_OFFLOAD_ADD); +- if (ret >= 0) +- offload->flow->flags |= FLOW_OFFLOAD_HW; + if (dev->netdev_ops->ndo_flow_offload_check) + return dev->netdev_ops->ndo_flow_offload_check(path); + + return 0; } --static void flow_offload_hw_work_add(struct flow_offload_hw *offload) +-static void flow_offload_hw_work_del(struct flow_offload_hw *offload) +static int do_flow_offload_hw(struct flow_offload_hw *offload) { -- struct net *net; +- struct net *net = read_pnet(&offload->flow_hw_net); + struct net_device *src_dev = offload->src.dev; + struct net_device *dest_dev = offload->dest.dev; - int ret; - -- if (nf_ct_is_dying(offload->ct)) -- return; ++ int ret; ++ + ret = src_dev->netdev_ops->ndo_flow_offload(offload->type, + offload->flow, + &offload->src, + &offload->dest); - -- net = read_pnet(&offload->flow_hw_net); -- ret = do_flow_offload_hw(net, offload->flow, FLOW_OFFLOAD_ADD); -- if (ret >= 0) -- offload->flow->flags |= FLOW_OFFLOAD_HW; ++ + /* restore devices in case the driver mangled them */ + offload->src.dev = src_dev; + offload->dest.dev = dest_dev; + + return ret; - } ++} --static void flow_offload_hw_work_del(struct flow_offload_hw *offload) -+static void flow_offload_hw_free(struct flow_offload_hw *offload) - { -- struct net *net = read_pnet(&offload->flow_hw_net); -- - do_flow_offload_hw(net, offload->flow, FLOW_OFFLOAD_DEL); ++static void flow_offload_hw_free(struct flow_offload_hw *offload) ++{ + dev_put(offload->src.dev); + dev_put(offload->dest.dev); + if (offload->ct) diff --git a/target/linux/generic/pending-4.14/642-net-8021q-support-hardware-flow-table-offload.patch b/target/linux/generic/pending-4.14/642-net-8021q-support-hardware-flow-table-offload.patch index cda2e0f..ca340fc 100644 --- a/target/linux/generic/pending-4.14/642-net-8021q-support-hardware-flow-table-offload.patch +++ b/target/linux/generic/pending-4.14/642-net-8021q-support-hardware-flow-table-offload.patch @@ -9,18 +9,19 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> --- a/net/8021q/vlan_dev.c +++ b/net/8021q/vlan_dev.c -@@ -29,8 +29,10 @@ +@@ -29,9 +29,11 @@ #include <linux/net_tstamp.h> #include <linux/etherdevice.h> #include <linux/ethtool.h> +#include <linux/netfilter.h> + #include <linux/phy.h> #include <net/arp.h> #include <net/switchdev.h> +#include <net/netfilter/nf_flow_table.h> #include "vlan.h" #include "vlanproc.h" -@@ -762,6 +764,25 @@ static int vlan_dev_get_iflink(const str +@@ -766,6 +768,25 @@ static int vlan_dev_get_iflink(const str return real_dev->ifindex; } @@ -46,7 +47,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> static const struct ethtool_ops vlan_ethtool_ops = { .get_link_ksettings = vlan_ethtool_get_link_ksettings, .get_drvinfo = vlan_ethtool_get_drvinfo, -@@ -799,6 +820,7 @@ static const struct net_device_ops vlan_ +@@ -803,6 +824,7 @@ static const struct net_device_ops vlan_ .ndo_fix_features = vlan_dev_fix_features, .ndo_get_lock_subclass = vlan_dev_get_lock_subclass, .ndo_get_iflink = vlan_dev_get_iflink, diff --git a/target/linux/generic/pending-4.14/644-net-pppoe-support-hardware-flow-table-offload.patch b/target/linux/generic/pending-4.14/644-net-pppoe-support-hardware-flow-table-offload.patch index 9259fe8..9565412 100644 --- a/target/linux/generic/pending-4.14/644-net-pppoe-support-hardware-flow-table-offload.patch +++ b/target/linux/generic/pending-4.14/644-net-pppoe-support-hardware-flow-table-offload.patch @@ -19,7 +19,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> #define PPP_VERSION "2.4.2" /* -@@ -1383,12 +1386,33 @@ static void ppp_dev_priv_destructor(stru +@@ -1382,12 +1385,33 @@ static void ppp_dev_priv_destructor(stru ppp_destroy_interface(ppp); } diff --git a/target/linux/generic/pending-4.14/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch b/target/linux/generic/pending-4.14/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch index c544f7a..4a76db0 100644 --- a/target/linux/generic/pending-4.14/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch +++ b/target/linux/generic/pending-4.14/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch @@ -143,7 +143,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org> } return &ip6n->tnls[prio][h]; } -@@ -380,6 +391,12 @@ ip6_tnl_dev_uninit(struct net_device *de +@@ -383,6 +394,12 @@ ip6_tnl_dev_uninit(struct net_device *de struct net *net = t->net; struct ip6_tnl_net *ip6n = net_generic(net, ip6_tnl_net_id); @@ -156,7 +156,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org> if (dev == ip6n->fb_tnl_dev) RCU_INIT_POINTER(ip6n->tnls_wc[0], NULL); else -@@ -776,6 +793,107 @@ int ip6_tnl_rcv_ctl(struct ip6_tnl *t, +@@ -779,6 +796,107 @@ int ip6_tnl_rcv_ctl(struct ip6_tnl *t, } EXPORT_SYMBOL_GPL(ip6_tnl_rcv_ctl); @@ -264,7 +264,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org> static int __ip6_tnl_rcv(struct ip6_tnl *tunnel, struct sk_buff *skb, const struct tnl_ptk_info *tpi, struct metadata_dst *tun_dst, -@@ -828,6 +946,27 @@ static int __ip6_tnl_rcv(struct ip6_tnl +@@ -831,6 +949,27 @@ static int __ip6_tnl_rcv(struct ip6_tnl skb_reset_network_header(skb); memset(skb->cb, 0, sizeof(struct inet6_skb_parm)); @@ -292,7 +292,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org> __skb_tunnel_rx(skb, tunnel->dev, tunnel->net); err = dscp_ecn_decapsulate(tunnel, ipv6h, skb); -@@ -959,6 +1098,7 @@ static void init_tel_txopt(struct ipv6_t +@@ -962,6 +1101,7 @@ static void init_tel_txopt(struct ipv6_t opt->ops.opt_nflen = 8; } @@ -300,7 +300,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org> /** * ip6_tnl_addr_conflict - compare packet addresses to tunnel's own * @t: the outgoing tunnel device -@@ -1301,6 +1441,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str +@@ -1304,6 +1444,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str { struct ip6_tnl *t = netdev_priv(dev); struct ipv6hdr *ipv6h = ipv6_hdr(skb); @@ -308,7 +308,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org> int encap_limit = -1; __u16 offset; struct flowi6 fl6; -@@ -1363,6 +1504,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str +@@ -1366,6 +1507,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str fl6.flowi6_uid = sock_net_uid(dev_net(dev), NULL); @@ -327,7 +327,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org> if (iptunnel_handle_offloads(skb, SKB_GSO_IPXIP6)) return -1; -@@ -1491,6 +1644,14 @@ ip6_tnl_change(struct ip6_tnl *t, const +@@ -1494,6 +1647,14 @@ ip6_tnl_change(struct ip6_tnl *t, const t->parms.link = p->link; t->parms.proto = p->proto; t->parms.fwmark = p->fwmark; @@ -342,7 +342,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org> dst_cache_reset(&t->dst_cache); ip6_tnl_link_config(t); return 0; -@@ -1529,6 +1690,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_ +@@ -1532,6 +1693,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_ p->flowinfo = u->flowinfo; p->link = u->link; p->proto = u->proto; @@ -350,7 +350,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org> memcpy(p->name, u->name, sizeof(u->name)); } -@@ -1910,6 +2072,15 @@ static int ip6_tnl_validate(struct nlatt +@@ -1913,6 +2075,15 @@ static int ip6_tnl_validate(struct nlatt return 0; } @@ -366,7 +366,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org> static void ip6_tnl_netlink_parms(struct nlattr *data[], struct __ip6_tnl_parm *parms) { -@@ -1947,6 +2118,46 @@ static void ip6_tnl_netlink_parms(struct +@@ -1950,6 +2121,46 @@ static void ip6_tnl_netlink_parms(struct if (data[IFLA_IPTUN_FWMARK]) parms->fwmark = nla_get_u32(data[IFLA_IPTUN_FWMARK]); @@ -413,7 +413,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org> } static bool ip6_tnl_netlink_encap_parms(struct nlattr *data[], -@@ -2058,6 +2269,12 @@ static void ip6_tnl_dellink(struct net_d +@@ -2061,6 +2272,12 @@ static void ip6_tnl_dellink(struct net_d static size_t ip6_tnl_get_size(const struct net_device *dev) { @@ -426,7 +426,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org> return /* IFLA_IPTUN_LINK */ nla_total_size(4) + -@@ -2087,6 +2304,24 @@ static size_t ip6_tnl_get_size(const str +@@ -2090,6 +2307,24 @@ static size_t ip6_tnl_get_size(const str nla_total_size(0) + /* IFLA_IPTUN_FWMARK */ nla_total_size(4) + @@ -451,7 +451,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org> 0; } -@@ -2094,6 +2329,9 @@ static int ip6_tnl_fill_info(struct sk_b +@@ -2097,6 +2332,9 @@ static int ip6_tnl_fill_info(struct sk_b { struct ip6_tnl *tunnel = netdev_priv(dev); struct __ip6_tnl_parm *parm = &tunnel->parms; @@ -461,7 +461,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org> if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) || nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) || -@@ -2103,9 +2341,27 @@ static int ip6_tnl_fill_info(struct sk_b +@@ -2106,9 +2344,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) || @@ -490,7 +490,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org> 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) || -@@ -2145,6 +2401,7 @@ static const struct nla_policy ip6_tnl_p +@@ -2148,6 +2404,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 }, diff --git a/target/linux/generic/pending-4.14/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch b/target/linux/generic/pending-4.14/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch index 3934688..1ac009b 100644 --- a/target/linux/generic/pending-4.14/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch +++ b/target/linux/generic/pending-4.14/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch @@ -141,7 +141,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> static const struct rt6_info ip6_blk_hole_entry_template = { .dst = { .__refcnt = ATOMIC_INIT(1), -@@ -2038,6 +2055,11 @@ static struct rt6_info *ip6_route_info_c +@@ -2041,6 +2058,11 @@ static struct rt6_info *ip6_route_info_c rt->dst.output = ip6_pkt_prohibit_out; rt->dst.input = ip6_pkt_prohibit; break; @@ -153,7 +153,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> case RTN_THROW: case RTN_UNREACHABLE: default: -@@ -2763,6 +2785,17 @@ static int ip6_pkt_prohibit_out(struct n +@@ -2766,6 +2788,17 @@ static int ip6_pkt_prohibit_out(struct n return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES); } @@ -171,7 +171,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> /* * Allocate a dst for local (unicast / anycast) address. */ -@@ -2997,7 +3030,8 @@ static int rtm_to_fib6_config(struct sk_ +@@ -3000,7 +3033,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 || @@ -181,7 +181,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> cfg->fc_flags |= RTF_REJECT; if (rtm->rtm_type == RTN_LOCAL) -@@ -3487,6 +3521,9 @@ static int rt6_fill_node(struct net *net +@@ -3490,6 +3524,9 @@ static int rt6_fill_node(struct net *net case -EACCES: rtm->rtm_type = RTN_PROHIBIT; break; @@ -191,7 +191,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> case -EAGAIN: rtm->rtm_type = RTN_THROW; break; -@@ -3805,6 +3842,8 @@ static int ip6_route_dev_notify(struct n +@@ -3808,6 +3845,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); @@ -200,7 +200,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> net->ipv6.ip6_blk_hole_entry->dst.dev = dev; net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev); #endif -@@ -4032,6 +4071,17 @@ static int __net_init ip6_route_net_init +@@ -4035,6 +4074,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); @@ -218,7 +218,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> #endif net->ipv6.sysctl.flush_delay = 0; -@@ -4050,6 +4100,8 @@ out: +@@ -4053,6 +4103,8 @@ out: return ret; #ifdef CONFIG_IPV6_MULTIPLE_TABLES @@ -227,7 +227,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> out_ip6_prohibit_entry: kfree(net->ipv6.ip6_prohibit_entry); out_ip6_null_entry: -@@ -4067,6 +4119,7 @@ static void __net_exit ip6_route_net_exi +@@ -4070,6 +4122,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); @@ -235,7 +235,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> #endif dst_entries_destroy(&net->ipv6.ip6_dst_ops); } -@@ -4140,6 +4193,9 @@ void __init ip6_route_init_special_entri +@@ -4143,6 +4196,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); diff --git a/target/linux/generic/pending-4.14/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/pending-4.14/680-NET-skip-GRO-for-foreign-MAC-addresses.patch index 9ac505e..9de77df 100644 --- a/target/linux/generic/pending-4.14/680-NET-skip-GRO-for-foreign-MAC-addresses.patch +++ b/target/linux/generic/pending-4.14/680-NET-skip-GRO-for-foreign-MAC-addresses.patch @@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h -@@ -1739,6 +1739,8 @@ struct net_device { +@@ -1763,6 +1763,8 @@ struct net_device { struct netdev_hw_addr_list mc; struct netdev_hw_addr_list dev_addrs; diff --git a/target/linux/ipq40xx/patches-4.14/605-net-IPQ4019-needs-rfs-vlan_tag-callbacks-in.patch b/target/linux/ipq40xx/patches-4.14/605-net-IPQ4019-needs-rfs-vlan_tag-callbacks-in.patch index a52fe28..2ef4221 100644 --- a/target/linux/ipq40xx/patches-4.14/605-net-IPQ4019-needs-rfs-vlan_tag-callbacks-in.patch +++ b/target/linux/ipq40xx/patches-4.14/605-net-IPQ4019-needs-rfs-vlan_tag-callbacks-in.patch @@ -41,7 +41,7 @@ Reviewed-by: Grant Grundler <grundler@chromium.org> /* * This structure holds all XPS maps for device. Maps are indexed by CPU. */ -@@ -1239,6 +1249,9 @@ struct net_device_ops { +@@ -1258,6 +1268,9 @@ struct net_device_ops { const struct sk_buff *skb, u16 rxq_index, u32 flow_id); diff --git a/target/linux/mvebu/patches-4.14/408-sfp-move-module-eeprom-ethtool-access-into-netdev-co.patch b/target/linux/mvebu/patches-4.14/408-sfp-move-module-eeprom-ethtool-access-into-netdev-co.patch index 1960326..2e135e6 100644 --- a/target/linux/mvebu/patches-4.14/408-sfp-move-module-eeprom-ethtool-access-into-netdev-co.patch +++ b/target/linux/mvebu/patches-4.14/408-sfp-move-module-eeprom-ethtool-access-into-netdev-co.patch @@ -129,7 +129,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk> /* 802.11 specific */ struct wireless_dev; /* 802.15.4 specific */ -@@ -1908,6 +1909,7 @@ struct net_device { +@@ -1932,6 +1933,7 @@ struct net_device { struct netprio_map __rcu *priomap; #endif struct phy_device *phydev; diff --git a/target/linux/pistachio/patches-4.14/401-mtd-nor-support-mtd-name-from-device-tree.patch b/target/linux/pistachio/patches-4.14/401-mtd-nor-support-mtd-name-from-device-tree.patch index 00686aa..eeb1e4d 100644 --- a/target/linux/pistachio/patches-4.14/401-mtd-nor-support-mtd-name-from-device-tree.patch +++ b/target/linux/pistachio/patches-4.14/401-mtd-nor-support-mtd-name-from-device-tree.patch @@ -10,7 +10,7 @@ Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com> --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c -@@ -2646,6 +2646,7 @@ int spi_nor_scan(struct spi_nor *nor, co +@@ -2650,6 +2650,7 @@ int spi_nor_scan(struct spi_nor *nor, co struct device *dev = nor->dev; struct mtd_info *mtd = &nor->mtd; struct device_node *np = spi_nor_get_flash_node(nor); @@ -18,7 +18,7 @@ Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com> int ret; int i; -@@ -2721,7 +2722,12 @@ int spi_nor_scan(struct spi_nor *nor, co +@@ -2725,7 +2726,12 @@ int spi_nor_scan(struct spi_nor *nor, co spi_nor_wait_till_ready(nor); } diff --git a/target/linux/ramips/patches-4.14/0032-USB-dwc2-add-device_reset.patch b/target/linux/ramips/patches-4.14/0032-USB-dwc2-add-device_reset.patch index 623eaf7..7d3352e 100644 --- a/target/linux/ramips/patches-4.14/0032-USB-dwc2-add-device_reset.patch +++ b/target/linux/ramips/patches-4.14/0032-USB-dwc2-add-device_reset.patch @@ -18,7 +18,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> #include <linux/usb/hcd.h> #include <linux/usb/ch11.h> -@@ -5072,6 +5073,8 @@ int dwc2_hcd_init(struct dwc2_hsotg *hso +@@ -5075,6 +5076,8 @@ int dwc2_hcd_init(struct dwc2_hsotg *hso retval = -ENOMEM; diff --git a/target/linux/ramips/patches-4.14/0053-mtd-spi-nor-add-w25q256-3b-mode-switch.patch b/target/linux/ramips/patches-4.14/0053-mtd-spi-nor-add-w25q256-3b-mode-switch.patch index b8819e5..2e7cc33 100644 --- a/target/linux/ramips/patches-4.14/0053-mtd-spi-nor-add-w25q256-3b-mode-switch.patch +++ b/target/linux/ramips/patches-4.14/0053-mtd-spi-nor-add-w25q256-3b-mode-switch.patch @@ -125,7 +125,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> { "w25m512jv", INFO(0xef7119, 0, 64 * 1024, 1024, SECT_4K | SPI_NOR_QUAD_READ | SPI_NOR_DUAL_READ) }, -@@ -1220,6 +1272,9 @@ static int spi_nor_read(struct mtd_info +@@ -1224,6 +1276,9 @@ static int spi_nor_read(struct mtd_info if (ret) return ret; @@ -135,7 +135,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> while (len) { loff_t addr = from; -@@ -1244,6 +1299,18 @@ static int spi_nor_read(struct mtd_info +@@ -1248,6 +1303,18 @@ static int spi_nor_read(struct mtd_info ret = 0; read_err: @@ -154,7 +154,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> spi_nor_unlock_and_unprep(nor, SPI_NOR_OPS_READ); return ret; } -@@ -1345,6 +1412,10 @@ static int spi_nor_write(struct mtd_info +@@ -1349,6 +1416,10 @@ static int spi_nor_write(struct mtd_info if (ret) return ret; @@ -165,7 +165,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> for (i = 0; i < len; ) { ssize_t written; loff_t addr = to + i; -@@ -1385,6 +1456,7 @@ static int spi_nor_write(struct mtd_info +@@ -1389,6 +1460,7 @@ static int spi_nor_write(struct mtd_info } write_err: @@ -173,7 +173,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> spi_nor_unlock_and_unprep(nor, SPI_NOR_OPS_WRITE); return ret; } -@@ -2801,8 +2873,10 @@ int spi_nor_scan(struct spi_nor *nor, co +@@ -2805,8 +2877,10 @@ int spi_nor_scan(struct spi_nor *nor, co } else if (mtd->size > 0x1000000) { /* enable 4-byte addressing if the device exceeds 16MiB */ nor->addr_width = 4; |