From: Tim Sell <Timothy.Sell@xxxxxxxxxx> visornic_cleanup() was previously incorrectly destroying its global workqueues prior to cleaning up the devices which used them. This patch corrects the order of these operations. Signed-off-by: Tim Sell <Timothy.Sell@xxxxxxxxxx> Signed-off-by: Benjamin Romer <benjamin.romer@xxxxxxxxxx> --- drivers/staging/unisys/visornic/visornic_main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/staging/unisys/visornic/visornic_main.c b/drivers/staging/unisys/visornic/visornic_main.c index ba46053..14977ad 100644 --- a/drivers/staging/unisys/visornic/visornic_main.c +++ b/drivers/staging/unisys/visornic/visornic_main.c @@ -2241,6 +2241,8 @@ cleanup_debugfs: */ static void visornic_cleanup(void) { + visorbus_unregister_visor_driver(&visornic_driver); + if (visornic_serverdown_workqueue) { flush_workqueue(visornic_serverdown_workqueue); destroy_workqueue(visornic_serverdown_workqueue); @@ -2251,7 +2253,6 @@ static void visornic_cleanup(void) } debugfs_remove_recursive(visornic_debugfs_dir); - visorbus_unregister_visor_driver(&visornic_driver); kfree(dev_num_pool); dev_num_pool = NULL; } -- 2.1.4 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel