Ok, so I got no response. I will summarize on the theory that people
tend to ignore long emails:
1) My ethernet driver works in 2.6.8.1, but does not in newer kernels.
Note that nothing in the driver has changed. So either there is a bug
in the kernel now, or one has been exposed in my driver.
2) The bug causes the kernel to stop doing useful work as soon as
schedule_work is called. I can confirm that the function executes to
completion, and that the process of scheduling the work is terminated
in try_to_wake_up() when it determines that the task (presumably the
task keventd is running in) is already running. Once this happens, the
kernel stops printing out information, and the bdi2000 indicates it is
frequently in interrupt handling routines.
3) I desperately need to know what's wrong, and if this is not the
right place to ask, please tell me where is.
Thanks,
Andy Fleming
|