diff --git a/target/linux/generic-2.6/patches-2.6.28/004-extra_optimization.patch b/target/linux/generic-2.6/patches-2.6.28/004-extra_optimization.patch
index d6866899c302126c29c359ad749c1d5fea7c5ef7..8827ed0c3d6134121507006ea7c6c42c6a2c67d1 100644
--- a/target/linux/generic-2.6/patches-2.6.28/004-extra_optimization.patch
+++ b/target/linux/generic-2.6/patches-2.6.28/004-extra_optimization.patch
@@ -1,5 +1,14 @@
 --- a/Makefile
 +++ b/Makefile
+@@ -512,7 +512,7 @@ all: vmlinux
+ ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
+ KBUILD_CFLAGS	+= -Os
+ else
+-KBUILD_CFLAGS	+= -O2
++KBUILD_CFLAGS	+= -O2 -fno-reorder-blocks -fno-tree-ch
+ endif
+ 
+ include $(srctree)/arch/$(SRCARCH)/Makefile
 @@ -549,6 +549,9 @@ endif
  NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include)
  CHECKFLAGS     += $(NOSTDINC_FLAGS)
diff --git a/target/linux/generic-2.6/patches-2.6.30/004-extra_optimization.patch b/target/linux/generic-2.6/patches-2.6.30/004-extra_optimization.patch
index 018e673e2035bd4687f009ba2b2871436bb0071a..0b5174cbbdfc82379f206ff66a529c06113e09d1 100644
--- a/target/linux/generic-2.6/patches-2.6.30/004-extra_optimization.patch
+++ b/target/linux/generic-2.6/patches-2.6.30/004-extra_optimization.patch
@@ -1,5 +1,14 @@
 --- a/Makefile
 +++ b/Makefile
+@@ -529,7 +529,7 @@ all: vmlinux
+ ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
+ KBUILD_CFLAGS	+= -Os
+ else
+-KBUILD_CFLAGS	+= -O2
++KBUILD_CFLAGS	+= -O2 -fno-reorder-blocks -fno-tree-ch
+ endif
+ 
+ include $(srctree)/arch/$(SRCARCH)/Makefile
 @@ -567,6 +567,9 @@ endif
  NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include)
  CHECKFLAGS     += $(NOSTDINC_FLAGS)
diff --git a/target/linux/generic-2.6/patches-2.6.31/004-extra_optimization.patch b/target/linux/generic-2.6/patches-2.6.31/004-extra_optimization.patch
index 333acb612b57496e65c3324e8de68bb478323d22..e0ba51598e4a24569ac0be442bd21c34bfb70d7f 100644
--- a/target/linux/generic-2.6/patches-2.6.31/004-extra_optimization.patch
+++ b/target/linux/generic-2.6/patches-2.6.31/004-extra_optimization.patch
@@ -1,5 +1,14 @@
 --- a/Makefile
 +++ b/Makefile
+@@ -521,7 +521,7 @@ all: vmlinux
+ ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
+ KBUILD_CFLAGS	+= -Os
+ else
+-KBUILD_CFLAGS	+= -O2
++KBUILD_CFLAGS	+= -O2 -fno-reorder-blocks -fno-tree-ch
+ endif
+ 
+ include $(srctree)/arch/$(SRCARCH)/Makefile
 @@ -559,6 +559,9 @@ endif
  NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include)
  CHECKFLAGS     += $(NOSTDINC_FLAGS)