|
@@ -49,28 +49,24 @@
|
|
|
#define MAX_IDR_FREE (MAX_IDR_LEVEL * 2)
|
|
|
|
|
|
struct idr_layer {
|
|
|
- unsigned long bitmap; /* A zero bit means "space here" */
|
|
|
+ unsigned long bitmap; /* A zero bit means "space here" */
|
|
|
struct idr_layer __rcu *ary[1<<IDR_BITS];
|
|
|
- int count; /* When zero, we can release it */
|
|
|
- int layer; /* distance from leaf */
|
|
|
- struct rcu_head rcu_head;
|
|
|
+ int count; /* When zero, we can release it */
|
|
|
+ int layer; /* distance from leaf */
|
|
|
+ struct rcu_head rcu_head;
|
|
|
};
|
|
|
|
|
|
struct idr {
|
|
|
- struct idr_layer __rcu *top;
|
|
|
- struct idr_layer *id_free;
|
|
|
- int layers; /* only valid without concurrent changes */
|
|
|
- int id_free_cnt;
|
|
|
- spinlock_t lock;
|
|
|
+ struct idr_layer __rcu *top;
|
|
|
+ struct idr_layer *id_free;
|
|
|
+ int layers; /* only valid w/o concurrent changes */
|
|
|
+ int id_free_cnt;
|
|
|
+ spinlock_t lock;
|
|
|
};
|
|
|
|
|
|
-#define IDR_INIT(name) \
|
|
|
-{ \
|
|
|
- .top = NULL, \
|
|
|
- .id_free = NULL, \
|
|
|
- .layers = 0, \
|
|
|
- .id_free_cnt = 0, \
|
|
|
- .lock = __SPIN_LOCK_UNLOCKED(name.lock), \
|
|
|
+#define IDR_INIT(name) \
|
|
|
+{ \
|
|
|
+ .lock = __SPIN_LOCK_UNLOCKED(name.lock), \
|
|
|
}
|
|
|
#define DEFINE_IDR(name) struct idr name = IDR_INIT(name)
|
|
|
|