lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Wed, 17 Jun 2009 10:32:03 +0200
From:	Peter Zijlstra <a.p.zijlstra@...llo.nl>
To:	Ingo Molnar <mingo@...e.hu>
Cc:	Alan Cox <alan@...rguk.ukuu.org.uk>,
	Joerg Roedel <joerg.roedel@....com>,
	Steven Rostedt <rostedt@...dmis.org>,
	Andrew Morton <akpm@...ux-foundation.org>,
	LKML <linux-kernel@...r.kernel.org>
Subject: Re: bug in tty ldisc and friends

On Tue, 2009-06-16 at 12:36 +0200, Ingo Molnar wrote:

> +++ b/lib/dma-debug.c
> @@ -62,6 +62,8 @@ struct dma_debug_entry {
>  #endif
>  };
>  
> +static struct lock_class_key hash_bucket_class;
> +
>  struct hash_bucket {
>  	struct list_head list;
>  	spinlock_t lock;
> @@ -716,7 +718,8 @@ void dma_debug_init(u32 num_entries)
>  
>  	for (i = 0; i < HASH_SIZE; ++i) {
>  		INIT_LIST_HEAD(&dma_entry_hash[i].list);
> -		dma_entry_hash[i].lock = SPIN_LOCK_UNLOCKED;
> +		spin_lock_init(&dma_entry_hash[i].lock);
> +		lockdep_set_lock_class(&dma_entry_hash[i].lock, &hash_bucket_class);
>  	}
>  
>  	if (dma_debug_fs_init() != 0) {

I don't see what you need that lockdep_set_class() for, the
spin_lock_init() would already set a class specific to the callsite. And
since all these buckets are initialized from the same place (ie, this
loop), they'd all share the same class.

Its just that the old style SPIN_LOCK_UNLOCKED doesn't set a class and
then reverts to the static address of the lock object itself that these
locks used to have different classes.

So in short, yes the above patch should fix it, but it could be done
shorter..

and..

we really should do another round of SPIN_LOCK_UNLOCKED cleanups and
finally remove that thing.

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ