diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/events/callchain.c | 6 | 
1 files changed, 6 insertions, 0 deletions
| diff --git a/kernel/events/callchain.c b/kernel/events/callchain.c index c04917cad1bf..1b2be63c8528 100644 --- a/kernel/events/callchain.c +++ b/kernel/events/callchain.c @@ -229,12 +229,18 @@ get_perf_callchain(struct pt_regs *regs, u32 init_nr, bool kernel, bool user,  		}  		if (regs) { +			mm_segment_t fs; +  			if (crosstask)  				goto exit_put;  			if (add_mark)  				perf_callchain_store_context(&ctx, PERF_CONTEXT_USER); + +			fs = get_fs(); +			set_fs(USER_DS);  			perf_callchain_user(&ctx, regs); +			set_fs(fs);  		}  	} | 
