diff --git a/include/kernel-version.mk b/include/kernel-version.mk
index 9fc30581614c..e8c0cd7b3829 100644
--- a/include/kernel-version.mk
+++ b/include/kernel-version.mk
@@ -4,13 +4,13 @@ LINUX_RELEASE?=1
 
 LINUX_VERSION-3.18 = .71
 LINUX_VERSION-4.4 = .121
-LINUX_VERSION-4.14 = .48
 LINUX_VERSION-4.9 = .108
+LINUX_VERSION-4.14 = .49
 
 LINUX_KERNEL_HASH-3.18.71 = 5abc9778ad44ce02ed6c8ab52ece8a21c6d20d21f6ed8a19287b4a38a50c1240
 LINUX_KERNEL_HASH-4.4.121 = 44a88268b5088dc326b30c9b9133ac35a9a200b636b7268d08f32abeae6ca729
-LINUX_KERNEL_HASH-4.14.48 = 80a0608f611fe7a5c54556402cdc2880a21301e1c4e1b19d4c1db82ad2bf22b9
 LINUX_KERNEL_HASH-4.9.108 = 73fe2ba98a17962ccf249b12103b0ac3c39b298eec6696ede8d6fceee45e4041
+LINUX_KERNEL_HASH-4.14.49 = c69f49731ef392034a5d8816e2e2668bc8928878764d1c8caac37d00339d3bf7
 
 remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
 sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
diff --git a/target/linux/ath79/patches-4.14/0035-MIPS-ath79-fix-QCA956x-boot.patch b/target/linux/ath79/patches-4.14/0035-MIPS-ath79-fix-QCA956x-boot.patch
index e5b714c4420e..c3dd676d4d6c 100644
--- a/target/linux/ath79/patches-4.14/0035-MIPS-ath79-fix-QCA956x-boot.patch
+++ b/target/linux/ath79/patches-4.14/0035-MIPS-ath79-fix-QCA956x-boot.patch
@@ -1,6 +1,6 @@
---- a/arch/mips/ath79/clock.c	2018-06-01 13:56:30.376729328 +0300
-+++ b/arch/mips/ath79/clock.c	2018-06-04 02:06:57.039616840 +0300
-@@ -525,6 +525,14 @@
+--- a/arch/mips/ath79/clock.c
++++ b/arch/mips/ath79/clock.c
+@@ -525,6 +525,14 @@ static void __init qca956x_clocks_init(v
  	u32 cpu_pll, ddr_pll;
  	u32 bootstrap;
  
diff --git a/target/linux/generic/backport-4.14/324-v4.16-netfilter-flow-table-support-for-IPv6.patch b/target/linux/generic/backport-4.14/324-v4.16-netfilter-flow-table-support-for-IPv6.patch
index abe7ef009255..a561f2669d03 100644
--- a/target/linux/generic/backport-4.14/324-v4.16-netfilter-flow-table-support-for-IPv6.patch
+++ b/target/linux/generic/backport-4.14/324-v4.16-netfilter-flow-table-support-for-IPv6.patch
@@ -15,7 +15,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
 
 --- a/include/net/ipv6.h
 +++ b/include/net/ipv6.h
-@@ -913,6 +913,8 @@ static inline struct sk_buff *ip6_finish
+@@ -918,6 +918,8 @@ static inline struct sk_buff *ip6_finish
  			      &inet6_sk(sk)->cork);
  }
  
diff --git a/target/linux/generic/backport-4.14/350-v4.18-ipv6-make-ip6_dst_mtu_forward-inline.patch b/target/linux/generic/backport-4.14/350-v4.18-ipv6-make-ip6_dst_mtu_forward-inline.patch
index e16f13ac45e9..9ed9ca558dca 100644
--- a/target/linux/generic/backport-4.14/350-v4.18-ipv6-make-ip6_dst_mtu_forward-inline.patch
+++ b/target/linux/generic/backport-4.14/350-v4.18-ipv6-make-ip6_dst_mtu_forward-inline.patch
@@ -38,7 +38,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  #endif
 --- a/include/net/ipv6.h
 +++ b/include/net/ipv6.h
-@@ -913,8 +913,6 @@ static inline struct sk_buff *ip6_finish
+@@ -918,8 +918,6 @@ static inline struct sk_buff *ip6_finish
  			      &inet6_sk(sk)->cork);
  }
  
diff --git a/target/linux/generic/pending-4.14/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch b/target/linux/generic/pending-4.14/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch
index 09dfd1b906eb..1de8543353c1 100644
--- a/target/linux/generic/pending-4.14/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch
+++ b/target/linux/generic/pending-4.14/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch
@@ -350,7 +350,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  	memcpy(p->name, u->name, sizeof(u->name));
  }
  
-@@ -1912,6 +2074,15 @@ static int ip6_tnl_validate(struct nlatt
+@@ -1917,6 +2079,15 @@ static int ip6_tnl_validate(struct nlatt
  	return 0;
  }
  
@@ -366,7 +366,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  static void ip6_tnl_netlink_parms(struct nlattr *data[],
  				  struct __ip6_tnl_parm *parms)
  {
-@@ -1949,6 +2120,46 @@ static void ip6_tnl_netlink_parms(struct
+@@ -1954,6 +2125,46 @@ static void ip6_tnl_netlink_parms(struct
  
  	if (data[IFLA_IPTUN_FWMARK])
  		parms->fwmark = nla_get_u32(data[IFLA_IPTUN_FWMARK]);
@@ -413,7 +413,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  }
  
  static bool ip6_tnl_netlink_encap_parms(struct nlattr *data[],
-@@ -2064,6 +2275,12 @@ static void ip6_tnl_dellink(struct net_d
+@@ -2069,6 +2280,12 @@ static void ip6_tnl_dellink(struct net_d
  
  static size_t ip6_tnl_get_size(const struct net_device *dev)
  {
@@ -426,7 +426,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  	return
  		/* IFLA_IPTUN_LINK */
  		nla_total_size(4) +
-@@ -2093,6 +2310,24 @@ static size_t ip6_tnl_get_size(const str
+@@ -2098,6 +2315,24 @@ static size_t ip6_tnl_get_size(const str
  		nla_total_size(0) +
  		/* IFLA_IPTUN_FWMARK */
  		nla_total_size(4) +
@@ -451,7 +451,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  		0;
  }
  
-@@ -2100,6 +2335,9 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -2105,6 +2340,9 @@ static int ip6_tnl_fill_info(struct sk_b
  {
  	struct ip6_tnl *tunnel = netdev_priv(dev);
  	struct __ip6_tnl_parm *parm = &tunnel->parms;
@@ -461,7 +461,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  
  	if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
  	    nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) ||
-@@ -2109,9 +2347,27 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -2114,9 +2352,27 @@ static int ip6_tnl_fill_info(struct sk_b
  	    nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) ||
  	    nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) ||
  	    nla_put_u8(skb, IFLA_IPTUN_PROTO, parm->proto) ||
@@ -490,7 +490,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  	if (nla_put_u16(skb, IFLA_IPTUN_ENCAP_TYPE, tunnel->encap.type) ||
  	    nla_put_be16(skb, IFLA_IPTUN_ENCAP_SPORT, tunnel->encap.sport) ||
  	    nla_put_be16(skb, IFLA_IPTUN_ENCAP_DPORT, tunnel->encap.dport) ||
-@@ -2151,6 +2407,7 @@ static const struct nla_policy ip6_tnl_p
+@@ -2156,6 +2412,7 @@ static const struct nla_policy ip6_tnl_p
  	[IFLA_IPTUN_ENCAP_DPORT]	= { .type = NLA_U16 },
  	[IFLA_IPTUN_COLLECT_METADATA]	= { .type = NLA_FLAG },
  	[IFLA_IPTUN_FWMARK]		= { .type = NLA_U32 },
diff --git a/target/linux/generic/pending-4.14/950-tty-serial-exar-generalize-rs485-setup.patch b/target/linux/generic/pending-4.14/950-tty-serial-exar-generalize-rs485-setup.patch
index a2b740fd4216..869bf7b9b2ba 100644
--- a/target/linux/generic/pending-4.14/950-tty-serial-exar-generalize-rs485-setup.patch
+++ b/target/linux/generic/pending-4.14/950-tty-serial-exar-generalize-rs485-setup.patch
@@ -18,11 +18,9 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  drivers/tty/serial/8250/8250_exar.c | 38 +++++++++++++++++++----------
  1 file changed, 25 insertions(+), 13 deletions(-)
 
-diff --git a/drivers/tty/serial/8250/8250_exar.c b/drivers/tty/serial/8250/8250_exar.c
-index e0aa5f03004c..55b4d6d581f0 100644
 --- a/drivers/tty/serial/8250/8250_exar.c
 +++ b/drivers/tty/serial/8250/8250_exar.c
-@@ -275,8 +275,32 @@ static int xr17v35x_register_gpio(struct pci_dev *pcidev,
+@@ -275,8 +275,32 @@ static int xr17v35x_register_gpio(struct
  	return 0;
  }
  
@@ -55,7 +53,7 @@ index e0aa5f03004c..55b4d6d581f0 100644
  };
  
  static int iot2040_rs485_config(struct uart_port *port,
-@@ -309,19 +333,7 @@ static int iot2040_rs485_config(struct uart_port *port,
+@@ -309,19 +333,7 @@ static int iot2040_rs485_config(struct u
  	value |= mode;
  	writeb(value, p + UART_EXAR_MPIOLVL_7_0);
  
@@ -76,6 +74,3 @@ index e0aa5f03004c..55b4d6d581f0 100644
  }
  
  static const struct property_entry iot2040_gpio_properties[] = {
--- 
-2.17.1
-
diff --git a/target/linux/ramips/patches-4.14/302-spi-nor-add-gd25q512.patch b/target/linux/ramips/patches-4.14/302-spi-nor-add-gd25q512.patch
index 93c7e928b724..7a42c78a4ce4 100644
--- a/target/linux/ramips/patches-4.14/302-spi-nor-add-gd25q512.patch
+++ b/target/linux/ramips/patches-4.14/302-spi-nor-add-gd25q512.patch
@@ -1,6 +1,6 @@
 --- a/drivers/mtd/spi-nor/spi-nor.c
 +++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1051,6 +1051,11 @@ static const struct flash_info spi_nor_i
+@@ -1060,6 +1060,11 @@ static const struct flash_info spi_nor_i
  			SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
  			SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
  	},
diff --git a/target/linux/ramips/patches-4.14/303-spi-nor-enable-4B-opcodes-for-mx66l51235l.patch b/target/linux/ramips/patches-4.14/303-spi-nor-enable-4B-opcodes-for-mx66l51235l.patch
index d0e68df031b7..7b2b280d35f4 100644
--- a/target/linux/ramips/patches-4.14/303-spi-nor-enable-4B-opcodes-for-mx66l51235l.patch
+++ b/target/linux/ramips/patches-4.14/303-spi-nor-enable-4B-opcodes-for-mx66l51235l.patch
@@ -1,6 +1,6 @@
 --- a/drivers/mtd/spi-nor/spi-nor.c
 +++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1084,7 +1084,7 @@ static const struct flash_info spi_nor_i
+@@ -1093,7 +1093,7 @@ static const struct flash_info spi_nor_i
  	{ "mx25l25635e", INFO(0xc22019, 0, 64 * 1024, 512, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
  	{ "mx25u25635f", INFO(0xc22539, 0, 64 * 1024, 512, SECT_4K | SPI_NOR_4B_OPCODES) },
  	{ "mx25l25655e", INFO(0xc22619, 0, 64 * 1024, 512, 0) },
