aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/kobject.c9
-rw-r--r--lib/kobject_uevent.c2
-rw-r--r--lib/spinlock_debug.c6
3 files changed, 13 insertions, 4 deletions
diff --git a/lib/kobject.c b/lib/kobject.c
index 7a0e6809490d..efe67fa96a71 100644
--- a/lib/kobject.c
+++ b/lib/kobject.c
@@ -72,6 +72,8 @@ static int get_kobj_path_length(struct kobject *kobj)
72 * Add 1 to strlen for leading '/' of each level. 72 * Add 1 to strlen for leading '/' of each level.
73 */ 73 */
74 do { 74 do {
75 if (kobject_name(parent) == NULL)
76 return 0;
75 length += strlen(kobject_name(parent)) + 1; 77 length += strlen(kobject_name(parent)) + 1;
76 parent = parent->parent; 78 parent = parent->parent;
77 } while (parent); 79 } while (parent);
@@ -107,6 +109,8 @@ char *kobject_get_path(struct kobject *kobj, gfp_t gfp_mask)
107 int len; 109 int len;
108 110
109 len = get_kobj_path_length(kobj); 111 len = get_kobj_path_length(kobj);
112 if (len == 0)
113 return NULL;
110 path = kmalloc(len, gfp_mask); 114 path = kmalloc(len, gfp_mask);
111 if (!path) 115 if (!path)
112 return NULL; 116 return NULL;
@@ -162,6 +166,11 @@ int kobject_add(struct kobject * kobj)
162 return -ENOENT; 166 return -ENOENT;
163 if (!kobj->k_name) 167 if (!kobj->k_name)
164 kobj->k_name = kobj->name; 168 kobj->k_name = kobj->name;
169 if (!kobj->k_name) {
170 pr_debug("kobject attempted to be registered with no name!\n");
171 WARN_ON(1);
172 return -EINVAL;
173 }
165 parent = kobject_get(kobj->parent); 174 parent = kobject_get(kobj->parent);
166 175
167 pr_debug("kobject %s: registering. parent: %s, set: %s\n", 176 pr_debug("kobject %s: registering. parent: %s, set: %s\n",
diff --git a/lib/kobject_uevent.c b/lib/kobject_uevent.c
index f56e27ae9d52..1b1985c136ec 100644
--- a/lib/kobject_uevent.c
+++ b/lib/kobject_uevent.c
@@ -22,7 +22,7 @@
22#include <linux/kobject.h> 22#include <linux/kobject.h>
23#include <net/sock.h> 23#include <net/sock.h>
24 24
25#define BUFFER_SIZE 1024 /* buffer for the variables */ 25#define BUFFER_SIZE 2048 /* buffer for the variables */
26#define NUM_ENVP 32 /* number of env pointers */ 26#define NUM_ENVP 32 /* number of env pointers */
27 27
28#if defined(CONFIG_HOTPLUG) && defined(CONFIG_NET) 28#if defined(CONFIG_HOTPLUG) && defined(CONFIG_NET)
diff --git a/lib/spinlock_debug.c b/lib/spinlock_debug.c
index c8bb8cc899d7..d8b6bb419d49 100644
--- a/lib/spinlock_debug.c
+++ b/lib/spinlock_debug.c
@@ -72,9 +72,9 @@ static void __spin_lock_debug(spinlock_t *lock)
72 72
73 for (;;) { 73 for (;;) {
74 for (i = 0; i < loops_per_jiffy * HZ; i++) { 74 for (i = 0; i < loops_per_jiffy * HZ; i++) {
75 cpu_relax();
76 if (__raw_spin_trylock(&lock->raw_lock)) 75 if (__raw_spin_trylock(&lock->raw_lock))
77 return; 76 return;
77 __delay(1);
78 } 78 }
79 /* lockup suspected: */ 79 /* lockup suspected: */
80 if (print_once) { 80 if (print_once) {
@@ -144,9 +144,9 @@ static void __read_lock_debug(rwlock_t *lock)
144 144
145 for (;;) { 145 for (;;) {
146 for (i = 0; i < loops_per_jiffy * HZ; i++) { 146 for (i = 0; i < loops_per_jiffy * HZ; i++) {
147 cpu_relax();
148 if (__raw_read_trylock(&lock->raw_lock)) 147 if (__raw_read_trylock(&lock->raw_lock))
149 return; 148 return;
149 __delay(1);
150 } 150 }
151 /* lockup suspected: */ 151 /* lockup suspected: */
152 if (print_once) { 152 if (print_once) {
@@ -217,9 +217,9 @@ static void __write_lock_debug(rwlock_t *lock)
217 217
218 for (;;) { 218 for (;;) {
219 for (i = 0; i < loops_per_jiffy * HZ; i++) { 219 for (i = 0; i < loops_per_jiffy * HZ; i++) {
220 cpu_relax();
221 if (__raw_write_trylock(&lock->raw_lock)) 220 if (__raw_write_trylock(&lock->raw_lock))
222 return; 221 return;
222 __delay(1);
223 } 223 }
224 /* lockup suspected: */ 224 /* lockup suspected: */
225 if (print_once) { 225 if (print_once) {