linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* Kernel Module; globals badly initialized, help needed.
@ 2002-03-07 15:38 Goddeeris Frederic
  2002-03-28  0:49 ` Paul Mackerras
  0 siblings, 1 reply; 5+ messages in thread
From: Goddeeris Frederic @ 2002-03-07 15:38 UTC (permalink / raw)
  To: ''linuxppc-dev@lists.linuxppc.org' '


Hi,

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?

Thanks!
Frederic


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


#if defined(CONFIG_SMP)
#define __SMP__
#endif

#if defined(CONFIG_MODVERSIONS)
#define MODVERSIONS
#include <linux/modversions.h>
#endif

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]),
(long)&(MyMemSpace[0x100]));
	printk("MemPointers: 0x%lx 0x%lx \n", (long)(MemPointers[0]),
(long)(MemPointers[1]));

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


	return -1;
}

void cleanup_module(void)
{
	return;
}




This is what I get:

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

** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/

^ permalink raw reply	[flat|nested] 5+ messages in thread
* Kernel Module; globals badly initialized, help needed.
@ 2002-03-14  7:39 Goddeeris Frederic
  2002-03-19  0:22 ` Bruno Vetel
  0 siblings, 1 reply; 5+ messages in thread
From: Goddeeris Frederic @ 2002-03-14  7:39 UTC (permalink / raw)
  To: 'linuxppc-embedded@lists.linuxppc.org'


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

Hi,

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?

Thanks!
Frederic


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


#if defined(CONFIG_SMP)
#define __SMP__
#endif

#if defined(CONFIG_MODVERSIONS)
#define MODVERSIONS
#include <linux/modversions.h>
#endif

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]),
(long)&(MyMemSpace[0x100]));
	printk("MemPointers: 0x%lx 0x%lx \n", (long)(MemPointers[0]),
(long)(MemPointers[1]));

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


	return -1;
}

void cleanup_module(void)
{
	return;
}




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 http://lists.linuxppc.org/

^ permalink raw reply	[flat|nested] 5+ messages in thread
* RE: Kernel Module; globals badly initialized, help needed.
@ 2002-03-28  8:42 Goddeeris Frederic
  0 siblings, 0 replies; 5+ messages in thread
From: Goddeeris Frederic @ 2002-03-28  8:42 UTC (permalink / raw)
  To: 'paulus@samba.org', 'mcharleb@qualcomm.com'; +Cc: linuxppc-dev


Hi Paul,
Hi Marc,

It looks like the issue is caused by insmod of Busybox...

I posted a question about it on the BusyBox mailing list.
Somebody mailed me that he has a similar problem that he solved by updating
his busybox but I did not see any reference to this issue in the BB
changelog.

Thanks,
Frederic

** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2002-03-28  8:42 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-03-07 15:38 Kernel Module; globals badly initialized, help needed Goddeeris Frederic
2002-03-28  0:49 ` Paul Mackerras
  -- strict thread matches above, loose matches on Subject: below --
2002-03-14  7:39 Goddeeris Frederic
2002-03-19  0:22 ` Bruno Vetel
2002-03-28  8:42 Goddeeris Frederic

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).