oops in 2.4.20-8 when writing to address obtained by vmalloc

From: jgo_bruker (jgo_bruker_at_despammed.com)
Date: 09/14/04


Date: 14 Sep 2004 07:43:04 -0700

I'm writing a device driver and load it as module into the linux
kernel on an x86 system.
When I switched from 2.4.20-4GB to 2.4.20-8, I didn't change the
compiler or the compiler options, I only changed the headers included
to those of 2.4.20-8, of course.

In linux kernel 2.4.20-8, when I'm writing to an address obtained with
vmalloc an oops is generated saying "Unable to handle kernel paging
request at virtual address d2cf8000... Oops: 000b".
kmalloc though works fine.
vmalloc also works fine in kernel 2.4.20-4GB.
The address obtained from vmalloc can be read without problems.
The return value of vmalloc is checked to be non-null, of course.

code example:
    int val, *ip = vmalloc (0x2000);
    if (ip != NULL) {
        val = ip[0]; /*ok*/
        ip[0] = val; /*causes oops in kernel 2.4.20-8*/
        vfree (ip);
    }

Any help will be appreciated.
Thanks, Juergen



Relevant Pages