diff --git a/include/kernel-version.mk b/include/kernel-version.mk
index c1882627e4ab7a64ae04c609b16a5658c5458fd4..6a07ff3993f924edef7b3a233156214d32fdbf6a 100644
--- a/include/kernel-version.mk
+++ b/include/kernel-version.mk
@@ -3,12 +3,12 @@
 LINUX_RELEASE?=1
 
 LINUX_VERSION-3.18 = .136
-LINUX_VERSION-4.9 = .170
+LINUX_VERSION-4.9 = .171
 LINUX_VERSION-4.14 = .113
 LINUX_VERSION-4.19 = .36
 
 LINUX_KERNEL_HASH-3.18.136 = 48c8775013d23229462134f911bbb14c7935096fcccfb19ce28ecd5f7154f35c
-LINUX_KERNEL_HASH-4.9.170 = 33887b40fc8e0b71f423bb7afe112a4ae190378145f4a3f3892c563b7e43131d
+LINUX_KERNEL_HASH-4.9.171 = 431cd992bf74da9851dd5938dbe45ff7577219b84b237ae5e30067d483b57f01
 LINUX_KERNEL_HASH-4.14.113 = b24df2e37faaf2290999c507f9e29de98494f52429bcd35513c5b3e52eaddac2
 LINUX_KERNEL_HASH-4.19.36 = b808b508177f9d288d94a3b9df7b01d5eac9fcc1804a794c913b2144de63f2bc
 
diff --git a/target/linux/generic/hack-4.9/207-disable-modorder.patch b/target/linux/generic/hack-4.9/207-disable-modorder.patch
index c66a4db200079949c843ab0f7362fcb8bc0c487e..e92f4fa0bf31b47a22b3c258f54303a0e69d8d06 100644
--- a/target/linux/generic/hack-4.9/207-disable-modorder.patch
+++ b/target/linux/generic/hack-4.9/207-disable-modorder.patch
@@ -15,7 +15,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/Makefile
 +++ b/Makefile
-@@ -1227,7 +1227,6 @@ all: modules
+@@ -1226,7 +1226,6 @@ all: modules
  
  PHONY += modules
  modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin
@@ -23,7 +23,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
-@@ -1257,7 +1256,6 @@ _modinst_:
+@@ -1256,7 +1255,6 @@ _modinst_:
  		rm -f $(MODLIB)/build ; \
  		ln -s $(CURDIR) $(MODLIB)/build ; \
  	fi
diff --git a/target/linux/generic/hack-4.9/220-gc_sections.patch b/target/linux/generic/hack-4.9/220-gc_sections.patch
index ea6ce0bcf7e105941bd605867e61b648e7f64592..732e38aaf05a2ab2edb9f67d018410321e506b06 100644
--- a/target/linux/generic/hack-4.9/220-gc_sections.patch
+++ b/target/linux/generic/hack-4.9/220-gc_sections.patch
@@ -43,8 +43,8 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 -endif
 -
  ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
- KBUILD_CFLAGS	+= $(call cc-option,-Oz,-Os)
- KBUILD_CFLAGS	+= $(call cc-disable-warning,maybe-uninitialized,) $(EXTRA_OPTIMIZATION)
+ KBUILD_CFLAGS	+= -Os $(call cc-disable-warning,maybe-uninitialized,) $(EXTRA_OPTIMIZATION)
+ else
 --- a/arch/arm/Kconfig
 +++ b/arch/arm/Kconfig
 @@ -81,6 +81,7 @@ config ARM
diff --git a/target/linux/generic/hack-4.9/902-debloat_proc.patch b/target/linux/generic/hack-4.9/902-debloat_proc.patch
index 7c4a48f5ff4eedc28f8c06624405b1de416b9672..ee72d984f927d35220539d139233f094a544fb1b 100644
--- a/target/linux/generic/hack-4.9/902-debloat_proc.patch
+++ b/target/linux/generic/hack-4.9/902-debloat_proc.patch
@@ -244,7 +244,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  }
 --- a/mm/vmstat.c
 +++ b/mm/vmstat.c
-@@ -1798,10 +1798,12 @@ static int __init setup_vmstat(void)
+@@ -1793,10 +1793,12 @@ static int __init setup_vmstat(void)
  	cpu_notifier_register_done();
  #endif
  #ifdef CONFIG_PROC_FS
diff --git a/target/linux/generic/pending-4.9/150-bridge_allow_receiption_on_disabled_port.patch b/target/linux/generic/pending-4.9/150-bridge_allow_receiption_on_disabled_port.patch
index a164f6e7ea079daad034ed7faf621a1d6df17035..c62eea31246a1d4c7377386952bedbb72b0296e2 100644
--- a/target/linux/generic/pending-4.9/150-bridge_allow_receiption_on_disabled_port.patch
+++ b/target/linux/generic/pending-4.9/150-bridge_allow_receiption_on_disabled_port.patch
@@ -15,17 +15,19 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/net/bridge/br_input.c
 +++ b/net/bridge/br_input.c
-@@ -233,7 +233,8 @@ static int br_handle_local_finish(struct
+@@ -231,7 +231,10 @@ static void __br_handle_local_finish(str
+ /* note: already called with rcu_read_lock */
+ static int br_handle_local_finish(struct net *net, struct sock *sk, struct sk_buff *skb)
  {
- 	struct net_bridge_port *p = br_port_get_rcu(skb->dev);
- 
 -	__br_handle_local_finish(skb);
++	struct net_bridge_port *p = br_port_get_rcu(skb->dev);
++
 +	if (p->state != BR_STATE_DISABLED)
 +		__br_handle_local_finish(skb);
  
- 	BR_INPUT_SKB_CB(skb)->brdev = p->br->dev;
- 	br_pass_frame_up(skb);
-@@ -316,6 +317,15 @@ rx_handler_result_t br_handle_frame(stru
+ 	/* return 1 to signal the okfn() was called so it's ok to use the skb */
+ 	return 1;
+@@ -321,6 +324,15 @@ rx_handler_result_t br_handle_frame(stru
  
  forward:
  	switch (p->state) {
diff --git a/target/linux/generic/pending-4.9/201-extra_optimization.patch b/target/linux/generic/pending-4.9/201-extra_optimization.patch
index 7b6397919e9202b2849d5b63a6f176e0139a733e..3d0fc822bbe68edac967cba2b58b5c1edb85c164 100644
--- a/target/linux/generic/pending-4.9/201-extra_optimization.patch
+++ b/target/linux/generic/pending-4.9/201-extra_optimization.patch
@@ -14,12 +14,12 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/Makefile
 +++ b/Makefile
-@@ -656,12 +656,12 @@ endif
+@@ -655,12 +655,12 @@ KBUILD_CFLAGS	+= $(call cc-option,-fdata
+ endif
  
  ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
- KBUILD_CFLAGS	+= $(call cc-option,-Oz,-Os)
--KBUILD_CFLAGS	+= $(call cc-disable-warning,maybe-uninitialized,)
-+KBUILD_CFLAGS	+= $(call cc-disable-warning,maybe-uninitialized,) $(EXTRA_OPTIMIZATION)
+-KBUILD_CFLAGS	+= -Os $(call cc-disable-warning,maybe-uninitialized,)
++KBUILD_CFLAGS	+= -Os $(call cc-disable-warning,maybe-uninitialized,) $(EXTRA_OPTIMIZATION)
  else
  ifdef CONFIG_PROFILE_ALL_BRANCHES
 -KBUILD_CFLAGS	+= -O2 $(call cc-disable-warning,maybe-uninitialized,)