trace: Initialize alloc_list even without os_program_init() call
authorJouni Malinen <j@w1.fi>
Sat, 21 Feb 2015 15:32:47 +0000 (17:32 +0200)
committerJouni Malinen <j@w1.fi>
Sat, 21 Feb 2015 15:34:37 +0000 (17:34 +0200)
This makes it somewhat easier to use CONFIG_WPA_TRACE=y build with
external programs that might not be aware of the initialization
requirement, e.g., when linking wpa_ctrl.c with a program that does not
use the os_*() wrappers.

Signed-off-by: Jouni Malinen <j@w1.fi>
src/utils/list.h
src/utils/os_unix.c

index 6881130..ee2f485 100644 (file)
@@ -17,6 +17,8 @@ struct dl_list {
        struct dl_list *prev;
 };
 
+#define DL_LIST_HEAD_INIT(l) { &(l), &(l) }
+
 static inline void dl_list_init(struct dl_list *list)
 {
        list->next = list;
index 86fbd0a..e0c1125 100644 (file)
@@ -26,7 +26,7 @@
 #include "trace.h"
 #include "list.h"
 
-static struct dl_list alloc_list;
+static struct dl_list alloc_list = DL_LIST_HEAD_INIT(alloc_list);
 
 #define ALLOC_MAGIC 0xa84ef1b2
 #define FREED_MAGIC 0x67fd487a
@@ -321,9 +321,6 @@ int os_program_init(void)
        capset(&header, &cap);
 #endif /* ANDROID */
 
-#ifdef WPA_TRACE
-       dl_list_init(&alloc_list);
-#endif /* WPA_TRACE */
        return 0;
 }