diff --git a/include/kernel-version.mk b/include/kernel-version.mk index 6e4a5638c8..3bb52c5ccf 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -3,10 +3,10 @@ LINUX_RELEASE?=1 LINUX_VERSION-3.18 = .14 -LINUX_VERSION-4.0 = .1 +LINUX_VERSION-4.0 = .4 LINUX_KERNEL_MD5SUM-3.18.14 = cb6f534b83333ba52f1fed7979824a1b -LINUX_KERNEL_MD5SUM-4.0.1 = ea7fc80310be8a5b43b2c6dfa5c4169f +LINUX_KERNEL_MD5SUM-4.0.4 = 71d8b666438e6b59f103e9384889c15a ifdef KERNEL_PATCHVER LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER))) diff --git a/target/linux/generic/patches-4.0/072-15-bgmac-fix-requests-for-extra-polling-calls-from-NAPI.patch b/target/linux/generic/patches-4.0/072-15-bgmac-fix-requests-for-extra-polling-calls-from-NAPI.patch index 39cf048b9c..62e9379f94 100644 --- a/target/linux/generic/patches-4.0/072-15-bgmac-fix-requests-for-extra-polling-calls-from-NAPI.patch +++ b/target/linux/generic/patches-4.0/072-15-bgmac-fix-requests-for-extra-polling-calls-from-NAPI.patch @@ -17,11 +17,9 @@ Fixes: eb64e2923a886 ("bgmac: leave interrupts disabled as long as there is work drivers/net/ethernet/broadcom/bgmac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/drivers/net/ethernet/broadcom/bgmac.c b/drivers/net/ethernet/broadcom/bgmac.c -index de77d3a..21e3c38 100644 --- a/drivers/net/ethernet/broadcom/bgmac.c +++ b/drivers/net/ethernet/broadcom/bgmac.c -@@ -1260,7 +1260,7 @@ static int bgmac_poll(struct napi_struct *napi, int weight) +@@ -1260,7 +1260,7 @@ static int bgmac_poll(struct napi_struct /* Poll again if more events arrived in the meantime */ if (bgmac_read(bgmac, BGMAC_INT_STATUS) & (BGMAC_IS_TX0 | BGMAC_IS_RX)) @@ -30,6 +28,3 @@ index de77d3a..21e3c38 100644 if (handled < weight) { napi_complete(napi); --- -1.8.4.5 - diff --git a/target/linux/generic/patches-4.0/102-ehci_hcd_ignore_oc.patch b/target/linux/generic/patches-4.0/102-ehci_hcd_ignore_oc.patch index fbe7568578..4da579cedc 100644 --- a/target/linux/generic/patches-4.0/102-ehci_hcd_ignore_oc.patch +++ b/target/linux/generic/patches-4.0/102-ehci_hcd_ignore_oc.patch @@ -31,7 +31,7 @@ Signed-off-by: Florian Fainelli &ehci->regs->intr_enable); /* Turn On Interrupts */ --- a/drivers/usb/host/ehci-hub.c +++ b/drivers/usb/host/ehci-hub.c -@@ -630,7 +630,7 @@ ehci_hub_status_data (struct usb_hcd *hc +@@ -633,7 +633,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 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-4.0/304-mips_disable_fpu.patch b/target/linux/generic/patches-4.0/304-mips_disable_fpu.patch index 268006caee..2067558951 100644 --- a/target/linux/generic/patches-4.0/304-mips_disable_fpu.patch +++ b/target/linux/generic/patches-4.0/304-mips_disable_fpu.patch @@ -49,7 +49,7 @@ v2: incorporated changes suggested by Jonas Gorski select OF --- a/arch/mips/Makefile +++ b/arch/mips/Makefile -@@ -286,7 +286,7 @@ OBJCOPYFLAGS += --remove-section=.regin +@@ -292,7 +292,7 @@ OBJCOPYFLAGS += --remove-section=.regin head-y := arch/mips/kernel/head.o libs-y += arch/mips/lib/ @@ -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 -@@ -211,8 +211,10 @@ static inline int init_fpu(void) +@@ -212,8 +212,10 @@ static inline int init_fpu(void) /* Restore FRE */ write_c0_config5(config5); enable_fpu_hazard(); diff --git a/target/linux/generic/patches-4.0/411-mtd-partial_eraseblock_write.patch b/target/linux/generic/patches-4.0/411-mtd-partial_eraseblock_write.patch index 94aa6aecd0..ada7cc1072 100644 --- a/target/linux/generic/patches-4.0/411-mtd-partial_eraseblock_write.patch +++ b/target/linux/generic/patches-4.0/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; -@@ -513,18 +581,21 @@ static struct mtd_part *allocate_partiti +@@ -513,17 +581,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-4.0/650-pppoe_header_pad.patch b/target/linux/generic/patches-4.0/650-pppoe_header_pad.patch index a89a9f3b74..3b4978be84 100644 --- a/target/linux/generic/patches-4.0/650-pppoe_header_pad.patch +++ b/target/linux/generic/patches-4.0/650-pppoe_header_pad.patch @@ -1,6 +1,6 @@ --- a/drivers/net/ppp/pppoe.c +++ b/drivers/net/ppp/pppoe.c -@@ -850,7 +850,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; -@@ -858,7 +858,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-4.0/653-disable_netlink_trim.patch b/target/linux/generic/patches-4.0/653-disable_netlink_trim.patch index 68b8d5834d..f3231db093 100644 --- a/target/linux/generic/patches-4.0/653-disable_netlink_trim.patch +++ b/target/linux/generic/patches-4.0/653-disable_netlink_trim.patch @@ -1,6 +1,6 @@ --- a/net/netlink/af_netlink.c +++ b/net/netlink/af_netlink.c -@@ -1712,27 +1712,7 @@ void netlink_detachskb(struct sock *sk, +@@ -1710,27 +1710,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-4.0/655-increase_skb_pad.patch b/target/linux/generic/patches-4.0/655-increase_skb_pad.patch index e531716947..c4aee0701e 100644 --- a/target/linux/generic/patches-4.0/655-increase_skb_pad.patch +++ b/target/linux/generic/patches-4.0/655-increase_skb_pad.patch @@ -1,6 +1,6 @@ --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h -@@ -2026,7 +2026,7 @@ static inline int pskb_network_may_pull( +@@ -2027,7 +2027,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-4.0/656-skb_reduce_truesize-helper.patch b/target/linux/generic/patches-4.0/656-skb_reduce_truesize-helper.patch index 6a2fb89615..72e5c26d80 100644 --- a/target/linux/generic/patches-4.0/656-skb_reduce_truesize-helper.patch +++ b/target/linux/generic/patches-4.0/656-skb_reduce_truesize-helper.patch @@ -14,7 +14,7 @@ when needed. --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h -@@ -2071,6 +2071,24 @@ static inline void pskb_trim_unique(stru +@@ -2072,6 +2072,24 @@ static inline void pskb_trim_unique(stru BUG_ON(err); } diff --git a/target/linux/generic/patches-4.0/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch b/target/linux/generic/patches-4.0/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch index 5be1a5225b..74477607a7 100644 --- a/target/linux/generic/patches-4.0/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch +++ b/target/linux/generic/patches-4.0/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch @@ -173,7 +173,7 @@ Signed-off-by: Jonas Gorski /* * Allocate a dst for local (unicast / anycast) address. */ -@@ -2427,7 +2460,8 @@ static int rtm_to_fib6_config(struct sk_ +@@ -2428,7 +2461,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 cfg->fc_flags |= RTF_REJECT; if (rtm->rtm_type == RTN_LOCAL) -@@ -2630,6 +2664,9 @@ static int rt6_fill_node(struct net *net +@@ -2631,6 +2665,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 case -EAGAIN: rtm->rtm_type = RTN_THROW; break; -@@ -2884,6 +2921,8 @@ static int ip6_route_dev_notify(struct n +@@ -2885,6 +2922,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 net->ipv6.ip6_blk_hole_entry->dst.dev = dev; net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev); #endif -@@ -3100,6 +3139,17 @@ static int __net_init ip6_route_net_init +@@ -3101,6 +3140,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 #endif net->ipv6.sysctl.flush_delay = 0; -@@ -3118,6 +3168,8 @@ out: +@@ -3119,6 +3169,8 @@ out: return ret; #ifdef CONFIG_IPV6_MULTIPLE_TABLES @@ -229,7 +229,7 @@ Signed-off-by: Jonas Gorski out_ip6_prohibit_entry: kfree(net->ipv6.ip6_prohibit_entry); out_ip6_null_entry: -@@ -3135,6 +3187,7 @@ static void __net_exit ip6_route_net_exi +@@ -3136,6 +3188,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 #endif dst_entries_destroy(&net->ipv6.ip6_dst_ops); } -@@ -3231,6 +3284,9 @@ int __init ip6_route_init(void) +@@ -3232,6 +3285,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-4.0/721-phy_packets.patch b/target/linux/generic/patches-4.0/721-phy_packets.patch index 0f9e2f1c12..f3ee62661e 100644 --- a/target/linux/generic/patches-4.0/721-phy_packets.patch +++ b/target/linux/generic/patches-4.0/721-phy_packets.patch @@ -41,7 +41,7 @@ */ --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h -@@ -2057,6 +2057,10 @@ static inline int pskb_trim(struct sk_bu +@@ -2058,6 +2058,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 -@@ -2183,16 +2187,6 @@ static inline struct sk_buff *dev_alloc_ +@@ -2184,16 +2188,6 @@ static inline struct sk_buff *dev_alloc_ } @@ -121,7 +121,7 @@ #include #include -@@ -550,6 +551,22 @@ struct sk_buff *__napi_alloc_skb(struct +@@ -568,6 +569,22 @@ struct sk_buff *__napi_alloc_skb(struct } EXPORT_SYMBOL(__napi_alloc_skb); diff --git a/target/linux/generic/patches-4.0/820-usb_add_usb_find_device_by_name.patch b/target/linux/generic/patches-4.0/820-usb_add_usb_find_device_by_name.patch index 53bff5ea90..96cadf3fb7 100644 --- a/target/linux/generic/patches-4.0/820-usb_add_usb_find_device_by_name.patch +++ b/target/linux/generic/patches-4.0/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; }