aboutsummaryrefslogtreecommitdiff
path: root/drivers/firewire/fw-topology.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2008-10-27 09:37:16 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2008-10-27 09:37:16 -0700
commit1d63e726408dfdb3e10ed8f00c383b30ebb333d3 (patch)
treeabd2154d0515bf5581cdd2d2a6224960829145d2 /drivers/firewire/fw-topology.c
parent31390d0fde1ac9cf47002729660ffd7cd2ae1d75 (diff)
parentcd1f70fdb4823c97328a1f151f328eb36fafd579 (diff)
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6: firewire: fw-sbp2: fix races firewire: fw-sbp2: delay first login to avoid retries firewire: fw-ohci: initialization failure path fixes firewire: fw-ohci: don't leak dma memory on module removal firewire: fix struct fw_node memory leak firewire: Survive more than 256 bus resets
Diffstat (limited to 'drivers/firewire/fw-topology.c')
-rw-r--r--drivers/firewire/fw-topology.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/firewire/fw-topology.c b/drivers/firewire/fw-topology.c
index c1b81077c4a..5e204713002 100644
--- a/drivers/firewire/fw-topology.c
+++ b/drivers/firewire/fw-topology.c
@@ -413,7 +413,7 @@ static void
update_tree(struct fw_card *card, struct fw_node *root)
{
struct list_head list0, list1;
- struct fw_node *node0, *node1;
+ struct fw_node *node0, *node1, *next1;
int i, event;
INIT_LIST_HEAD(&list0);
@@ -485,7 +485,9 @@ update_tree(struct fw_card *card, struct fw_node *root)
}
node0 = fw_node(node0->link.next);
- node1 = fw_node(node1->link.next);
+ next1 = fw_node(node1->link.next);
+ fw_node_put(node1);
+ node1 = next1;
}
}