Commit 36a755cf authored by Stefan Richter's avatar Stefan Richter

firewire: cdev: shut down iso context before freeing the buffer

DMA must be halted before we DMA-unmap and free the DMA buffer.  Since
we cannot rely on the client to stop the context before it closes the
fd, we have to reorder fw_iso_buffer_destroy vs. fw_iso_context_destroy.
Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
parent 3ba94986
...@@ -1386,12 +1386,12 @@ static int fw_device_op_release(struct inode *inode, struct file *file) ...@@ -1386,12 +1386,12 @@ static int fw_device_op_release(struct inode *inode, struct file *file)
list_del(&client->link); list_del(&client->link);
mutex_unlock(&client->device->client_list_mutex); mutex_unlock(&client->device->client_list_mutex);
if (client->buffer.pages)
fw_iso_buffer_destroy(&client->buffer, client->device->card);
if (client->iso_context) if (client->iso_context)
fw_iso_context_destroy(client->iso_context); fw_iso_context_destroy(client->iso_context);
if (client->buffer.pages)
fw_iso_buffer_destroy(&client->buffer, client->device->card);
/* Freeze client->resource_idr and client->event_list */ /* Freeze client->resource_idr and client->event_list */
spin_lock_irq(&client->lock); spin_lock_irq(&client->lock);
client->in_shutdown = true; client->in_shutdown = true;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment