diff options
-rw-r--r-- | kernel/hw_breakpoint.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/kernel/hw_breakpoint.c b/kernel/hw_breakpoint.c index 7a56b22e0602..71ed3ce29e12 100644 --- a/kernel/hw_breakpoint.c +++ b/kernel/hw_breakpoint.c | |||
@@ -242,6 +242,17 @@ toggle_bp_slot(struct perf_event *bp, bool enable, enum bp_type_idx type, | |||
242 | } | 242 | } |
243 | 243 | ||
244 | /* | 244 | /* |
245 | * Function to perform processor-specific cleanup during unregistration | ||
246 | */ | ||
247 | __weak void arch_unregister_hw_breakpoint(struct perf_event *bp) | ||
248 | { | ||
249 | /* | ||
250 | * A weak stub function here for those archs that don't define | ||
251 | * it inside arch/.../kernel/hw_breakpoint.c | ||
252 | */ | ||
253 | } | ||
254 | |||
255 | /* | ||
245 | * Contraints to check before allowing this new breakpoint counter: | 256 | * Contraints to check before allowing this new breakpoint counter: |
246 | * | 257 | * |
247 | * == Non-pinned counter == (Considered as pinned for now) | 258 | * == Non-pinned counter == (Considered as pinned for now) |
@@ -339,6 +350,7 @@ void release_bp_slot(struct perf_event *bp) | |||
339 | { | 350 | { |
340 | mutex_lock(&nr_bp_mutex); | 351 | mutex_lock(&nr_bp_mutex); |
341 | 352 | ||
353 | arch_unregister_hw_breakpoint(bp); | ||
342 | __release_bp_slot(bp); | 354 | __release_bp_slot(bp); |
343 | 355 | ||
344 | mutex_unlock(&nr_bp_mutex); | 356 | mutex_unlock(&nr_bp_mutex); |