I am developing a custom driver in Linux for the MCF54450 processor. This driver uses a PIT timer to trigger an interrupt roughly 2,000 times per second. However, this seems to be causing problems for userspace programs, specifically programs that use the execve() system call. Every once in a while, a program will crash while attempting to call execve(). It seems to be related to the driver and its interrupt, because removing the driver causes the bug to stop. The bug can be demonstrated by installing the driver, which starts the interrupt, and then running a program which simply uses execve() to call itself, resulting in an infinite loop of process creation. I've tried slowing down the interrupt, but the crash still occurs.
I seem to remember something like this happening before, with programs mysteriously crashing, but it never happened as frequently as it does with this new driver. Has anyone encountered a similar issue? I'm running kernel 2.6.38 with Freescale patches and some custom in-house patches for bug fixes and a GPIO driver. Thanks in advance.