Hello,
So after much experimentation and thinking, I think I can come up with the following scenario why the kernel crashes:
When the aloop soundcard is closed by jackd, all data structures are freed. This is OK, but the code forgets to check if any timers are still running. Most of the time this goes well and nothing bad happens. But sometimes the dpcm->timer.function fires after all data is cleaned up/freed. And that is of course not very desirable.
I've attached a patch to the alsa-driver-hg20080516 version of drivers/aloop-kernel.c This patch does a del_timer() in three places, I would love to hear feedback from you guys on the list if some del_timers can be eliminated? It seems a bit paranoia but it works perfectly in my test setup.
So what do you guys think? I've never submitted patches before so I'm not sure if this is the correct procedure. Please correct me if necessary...
Kind regards, Benjamin van den Hout