diff options
Diffstat (limited to 'lib/list_sort.c')
-rw-r--r-- | lib/list_sort.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/lib/list_sort.c b/lib/list_sort.c index fbdbc867b252..a34c78c30d56 100644 --- a/lib/list_sort.c +++ b/lib/list_sort.c | |||
@@ -209,16 +209,16 @@ static int __init list_sort_test(void) | |||
209 | { | 209 | { |
210 | int i, count = 1, err = -ENOMEM; | 210 | int i, count = 1, err = -ENOMEM; |
211 | struct debug_el *el; | 211 | struct debug_el *el; |
212 | struct list_head *cur, *tmp; | 212 | struct list_head *cur; |
213 | LIST_HEAD(head); | 213 | LIST_HEAD(head); |
214 | 214 | ||
215 | printk(KERN_DEBUG "list_sort_test: start testing list_sort()\n"); | 215 | printk(KERN_DEBUG "list_sort_test: start testing list_sort()\n"); |
216 | 216 | ||
217 | elts = kmalloc(sizeof(void *) * TEST_LIST_LEN, GFP_KERNEL); | 217 | elts = kcalloc(TEST_LIST_LEN, sizeof(*elts), GFP_KERNEL); |
218 | if (!elts) { | 218 | if (!elts) { |
219 | printk(KERN_ERR "list_sort_test: error: cannot allocate " | 219 | printk(KERN_ERR "list_sort_test: error: cannot allocate " |
220 | "memory\n"); | 220 | "memory\n"); |
221 | goto exit; | 221 | return err; |
222 | } | 222 | } |
223 | 223 | ||
224 | for (i = 0; i < TEST_LIST_LEN; i++) { | 224 | for (i = 0; i < TEST_LIST_LEN; i++) { |
@@ -286,11 +286,9 @@ static int __init list_sort_test(void) | |||
286 | 286 | ||
287 | err = 0; | 287 | err = 0; |
288 | exit: | 288 | exit: |
289 | for (i = 0; i < TEST_LIST_LEN; i++) | ||
290 | kfree(elts[i]); | ||
289 | kfree(elts); | 291 | kfree(elts); |
290 | list_for_each_safe(cur, tmp, &head) { | ||
291 | list_del(cur); | ||
292 | kfree(container_of(cur, struct debug_el, list)); | ||
293 | } | ||
294 | return err; | 292 | return err; |
295 | } | 293 | } |
296 | module_init(list_sort_test); | 294 | module_init(list_sort_test); |