|
@@ -241,6 +241,17 @@ toggle_bp_slot(struct perf_event *bp, bool enable, enum bp_type_idx type,
|
|
|
per_cpu(nr_cpu_bp_pinned[type], bp->cpu) -= weight;
|
|
|
}
|
|
|
|
|
|
+/*
|
|
|
+ * Function to perform processor-specific cleanup during unregistration
|
|
|
+ */
|
|
|
+__weak void arch_unregister_hw_breakpoint(struct perf_event *bp)
|
|
|
+{
|
|
|
+ /*
|
|
|
+ * A weak stub function here for those archs that don't define
|
|
|
+ * it inside arch/.../kernel/hw_breakpoint.c
|
|
|
+ */
|
|
|
+}
|
|
|
+
|
|
|
/*
|
|
|
* Contraints to check before allowing this new breakpoint counter:
|
|
|
*
|
|
@@ -339,6 +350,7 @@ void release_bp_slot(struct perf_event *bp)
|
|
|
{
|
|
|
mutex_lock(&nr_bp_mutex);
|
|
|
|
|
|
+ arch_unregister_hw_breakpoint(bp);
|
|
|
__release_bp_slot(bp);
|
|
|
|
|
|
mutex_unlock(&nr_bp_mutex);
|