|
@@ -148,8 +148,10 @@ void snd_seq_device_load_drivers(void)
|
|
flush_work(&autoload_work);
|
|
flush_work(&autoload_work);
|
|
}
|
|
}
|
|
EXPORT_SYMBOL(snd_seq_device_load_drivers);
|
|
EXPORT_SYMBOL(snd_seq_device_load_drivers);
|
|
|
|
+#define cancel_autoload_drivers() cancel_work_sync(&autoload_work)
|
|
#else
|
|
#else
|
|
#define queue_autoload_drivers() /* NOP */
|
|
#define queue_autoload_drivers() /* NOP */
|
|
|
|
+#define cancel_autoload_drivers() /* NOP */
|
|
#endif
|
|
#endif
|
|
|
|
|
|
/*
|
|
/*
|
|
@@ -159,6 +161,7 @@ static int snd_seq_device_dev_free(struct snd_device *device)
|
|
{
|
|
{
|
|
struct snd_seq_device *dev = device->device_data;
|
|
struct snd_seq_device *dev = device->device_data;
|
|
|
|
|
|
|
|
+ cancel_autoload_drivers();
|
|
put_device(&dev->dev);
|
|
put_device(&dev->dev);
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|