Skip to content

Commit

Permalink
firewire: cdev: shut down iso context before freeing the buffer
Browse files Browse the repository at this point in the history
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: Stefan Richter <stefanr@s5r6.in-berlin.de>
  • Loading branch information
Stefan Richter committed Mar 24, 2009
1 parent 3ba9498 commit 36a755c
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions drivers/firewire/fw-cdev.c
Original file line number Diff line number Diff line change
Expand Up @@ -1386,12 +1386,12 @@ static int fw_device_op_release(struct inode *inode, struct file *file)
list_del(&client->link);
mutex_unlock(&client->device->client_list_mutex);

if (client->buffer.pages)
fw_iso_buffer_destroy(&client->buffer, client->device->card);

if (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 */
spin_lock_irq(&client->lock);
client->in_shutdown = true;
Expand Down

0 comments on commit 36a755c

Please sign in to comment.