Re: [PATCH] lockdep: be nice about building from userspace

From: Sasha Levin
Date: Tue Nov 20 2012 - 01:40:52 EST


Ping?

On 11/12/2012 03:50 PM, Sasha Levin wrote:
> Lockdep is an awesome piece of code which detects locking issues which are
> relevant both to userspace and kernelspace. We can easily make lockdep
> work in userspace since there is really no kernel spacific magic going
> on in the code.
>
> All we need is to wrap two functions which are used by lockdep and are
> very kernel specific.
>
> Doing that will allow tools located in tools/ to easily utilize lockdep's
> code for their own use.
>
> Signed-off-by: Sasha Levin <sasha.levin@xxxxxxxxxx>
> ---
> kernel/lockdep.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/kernel/lockdep.c b/kernel/lockdep.c
> index 7981e5b..e898cfe 100644
> --- a/kernel/lockdep.c
> +++ b/kernel/lockdep.c
> @@ -584,6 +584,7 @@ static int very_verbose(struct lock_class *class)
> /*
> * Is this the address of a static object:
> */
> +#ifdef __KERNEL__
> static int static_obj(void *obj)
> {
> unsigned long start = (unsigned long) &_stext,
> @@ -610,6 +611,7 @@ static int static_obj(void *obj)
> */
> return is_module_address(addr) || is_module_percpu_address(addr);
> }
> +#endif
>
> /*
> * To make lock name printouts unique, we calculate a unique
> @@ -4109,6 +4111,7 @@ void debug_check_no_locks_held(struct task_struct *task)
> print_held_locks_bug(task);
> }
>
> +#ifdef __KERNEL__
> void debug_show_all_locks(void)
> {
> struct task_struct *g, *p;
> @@ -4166,6 +4169,7 @@ retry:
> read_unlock(&tasklist_lock);
> }
> EXPORT_SYMBOL_GPL(debug_show_all_locks);
> +#endif
>
> /*
> * Careful: only use this function if you are sure that
>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/