diff options
author | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2006-10-10 15:11:43 -0400 |
---|---|---|
committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2006-12-07 15:29:21 -0500 |
commit | 5c37dcbe138ed3239c5e8b6c2626ce773a7cea2e (patch) | |
tree | 0b5323eaee9c2a6e6e0e0722448fce48edabc785 | |
parent | b63d4fe95f29b6cadffcee8cdabd8435e8560cde (diff) |
ieee1394: lock smaller region by host_num_alloc mutex
We need the mutex only around the iteration over existing hosts.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
-rw-r--r-- | drivers/ieee1394/hosts.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/drivers/ieee1394/hosts.c b/drivers/ieee1394/hosts.c index b935e08695a9..25573bad81e0 100644 --- a/drivers/ieee1394/hosts.c +++ b/drivers/ieee1394/hosts.c | |||
@@ -157,10 +157,9 @@ struct hpsb_host *hpsb_alloc_host(struct hpsb_host_driver *drv, size_t extra, | |||
157 | h->speed_map = (u8 *)(h->csr.speed_map + 2); | 157 | h->speed_map = (u8 *)(h->csr.speed_map + 2); |
158 | 158 | ||
159 | mutex_lock(&host_num_alloc); | 159 | mutex_lock(&host_num_alloc); |
160 | |||
161 | while (nodemgr_for_each_host(&hostnum, alloc_hostnum_cb)) | 160 | while (nodemgr_for_each_host(&hostnum, alloc_hostnum_cb)) |
162 | hostnum++; | 161 | hostnum++; |
163 | 162 | mutex_unlock(&host_num_alloc); | |
164 | h->id = hostnum; | 163 | h->id = hostnum; |
165 | 164 | ||
166 | memcpy(&h->device, &nodemgr_dev_template_host, sizeof(h->device)); | 165 | memcpy(&h->device, &nodemgr_dev_template_host, sizeof(h->device)); |
@@ -175,8 +174,6 @@ struct hpsb_host *hpsb_alloc_host(struct hpsb_host_driver *drv, size_t extra, | |||
175 | class_device_register(&h->class_dev); | 174 | class_device_register(&h->class_dev); |
176 | get_device(&h->device); | 175 | get_device(&h->device); |
177 | 176 | ||
178 | mutex_unlock(&host_num_alloc); | ||
179 | |||
180 | return h; | 177 | return h; |
181 | } | 178 | } |
182 | 179 | ||