net: wrong test in inet_ehash_locks_alloc()
authorEric Dumazet <dada1@cosmosbay.com>
Wed, 28 Jan 2009 01:45:10 +0000 (17:45 -0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 28 Jan 2009 01:45:10 +0000 (17:45 -0800)
In commit 9db66bdcc83749affe61c61eb8ff3cf08f42afec (net: convert
TCP/DCCP ehash rwlocks to spinlocks), I forgot to change one
occurrence of rwlock_t to spinlock_t

I believe sizeof(raw_spinlock_t) might be > 0 on !CONFIG_SMP if
CONFIG_DEBUG_SPINLOCK while sizeof(raw_rwlock_t) should be 0 in this
case.

Fortunatly, CONFIG_DEBUG_SPINLOCK adds fields to both spinlock_t and
rwlock_t, but at this might change in the future (being able to debug
spinlocks but not rwlocks for example), better to be safe.

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/inet_hashtables.h

index f44bb5c77a70cdb4d5cfdea2688a1a8ec3492b20..d0a043153cc6741de298c53f18773f05adc0b0ba 100644 (file)
@@ -182,7 +182,7 @@ static inline int inet_ehash_locks_alloc(struct inet_hashinfo *hashinfo)
                size = 2048;
        if (nr_pcpus >= 32)
                size = 4096;
-       if (sizeof(rwlock_t) != 0) {
+       if (sizeof(spinlock_t) != 0) {
 #ifdef CONFIG_NUMA
                if (size * sizeof(spinlock_t) > PAGE_SIZE)
                        hashinfo->ehash_locks = vmalloc(size * sizeof(spinlock_t));