Trying to vfree() nonexistent vm area

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


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 

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,


Below is outline of the driver

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

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

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

More information about the Linuxppc-embedded mailing list