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; |
