diff --git a/include/kernel-version.mk b/include/kernel-version.mk
index bbb2b1e..fd6b528 100644
--- a/include/kernel-version.mk
+++ b/include/kernel-version.mk
@@ -4,11 +4,11 @@ LINUX_RELEASE?=1
 
 LINUX_VERSION-3.18 = .43
 LINUX_VERSION-4.4 = .71
-LINUX_VERSION-4.9 = .31
+LINUX_VERSION-4.9 = .34
 
 LINUX_KERNEL_HASH-3.18.43 = 1236e8123a6ce537d5029232560966feed054ae31776fe8481dd7d18cdd5492c
 LINUX_KERNEL_HASH-4.4.71 = 44cd5532d6df32197fd0f89e6f8c542fcfb76b52155a4d3a609ef4898522e6ab
-LINUX_KERNEL_HASH-4.9.31 = 28cad8b66216da2550155b7a77f37041bde40b821567d1b288e5e9fb6cca9856
+LINUX_KERNEL_HASH-4.9.34 = 13d159d1b1fa41ea19fcc2defe09d7532f312ee0b8279b8e12c961d8b02a4546
 
 ifdef KERNEL_PATCHVER
   LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))
diff --git a/target/linux/apm821xx/patches-4.9/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch b/target/linux/apm821xx/patches-4.9/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch
index 91c5c1f..39c0db3 100644
--- a/target/linux/apm821xx/patches-4.9/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch
+++ b/target/linux/apm821xx/patches-4.9/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch
@@ -44,7 +44,7 @@ Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
  
  #include "xhci.h"
  #include "xhci-trace.h"
-@@ -227,6 +229,458 @@ static void xhci_pme_acpi_rtd3_enable(st
+@@ -230,6 +232,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)
  {
-@@ -266,6 +720,22 @@ static int xhci_pci_probe(struct pci_dev
+@@ -269,6 +723,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 */
-@@ -323,6 +793,16 @@ static void xhci_pci_remove(struct pci_d
+@@ -326,6 +796,16 @@ static void xhci_pci_remove(struct pci_d
  {
  	struct xhci_hcd *xhci;
  
diff --git a/target/linux/bcm53xx/patches-4.9/700-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch b/target/linux/bcm53xx/patches-4.9/700-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch
index 2ee9cd4..bafa4e4 100644
--- a/target/linux/bcm53xx/patches-4.9/700-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch
+++ b/target/linux/bcm53xx/patches-4.9/700-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch
@@ -13,16 +13,16 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
 
 --- a/drivers/net/phy/b53/b53_common.c
 +++ b/drivers/net/phy/b53/b53_common.c
-@@ -25,6 +25,7 @@
- #include <linux/module.h>
- #include <linux/switch.h>
+@@ -27,6 +27,7 @@
+ #include <linux/of.h>
+ #include <linux/of_net.h>
  #include <linux/platform_data/b53.h>
 +#include <linux/of.h>
  
  #include "b53_regs.h"
  #include "b53_priv.h"
-@@ -1383,6 +1384,28 @@ static int b53_switch_init(struct b53_de
- 			sw_dev->cpu_port = 5;
+@@ -1522,6 +1523,28 @@ static int b53_switch_init(struct b53_de
+ 			return ret;
  	}
  
 +	/* Set correct CPU port */
diff --git a/target/linux/brcm2708/patches-4.9/950-0031-Add-dwc_otg-driver.patch b/target/linux/brcm2708/patches-4.9/950-0031-Add-dwc_otg-driver.patch
index 3b17e97..6f7af04 100644
--- a/target/linux/brcm2708/patches-4.9/950-0031-Add-dwc_otg-driver.patch
+++ b/target/linux/brcm2708/patches-4.9/950-0031-Add-dwc_otg-driver.patch
@@ -696,7 +696,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
  }
 --- a/drivers/usb/core/hub.c
 +++ b/drivers/usb/core/hub.c
-@@ -5034,7 +5034,7 @@ static void port_event(struct usb_hub *h
+@@ -5040,7 +5040,7 @@ static void port_event(struct usb_hub *h
  	if (portchange & USB_PORT_STAT_C_OVERCURRENT) {
  		u16 status = 0, unused;
  
diff --git a/target/linux/brcm2708/patches-4.9/950-0060-config-Enable-CONFIG_MEMCG-but-leave-it-disabled-due.patch b/target/linux/brcm2708/patches-4.9/950-0060-config-Enable-CONFIG_MEMCG-but-leave-it-disabled-due.patch
index e17a84d..48c9b7b 100644
--- a/target/linux/brcm2708/patches-4.9/950-0060-config-Enable-CONFIG_MEMCG-but-leave-it-disabled-due.patch
+++ b/target/linux/brcm2708/patches-4.9/950-0060-config-Enable-CONFIG_MEMCG-but-leave-it-disabled-due.patch
@@ -10,7 +10,7 @@ Subject: [PATCH] config: Enable CONFIG_MEMCG, but leave it disabled (due to
 
 --- a/kernel/cgroup.c
 +++ b/kernel/cgroup.c
-@@ -5627,7 +5627,7 @@ int __init cgroup_init_early(void)
+@@ -5632,7 +5632,7 @@ int __init cgroup_init_early(void)
  	return 0;
  }
  
@@ -19,7 +19,7 @@ Subject: [PATCH] config: Enable CONFIG_MEMCG, but leave it disabled (due to
  
  /**
   * cgroup_init - cgroup initialization
-@@ -6164,6 +6164,28 @@ static int __init cgroup_no_v1(char *str
+@@ -6169,6 +6169,28 @@ static int __init cgroup_no_v1(char *str
  }
  __setup("cgroup_no_v1=", cgroup_no_v1);
  
diff --git a/target/linux/brcm2708/patches-4.9/950-0181-drm-vc4-Fix-OOPSes-from-trying-to-cache-a-partially-.patch b/target/linux/brcm2708/patches-4.9/950-0181-drm-vc4-Fix-OOPSes-from-trying-to-cache-a-partially-.patch
index 000f3a8..3fed370 100644
--- a/target/linux/brcm2708/patches-4.9/950-0181-drm-vc4-Fix-OOPSes-from-trying-to-cache-a-partially-.patch
+++ b/target/linux/brcm2708/patches-4.9/950-0181-drm-vc4-Fix-OOPSes-from-trying-to-cache-a-partially-.patch
@@ -17,7 +17,7 @@ Fixes: c826a6e10644 ("drm/vc4: Add a BO cache.")
 
 --- a/drivers/gpu/drm/vc4/vc4_bo.c
 +++ b/drivers/gpu/drm/vc4/vc4_bo.c
-@@ -314,6 +314,14 @@ void vc4_free_object(struct drm_gem_obje
+@@ -322,6 +322,14 @@ void vc4_free_object(struct drm_gem_obje
  		goto out;
  	}
  
diff --git a/target/linux/cns3xxx/patches-4.9/130-Extend-PCIE_BUS_PEER2PEER-to-set-MRSS-128-to-fix-CNS3xxx-BM-DMA..patch b/target/linux/cns3xxx/patches-4.9/130-Extend-PCIE_BUS_PEER2PEER-to-set-MRSS-128-to-fix-CNS3xxx-BM-DMA..patch
index aae4488..3e28b7e 100644
--- a/target/linux/cns3xxx/patches-4.9/130-Extend-PCIE_BUS_PEER2PEER-to-set-MRSS-128-to-fix-CNS3xxx-BM-DMA..patch
+++ b/target/linux/cns3xxx/patches-4.9/130-Extend-PCIE_BUS_PEER2PEER-to-set-MRSS-128-to-fix-CNS3xxx-BM-DMA..patch
@@ -12,7 +12,7 @@
  	/* For Max performance, the MRRS must be set to the largest supported
 --- a/include/linux/pci.h
 +++ b/include/linux/pci.h
-@@ -778,7 +778,7 @@ enum pcie_bus_config_types {
+@@ -783,7 +783,7 @@ enum pcie_bus_config_types {
  	PCIE_BUS_DEFAULT,	/* ensure MPS matches upstream bridge */
  	PCIE_BUS_SAFE,		/* use largest MPS boot-time devices support */
  	PCIE_BUS_PERFORMANCE,	/* use MPS and MRRS for best performance */
diff --git a/target/linux/generic/patches-4.9/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/patches-4.9/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
index 99d029c..4a81e75 100644
--- a/target/linux/generic/patches-4.9/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
+++ b/target/linux/generic/patches-4.9/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
@@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  	return 0;
 --- a/include/linux/netdevice.h
 +++ b/include/linux/netdevice.h
-@@ -1748,6 +1748,8 @@ struct net_device {
+@@ -1749,6 +1749,8 @@ struct net_device {
  	struct netdev_hw_addr_list	mc;
  	struct netdev_hw_addr_list	dev_addrs;
  
diff --git a/target/linux/generic/patches-4.9/702-phy_add_aneg_done_function.patch b/target/linux/generic/patches-4.9/702-phy_add_aneg_done_function.patch
index d38212d..5f71be6 100644
--- a/target/linux/generic/patches-4.9/702-phy_add_aneg_done_function.patch
+++ b/target/linux/generic/patches-4.9/702-phy_add_aneg_done_function.patch
@@ -15,7 +15,7 @@
  
 --- a/drivers/net/phy/phy_device.c
 +++ b/drivers/net/phy/phy_device.c
-@@ -1247,6 +1247,9 @@ int genphy_update_link(struct phy_device
+@@ -1267,6 +1267,9 @@ int genphy_update_link(struct phy_device
  {
  	int status;
  
diff --git a/target/linux/generic/patches-4.9/703-phy-add-detach-callback-to-struct-phy_driver.patch b/target/linux/generic/patches-4.9/703-phy-add-detach-callback-to-struct-phy_driver.patch
index c9e9b69..68b60ac 100644
--- a/target/linux/generic/patches-4.9/703-phy-add-detach-callback-to-struct-phy_driver.patch
+++ b/target/linux/generic/patches-4.9/703-phy-add-detach-callback-to-struct-phy_driver.patch
@@ -1,6 +1,6 @@
 --- a/drivers/net/phy/phy_device.c
 +++ b/drivers/net/phy/phy_device.c
-@@ -983,6 +983,9 @@ void phy_detach(struct phy_device *phyde
+@@ -1001,6 +1001,9 @@ void phy_detach(struct phy_device *phyde
  	struct mii_bus *bus;
  	int i;
  
diff --git a/target/linux/generic/patches-4.9/704-phy-no-genphy-soft-reset.patch b/target/linux/generic/patches-4.9/704-phy-no-genphy-soft-reset.patch
index 8ea34e2..6672bbe 100644
--- a/target/linux/generic/patches-4.9/704-phy-no-genphy-soft-reset.patch
+++ b/target/linux/generic/patches-4.9/704-phy-no-genphy-soft-reset.patch
@@ -1,6 +1,6 @@
 --- a/drivers/net/phy/phy_device.c
 +++ b/drivers/net/phy/phy_device.c
-@@ -1465,7 +1465,7 @@ int genphy_config_init(struct phy_device
+@@ -1485,7 +1485,7 @@ int genphy_config_init(struct phy_device
  	return 0;
  }
  
@@ -9,7 +9,7 @@
  {
  	/* Do nothing for now */
  	return 0;
-@@ -1704,7 +1704,7 @@ static struct phy_driver genphy_driver[]
+@@ -1724,7 +1724,7 @@ static struct phy_driver genphy_driver[]
  	.phy_id		= 0xffffffff,
  	.phy_id_mask	= 0xffffffff,
  	.name		= "Generic PHY",
@@ -18,7 +18,7 @@
  	.config_init	= genphy_config_init,
  	.features	= PHY_GBIT_FEATURES | SUPPORTED_MII |
  			  SUPPORTED_AUI | SUPPORTED_FIBRE |
-@@ -1718,7 +1718,7 @@ static struct phy_driver genphy_driver[]
+@@ -1738,7 +1738,7 @@ static struct phy_driver genphy_driver[]
  	.phy_id         = 0xffffffff,
  	.phy_id_mask    = 0xffffffff,
  	.name           = "Generic 10G PHY",
diff --git a/target/linux/generic/patches-4.9/721-phy_packets.patch b/target/linux/generic/patches-4.9/721-phy_packets.patch
index 5b4ff07..717aba8 100644
--- a/target/linux/generic/patches-4.9/721-phy_packets.patch
+++ b/target/linux/generic/patches-4.9/721-phy_packets.patch
@@ -1,6 +1,6 @@
 --- a/include/linux/netdevice.h
 +++ b/include/linux/netdevice.h
-@@ -1397,6 +1397,7 @@ enum netdev_priv_flags {
+@@ -1398,6 +1398,7 @@ enum netdev_priv_flags {
  	IFF_RXFH_CONFIGURED		= 1<<25,
  	IFF_PHONY_HEADROOM		= 1<<26,
  	IFF_MACSEC			= 1<<27,
@@ -8,7 +8,7 @@
  };
  
  #define IFF_802_1Q_VLAN			IFF_802_1Q_VLAN
-@@ -1426,6 +1427,7 @@ enum netdev_priv_flags {
+@@ -1427,6 +1428,7 @@ enum netdev_priv_flags {
  #define IFF_TEAM			IFF_TEAM
  #define IFF_RXFH_CONFIGURED		IFF_RXFH_CONFIGURED
  #define IFF_MACSEC			IFF_MACSEC
@@ -16,7 +16,7 @@
  
  /**
   *	struct net_device - The DEVICE structure.
-@@ -1712,6 +1714,11 @@ struct net_device {
+@@ -1713,6 +1715,11 @@ struct net_device {
  	const struct ndisc_ops *ndisc_ops;
  #endif
  
@@ -28,7 +28,7 @@
  	const struct header_ops *header_ops;
  
  	unsigned int		flags;
-@@ -1779,6 +1786,10 @@ struct net_device {
+@@ -1780,6 +1787,10 @@ struct net_device {
  	struct mpls_dev __rcu	*mpls_ptr;
  #endif
  
diff --git a/target/linux/generic/patches-4.9/930-crashlog.patch b/target/linux/generic/patches-4.9/930-crashlog.patch
index a2e2180..e904138 100644
--- a/target/linux/generic/patches-4.9/930-crashlog.patch
+++ b/target/linux/generic/patches-4.9/930-crashlog.patch
@@ -33,7 +33,7 @@
  	depends on BROKEN || !FRV
 --- a/kernel/Makefile
 +++ b/kernel/Makefile
-@@ -112,6 +112,7 @@ obj-$(CONFIG_TORTURE_TEST) += torture.o
+@@ -113,6 +113,7 @@ obj-$(CONFIG_TORTURE_TEST) += torture.o
  obj-$(CONFIG_MEMBARRIER) += membarrier.o
  
  obj-$(CONFIG_HAS_IOMEM) += memremap.o
diff --git a/target/linux/ipq806x/patches-4.9/0031-mtd-add-SMEM-parser-for-QCOM-platforms.patch b/target/linux/ipq806x/patches-4.9/0031-mtd-add-SMEM-parser-for-QCOM-platforms.patch
index d956a3b..ad0b09b 100644
--- a/target/linux/ipq806x/patches-4.9/0031-mtd-add-SMEM-parser-for-QCOM-platforms.patch
+++ b/target/linux/ipq806x/patches-4.9/0031-mtd-add-SMEM-parser-for-QCOM-platforms.patch
@@ -18,7 +18,7 @@ Signed-off-by: Ram Chandra Jangir <rjangi@codeaurora.org>
 
 --- a/drivers/mtd/Kconfig
 +++ b/drivers/mtd/Kconfig
-@@ -190,6 +190,13 @@ config MTD_MYLOADER_PARTS
+@@ -194,6 +194,13 @@ config MTD_MYLOADER_PARTS
  	  You will still need the parsing functions to be called by the driver
  	  for your particular device. It won't happen automatically.
  
@@ -270,6 +270,6 @@ Signed-off-by: Ram Chandra Jangir <rjangi@codeaurora.org>
  obj-$(CONFIG_MTD_BCM47XX_PARTS)	+= bcm47xxpart.o
  obj-$(CONFIG_MTD_MYLOADER_PARTS) += myloader.o
 +obj-$(CONFIG_MTD_QCOM_SMEM_PARTS) += qcom_smem_part.o
+ obj-y				+= parsers/
  
  # 'Users' - code which presents functionality to userspace.
- obj-$(CONFIG_MTD_BLKDEVS)	+= mtd_blkdevs.o
diff --git a/target/linux/ipq806x/patches-4.9/605-net-IPQ4019-needs-rfs-vlan_tag-callbacks-in.patch b/target/linux/ipq806x/patches-4.9/605-net-IPQ4019-needs-rfs-vlan_tag-callbacks-in.patch
index e7ff121..d272187 100644
--- a/target/linux/ipq806x/patches-4.9/605-net-IPQ4019-needs-rfs-vlan_tag-callbacks-in.patch
+++ b/target/linux/ipq806x/patches-4.9/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.
   */
-@@ -1250,6 +1260,9 @@ struct net_device_ops {
+@@ -1251,6 +1261,9 @@ struct net_device_ops {
  						     const struct sk_buff *skb,
  						     u16 rxq_index,
  						     u32 flow_id);
diff --git a/target/linux/lantiq/patches-4.9/0001-MIPS-lantiq-add-pcie-driver.patch b/target/linux/lantiq/patches-4.9/0001-MIPS-lantiq-add-pcie-driver.patch
index 59d29d8..59f3b1a 100644
--- a/target/linux/lantiq/patches-4.9/0001-MIPS-lantiq-add-pcie-driver.patch
+++ b/target/linux/lantiq/patches-4.9/0001-MIPS-lantiq-add-pcie-driver.patch
@@ -5494,7 +5494,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  	  (transaction layer end-to-end CRC checking).
 --- a/include/linux/pci.h
 +++ b/include/linux/pci.h
-@@ -1245,6 +1245,8 @@ void pci_walk_bus(struct pci_bus *top, i
+@@ -1250,6 +1250,8 @@ void pci_walk_bus(struct pci_bus *top, i
  		  void *userdata);
  int pci_cfg_space_size(struct pci_dev *dev);
  unsigned char pci_bus_max_busnr(struct pci_bus *bus);
diff --git a/target/linux/lantiq/patches-4.9/0101-find_active_root.patch b/target/linux/lantiq/patches-4.9/0101-find_active_root.patch
index 2faec34..7232ffa 100644
--- a/target/linux/lantiq/patches-4.9/0101-find_active_root.patch
+++ b/target/linux/lantiq/patches-4.9/0101-find_active_root.patch
@@ -60,7 +60,7 @@
  		return -ENOMEM;
  
  	i = 0;
-@@ -120,12 +155,22 @@ static int parse_ofpart_partitions(struc
+@@ -121,12 +156,22 @@ static int parse_ofpart_partitions(struc
  		if (of_get_property(pp, "lock", &len))
  			parts[i].mask_flags |= MTD_POWERUP_LOCK;
  
@@ -83,7 +83,7 @@
  	*pparts = parts;
  	return nr_parts;
  
-@@ -136,6 +181,7 @@ ofpart_fail:
+@@ -137,6 +182,7 @@ ofpart_fail:
  ofpart_none:
  	of_node_put(pp);
  	kfree(parts);
diff --git a/target/linux/mvebu/patches-4.9/100-find_active_root.patch b/target/linux/mvebu/patches-4.9/100-find_active_root.patch
index b8e8c92..d6006b7 100644
--- a/target/linux/mvebu/patches-4.9/100-find_active_root.patch
+++ b/target/linux/mvebu/patches-4.9/100-find_active_root.patch
@@ -22,9 +22,9 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
  	struct device_node *pp;
  	int nr_parts, i, ret = 0;
  	bool dedicated = true;
-@@ -109,9 +112,13 @@ static int parse_ofpart_partitions(struc
- 		parts[i].offset = of_read_number(reg, a_cells);
+@@ -110,9 +113,13 @@ static int parse_ofpart_partitions(struc
  		parts[i].size = of_read_number(reg + a_cells, s_cells);
+ 		parts[i].of_node = pp;
  
 -		partname = of_get_property(pp, "label", &len);
 -		if (!partname)
@@ -39,7 +39,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
  		parts[i].name = partname;
  
  		if (of_get_property(pp, "read-only", &len))
-@@ -212,6 +219,18 @@ static int __init ofpart_parser_init(voi
+@@ -213,6 +220,18 @@ static int __init ofpart_parser_init(voi
  	return 0;
  }
  
diff --git a/target/linux/mvebu/patches-4.9/400-phy-provide-a-hook-for-link-up-link-down-events.patch b/target/linux/mvebu/patches-4.9/400-phy-provide-a-hook-for-link-up-link-down-events.patch
index 268243c..c5bb0c0 100644
--- a/target/linux/mvebu/patches-4.9/400-phy-provide-a-hook-for-link-up-link-down-events.patch
+++ b/target/linux/mvebu/patches-4.9/400-phy-provide-a-hook-for-link-up-link-down-events.patch
@@ -157,7 +157,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  /**
   * phy_prepare_link - prepares the PHY layer to monitor link status
   * @phydev: target phy_device struct
-@@ -899,6 +912,7 @@ int phy_attach_direct(struct net_device
+@@ -910,6 +923,7 @@ int phy_attach_direct(struct net_device
  		goto error;
  	}
  
diff --git a/target/linux/mvebu/patches-4.9/407-net-phy-add-802.3-clause-45-support-to-phylib.patch b/target/linux/mvebu/patches-4.9/407-net-phy-add-802.3-clause-45-support-to-phylib.patch
index 8e983cc..352d678 100644
--- a/target/linux/mvebu/patches-4.9/407-net-phy-add-802.3-clause-45-support-to-phylib.patch
+++ b/target/linux/mvebu/patches-4.9/407-net-phy-add-802.3-clause-45-support-to-phylib.patch
@@ -258,7 +258,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
 +EXPORT_SYMBOL_GPL(genphy_c45_read_pma);
 --- a/drivers/net/phy/phy_device.c
 +++ b/drivers/net/phy/phy_device.c
-@@ -1390,27 +1390,19 @@ EXPORT_SYMBOL(genphy_read_status);
+@@ -1410,27 +1410,19 @@ EXPORT_SYMBOL(genphy_read_status);
  
  static int gen10g_read_status(struct phy_device *phydev)
  {
diff --git a/target/linux/mvebu/patches-4.9/415-phylink-add-phylink-infrastructure.patch b/target/linux/mvebu/patches-4.9/415-phylink-add-phylink-infrastructure.patch
index 87c0daf..fe3f7c2 100644
--- a/target/linux/mvebu/patches-4.9/415-phylink-add-phylink-infrastructure.patch
+++ b/target/linux/mvebu/patches-4.9/415-phylink-add-phylink-infrastructure.patch
@@ -83,14 +83,14 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  obj-$(CONFIG_SWCONFIG)		+= swconfig.o
 --- a/drivers/net/phy/phy_device.c
 +++ b/drivers/net/phy/phy_device.c
-@@ -1003,6 +1003,7 @@ void phy_detach(struct phy_device *phyde
+@@ -1021,6 +1021,7 @@ void phy_detach(struct phy_device *phyde
  	phydev->attached_dev->phydev = NULL;
  	phydev->attached_dev = NULL;
  	phy_suspend(phydev);
 +	phydev->phylink = NULL;
  
- 	/* If the device had no specific driver before (i.e. - it
- 	 * was using the generic driver), we unbind the device
+ 	module_put(phydev->mdio.dev.driver->owner);
+ 
 --- /dev/null
 +++ b/drivers/net/phy/phylink.c
 @@ -0,0 +1,903 @@
diff --git a/target/linux/pistachio/patches-4.9/413-mtd-Introduce-SPI-NAND-framework.patch b/target/linux/pistachio/patches-4.9/413-mtd-Introduce-SPI-NAND-framework.patch
index ab5d74a..b13dde7 100644
--- a/target/linux/pistachio/patches-4.9/413-mtd-Introduce-SPI-NAND-framework.patch
+++ b/target/linux/pistachio/patches-4.9/413-mtd-Introduce-SPI-NAND-framework.patch
@@ -46,7 +46,7 @@ Signed-off-by: Ian Pozella <Ian.Pozella@imgtec.com>
 
 --- a/drivers/mtd/Kconfig
 +++ b/drivers/mtd/Kconfig
-@@ -369,6 +369,8 @@ source "drivers/mtd/onenand/Kconfig"
+@@ -373,6 +373,8 @@ source "drivers/mtd/onenand/Kconfig"
  
  source "drivers/mtd/lpddr/Kconfig"
  
@@ -57,7 +57,7 @@ Signed-off-by: Ian Pozella <Ian.Pozella@imgtec.com>
  source "drivers/mtd/ubi/Kconfig"
 --- a/drivers/mtd/Makefile
 +++ b/drivers/mtd/Makefile
-@@ -35,5 +35,6 @@ inftl-objs		:= inftlcore.o inftlmount.o
+@@ -36,5 +36,6 @@ inftl-objs		:= inftlcore.o inftlmount.o
  
  obj-y		+= chips/ lpddr/ maps/ devices/ nand/ onenand/ tests/
  
