Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb: x86,kgdb: Fix hw breakpoint regression
This commit is contained in:
		
				commit
				
					
						540ad6b62b
					
				
			
		
					 1 changed files with 7 additions and 2 deletions
				
			
		|  | @ -572,7 +572,6 @@ static int __kgdb_notify(struct die_args *args, unsigned long cmd) | |||
| 	return NOTIFY_STOP; | ||||
| } | ||||
| 
 | ||||
| #ifdef CONFIG_KGDB_LOW_LEVEL_TRAP | ||||
| int kgdb_ll_trap(int cmd, const char *str, | ||||
| 		 struct pt_regs *regs, long err, int trap, int sig) | ||||
| { | ||||
|  | @ -590,7 +589,6 @@ int kgdb_ll_trap(int cmd, const char *str, | |||
| 
 | ||||
| 	return __kgdb_notify(&args, cmd); | ||||
| } | ||||
| #endif /* CONFIG_KGDB_LOW_LEVEL_TRAP */ | ||||
| 
 | ||||
| static int | ||||
| kgdb_notify(struct notifier_block *self, unsigned long cmd, void *ptr) | ||||
|  | @ -625,6 +623,12 @@ int kgdb_arch_init(void) | |||
| 	return register_die_notifier(&kgdb_notifier); | ||||
| } | ||||
| 
 | ||||
| static void kgdb_hw_overflow_handler(struct perf_event *event, int nmi, | ||||
| 		struct perf_sample_data *data, struct pt_regs *regs) | ||||
| { | ||||
| 	kgdb_ll_trap(DIE_DEBUG, "debug", regs, 0, 0, SIGTRAP); | ||||
| } | ||||
| 
 | ||||
| void kgdb_arch_late(void) | ||||
| { | ||||
| 	int i, cpu; | ||||
|  | @ -655,6 +659,7 @@ void kgdb_arch_late(void) | |||
| 		for_each_online_cpu(cpu) { | ||||
| 			pevent = per_cpu_ptr(breakinfo[i].pev, cpu); | ||||
| 			pevent[0]->hw.sample_period = 1; | ||||
| 			pevent[0]->overflow_handler = kgdb_hw_overflow_handler; | ||||
| 			if (pevent[0]->destroy != NULL) { | ||||
| 				pevent[0]->destroy = NULL; | ||||
| 				release_bp_slot(*pevent); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Linus Torvalds
				Linus Torvalds