|
@@ -831,6 +831,7 @@ void __kprobes recycle_rp_inst(struct kretprobe_instance *ri,
|
|
|
|
|
|
void __kprobes kretprobe_hash_lock(struct task_struct *tsk,
|
|
|
struct hlist_head **head, unsigned long *flags)
|
|
|
+__acquires(hlist_lock)
|
|
|
{
|
|
|
unsigned long hash = hash_ptr(tsk, KPROBE_HASH_BITS);
|
|
|
spinlock_t *hlist_lock;
|
|
@@ -842,6 +843,7 @@ void __kprobes kretprobe_hash_lock(struct task_struct *tsk,
|
|
|
|
|
|
static void __kprobes kretprobe_table_lock(unsigned long hash,
|
|
|
unsigned long *flags)
|
|
|
+__acquires(hlist_lock)
|
|
|
{
|
|
|
spinlock_t *hlist_lock = kretprobe_table_lock_ptr(hash);
|
|
|
spin_lock_irqsave(hlist_lock, *flags);
|
|
@@ -849,6 +851,7 @@ static void __kprobes kretprobe_table_lock(unsigned long hash,
|
|
|
|
|
|
void __kprobes kretprobe_hash_unlock(struct task_struct *tsk,
|
|
|
unsigned long *flags)
|
|
|
+__releases(hlist_lock)
|
|
|
{
|
|
|
unsigned long hash = hash_ptr(tsk, KPROBE_HASH_BITS);
|
|
|
spinlock_t *hlist_lock;
|
|
@@ -859,6 +862,7 @@ void __kprobes kretprobe_hash_unlock(struct task_struct *tsk,
|
|
|
|
|
|
static void __kprobes kretprobe_table_unlock(unsigned long hash,
|
|
|
unsigned long *flags)
|
|
|
+__releases(hlist_lock)
|
|
|
{
|
|
|
spinlock_t *hlist_lock = kretprobe_table_lock_ptr(hash);
|
|
|
spin_unlock_irqrestore(hlist_lock, *flags);
|