floppy.c soft lockup

Mark Hounschell
2007-05-29T17:40:43Z

Changes in floppy.c from 2.6.17 and 2.6.18 have broken an application I have. I have tracked
it down to a single line of code. When the following patch is applied to the version in 2.6.18
my application works.

--- linux-2.6.18/drivers/block/floppy.c 2006-09-19 23:42:06.000000000 -0400
+++ linux-2.6.18-crt/drivers/block/floppy.c 2007-05-29 09:12:20.000000000 -0400
@@ -893,7 +893,6 @@
set_current_state(TASK_RUNNING);
remove_wait_queue(&fdc_wait, &wait);

- flush_scheduled_work();
}
command_status = FD_COMMAND_NONE;

I don't claim to understand the changes from 2.6.17 to 2.6.18 except for the devfs removal.
All I can say is this one line of code kills the application. I have tried to write a short pgm
that shows my problem but everything else I write seems to work. The application only runs
on SMP machines and uses process and irq affinities with real-time scheduling. When I turn
off process and irq affinities the application runs.

I have tried kernels up through 2.6.21.1 with the same results. All kernels from 2.6.18 up
require that I remove this one line of code or my application does not work?

Regards
Mark