mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-09-04 20:19:47 +08:00 
			
		
		
		
	[POWERPC] Better check in show_instructions
Instead of just checking that an address is in the right range, use the provided __kernel_text_address() helper which covers both the kernel and module text sections. Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
		
							parent
							
								
									99f4861025
								
							
						
					
					
						commit
						00ae36de49
					
				| @ -341,13 +341,6 @@ struct task_struct *__switch_to(struct task_struct *prev, | ||||
| 
 | ||||
| static int instructions_to_print = 16; | ||||
| 
 | ||||
| #ifdef CONFIG_PPC64 | ||||
| #define BAD_PC(pc)	((REGION_ID(pc) != KERNEL_REGION_ID) && \ | ||||
| 		         (REGION_ID(pc) != VMALLOC_REGION_ID)) | ||||
| #else | ||||
| #define BAD_PC(pc)	((pc) < KERNELBASE) | ||||
| #endif | ||||
| 
 | ||||
| static void show_instructions(struct pt_regs *regs) | ||||
| { | ||||
| 	int i; | ||||
| @ -366,7 +359,8 @@ static void show_instructions(struct pt_regs *regs) | ||||
| 		 * bad address because the pc *should* only be a | ||||
| 		 * kernel address. | ||||
| 		 */ | ||||
| 		if (BAD_PC(pc) || __get_user(instr, (unsigned int __user *)pc)) { | ||||
| 		if (!__kernel_text_address(pc) || | ||||
| 		     __get_user(instr, (unsigned int __user *)pc)) { | ||||
| 			printk("XXXXXXXX "); | ||||
| 		} else { | ||||
| 			if (regs->nip == pc) | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Anton Blanchard
						Anton Blanchard