Trying to vfree() nonexistent vm area

Duy-Ky Nguyen duykynguyen at hotmail.com
Tue Oct 7 17:14:01 EST 2008


Hello,

My driver uses ioremap() the IMMR_BASE @ 0xE0000000 to access registers.
A user-space app opens and close the deive file on every access to register.

There's no problem with FreeScale Linuc BSP 2..6.20 for eva board 
MPC83813E-RDB.

For the latest FreeScale Linuc BSP 2..6.24 , I have NO problem for the very 
FIRST run.
But after the 1st run, I have problem with the new FreeScale Linuc BSP 
2..6.24 with the following error message

        Trying to vfree() nonexistent vm area (c98a0000)

where c98a0000 is the mapped address of IMMR_BASE 0xE0000000.

So, it appears to me that the device file could be closed improperly as it's 
closed after the 1st run.

I really appreciate your time and help

Best Regards,

Duy-Ky

///////////////////////
Below is outline of the driver

init:
     ppc_base = (unsigned long) ioremap_nocache(PPC_BASE, PPC_SIZE);

//     ppc_base = (unsigned long) ioremap(PPC_BASE, PPC_SIZE);    // failure 
with this way too


close:
    iounmap((void __iomem *)ppc_base);
//    iounmap(PPC_BASE);        // failure with this way too !






More information about the Linuxppc-embedded mailing list