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. v3 version tweaks some words from v2 to let it more readable. This patch set is based on 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