aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/ieee1394/nodemgr.c7
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}