diff options
-rw-r--r-- | net/ipv4/route.c | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/net/ipv4/route.c b/net/ipv4/route.c index 283a72247e5e..2dc6dbb28467 100644 --- a/net/ipv4/route.c +++ b/net/ipv4/route.c | |||
@@ -210,17 +210,22 @@ struct rt_hash_bucket { | |||
210 | /* | 210 | /* |
211 | * Instead of using one spinlock for each rt_hash_bucket, we use a table of spinlocks | 211 | * Instead of using one spinlock for each rt_hash_bucket, we use a table of spinlocks |
212 | * The size of this table is a power of two and depends on the number of CPUS. | 212 | * The size of this table is a power of two and depends on the number of CPUS. |
213 | * (on lockdep we have a quite big spinlock_t, so keep the size down there) | ||
213 | */ | 214 | */ |
214 | #if NR_CPUS >= 32 | 215 | #ifdef CONFIG_LOCKDEP |
215 | #define RT_HASH_LOCK_SZ 4096 | 216 | # define RT_HASH_LOCK_SZ 256 |
216 | #elif NR_CPUS >= 16 | ||
217 | #define RT_HASH_LOCK_SZ 2048 | ||
218 | #elif NR_CPUS >= 8 | ||
219 | #define RT_HASH_LOCK_SZ 1024 | ||
220 | #elif NR_CPUS >= 4 | ||
221 | #define RT_HASH_LOCK_SZ 512 | ||
222 | #else | 217 | #else |
223 | #define RT_HASH_LOCK_SZ 256 | 218 | # if NR_CPUS >= 32 |
219 | # define RT_HASH_LOCK_SZ 4096 | ||
220 | # elif NR_CPUS >= 16 | ||
221 | # define RT_HASH_LOCK_SZ 2048 | ||
222 | # elif NR_CPUS >= 8 | ||
223 | # define RT_HASH_LOCK_SZ 1024 | ||
224 | # elif NR_CPUS >= 4 | ||
225 | # define RT_HASH_LOCK_SZ 512 | ||
226 | # else | ||
227 | # define RT_HASH_LOCK_SZ 256 | ||
228 | # endif | ||
224 | #endif | 229 | #endif |
225 | 230 | ||
226 | static spinlock_t *rt_hash_locks; | 231 | static spinlock_t *rt_hash_locks; |