lkml.org 
[lkml]   [2008]   [Dec]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 1/4] firewire: cdev: fix race of fw_device_op_release with bus reset
    Unlink the client from the fw_device earlier in order to prevent bus
    reset events being added to client->event_list during shutdown.

    Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
    ---
    drivers/firewire/fw-cdev.c | 8 ++++----
    1 file changed, 4 insertions(+), 4 deletions(-)

    Index: linux/drivers/firewire/fw-cdev.c
    ===================================================================
    --- linux.orig/drivers/firewire/fw-cdev.c
    +++ linux/drivers/firewire/fw-cdev.c
    @@ -1009,6 +1009,10 @@ static int fw_device_op_release(struct i
    struct event *e, *next_e;
    struct client_resource *r, *next_r;

    + mutex_lock(&client->device->client_list_mutex);
    + list_del(&client->link);
    + mutex_unlock(&client->device->client_list_mutex);
    +
    if (client->buffer.pages)
    fw_iso_buffer_destroy(&client->buffer, client->device->card);

    @@ -1026,10 +1030,6 @@ static int fw_device_op_release(struct i
    list_for_each_entry_safe(e, next_e, &client->event_list, link)
    kfree(e);

    - mutex_lock(&client->device->client_list_mutex);
    - list_del(&client->link);
    - mutex_unlock(&client->device->client_list_mutex);
    -
    fw_device_put(client->device);
    kfree(client);


    --
    Stefan Richter
    -=====-==--- ==-- -===-
    http://arcgraph.de/sr/


    \
     
     \ /
      Last update: 2008-12-14 19:23    [W:0.034 / U:0.628 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site