firewire: Free pending transactions on cdev release.
authorKristian Høgsberg <krh@redhat.com>
Wed, 14 Mar 2007 21:34:57 +0000 (17:34 -0400)
committerStefan Richter <stefanr@s5r6.in-berlin.de>
Thu, 15 Mar 2007 17:21:36 +0000 (18:21 +0100)
Signed-off-by: Kristian Høgsberg <krh@redhat.com>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
drivers/firewire/fw-device-cdev.c

index ebf0d10..b1b7edb 100644 (file)
@@ -827,8 +827,10 @@ static int fw_device_op_release(struct inode *inode, struct file *file)
                kfree(r);
        }
 
-       list_for_each_entry_safe(t, next_t, &client->transaction_list, link)
+       list_for_each_entry_safe(t, next_t, &client->transaction_list, link) {
                fw_cancel_transaction(client->device->card, &t->transaction);
+               kfree(t);
+       }
 
        /* FIXME: We should wait for the async tasklets to stop
         * running before freeing the memory. */