Merge tag 'firewire-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee139...
[~shefty/rdma-dev.git] / sound / firewire / speakers.c
index 18b9b5607f3c8d415a4a570835d5e4830c34504f..297244e658d9158663239d9744fee44aec00ab6a 100644 (file)
@@ -774,9 +774,10 @@ static int __devexit fwspk_remove(struct device *dev)
 {
        struct fwspk *fwspk = dev_get_drvdata(dev);
 
-       mutex_lock(&fwspk->mutex);
        amdtp_out_stream_pcm_abort(&fwspk->stream);
        snd_card_disconnect(fwspk->card);
+
+       mutex_lock(&fwspk->mutex);
        fwspk_stop_stream(fwspk);
        mutex_unlock(&fwspk->mutex);
 
@@ -792,8 +793,8 @@ static void fwspk_bus_reset(struct fw_unit *unit)
        fcp_bus_reset(fwspk->unit);
 
        if (cmp_connection_update(&fwspk->connection) < 0) {
-               mutex_lock(&fwspk->mutex);
                amdtp_out_stream_pcm_abort(&fwspk->stream);
+               mutex_lock(&fwspk->mutex);
                fwspk_stop_stream(fwspk);
                mutex_unlock(&fwspk->mutex);
                return;