diff options
| -rw-r--r-- | kernel/events/core.c | 8 | ||||
| -rw-r--r-- | kernel/events/uprobes.c | 6 | 
2 files changed, 7 insertions, 7 deletions
| diff --git a/kernel/events/core.c b/kernel/events/core.c index 7541f6f85fcb..177e57c1a362 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -9403,7 +9403,7 @@ static void perf_event_mmap_event(struct perf_mmap_event *mmap_event)  		flags |= MAP_HUGETLB;  	if (file) { -		struct inode *inode; +		const struct inode *inode;  		dev_t dev;  		buf = kmalloc(PATH_MAX, GFP_KERNEL); @@ -9416,12 +9416,12 @@ static void perf_event_mmap_event(struct perf_mmap_event *mmap_event)  		 * need to add enough zero bytes after the string to handle  		 * the 64bit alignment we do later.  		 */ -		name = file_path(file, buf, PATH_MAX - sizeof(u64)); +		name = d_path(file_user_path(file), buf, PATH_MAX - sizeof(u64));  		if (IS_ERR(name)) {  			name = "//toolong";  			goto cpy_name;  		} -		inode = file_inode(vma->vm_file); +		inode = file_user_inode(vma->vm_file);  		dev = inode->i_sb->s_dev;  		ino = inode->i_ino;  		gen = inode->i_generation; @@ -9492,7 +9492,7 @@ static bool perf_addr_filter_match(struct perf_addr_filter *filter,  	if (!filter->path.dentry)  		return false; -	if (d_inode(filter->path.dentry) != file_inode(file)) +	if (d_inode(filter->path.dentry) != file_user_inode(file))  		return false;  	if (filter->offset > offset + size) diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c index 8709c69118b5..f11ceb8be8c4 100644 --- a/kernel/events/uprobes.c +++ b/kernel/events/uprobes.c @@ -2765,6 +2765,9 @@ static void handle_swbp(struct pt_regs *regs)  	handler_chain(uprobe, regs); +	/* Try to optimize after first hit. */ +	arch_uprobe_optimize(&uprobe->arch, bp_vaddr); +  	/*  	 * If user decided to take execution elsewhere, it makes little sense  	 * to execute the original instruction, so let's skip it. @@ -2772,9 +2775,6 @@ static void handle_swbp(struct pt_regs *regs)  	if (instruction_pointer(regs) != bp_vaddr)  		goto out; -	/* Try to optimize after first hit. */ -	arch_uprobe_optimize(&uprobe->arch, bp_vaddr); -  	if (arch_uprobe_skip_sstep(&uprobe->arch, regs))  		goto out; | 
