aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/misc/sgi-xp/xpc_sn2.c
diff options
context:
space:
mode:
authorDean Nelson <dcn@sgi.com>2008-07-30 01:34:07 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-07-30 12:41:49 -0400
commitaaa3cd694c0c4ae534e8aafdf4227e395c57d6bd (patch)
tree8494fab9a16530f0e2b4095d56d59f9ac3ee8966 /drivers/misc/sgi-xp/xpc_sn2.c
parent33ba3c7724be79f7cdbfc611335572c056d9a05a (diff)
sgi-xp: base xpc_rsvd_page's timestamp on jiffies
Change XPC's reserved page timestamp to be based on jiffies. Signed-off-by: Dean Nelson <dcn@sgi.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/misc/sgi-xp/xpc_sn2.c')
-rw-r--r--drivers/misc/sgi-xp/xpc_sn2.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/drivers/misc/sgi-xp/xpc_sn2.c b/drivers/misc/sgi-xp/xpc_sn2.c
index 89c0bb9a27f5..7216df36bc73 100644
--- a/drivers/misc/sgi-xp/xpc_sn2.c
+++ b/drivers/misc/sgi-xp/xpc_sn2.c
@@ -597,8 +597,8 @@ xpc_initiate_partition_activation_sn2(struct xpc_rsvd_page *remote_rp,
597 */ 597 */
598static void 598static void
599xpc_update_partition_info_sn2(struct xpc_partition *part, u8 remote_rp_version, 599xpc_update_partition_info_sn2(struct xpc_partition *part, u8 remote_rp_version,
600 struct timespec *remote_rp_stamp, 600 unsigned long *remote_rp_stamp, u64 remote_rp_pa,
601 u64 remote_rp_pa, u64 remote_vars_pa, 601 u64 remote_vars_pa,
602 struct xpc_vars_sn2 *remote_vars) 602 struct xpc_vars_sn2 *remote_vars)
603{ 603{
604 part->remote_rp_version = remote_rp_version; 604 part->remote_rp_version = remote_rp_version;
@@ -606,8 +606,8 @@ xpc_update_partition_info_sn2(struct xpc_partition *part, u8 remote_rp_version,
606 part->remote_rp_version); 606 part->remote_rp_version);
607 607
608 part->remote_rp_stamp = *remote_rp_stamp; 608 part->remote_rp_stamp = *remote_rp_stamp;
609 dev_dbg(xpc_part, " remote_rp_stamp (tv_sec = 0x%lx tv_nsec = 0x%lx\n", 609 dev_dbg(xpc_part, " remote_rp_stamp = 0x%016lx\n",
610 part->remote_rp_stamp.tv_sec, part->remote_rp_stamp.tv_nsec); 610 part->remote_rp_stamp);
611 611
612 part->remote_rp_pa = remote_rp_pa; 612 part->remote_rp_pa = remote_rp_pa;
613 dev_dbg(xpc_part, " remote_rp_pa = 0x%016lx\n", part->remote_rp_pa); 613 dev_dbg(xpc_part, " remote_rp_pa = 0x%016lx\n", part->remote_rp_pa);
@@ -664,8 +664,7 @@ xpc_identify_act_IRQ_req_sn2(int nasid)
664 u64 remote_vars_pa; 664 u64 remote_vars_pa;
665 int remote_rp_version; 665 int remote_rp_version;
666 int reactivate = 0; 666 int reactivate = 0;
667 int stamp_diff; 667 unsigned long remote_rp_stamp = 0;
668 struct timespec remote_rp_stamp = { 0, 0 }; /*>>> ZERO_STAMP */
669 short partid; 668 short partid;
670 struct xpc_partition *part; 669 struct xpc_partition *part;
671 enum xp_retval ret; 670 enum xp_retval ret;
@@ -788,10 +787,7 @@ xpc_identify_act_IRQ_req_sn2(int nasid)
788 } else { 787 } else {
789 DBUG_ON(!XPC_SUPPORTS_DISENGAGE_REQUEST(remote_vars->version)); 788 DBUG_ON(!XPC_SUPPORTS_DISENGAGE_REQUEST(remote_vars->version));
790 789
791 stamp_diff = xpc_compare_stamps(&part->remote_rp_stamp, 790 if (remote_rp_stamp != part->remote_rp_stamp) {
792 &remote_rp_stamp);
793 if (stamp_diff != 0) {
794 DBUG_ON(stamp_diff >= 0);
795 791
796 /* 792 /*
797 * Other side rebooted and the previous XPC did support 793 * Other side rebooted and the previous XPC did support