• Patrick McManus's avatar
    [PATCH] intelfb section fix · 346e399b
    Patrick McManus authored
    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: default avatarPatrick McManus <mcmanus@ducksong.com>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    346e399b
intelfbdrv.c 41 KB