In 32-bit mode, the start address of flushing icache is wrong because of error address calculation. It causes system crash at boot when dynamic function trace is enabled. This issue existed since linux-3.8. In the patch set, I fixed the flushing range and refined the macros used by it to pass compilation. Patch 1 is tried to improve the usability of some macros such that we can make patch 2 cleaner. Patch 2 fixes this issue. This patch set is based on commit 7d3f1a5 of mips-for-linux-next branch. Viller Hsiao (2): MIPS: ftrace: Tweak safe_load()/safe_store() macros MIPS: ftrace: Fix icache flush range error arch/mips/include/asm/ftrace.h | 20 ++++++++++---------- arch/mips/kernel/ftrace.c | 5 ++--- 2 files changed, 12 insertions(+), 13 deletions(-) -- 1.8.4.3