I've been following this thread and tried both patches as indicated by Orion on a Fedora 6 with 2.6.20-1.2962 kernel, but the system hangs as soon as I plug the PCI board.
Then I went through all the code in common.c and replaced all references to:
acx_device_t *adev = (acx_device_t*)data;
acx_device_t *adev =
container_of (work, acx_device_t, after_interrupt_task);
since the work_struct data field doesn´t hold any possible reference to the acx_device structure. Expectedly, the kernel still hangs.
I suspect that there is really a compatibility issue here. Nothing guarantees that the code that calls
acx_e_after_interrupt_task(struct work_struct *work) is really passing a pointer to a work_struct.
Does anyone know if this problem has been solved somewhere else?
Thank's a lot for helping.