|
@@ -235,16 +235,25 @@ struct rt_hash_bucket {
|
|
|
|
|
|
static spinlock_t *rt_hash_locks;
|
|
|
# define rt_hash_lock_addr(slot) &rt_hash_locks[(slot) & (RT_HASH_LOCK_SZ - 1)]
|
|
|
-# define rt_hash_lock_init() { \
|
|
|
- int i; \
|
|
|
- rt_hash_locks = kmalloc(sizeof(spinlock_t) * RT_HASH_LOCK_SZ, GFP_KERNEL); \
|
|
|
- if (!rt_hash_locks) panic("IP: failed to allocate rt_hash_locks\n"); \
|
|
|
- for (i = 0; i < RT_HASH_LOCK_SZ; i++) \
|
|
|
- spin_lock_init(&rt_hash_locks[i]); \
|
|
|
- }
|
|
|
+
|
|
|
+static __init void rt_hash_lock_init(void)
|
|
|
+{
|
|
|
+ int i;
|
|
|
+
|
|
|
+ rt_hash_locks = kmalloc(sizeof(spinlock_t) * RT_HASH_LOCK_SZ,
|
|
|
+ GFP_KERNEL);
|
|
|
+ if (!rt_hash_locks)
|
|
|
+ panic("IP: failed to allocate rt_hash_locks\n");
|
|
|
+
|
|
|
+ for (i = 0; i < RT_HASH_LOCK_SZ; i++)
|
|
|
+ spin_lock_init(&rt_hash_locks[i]);
|
|
|
+}
|
|
|
#else
|
|
|
# define rt_hash_lock_addr(slot) NULL
|
|
|
-# define rt_hash_lock_init()
|
|
|
+
|
|
|
+static inline void rt_hash_lock_init(void)
|
|
|
+{
|
|
|
+}
|
|
|
#endif
|
|
|
|
|
|
static struct rt_hash_bucket *rt_hash_table;
|