From: Tim Sell <timothy.s...@unisys.com> 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.s...@unisys.com> Signed-off-by: Benjamin Romer <benjamin.ro...@unisys.com> --- 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 de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel