|
@@ -4330,6 +4330,7 @@ out_unreg_region:
|
|
|
out_unreg_blkdev:
|
|
|
unregister_blkdev(FLOPPY_MAJOR, "fd");
|
|
|
out_put_disk:
|
|
|
+ destroy_workqueue(floppy_wq);
|
|
|
for (drive = 0; drive < N_DRIVE; drive++) {
|
|
|
if (!disks[drive])
|
|
|
break;
|
|
@@ -4340,7 +4341,6 @@ out_put_disk:
|
|
|
}
|
|
|
put_disk(disks[drive]);
|
|
|
}
|
|
|
- destroy_workqueue(floppy_wq);
|
|
|
return err;
|
|
|
}
|
|
|
|
|
@@ -4555,6 +4555,8 @@ static void __exit floppy_module_exit(void)
|
|
|
unregister_blkdev(FLOPPY_MAJOR, "fd");
|
|
|
platform_driver_unregister(&floppy_driver);
|
|
|
|
|
|
+ destroy_workqueue(floppy_wq);
|
|
|
+
|
|
|
for (drive = 0; drive < N_DRIVE; drive++) {
|
|
|
del_timer_sync(&motor_off_timer[drive]);
|
|
|
|
|
@@ -4578,7 +4580,6 @@ static void __exit floppy_module_exit(void)
|
|
|
|
|
|
cancel_delayed_work_sync(&fd_timeout);
|
|
|
cancel_delayed_work_sync(&fd_timer);
|
|
|
- destroy_workqueue(floppy_wq);
|
|
|
|
|
|
if (atomic_read(&usage_count))
|
|
|
floppy_release_irq_and_dma();
|