* Jarkko Sakkinen <jarkko.sakki...@linux.intel.com> wrote:

> --- a/kernel/kprobes.c
> +++ b/kernel/kprobes.c
> @@ -564,7 +564,7 @@ static void kprobe_optimizer(struct work_struct *work)
>       cpus_read_lock();
>       mutex_lock(&text_mutex);
>       /* Lock modules while optimizing kprobes */
> -     mutex_lock(&module_mutex);
> +     lock_modules();
>  
>       /*
>        * Step 1: Unoptimize kprobes and collect cleaned (unused and disarmed)
> @@ -589,7 +589,7 @@ static void kprobe_optimizer(struct work_struct *work)
>       /* Step 4: Free cleaned kprobes after quiesence period */
>       do_free_cleaned_kprobes();
>  
> -     mutex_unlock(&module_mutex);
> +     unlock_modules();
>       mutex_unlock(&text_mutex);
>       cpus_read_unlock();

BTW., it would be nice to expand on the comments above - exactly which 
parts of the modules code is being serialized against and why?

We already hold the text_mutex here, which should protect against most 
kprobes related activities interfering - and it's unclear (to me) 
which part of the modules code is being serialized with here, and the 
'lock modules while optimizing kprobes' comments is unhelpful. :-)

Thanks,

        Ingo

Reply via email to