diff options
author | Patrick McManus <mcmanus@ducksong.com> | 2005-05-28 15:51:46 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-05-28 16:46:09 -0700 |
commit | 346e399b2a3a01b323fa74a0937e2d855479833b (patch) | |
tree | b71ee6ae6ac00be7a932f578fbbd546d9df25b39 /kernel/time.c | |
parent | c1e4c8d3ee3300f363a52fd4cf3d90fdf5098f5a (diff) | |
download | linux-346e399b2a3a01b323fa74a0937e2d855479833b.tar.gz linux-346e399b2a3a01b323fa74a0937e2d855479833b.tar.bz2 linux-346e399b2a3a01b323fa74a0937e2d855479833b.zip |
[PATCH] intelfb section fix
On Nov 16 2004 a change to intelfbdrv.c was commited (as part of 0.9.2 it
looks like) that added __initdata to all of the module param variables that
seems to create the opportunity for an oops.
I've recently been chasing an OOPS
(http://marc.theaimsgroup.com/?l=linux-kernel&m=111552250920370&w=2) I
created by reading every file on the /sys file system and I've traced it
back to this code in the intelfbdrv. Though I had root privs in my initial
problem report, it turns out they are un-necessary to generate the oops -
all you've got to do is "cat /sys/module/intelfb/parameters/mode" enough
times and eventually it will oops.
This is because sysfs automatically exports all module_param declarations
to the sysfs file system.. which means those variables can be dynamically
evaluated at any later time, which of course means marking them __initdata
is a bad idea ;).. when they happen to be char *'s it is an especially bad
idea ;).
Applying the patch below clears up the OOPS for me.
Signed-off-by: Patrick McManus <mcmanus@ducksong.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'kernel/time.c')
0 files changed, 0 insertions, 0 deletions