kernel: update kernel 4.9 to version 4.9.40
authorHauke Mehrtens <hauke@hauke-m.de>
Sun, 23 Jul 2017 11:40:40 +0000 (13:40 +0200)
committerHauke Mehrtens <hauke@hauke-m.de>
Fri, 28 Jul 2017 20:46:17 +0000 (22:46 +0200)
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
12 files changed:
include/kernel-version.mk
target/linux/apm821xx/patches-4.9/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch
target/linux/apm821xx/patches-4.9/802-usb-xhci-force-msi-renesas-xhci.patch
target/linux/bcm53xx/patches-4.9/180-usb-xhci-add-support-for-performing-fake-doorbell.patch
target/linux/generic/patches-4.9/021-bridge-multicast-to-unicast.patch
target/linux/generic/patches-4.9/201-extra_optimization.patch
target/linux/generic/patches-4.9/207-disable-modorder.patch
target/linux/generic/patches-4.9/220-gc_sections.patch
target/linux/generic/patches-4.9/661-use_fq_codel_by_default.patch
target/linux/generic/patches-4.9/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
target/linux/generic/patches-4.9/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
target/linux/generic/patches-4.9/811-pci_disable_usb_common_quirks.patch

index 3033060383304f2c6265202da43f3a5a14b0a8af..2fcdea4f6c4a1cdb7028428f371b9c63b6ad3657 100644 (file)
@@ -4,11 +4,11 @@ LINUX_RELEASE?=1
 
 LINUX_VERSION-3.18 = .43
 LINUX_VERSION-4.4 = .74
-LINUX_VERSION-4.9 = .37
+LINUX_VERSION-4.9 = .40
 
 LINUX_KERNEL_HASH-3.18.43 = 1236e8123a6ce537d5029232560966feed054ae31776fe8481dd7d18cdd5492c
 LINUX_KERNEL_HASH-4.4.74 = c319ad6150d112bd4f8c9d1427868eeafd3ab461becf9457f814e4ba7c57808e
-LINUX_KERNEL_HASH-4.9.37 = f61ecf083b690d97cfdeec2b4457992e98882250c4f41ade36fd7cdfda066090
+LINUX_KERNEL_HASH-4.9.40 = 025767f3652a656c7b5ed2949aef205f88a5acfd70ae3fe77710ad37f1662d9b
 
 ifdef KERNEL_PATCHVER
   LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))
index 731fa9206f194cf651f295ba886d7f789081d5ed..25634413939dc1fc652a6043500e62ff2dfc2848 100644 (file)
@@ -44,7 +44,7 @@ Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
  
  #include "xhci.h"
  #include "xhci-trace.h"
-@@ -242,6 +244,458 @@ static void xhci_pme_acpi_rtd3_enable(st
+@@ -248,6 +250,458 @@ static void xhci_pme_acpi_rtd3_enable(st
  static void xhci_pme_acpi_rtd3_enable(struct pci_dev *dev) { }
  #endif /* CONFIG_ACPI */
  
@@ -503,7 +503,7 @@ Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
  /* called during probe() after chip reset completes */
  static int xhci_pci_setup(struct usb_hcd *hcd)
  {
-@@ -281,6 +735,22 @@ static int xhci_pci_probe(struct pci_dev
+@@ -287,6 +741,22 @@ static int xhci_pci_probe(struct pci_dev
        struct hc_driver *driver;
        struct usb_hcd *hcd;
  
@@ -526,7 +526,7 @@ Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
        driver = (struct hc_driver *)id->driver_data;
  
        /* Prevent runtime suspending between USB-2 and USB-3 initialization */
-@@ -338,6 +808,16 @@ static void xhci_pci_remove(struct pci_d
+@@ -344,6 +814,16 @@ static void xhci_pci_remove(struct pci_d
  {
        struct xhci_hcd *xhci;
  
index 0805246f06d6f73b74454b88f718f0baeb2120ef..76141a06801b8ea7e5280c5d8cf986d07f4df482 100644 (file)
@@ -13,7 +13,7 @@ produce a noisy warning.
 
 --- a/drivers/usb/host/xhci-pci.c
 +++ b/drivers/usb/host/xhci-pci.c
-@@ -203,7 +203,7 @@ static void xhci_pci_quirks(struct devic
+@@ -205,7 +205,7 @@ static void xhci_pci_quirks(struct devic
        }
        if (pdev->vendor == PCI_VENDOR_ID_RENESAS &&
                        pdev->device == 0x0015)
@@ -24,7 +24,7 @@ produce a noisy warning.
  
 --- a/drivers/usb/host/xhci.c
 +++ b/drivers/usb/host/xhci.c
-@@ -387,10 +387,14 @@ static int xhci_try_enable_msi(struct us
+@@ -390,10 +390,14 @@ static int xhci_try_enable_msi(struct us
                free_irq(hcd->irq, hcd);
        hcd->irq = 0;
  
@@ -44,7 +44,7 @@ produce a noisy warning.
                /* hcd->irq is 0, we have MSI */
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1679,6 +1679,7 @@ struct xhci_hcd {
+@@ -1680,6 +1680,7 @@ struct xhci_hcd {
        /* support xHCI 0.96 spec USB2 software LPM */
        unsigned                sw_lpm_support:1;
        /* support xHCI 1.0 spec USB2 hardware LPM */
index a00e70c32bcb2f13648c5cd50d51cb5db85dc40b..a4163fc3201d6526714cdd21e7f1ed767436d1a2 100644 (file)
@@ -90,7 +90,7 @@ it on BCM4708 family.
  /*
   * Reset a halted HC.
   *
-@@ -565,10 +608,20 @@ int xhci_init(struct usb_hcd *hcd)
+@@ -568,10 +611,20 @@ int xhci_init(struct usb_hcd *hcd)
  
  static int xhci_run_finished(struct xhci_hcd *xhci)
  {
@@ -114,7 +114,7 @@ it on BCM4708 family.
        xhci->shared_hcd->state = HC_STATE_RUNNING;
        xhci->cmd_ring_state = CMD_RING_STATE_RUNNING;
  
-@@ -578,6 +631,10 @@ static int xhci_run_finished(struct xhci
+@@ -581,6 +634,10 @@ static int xhci_run_finished(struct xhci
        xhci_dbg_trace(xhci, trace_xhci_dbg_init,
                        "Finished xhci_run for USB3 roothub");
        return 0;
@@ -127,11 +127,11 @@ it on BCM4708 family.
  /*
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1661,6 +1661,7 @@ struct xhci_hcd {
- #define XHCI_BROKEN_PORT_PED  (1 << 25)
+@@ -1662,6 +1662,7 @@ struct xhci_hcd {
  #define XHCI_LIMIT_ENDPOINT_INTERVAL_7        (1 << 26)
  #define XHCI_U2_DISABLE_WAKE  (1 << 27)
-+#define XHCI_FAKE_DOORBELL    (1 << 28)
+ #define XHCI_ASMEDIA_MODIFY_FLOWCONTROL       (1 << 28)
++#define XHCI_FAKE_DOORBELL    (1 << 29)
  
        unsigned int            num_active_eps;
        unsigned int            limit_active_eps;
index d3b4a62361c44303b1256ed3f6ba33e6c1c93622..1886b01cf1c66b0eac3cd0d4182082a6279c2f26 100644 (file)
@@ -106,7 +106,7 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
                if (prev == port)
 --- a/net/bridge/br_mdb.c
 +++ b/net/bridge/br_mdb.c
-@@ -531,7 +531,7 @@ static int br_mdb_add_group(struct net_b
+@@ -532,7 +532,7 @@ static int br_mdb_add_group(struct net_b
                        break;
        }
  
index 7e67017ec3b34f6c26601e40eae992becac5242b..d26461746bac9168c820f2ff5fe07c77ae36d788 100644 (file)
@@ -1,6 +1,6 @@
 --- a/Makefile
 +++ b/Makefile
-@@ -636,12 +636,12 @@ KBUILD_CFLAGS    += $(call cc-option,-fdata
+@@ -639,12 +639,12 @@ KBUILD_CFLAGS    += $(call cc-option,-fdata
  endif
  
  ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
index ca97b77f7ed1be7edbc0aef67663c6cfd707ad6f..ad24a8026ee067027d6bb2ce15a7c192f966d412 100644 (file)
@@ -5,7 +5,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 ---
 --- a/Makefile
 +++ b/Makefile
-@@ -1193,7 +1193,6 @@ all: modules
+@@ -1196,7 +1196,6 @@ all: modules
  
  PHONY += modules
  modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin
@@ -13,7 +13,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        @$(kecho) '  Building modules, stage 2.';
        $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
        $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.fwinst obj=firmware __fw_modbuild
-@@ -1223,7 +1222,6 @@ _modinst_:
+@@ -1226,7 +1225,6 @@ _modinst_:
                rm -f $(MODLIB)/build ; \
                ln -s $(CURDIR) $(MODLIB)/build ; \
        fi
index e8a834fbebc58f4310b0574e69a7969dc60a9bc8..96622f5ef4340f6db09fad8c498bfbf80abc9875 100644 (file)
@@ -398,9 +398,9 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
  # 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)
-@@ -630,11 +635,6 @@ include arch/$(SRCARCH)/Makefile
- KBUILD_CFLAGS += $(call cc-option,-fno-delete-null-pointer-checks,)
- KBUILD_CFLAGS += $(call cc-disable-warning,frame-address,)
+@@ -633,11 +638,6 @@ KBUILD_CFLAGS     += $(call cc-disable-warni
+ KBUILD_CFLAGS += $(call cc-disable-warning, format-overflow)
+ KBUILD_CFLAGS += $(call cc-disable-warning, int-in-bool-context)
  
 -ifdef CONFIG_LD_DEAD_CODE_DATA_ELIMINATION
 -KBUILD_CFLAGS += $(call cc-option,-ffunction-sections,)
index 50115e5de6866c1feb8ab9ec1c7384432a41a559..f94cca0d4fff4ccf6a1558207748e37c40376057 100644 (file)
@@ -69,7 +69,7 @@
                ops = &noqueue_qdisc_ops;
 --- a/net/sched/sch_api.c
 +++ b/net/sched/sch_api.c
-@@ -1976,7 +1976,7 @@ static int __init pktsched_init(void)
+@@ -1979,7 +1979,7 @@ static int __init pktsched_init(void)
                return err;
        }
  
index 6062608bb04b95244df560f7ca77dfe5aace317a..1c08785598244558b54f833cefa8b5abacb58950 100644 (file)
@@ -183,7 +183,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
                cfg->fc_flags |= RTF_REJECT;
  
        if (rtm->rtm_type == RTN_LOCAL)
-@@ -3213,6 +3247,9 @@ static int rt6_fill_node(struct net *net
+@@ -3207,6 +3241,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;
-@@ -3489,6 +3526,8 @@ static int ip6_route_dev_notify(struct n
+@@ -3483,6 +3520,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
-@@ -3711,6 +3750,17 @@ static int __net_init ip6_route_net_init
+@@ -3705,6 +3744,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;
-@@ -3729,6 +3779,8 @@ out:
+@@ -3723,6 +3773,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:
-@@ -3746,6 +3798,7 @@ static void __net_exit ip6_route_net_exi
+@@ -3740,6 +3792,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);
  }
-@@ -3819,6 +3872,9 @@ void __init ip6_route_init_special_entri
+@@ -3813,6 +3866,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);
index 4d4ca6a134014d52214593f058ff2aa3fd6f5308..f77c03b8485cd71738e99839c42cb43cc1b999eb 100644 (file)
@@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        if (!(skb->dev->features & NETIF_F_GRO))
                goto normal;
  
-@@ -5790,6 +5793,48 @@ static void __netdev_adjacent_dev_unlink
+@@ -5800,6 +5803,48 @@ static void __netdev_adjacent_dev_unlink
                                           &upper_dev->adj_list.lower);
  }
  
@@ -76,7 +76,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  static int __netdev_upper_dev_link(struct net_device *dev,
                                   struct net_device *upper_dev, bool master,
                                   void *upper_priv, void *upper_info)
-@@ -5988,6 +6033,8 @@ void netdev_upper_dev_unlink(struct net_
+@@ -5998,6 +6043,8 @@ 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, i->ref_nr);
  
@@ -85,7 +85,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
                                      &changeupper_info.info);
  }
-@@ -6588,6 +6635,7 @@ int dev_set_mac_address(struct net_devic
+@@ -6598,6 +6645,7 @@ int dev_set_mac_address(struct net_devic
        if (err)
                return err;
        dev->addr_assign_type = NET_ADDR_SET;
index 0842edec07f2ea9c91f776ac0da3efcbaf54ff27..eff735086791aa300814637c602e0454abc80f06 100644 (file)
@@ -1,7 +1,7 @@
 
 --- a/drivers/usb/host/pci-quirks.c
 +++ b/drivers/usb/host/pci-quirks.c
-@@ -96,6 +96,8 @@ struct amd_chipset_type {
+@@ -106,6 +106,8 @@ struct amd_chipset_type {
        u8 rev;
  };
  
@@ -10,7 +10,7 @@
  static struct amd_chipset_info {
        struct pci_dev  *nb_dev;
        struct pci_dev  *smbus_dev;
-@@ -449,6 +451,10 @@ void usb_amd_dev_put(void)
+@@ -503,6 +505,10 @@ void usb_amd_dev_put(void)
  }
  EXPORT_SYMBOL_GPL(usb_amd_dev_put);
  
@@ -21,7 +21,7 @@
  /*
   * Make sure the controller is completely inactive, unable to
   * generate interrupts or do DMA.
-@@ -528,8 +534,17 @@ reset_needed:
+@@ -582,8 +588,17 @@ reset_needed:
        uhci_reset_hc(pdev, base);
        return 1;
  }
@@ -39,7 +39,7 @@
  static inline int io_type_enabled(struct pci_dev *pdev, unsigned int mask)
  {
        u16 cmd;
-@@ -1096,3 +1111,4 @@ static void quirk_usb_early_handoff(stru
+@@ -1150,3 +1165,4 @@ static void quirk_usb_early_handoff(stru
  }
  DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_ANY_ID, PCI_ANY_ID,
                        PCI_CLASS_SERIAL_USB, 8, quirk_usb_early_handoff);
@@ -56,7 +56,7 @@
  int usb_amd_find_chipset_info(void);
  int usb_hcd_amd_remote_wakeup_quirk(struct pci_dev *pdev);
  bool usb_amd_hang_symptom_quirk(void);
-@@ -16,11 +19,24 @@ void usb_disable_xhci_ports(struct pci_d
+@@ -17,12 +20,25 @@ void usb_disable_xhci_ports(struct pci_d
  void sb800_prefetch(struct device *dev, int on);
  #else
  struct pci_dev;
@@ -74,6 +74,7 @@
 +}
  static inline void usb_amd_quirk_pll_disable(void) {}
  static inline void usb_amd_quirk_pll_enable(void) {}
+ static inline void usb_asmedia_modifyflowcontrol(struct pci_dev *pdev) {}
  static inline void usb_amd_dev_put(void) {}
  static inline void usb_disable_xhci_ports(struct pci_dev *xhci_pdev) {}
  static inline void sb800_prefetch(struct device *dev, int on) {}