From: Wu Zhangjin <wuzhangjin@xxxxxxxxx> As the Chapter 15: "Errata: Issue of Out-of-order in loongson"[1] shows, to workaround the Issue of Loongson-2F,We need to do: o When switching from user model to kernel model, you should flush the branch target history such as BTB and RAS. o Doing some tricks to the indirect branch target to make sure that the indirect branch target can not be in the I/O region. This patchset applied the above methods and for the binutils patch[3] have been merged into binutils 2.20.1, so, it's time to upstream this patchset now. without this patch, the machines will hang when the instruction sequence hit the Out-of-order Issue of Loongson-2F, therefore, this patchset is very urgent for both 2.6.33 and 2.6.34. [1] Chinese Version: http://www.loongson.cn/uploadfile/file/20080821113149.pdf [2] English Version of Chapter 15: http://groups.google.com.hk/group/loongson-dev/msg/e0d2e220958f10a6?dmode=source [3] http://sourceware.org/ml/binutils/2009-11/msg00387.html Regards, Wu Zhangjin Wu Zhangjin (3): Loongson-2F: Flush the branch target history such as BTB and RAS Loongson-2F: Enable fixups of binutils 2.20.1 Loongson-2F: Fixup of problems introduced by -mfix-loongson2f-jump of binutils 2.20.1 arch/mips/Makefile | 4 +++- arch/mips/include/asm/stackframe.h | 19 +++++++++++++++++++ arch/mips/loongson/common/reset.c | 12 +++++++++++- 3 files changed, 33 insertions(+), 2 deletions(-)