aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ieee1394/hosts.h
diff options
context:
space:
mode:
authorStefan Richter <stefanr@s5r6.in-berlin.de>2008-11-25 19:34:25 -0500
committerStefan Richter <stefanr@s5r6.in-berlin.de>2008-11-29 11:07:56 -0500
commite47c1feb17e61ef4e2f245c0af0c5a8e2a7798b2 (patch)
tree12e24df6acd00564cb01da470c19c759698da0a9 /drivers/ieee1394/hosts.h
parent031bb27c4bf77c2f60b3f3dea8cce63ef0d1fba9 (diff)
ieee1394: fix list corruption (reported at module removal)
If there is more than one FireWire controller present, dummy_zero_addr and dummy_max_addr were added multiple times to different lists, thus corrupting the lists. Fix this by allocating them dynamically per host instead of just once globally. (Perhaps a better address space allocation algorithm could rid us of the two dummy address spaces.) Fixes http://bugzilla.kernel.org/show_bug.cgi?id=10129 . Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Diffstat (limited to 'drivers/ieee1394/hosts.h')
-rw-r--r--drivers/ieee1394/hosts.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/ieee1394/hosts.h b/drivers/ieee1394/hosts.h
index e4e8aeb4d77..dd229950acc 100644
--- a/drivers/ieee1394/hosts.h
+++ b/drivers/ieee1394/hosts.h
@@ -13,6 +13,7 @@ struct module;
13 13
14#include "ieee1394_types.h" 14#include "ieee1394_types.h"
15#include "csr.h" 15#include "csr.h"
16#include "highlevel.h"
16 17
17struct hpsb_packet; 18struct hpsb_packet;
18struct hpsb_iso; 19struct hpsb_iso;
@@ -72,6 +73,9 @@ struct hpsb_host {
72 struct { DECLARE_BITMAP(map, 64); } tl_pool[ALL_NODES]; 73 struct { DECLARE_BITMAP(map, 64); } tl_pool[ALL_NODES];
73 74
74 struct csr_control csr; 75 struct csr_control csr;
76
77 struct hpsb_address_serve dummy_zero_addr;
78 struct hpsb_address_serve dummy_max_addr;
75}; 79};
76 80
77enum devctl_cmd { 81enum devctl_cmd {