Hi all, I have written a keypad driver which is a memory mapped device which works perfectly fine when teh application and drivers are on NFS rather than on JFFS2 filesystem.__ I have already spent two months trying to debug it. But even a minimal keypad driver has trouble working together with JFFS2. I never had any problems on NFS. I put my drivers and application onto JFFS2 filesystem and then mount that partition and run the application and it runs succesfully but when i try to unmount the partitioned just mounted it hangs. I am using timer interrupt in my keypad driver which is running on a JFFS2 filesystem on DataFlash on AT91RM9200DK on linux-2.4.27-vrs1 (using 20050304 MTD snapshot) I think it is some bug in JFFS2, but I am not sure. Is JFFS2 really "production stable" ? I am hereby attaching the code of my Keypad Driver and providing some overview of what the code is doing INSMOD: when the keypad driver is loaded into the kernel, the timer interrupt is initialized but it does nothing till the point the application tries to read from the keypad. SCAN_KBD ( Timer Interrupt function) After timer expiry this function is called and it checks for the flag, whether it should read from memory mapped device or not ( which is set when the application tries to read from keypad) and if its false , it just adds the timer again and returns. So when application reads , its sets the flag SCHEDULE_OR_NOT to 1 and thereafter the timer interrupt actually reads from a memory mapped region where keypad is sitting. Once it reads from the memory mapped region , it checks which key was being pressed and then ignores the key if the same key is pressed till certain timeout ( HZ/5 ). READ: Sets the flag SCHEDULE_OR_NOT to 1 so that timer interrupt actually starts reading from memory mapped location. RMMOD: When the driver is removed from the kernel , it sets a flag CLOSE_TIMER to 1 , which is checked by the timer interrupt and it never adds itself again if this flag is set., and then it calls del_timer just to check if timer is still added it will delete it. and thereby unmap the memory mapped region that was being used for keypad. Narinder