diff options
Diffstat (limited to 'target/linux/generic/patches-3.18')
15 files changed, 29 insertions, 139 deletions
diff --git a/target/linux/generic/patches-3.18/082-usbnet-Fix-tx_packets-stat-for-FLAG_MULTI_FRAME-driv.patch b/target/linux/generic/patches-3.18/082-usbnet-Fix-tx_packets-stat-for-FLAG_MULTI_FRAME-driv.patch deleted file mode 100644 index 2a5e08b04f..0000000000 --- a/target/linux/generic/patches-3.18/082-usbnet-Fix-tx_packets-stat-for-FLAG_MULTI_FRAME-driv.patch +++ /dev/null @@ -1,107 +0,0 @@ -From: Ben Hutchings <ben.hutchings@codethink.co.uk> -Date: Thu, 26 Feb 2015 19:34:37 +0000 -Subject: [PATCH] usbnet: Fix tx_packets stat for FLAG_MULTI_FRAME drivers -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Currently the usbnet core does not update the tx_packets statistic for -drivers with FLAG_MULTI_PACKET and there is no hook in the TX -completion path where they could do this. - -cdc_ncm and dependent drivers are bumping tx_packets stat on the -transmit path while asix and sr9800 aren't updating it at all. - -Add a packet count in struct skb_data so these drivers can fill it -in, initialise it to 1 for other drivers, and add the packet count -to the tx_packets statistic on completion. - -Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk> -Tested-by: Bjørn Mork <bjorn@mork.no> -Signed-off-by: David S. Miller <davem@davemloft.net> ---- - ---- a/drivers/net/usb/asix_common.c -+++ b/drivers/net/usb/asix_common.c -@@ -188,6 +188,8 @@ struct sk_buff *asix_tx_fixup(struct usb - memcpy(skb_tail_pointer(skb), &padbytes, sizeof(padbytes)); - skb_put(skb, sizeof(padbytes)); - } -+ -+ usbnet_set_skb_tx_stats(skb, 1); - return skb; - } - ---- a/drivers/net/usb/cdc_ncm.c -+++ b/drivers/net/usb/cdc_ncm.c -@@ -1172,7 +1172,6 @@ cdc_ncm_fill_tx_frame(struct usbnet *dev - - /* return skb */ - ctx->tx_curr_skb = NULL; -- dev->net->stats.tx_packets += ctx->tx_curr_frame_num; - - /* keep private stats: framing overhead and number of NTBs */ - ctx->tx_overhead += skb_out->len - ctx->tx_curr_frame_payload; -@@ -1184,6 +1183,8 @@ cdc_ncm_fill_tx_frame(struct usbnet *dev - */ - dev->net->stats.tx_bytes -= skb_out->len - ctx->tx_curr_frame_payload; - -+ usbnet_set_skb_tx_stats(skb_out, n); -+ - return skb_out; - - exit_no_skb: ---- a/drivers/net/usb/sr9800.c -+++ b/drivers/net/usb/sr9800.c -@@ -144,6 +144,7 @@ static struct sk_buff *sr_tx_fixup(struc - skb_put(skb, sizeof(padbytes)); - } - -+ usbnet_set_skb_tx_stats(skb, 1); - return skb; - } - ---- a/drivers/net/usb/usbnet.c -+++ b/drivers/net/usb/usbnet.c -@@ -1189,8 +1189,7 @@ static void tx_complete (struct urb *urb - struct usbnet *dev = entry->dev; - - if (urb->status == 0) { -- if (!(dev->driver_info->flags & FLAG_MULTI_PACKET)) -- dev->net->stats.tx_packets++; -+ dev->net->stats.tx_packets += entry->packets; - dev->net->stats.tx_bytes += entry->length; - } else { - dev->net->stats.tx_errors++; -@@ -1349,6 +1348,8 @@ netdev_tx_t usbnet_start_xmit (struct sk - urb->transfer_flags |= URB_ZERO_PACKET; - } - entry->length = urb->transfer_buffer_length = length; -+ if (!(info->flags & FLAG_MULTI_PACKET)) -+ usbnet_set_skb_tx_stats(skb, 1); - - spin_lock_irqsave(&dev->txq.lock, flags); - retval = usb_autopm_get_interface_async(dev->intf); ---- a/include/linux/usb/usbnet.h -+++ b/include/linux/usb/usbnet.h -@@ -228,8 +228,20 @@ struct skb_data { /* skb->cb is one of t - struct usbnet *dev; - enum skb_state state; - size_t length; -+ unsigned long packets; - }; - -+/* Drivers that set FLAG_MULTI_PACKET must call this in their -+ * tx_fixup method before returning an skb. -+ */ -+static inline void -+usbnet_set_skb_tx_stats(struct sk_buff *skb, unsigned long packets) -+{ -+ struct skb_data *entry = (struct skb_data *) skb->cb; -+ -+ entry->packets = packets; -+} -+ - extern int usbnet_open(struct net_device *net); - extern int usbnet_stop(struct net_device *net); - extern netdev_tx_t usbnet_start_xmit(struct sk_buff *skb, diff --git a/target/linux/generic/patches-3.18/102-ehci_hcd_ignore_oc.patch b/target/linux/generic/patches-3.18/102-ehci_hcd_ignore_oc.patch index f498d4eac6..a5645596f9 100644 --- a/target/linux/generic/patches-3.18/102-ehci_hcd_ignore_oc.patch +++ b/target/linux/generic/patches-3.18/102-ehci_hcd_ignore_oc.patch @@ -31,7 +31,7 @@ Signed-off-by: Florian Fainelli <florian@openwrt.org> &ehci->regs->intr_enable); /* Turn On Interrupts */ --- a/drivers/usb/host/ehci-hub.c +++ b/drivers/usb/host/ehci-hub.c -@@ -632,7 +632,7 @@ ehci_hub_status_data (struct usb_hcd *hc +@@ -635,7 +635,7 @@ ehci_hub_status_data (struct usb_hcd *hc * always set, seem to clear PORT_OCC and PORT_CSC when writing to * PORT_POWER; that's surprising, but maybe within-spec. */ @@ -40,7 +40,7 @@ Signed-off-by: Florian Fainelli <florian@openwrt.org> mask = PORT_CSC | PORT_PEC | PORT_OCC; else mask = PORT_CSC | PORT_PEC; -@@ -992,7 +992,7 @@ int ehci_hub_control( +@@ -995,7 +995,7 @@ int ehci_hub_control( if (temp & PORT_PEC) status |= USB_PORT_STAT_C_ENABLE << 16; diff --git a/target/linux/generic/patches-3.18/259-regmap_dynamic.patch b/target/linux/generic/patches-3.18/259-regmap_dynamic.patch index cf67a7df01..44548ca8cc 100644 --- a/target/linux/generic/patches-3.18/259-regmap_dynamic.patch +++ b/target/linux/generic/patches-3.18/259-regmap_dynamic.patch @@ -71,7 +71,7 @@ #include <linux/mutex.h> #include <linux/err.h> #include <linux/of.h> -@@ -2635,3 +2636,5 @@ static int __init regmap_initcall(void) +@@ -2631,3 +2632,5 @@ static int __init regmap_initcall(void) return 0; } postcore_initcall(regmap_initcall); diff --git a/target/linux/generic/patches-3.18/304-mips_disable_fpu.patch b/target/linux/generic/patches-3.18/304-mips_disable_fpu.patch index 24fd5c7bfa..37ec9934ff 100644 --- a/target/linux/generic/patches-3.18/304-mips_disable_fpu.patch +++ b/target/linux/generic/patches-3.18/304-mips_disable_fpu.patch @@ -60,7 +60,7 @@ v2: incorporated changes suggested by Jonas Gorski core-y += arch/mips/ --- a/arch/mips/include/asm/fpu.h +++ b/arch/mips/include/asm/fpu.h -@@ -168,8 +168,10 @@ static inline int init_fpu(void) +@@ -169,8 +169,10 @@ static inline int init_fpu(void) ret = __own_fpu(); if (!ret) _init_fpu(); diff --git a/target/linux/generic/patches-3.18/411-mtd-partial_eraseblock_write.patch b/target/linux/generic/patches-3.18/411-mtd-partial_eraseblock_write.patch index 0c117c2703..7692d3dd42 100644 --- a/target/linux/generic/patches-3.18/411-mtd-partial_eraseblock_write.patch +++ b/target/linux/generic/patches-3.18/411-mtd-partial_eraseblock_write.patch @@ -97,7 +97,7 @@ if (instr->fail_addr != MTD_FAIL_ADDR_UNKNOWN) instr->fail_addr -= part->offset; instr->addr -= part->offset; -@@ -514,18 +582,21 @@ static struct mtd_part *allocate_partiti +@@ -514,17 +582,20 @@ static struct mtd_part *allocate_partiti if ((slave->mtd.flags & MTD_WRITEABLE) && mtd_mod_by_eb(slave->offset, &slave->mtd)) { /* Doesn't start on a boundary of major erase size */ @@ -127,7 +127,6 @@ } slave->mtd.ecclayout = master->ecclayout; - slave->mtd.ecc_step_size = master->ecc_step_size; --- a/include/linux/mtd/mtd.h +++ b/include/linux/mtd/mtd.h @@ -55,6 +55,10 @@ struct erase_info { diff --git a/target/linux/generic/patches-3.18/650-pppoe_header_pad.patch b/target/linux/generic/patches-3.18/650-pppoe_header_pad.patch index 60279c3c5b..3b4978be84 100644 --- a/target/linux/generic/patches-3.18/650-pppoe_header_pad.patch +++ b/target/linux/generic/patches-3.18/650-pppoe_header_pad.patch @@ -1,6 +1,6 @@ --- a/drivers/net/ppp/pppoe.c +++ b/drivers/net/ppp/pppoe.c -@@ -865,7 +865,7 @@ static int pppoe_sendmsg(struct kiocb *i +@@ -869,7 +869,7 @@ static int pppoe_sendmsg(struct kiocb *i goto end; @@ -9,7 +9,7 @@ 0, GFP_KERNEL); if (!skb) { error = -ENOMEM; -@@ -873,7 +873,7 @@ static int pppoe_sendmsg(struct kiocb *i +@@ -877,7 +877,7 @@ static int pppoe_sendmsg(struct kiocb *i } /* Reserve space for headers. */ diff --git a/target/linux/generic/patches-3.18/653-disable_netlink_trim.patch b/target/linux/generic/patches-3.18/653-disable_netlink_trim.patch index 5732596792..f8bc1f44ed 100644 --- a/target/linux/generic/patches-3.18/653-disable_netlink_trim.patch +++ b/target/linux/generic/patches-3.18/653-disable_netlink_trim.patch @@ -1,6 +1,6 @@ --- a/net/netlink/af_netlink.c +++ b/net/netlink/af_netlink.c -@@ -1695,27 +1695,7 @@ void netlink_detachskb(struct sock *sk, +@@ -1693,27 +1693,7 @@ void netlink_detachskb(struct sock *sk, static struct sk_buff *netlink_trim(struct sk_buff *skb, gfp_t allocation) { diff --git a/target/linux/generic/patches-3.18/655-increase_skb_pad.patch b/target/linux/generic/patches-3.18/655-increase_skb_pad.patch index 96da16788a..19344cca3f 100644 --- a/target/linux/generic/patches-3.18/655-increase_skb_pad.patch +++ b/target/linux/generic/patches-3.18/655-increase_skb_pad.patch @@ -1,6 +1,6 @@ --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h -@@ -2022,7 +2022,7 @@ static inline int pskb_network_may_pull( +@@ -2023,7 +2023,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 diff --git a/target/linux/generic/patches-3.18/656-skb_reduce_truesize-helper.patch b/target/linux/generic/patches-3.18/656-skb_reduce_truesize-helper.patch index 48277930d4..b326a8b727 100644 --- a/target/linux/generic/patches-3.18/656-skb_reduce_truesize-helper.patch +++ b/target/linux/generic/patches-3.18/656-skb_reduce_truesize-helper.patch @@ -14,7 +14,7 @@ when needed. --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h -@@ -2067,6 +2067,24 @@ static inline void pskb_trim_unique(stru +@@ -2068,6 +2068,24 @@ static inline void pskb_trim_unique(stru BUG_ON(err); } diff --git a/target/linux/generic/patches-3.18/667-ipv6-Fixed-source-specific-default-route-handling.patch b/target/linux/generic/patches-3.18/667-ipv6-Fixed-source-specific-default-route-handling.patch index db93ee1614..f67ef47879 100644 --- a/target/linux/generic/patches-3.18/667-ipv6-Fixed-source-specific-default-route-handling.patch +++ b/target/linux/generic/patches-3.18/667-ipv6-Fixed-source-specific-default-route-handling.patch @@ -24,11 +24,9 @@ Signed-off-by: David S. Miller <davem@davemloft.net> net/ipv6/route.c | 5 +++-- 2 files changed, 34 insertions(+), 10 deletions(-) -diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c -index 7fde1f2..c217775 100644 --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c -@@ -897,21 +897,45 @@ static int ip6_dst_lookup_tail(struct so +@@ -898,21 +898,45 @@ static int ip6_dst_lookup_tail(struct so #endif int err; @@ -83,7 +81,7 @@ index 7fde1f2..c217775 100644 * Here if the dst entry we've looked up --- a/net/ipv6/route.c +++ b/net/ipv6/route.c -@@ -2215,9 +2215,10 @@ int ip6_route_get_saddr(struct net *net, +@@ -2182,9 +2182,10 @@ int ip6_route_get_saddr(struct net *net, unsigned int prefs, struct in6_addr *saddr) { diff --git a/target/linux/generic/patches-3.18/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch b/target/linux/generic/patches-3.18/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch index bc163cb251..1bf9dc99dc 100644 --- a/target/linux/generic/patches-3.18/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch +++ b/target/linux/generic/patches-3.18/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch @@ -173,7 +173,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> /* * Allocate a dst for local (unicast / anycast) address. */ -@@ -2362,7 +2395,8 @@ static int rtm_to_fib6_config(struct sk_ +@@ -2363,7 +2396,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 || @@ -183,7 +183,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> cfg->fc_flags |= RTF_REJECT; if (rtm->rtm_type == RTN_LOCAL) -@@ -2564,6 +2598,9 @@ static int rt6_fill_node(struct net *net +@@ -2565,6 +2599,9 @@ static int rt6_fill_node(struct net *net case -EACCES: rtm->rtm_type = RTN_PROHIBIT; break; @@ -193,7 +193,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> case -EAGAIN: rtm->rtm_type = RTN_THROW; break; -@@ -2817,6 +2854,8 @@ static int ip6_route_dev_notify(struct n +@@ -2818,6 +2855,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); @@ -202,7 +202,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 -@@ -3033,6 +3072,17 @@ static int __net_init ip6_route_net_init +@@ -3034,6 +3073,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); @@ -220,7 +220,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> #endif net->ipv6.sysctl.flush_delay = 0; -@@ -3051,6 +3101,8 @@ out: +@@ -3052,6 +3102,8 @@ out: return ret; #ifdef CONFIG_IPV6_MULTIPLE_TABLES @@ -229,7 +229,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> out_ip6_prohibit_entry: kfree(net->ipv6.ip6_prohibit_entry); out_ip6_null_entry: -@@ -3068,6 +3120,7 @@ static void __net_exit ip6_route_net_exi +@@ -3069,6 +3121,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); @@ -237,7 +237,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> #endif dst_entries_destroy(&net->ipv6.ip6_dst_ops); } -@@ -3164,6 +3217,9 @@ int __init ip6_route_init(void) +@@ -3165,6 +3218,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); diff --git a/target/linux/generic/patches-3.18/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/patches-3.18/680-NET-skip-GRO-for-foreign-MAC-addresses.patch index ad5000e2b9..4a2f36bc0a 100644 --- a/target/linux/generic/patches-3.18/680-NET-skip-GRO-for-foreign-MAC-addresses.patch +++ b/target/linux/generic/patches-3.18/680-NET-skip-GRO-for-foreign-MAC-addresses.patch @@ -17,7 +17,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -4003,6 +4003,9 @@ static enum gro_result dev_gro_receive(s +@@ -4001,6 +4001,9 @@ static enum gro_result dev_gro_receive(s enum gro_result ret; int grow; @@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> if (!(skb->dev->features & NETIF_F_GRO)) goto normal; -@@ -5066,6 +5069,48 @@ static void __netdev_adjacent_dev_unlink +@@ -5064,6 +5067,48 @@ static void __netdev_adjacent_dev_unlink &upper_dev->adj_list.lower); } @@ -76,7 +76,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> static int __netdev_upper_dev_link(struct net_device *dev, struct net_device *upper_dev, bool master, void *private) -@@ -5126,6 +5171,7 @@ static int __netdev_upper_dev_link(struc +@@ -5124,6 +5169,7 @@ static int __netdev_upper_dev_link(struc goto rollback_lower_mesh; } @@ -84,7 +84,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> call_netdevice_notifiers(NETDEV_CHANGEUPPER, dev); return 0; -@@ -5243,6 +5289,7 @@ void netdev_upper_dev_unlink(struct net_ +@@ -5241,6 +5287,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); @@ -92,7 +92,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org> call_netdevice_notifiers(NETDEV_CHANGEUPPER, dev); } EXPORT_SYMBOL(netdev_upper_dev_unlink); -@@ -5762,6 +5809,7 @@ int dev_set_mac_address(struct net_devic +@@ -5760,6 +5807,7 @@ int dev_set_mac_address(struct net_devic if (err) return err; dev->addr_assign_type = NET_ADDR_SET; diff --git a/target/linux/generic/patches-3.18/721-phy_packets.patch b/target/linux/generic/patches-3.18/721-phy_packets.patch index aa1897cad9..7616817f9b 100644 --- a/target/linux/generic/patches-3.18/721-phy_packets.patch +++ b/target/linux/generic/patches-3.18/721-phy_packets.patch @@ -41,7 +41,7 @@ */ --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h -@@ -2053,6 +2053,10 @@ static inline int pskb_trim(struct sk_bu +@@ -2054,6 +2054,10 @@ static inline int pskb_trim(struct sk_bu return (len < skb->len) ? __pskb_trim(skb, len) : 0; } @@ -52,7 +52,7 @@ /** * pskb_trim_unique - remove end from a paged unique (not cloned) buffer * @skb: buffer to alter -@@ -2179,16 +2183,6 @@ static inline struct sk_buff *dev_alloc_ +@@ -2180,16 +2184,6 @@ static inline struct sk_buff *dev_alloc_ } @@ -121,7 +121,7 @@ #include <net/protocol.h> #include <net/dst.h> -@@ -451,6 +452,22 @@ struct sk_buff *__netdev_alloc_skb(struc +@@ -469,6 +470,22 @@ struct sk_buff *__netdev_alloc_skb(struc } EXPORT_SYMBOL(__netdev_alloc_skb); diff --git a/target/linux/generic/patches-3.18/820-usb_add_usb_find_device_by_name.patch b/target/linux/generic/patches-3.18/820-usb_add_usb_find_device_by_name.patch index a2f526282b..e381cc97be 100644 --- a/target/linux/generic/patches-3.18/820-usb_add_usb_find_device_by_name.patch +++ b/target/linux/generic/patches-3.18/820-usb_add_usb_find_device_by_name.patch @@ -74,7 +74,7 @@ * @dev: device the buffer will be used with --- a/include/linux/usb.h +++ b/include/linux/usb.h -@@ -695,6 +695,7 @@ static inline bool usb_device_no_sg_cons +@@ -721,6 +721,7 @@ static inline bool usb_device_no_sg_cons return udev && udev->bus && udev->bus->no_sg_constraint; } diff --git a/target/linux/generic/patches-3.18/902-debloat_proc.patch b/target/linux/generic/patches-3.18/902-debloat_proc.patch index 8b3a5d43f0..52beed2128 100644 --- a/target/linux/generic/patches-3.18/902-debloat_proc.patch +++ b/target/linux/generic/patches-3.18/902-debloat_proc.patch @@ -173,7 +173,7 @@ goto err; --- a/net/core/sock.c +++ b/net/core/sock.c -@@ -2915,6 +2915,8 @@ static __net_initdata struct pernet_oper +@@ -2934,6 +2934,8 @@ static __net_initdata struct pernet_oper static int __init proto_init(void) { |