diff options
Diffstat (limited to 'drivers/ieee1394/nodemgr.c')
-rw-r--r-- | drivers/ieee1394/nodemgr.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/ieee1394/nodemgr.c b/drivers/ieee1394/nodemgr.c index 906c5a98d814..f47b6f69d2a9 100644 --- a/drivers/ieee1394/nodemgr.c +++ b/drivers/ieee1394/nodemgr.c | |||
@@ -1265,7 +1265,8 @@ static void nodemgr_update_node(struct node_entry *ne, struct csr1212_csr *csr, | |||
1265 | csr1212_destroy_csr(csr); | 1265 | csr1212_destroy_csr(csr); |
1266 | } | 1266 | } |
1267 | 1267 | ||
1268 | /* Mark the node current */ | 1268 | /* Finally, mark the node current */ |
1269 | smp_wmb(); | ||
1269 | ne->generation = generation; | 1270 | ne->generation = generation; |
1270 | 1271 | ||
1271 | if (ne->in_limbo) { | 1272 | if (ne->in_limbo) { |
@@ -1798,7 +1799,7 @@ void hpsb_node_fill_packet(struct node_entry *ne, struct hpsb_packet *packet) | |||
1798 | { | 1799 | { |
1799 | packet->host = ne->host; | 1800 | packet->host = ne->host; |
1800 | packet->generation = ne->generation; | 1801 | packet->generation = ne->generation; |
1801 | barrier(); | 1802 | smp_rmb(); |
1802 | packet->node_id = ne->nodeid; | 1803 | packet->node_id = ne->nodeid; |
1803 | } | 1804 | } |
1804 | 1805 | ||
@@ -1807,7 +1808,7 @@ int hpsb_node_write(struct node_entry *ne, u64 addr, | |||
1807 | { | 1808 | { |
1808 | unsigned int generation = ne->generation; | 1809 | unsigned int generation = ne->generation; |
1809 | 1810 | ||
1810 | barrier(); | 1811 | smp_rmb(); |
1811 | return hpsb_write(ne->host, ne->nodeid, generation, | 1812 | return hpsb_write(ne->host, ne->nodeid, generation, |
1812 | addr, buffer, length); | 1813 | addr, buffer, length); |
1813 | } | 1814 | } |