diff --git a/include/kernel-version.mk b/include/kernel-version.mk
index 199c2adb58870750f417da0f28f54b79ed73a670..b1452524f41352ce4b7c14803bab1d64990ea0eb 100644
--- a/include/kernel-version.mk
+++ b/include/kernel-version.mk
@@ -3,10 +3,10 @@
 LINUX_RELEASE?=1
 
 LINUX_VERSION-3.18 = .43
-LINUX_VERSION-4.4 = .44
+LINUX_VERSION-4.4 = .45
 
 LINUX_KERNEL_HASH-3.18.43 = 1236e8123a6ce537d5029232560966feed054ae31776fe8481dd7d18cdd5492c
-LINUX_KERNEL_HASH-4.4.44 = fabdcf2703f22a5b8aa3a3407909f18fdeea610c3d0f418fdc29123ed04de748
+LINUX_KERNEL_HASH-4.4.45 = 22fb59247746a3dd109df6d1485a9972382507a3c0040ac33371b3fd2a021741
 
 ifdef KERNEL_PATCHVER
   LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))
diff --git a/target/linux/ar71xx/patches-4.4/920-usb-chipidea-AR933x-platform-support.patch b/target/linux/ar71xx/patches-4.4/920-usb-chipidea-AR933x-platform-support.patch
index 71649cacd6725d36a91ebd4ac203347976bb7f7c..8972c40772245dbd876b93049e5fae165c3a503c 100644
--- a/target/linux/ar71xx/patches-4.4/920-usb-chipidea-AR933x-platform-support.patch
+++ b/target/linux/ar71xx/patches-4.4/920-usb-chipidea-AR933x-platform-support.patch
@@ -1,6 +1,6 @@
 --- a/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
 +++ b/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
-@@ -644,6 +644,7 @@
+@@ -649,6 +649,7 @@
  
  #define AR933X_BOOTSTRAP_MDIO_GPIO_EN	BIT(18)
  #define AR933X_BOOTSTRAP_EEPBUSY	BIT(4)
@@ -8,7 +8,7 @@
  #define AR933X_BOOTSTRAP_REF_CLK_40	BIT(0)
  
  #define AR934X_BOOTSTRAP_SW_OPTION8	BIT(23)
-@@ -673,6 +674,8 @@
+@@ -678,6 +679,8 @@
  
  #define QCA956X_BOOTSTRAP_REF_CLK_40	BIT(2)
  
diff --git a/target/linux/cns3xxx/patches-4.4/130-Extend-PCIE_BUS_PEER2PEER-to-set-MRSS-128-to-fix-CNS3xxx-BM-DMA..patch b/target/linux/cns3xxx/patches-4.4/130-Extend-PCIE_BUS_PEER2PEER-to-set-MRSS-128-to-fix-CNS3xxx-BM-DMA..patch
index c58830ac6f5d75b8d82d304f87085768650df0f6..db2c29fc92a14f2026e70495e10b15f40c5a99bd 100644
--- a/target/linux/cns3xxx/patches-4.4/130-Extend-PCIE_BUS_PEER2PEER-to-set-MRSS-128-to-fix-CNS3xxx-BM-DMA..patch
+++ b/target/linux/cns3xxx/patches-4.4/130-Extend-PCIE_BUS_PEER2PEER-to-set-MRSS-128-to-fix-CNS3xxx-BM-DMA..patch
@@ -1,6 +1,6 @@
 --- a/drivers/pci/probe.c
 +++ b/drivers/pci/probe.c
-@@ -1964,7 +1964,8 @@ static void pcie_write_mrrs(struct pci_d
+@@ -1966,7 +1966,8 @@ static void pcie_write_mrrs(struct pci_d
  	/* In the "safe" case, do not configure the MRRS.  There appear to be
  	 * issues with setting MRRS to 0 on a number of devices.
  	 */
diff --git a/target/linux/cns3xxx/patches-4.4/200-broadcom_phy_reinit.patch b/target/linux/cns3xxx/patches-4.4/200-broadcom_phy_reinit.patch
index 1c7215051d4b5bcedc888fe929a77210959df6e5..0d8ff5997be9b632d883fdfb196097599b979bf9 100644
--- a/target/linux/cns3xxx/patches-4.4/200-broadcom_phy_reinit.patch
+++ b/target/linux/cns3xxx/patches-4.4/200-broadcom_phy_reinit.patch
@@ -1,6 +1,6 @@
 --- a/drivers/net/phy/broadcom.c
 +++ b/drivers/net/phy/broadcom.c
-@@ -332,6 +332,11 @@ static int bcm5481_config_aneg(struct ph
+@@ -362,6 +362,11 @@ static int bcm5481_config_aneg(struct ph
  		/* Write bits 14:0. */
  		reg |= (1 << 15);
  		phy_write(phydev, 0x18, reg);
@@ -11,4 +11,4 @@
 +		phy_write(phydev, 0x1c, 0xa41f);
  	}
  
- 	return ret;
+ 	if (of_property_read_bool(np, "enet-phy-lane-swap")) {