Kernel Module; globals badly initialized, help needed.

Goddeeris Frederic Frederic.Goddeeris at
Thu Mar 14 18:39:49 EST 2002

(This messages was already posted on the linuxppc-dev list, put posting it
to this list failed...)


I am having lots of problems with global variables that are badly
initialized in a kernel
module. I wrote some very simple code showing the problem. The compiler
I use is gcc 2.95.3
(the one that comes with HHL2.0).

Is this a compiler problem -do I need to use some special options?- or
could it
be a problem with insmod, the kernel, ...?

I had this problem before with DECLARE_WAIT_QUEUE_HEAD where the
pointers inside the structure where badly initialized. The only
sollution was to reinitialize the fields at runtime. I posted this issue
and somebody reported he had seen the same issue.

Who can help we with this?


#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>

#if defined(CONFIG_SMP)
#define __SMP__

#include <linux/modversions.h>

char MyMemSpace[2*0x100];
char *MemPointers[2] = {&(MyMemSpace[0]), &(MyMemSpace[0x100])};

typedef struct
	char *szName;
	char *szName2;
} MyStruct_t;

MyStruct_t MyStruct[] = {{"A", "A2"}, {"B", "B2"}};

int init_module(void)
	printk("TestDriver 3 Loaded\n");

	printk("MyMemSpace: 0x%lx 0x%lx \n",  (long)&(MyMemSpace[0]),
	printk("MemPointers: 0x%lx 0x%lx \n", (long)(MemPointers[0]),

	printk("First Char is MyStruct[0].szName %c\n",

	return -1;

void cleanup_module(void)

This is what I get:

MyMemSpace: 0xc304a1ec 0xc304a2ec
MemPointers: 0xc304a1ec 0xc304a3ec
First Char is MyStruct[0].szName e

** Sent via the linuxppc-embedded mail list. See

More information about the Linuxppc-embedded mailing list