diff options
Diffstat (limited to 'arch/mips/kernel/ftrace.c')
-rw-r--r-- | arch/mips/kernel/ftrace.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/mips/kernel/ftrace.c b/arch/mips/kernel/ftrace.c index 374ed74cd516..74fe73506d8f 100644 --- a/arch/mips/kernel/ftrace.c +++ b/arch/mips/kernel/ftrace.c | |||
@@ -90,6 +90,7 @@ static inline void ftrace_dyn_arch_init_insns(void) | |||
90 | static int ftrace_modify_code(unsigned long ip, unsigned int new_code) | 90 | static int ftrace_modify_code(unsigned long ip, unsigned int new_code) |
91 | { | 91 | { |
92 | int faulted; | 92 | int faulted; |
93 | mm_segment_t old_fs; | ||
93 | 94 | ||
94 | /* *(unsigned int *)ip = new_code; */ | 95 | /* *(unsigned int *)ip = new_code; */ |
95 | safe_store_code(new_code, ip, faulted); | 96 | safe_store_code(new_code, ip, faulted); |
@@ -97,7 +98,10 @@ static int ftrace_modify_code(unsigned long ip, unsigned int new_code) | |||
97 | if (unlikely(faulted)) | 98 | if (unlikely(faulted)) |
98 | return -EFAULT; | 99 | return -EFAULT; |
99 | 100 | ||
101 | old_fs = get_fs(); | ||
102 | set_fs(get_ds()); | ||
100 | flush_icache_range(ip, ip + 8); | 103 | flush_icache_range(ip, ip + 8); |
104 | set_fs(old_fs); | ||
101 | 105 | ||
102 | return 0; | 106 | return 0; |
103 | } | 107 | } |