diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/atomic64_test.c | 3 | ||||
-rw-r--r-- | lib/dynamic_debug.c | 2 | ||||
-rw-r--r-- | lib/genalloc.c | 1 | ||||
-rw-r--r-- | lib/idr.c | 4 | ||||
-rw-r--r-- | lib/kobject_uevent.c | 3 |
5 files changed, 8 insertions, 5 deletions
diff --git a/lib/atomic64_test.c b/lib/atomic64_test.c index 9087d71537dd..250ed11d3ed2 100644 --- a/lib/atomic64_test.c +++ b/lib/atomic64_test.c | |||
@@ -113,7 +113,8 @@ static __init int test_atomic64(void) | |||
113 | r += one; | 113 | r += one; |
114 | BUG_ON(v.counter != r); | 114 | BUG_ON(v.counter != r); |
115 | 115 | ||
116 | #if defined(CONFIG_X86) || defined(CONFIG_MIPS) || defined(CONFIG_PPC) || defined(_ASM_GENERIC_ATOMIC64_H) | 116 | #if defined(CONFIG_X86) || defined(CONFIG_MIPS) || defined(CONFIG_PPC) || \ |
117 | defined(CONFIG_S390) || defined(_ASM_GENERIC_ATOMIC64_H) | ||
117 | INIT(onestwos); | 118 | INIT(onestwos); |
118 | BUG_ON(atomic64_dec_if_positive(&v) != (onestwos - 1)); | 119 | BUG_ON(atomic64_dec_if_positive(&v) != (onestwos - 1)); |
119 | r -= one; | 120 | r -= one; |
diff --git a/lib/dynamic_debug.c b/lib/dynamic_debug.c index 3df8eb17a607..02afc2533728 100644 --- a/lib/dynamic_debug.c +++ b/lib/dynamic_debug.c | |||
@@ -692,7 +692,7 @@ static void ddebug_table_free(struct ddebug_table *dt) | |||
692 | * Called in response to a module being unloaded. Removes | 692 | * Called in response to a module being unloaded. Removes |
693 | * any ddebug_table's which point at the module. | 693 | * any ddebug_table's which point at the module. |
694 | */ | 694 | */ |
695 | int ddebug_remove_module(char *mod_name) | 695 | int ddebug_remove_module(const char *mod_name) |
696 | { | 696 | { |
697 | struct ddebug_table *dt, *nextdt; | 697 | struct ddebug_table *dt, *nextdt; |
698 | int ret = -ENOENT; | 698 | int ret = -ENOENT; |
diff --git a/lib/genalloc.c b/lib/genalloc.c index 736c3b06398e..1923f1490e72 100644 --- a/lib/genalloc.c +++ b/lib/genalloc.c | |||
@@ -128,7 +128,6 @@ unsigned long gen_pool_alloc(struct gen_pool *pool, size_t size) | |||
128 | chunk = list_entry(_chunk, struct gen_pool_chunk, next_chunk); | 128 | chunk = list_entry(_chunk, struct gen_pool_chunk, next_chunk); |
129 | 129 | ||
130 | end_bit = (chunk->end_addr - chunk->start_addr) >> order; | 130 | end_bit = (chunk->end_addr - chunk->start_addr) >> order; |
131 | end_bit -= nbits + 1; | ||
132 | 131 | ||
133 | spin_lock_irqsave(&chunk->lock, flags); | 132 | spin_lock_irqsave(&chunk->lock, flags); |
134 | start_bit = bitmap_find_next_zero_area(chunk->bits, end_bit, 0, | 133 | start_bit = bitmap_find_next_zero_area(chunk->bits, end_bit, 0, |
@@ -602,7 +602,7 @@ void *idr_get_next(struct idr *idp, int *nextidp) | |||
602 | /* find first ent */ | 602 | /* find first ent */ |
603 | n = idp->layers * IDR_BITS; | 603 | n = idp->layers * IDR_BITS; |
604 | max = 1 << n; | 604 | max = 1 << n; |
605 | p = rcu_dereference(idp->top); | 605 | p = rcu_dereference_raw(idp->top); |
606 | if (!p) | 606 | if (!p) |
607 | return NULL; | 607 | return NULL; |
608 | 608 | ||
@@ -610,7 +610,7 @@ void *idr_get_next(struct idr *idp, int *nextidp) | |||
610 | while (n > 0 && p) { | 610 | while (n > 0 && p) { |
611 | n -= IDR_BITS; | 611 | n -= IDR_BITS; |
612 | *paa++ = p; | 612 | *paa++ = p; |
613 | p = rcu_dereference(p->ary[(id >> n) & IDR_MASK]); | 613 | p = rcu_dereference_raw(p->ary[(id >> n) & IDR_MASK]); |
614 | } | 614 | } |
615 | 615 | ||
616 | if (p) { | 616 | if (p) { |
diff --git a/lib/kobject_uevent.c b/lib/kobject_uevent.c index 59c15511d58a..b93579504dfa 100644 --- a/lib/kobject_uevent.c +++ b/lib/kobject_uevent.c | |||
@@ -83,6 +83,7 @@ out: | |||
83 | return ret; | 83 | return ret; |
84 | } | 84 | } |
85 | 85 | ||
86 | #ifdef CONFIG_NET | ||
86 | static int kobj_bcast_filter(struct sock *dsk, struct sk_buff *skb, void *data) | 87 | static int kobj_bcast_filter(struct sock *dsk, struct sk_buff *skb, void *data) |
87 | { | 88 | { |
88 | struct kobject *kobj = data; | 89 | struct kobject *kobj = data; |
@@ -98,6 +99,7 @@ static int kobj_bcast_filter(struct sock *dsk, struct sk_buff *skb, void *data) | |||
98 | 99 | ||
99 | return 0; | 100 | return 0; |
100 | } | 101 | } |
102 | #endif | ||
101 | 103 | ||
102 | static int kobj_usermode_filter(struct kobject *kobj) | 104 | static int kobj_usermode_filter(struct kobject *kobj) |
103 | { | 105 | { |
@@ -378,6 +380,7 @@ static int uevent_net_init(struct net *net) | |||
378 | if (!ue_sk->sk) { | 380 | if (!ue_sk->sk) { |
379 | printk(KERN_ERR | 381 | printk(KERN_ERR |
380 | "kobject_uevent: unable to create netlink socket!\n"); | 382 | "kobject_uevent: unable to create netlink socket!\n"); |
383 | kfree(ue_sk); | ||
381 | return -ENODEV; | 384 | return -ENODEV; |
382 | } | 385 | } |
383 | mutex_lock(&uevent_sock_mutex); | 386 | mutex_lock(&uevent_sock_mutex); |