2001-10-02 15:32:53

by jdthood

[permalink] [raw]
Subject: Re: Untitled

> Hello,
> I have written a linux kernel module. The linux version is 2.2.14.
> In this module I have declared an array of size 2048. If I use this array, the execution of this module function
> causes kernel to reboot. If I kmalloc() this array then execution of this module function doesnot cause any
> problem.
> Can you explain this behaviour?
> Thnaks,
> Dinesh

Hmm. Perhaps there's is a bug in your module.

--
Thomas Hood
(Don't reply to the From: address but to jdthood_AT_yahoo.co.uk)


2001-10-02 15:41:03

by Jeff Voskamp

[permalink] [raw]
Subject: Re: Untitled

>
> > Hello,
> > I have written a linux kernel module. The linux version is 2.2.14.
> > In this module I have declared an array of size 2048. If I use this array, the execution of this module function
> > causes kernel to reboot. If I kmalloc() this array then execution of this module function doesnot cause any
> > problem.
> > Can you explain this behaviour?
> > Thnaks,
> > Dinesh
>
> Hmm. Perhaps there's is a bug in your module.
>
> --
> Thomas Hood
> (Don't reply to the From: address but to jdthood_AT_yahoo.co.uk)


More likely he's causing a kernel stack overflow. If it's a local variable
it's going to be either 4k or 8k (int or long) and the kernel stack is only
8k on intel. Try making it a static array outside of any function.

Jeff Voskamp