diff options
Diffstat (limited to 'drivers/misc')
-rw-r--r-- | drivers/misc/sgi-xp/xpc_sn2.c | 124 |
1 files changed, 65 insertions, 59 deletions
diff --git a/drivers/misc/sgi-xp/xpc_sn2.c b/drivers/misc/sgi-xp/xpc_sn2.c index 9c0c29a2ac86..63fe59a5bfac 100644 --- a/drivers/misc/sgi-xp/xpc_sn2.c +++ b/drivers/misc/sgi-xp/xpc_sn2.c | |||
@@ -56,15 +56,15 @@ | |||
56 | static char *xpc_remote_copy_buffer_sn2; | 56 | static char *xpc_remote_copy_buffer_sn2; |
57 | static void *xpc_remote_copy_buffer_base_sn2; | 57 | static void *xpc_remote_copy_buffer_base_sn2; |
58 | 58 | ||
59 | static struct xpc_vars_sn2 *xpc_vars; /* >>> Add _sn2 suffix? */ | 59 | static struct xpc_vars_sn2 *xpc_vars_sn2; |
60 | static struct xpc_vars_part_sn2 *xpc_vars_part; /* >>> Add _sn2 suffix? */ | 60 | static struct xpc_vars_part_sn2 *xpc_vars_part_sn2; |
61 | 61 | ||
62 | /* SH_IPI_ACCESS shub register value on startup */ | 62 | /* SH_IPI_ACCESS shub register value on startup */ |
63 | static u64 xpc_sh1_IPI_access; | 63 | static u64 xpc_sh1_IPI_access_sn2; |
64 | static u64 xpc_sh2_IPI_access0; | 64 | static u64 xpc_sh2_IPI_access0_sn2; |
65 | static u64 xpc_sh2_IPI_access1; | 65 | static u64 xpc_sh2_IPI_access1_sn2; |
66 | static u64 xpc_sh2_IPI_access2; | 66 | static u64 xpc_sh2_IPI_access2_sn2; |
67 | static u64 xpc_sh2_IPI_access3; | 67 | static u64 xpc_sh2_IPI_access3_sn2; |
68 | 68 | ||
69 | /* | 69 | /* |
70 | * Change protections to allow IPI operations. | 70 | * Change protections to allow IPI operations. |
@@ -77,13 +77,13 @@ xpc_allow_IPI_ops_sn2(void) | |||
77 | 77 | ||
78 | /* >>> The following should get moved into SAL. */ | 78 | /* >>> The following should get moved into SAL. */ |
79 | if (is_shub2()) { | 79 | if (is_shub2()) { |
80 | xpc_sh2_IPI_access0 = | 80 | xpc_sh2_IPI_access0_sn2 = |
81 | (u64)HUB_L((u64 *)LOCAL_MMR_ADDR(SH2_IPI_ACCESS0)); | 81 | (u64)HUB_L((u64 *)LOCAL_MMR_ADDR(SH2_IPI_ACCESS0)); |
82 | xpc_sh2_IPI_access1 = | 82 | xpc_sh2_IPI_access1_sn2 = |
83 | (u64)HUB_L((u64 *)LOCAL_MMR_ADDR(SH2_IPI_ACCESS1)); | 83 | (u64)HUB_L((u64 *)LOCAL_MMR_ADDR(SH2_IPI_ACCESS1)); |
84 | xpc_sh2_IPI_access2 = | 84 | xpc_sh2_IPI_access2_sn2 = |
85 | (u64)HUB_L((u64 *)LOCAL_MMR_ADDR(SH2_IPI_ACCESS2)); | 85 | (u64)HUB_L((u64 *)LOCAL_MMR_ADDR(SH2_IPI_ACCESS2)); |
86 | xpc_sh2_IPI_access3 = | 86 | xpc_sh2_IPI_access3_sn2 = |
87 | (u64)HUB_L((u64 *)LOCAL_MMR_ADDR(SH2_IPI_ACCESS3)); | 87 | (u64)HUB_L((u64 *)LOCAL_MMR_ADDR(SH2_IPI_ACCESS3)); |
88 | 88 | ||
89 | for_each_online_node(node) { | 89 | for_each_online_node(node) { |
@@ -98,7 +98,7 @@ xpc_allow_IPI_ops_sn2(void) | |||
98 | -1UL); | 98 | -1UL); |
99 | } | 99 | } |
100 | } else { | 100 | } else { |
101 | xpc_sh1_IPI_access = | 101 | xpc_sh1_IPI_access_sn2 = |
102 | (u64)HUB_L((u64 *)LOCAL_MMR_ADDR(SH1_IPI_ACCESS)); | 102 | (u64)HUB_L((u64 *)LOCAL_MMR_ADDR(SH1_IPI_ACCESS)); |
103 | 103 | ||
104 | for_each_online_node(node) { | 104 | for_each_online_node(node) { |
@@ -123,19 +123,19 @@ xpc_disallow_IPI_ops_sn2(void) | |||
123 | for_each_online_node(node) { | 123 | for_each_online_node(node) { |
124 | nasid = cnodeid_to_nasid(node); | 124 | nasid = cnodeid_to_nasid(node); |
125 | HUB_S((u64 *)GLOBAL_MMR_ADDR(nasid, SH2_IPI_ACCESS0), | 125 | HUB_S((u64 *)GLOBAL_MMR_ADDR(nasid, SH2_IPI_ACCESS0), |
126 | xpc_sh2_IPI_access0); | 126 | xpc_sh2_IPI_access0_sn2); |
127 | HUB_S((u64 *)GLOBAL_MMR_ADDR(nasid, SH2_IPI_ACCESS1), | 127 | HUB_S((u64 *)GLOBAL_MMR_ADDR(nasid, SH2_IPI_ACCESS1), |
128 | xpc_sh2_IPI_access1); | 128 | xpc_sh2_IPI_access1_sn2); |
129 | HUB_S((u64 *)GLOBAL_MMR_ADDR(nasid, SH2_IPI_ACCESS2), | 129 | HUB_S((u64 *)GLOBAL_MMR_ADDR(nasid, SH2_IPI_ACCESS2), |
130 | xpc_sh2_IPI_access2); | 130 | xpc_sh2_IPI_access2_sn2); |
131 | HUB_S((u64 *)GLOBAL_MMR_ADDR(nasid, SH2_IPI_ACCESS3), | 131 | HUB_S((u64 *)GLOBAL_MMR_ADDR(nasid, SH2_IPI_ACCESS3), |
132 | xpc_sh2_IPI_access3); | 132 | xpc_sh2_IPI_access3_sn2); |
133 | } | 133 | } |
134 | } else { | 134 | } else { |
135 | for_each_online_node(node) { | 135 | for_each_online_node(node) { |
136 | nasid = cnodeid_to_nasid(node); | 136 | nasid = cnodeid_to_nasid(node); |
137 | HUB_S((u64 *)GLOBAL_MMR_ADDR(nasid, SH1_IPI_ACCESS), | 137 | HUB_S((u64 *)GLOBAL_MMR_ADDR(nasid, SH1_IPI_ACCESS), |
138 | xpc_sh1_IPI_access); | 138 | xpc_sh1_IPI_access_sn2); |
139 | } | 139 | } |
140 | } | 140 | } |
141 | } | 141 | } |
@@ -182,7 +182,7 @@ xpc_send_IRQ_sn2(struct amo *amo, u64 flag, int nasid, int phys_cpuid, | |||
182 | static struct amo * | 182 | static struct amo * |
183 | xpc_init_IRQ_amo_sn2(int index) | 183 | xpc_init_IRQ_amo_sn2(int index) |
184 | { | 184 | { |
185 | struct amo *amo = xpc_vars->amos_page + index; | 185 | struct amo *amo = xpc_vars_sn2->amos_page + index; |
186 | 186 | ||
187 | (void)xpc_receive_IRQ_amo_sn2(amo); /* clear amo variable */ | 187 | (void)xpc_receive_IRQ_amo_sn2(amo); /* clear amo variable */ |
188 | return amo; | 188 | return amo; |
@@ -225,7 +225,7 @@ xpc_send_local_activate_IRQ_sn2(int from_nasid) | |||
225 | { | 225 | { |
226 | int w_index = XPC_NASID_W_INDEX(from_nasid); | 226 | int w_index = XPC_NASID_W_INDEX(from_nasid); |
227 | int b_index = XPC_NASID_B_INDEX(from_nasid); | 227 | int b_index = XPC_NASID_B_INDEX(from_nasid); |
228 | struct amo *amos = (struct amo *)__va(xpc_vars->amos_page_pa + | 228 | struct amo *amos = (struct amo *)__va(xpc_vars_sn2->amos_page_pa + |
229 | (XPC_ACTIVATE_IRQ_AMOS_SN2 * | 229 | (XPC_ACTIVATE_IRQ_AMOS_SN2 * |
230 | sizeof(struct amo))); | 230 | sizeof(struct amo))); |
231 | 231 | ||
@@ -492,7 +492,8 @@ xpc_indicate_partition_disengaged_sn2(struct xpc_partition *part) | |||
492 | static int | 492 | static int |
493 | xpc_partition_engaged_sn2(short partid) | 493 | xpc_partition_engaged_sn2(short partid) |
494 | { | 494 | { |
495 | struct amo *amo = xpc_vars->amos_page + XPC_ENGAGED_PARTITIONS_AMO_SN2; | 495 | struct amo *amo = xpc_vars_sn2->amos_page + |
496 | XPC_ENGAGED_PARTITIONS_AMO_SN2; | ||
496 | 497 | ||
497 | /* our partition's amo variable ANDed with partid mask */ | 498 | /* our partition's amo variable ANDed with partid mask */ |
498 | return (FETCHOP_LOAD_OP(TO_AMO((u64)&amo->variable), FETCHOP_LOAD) & | 499 | return (FETCHOP_LOAD_OP(TO_AMO((u64)&amo->variable), FETCHOP_LOAD) & |
@@ -502,7 +503,8 @@ xpc_partition_engaged_sn2(short partid) | |||
502 | static int | 503 | static int |
503 | xpc_any_partition_engaged_sn2(void) | 504 | xpc_any_partition_engaged_sn2(void) |
504 | { | 505 | { |
505 | struct amo *amo = xpc_vars->amos_page + XPC_ENGAGED_PARTITIONS_AMO_SN2; | 506 | struct amo *amo = xpc_vars_sn2->amos_page + |
507 | XPC_ENGAGED_PARTITIONS_AMO_SN2; | ||
506 | 508 | ||
507 | /* our partition's amo variable */ | 509 | /* our partition's amo variable */ |
508 | return FETCHOP_LOAD_OP(TO_AMO((u64)&amo->variable), FETCHOP_LOAD) != 0; | 510 | return FETCHOP_LOAD_OP(TO_AMO((u64)&amo->variable), FETCHOP_LOAD) != 0; |
@@ -511,7 +513,8 @@ xpc_any_partition_engaged_sn2(void) | |||
511 | static void | 513 | static void |
512 | xpc_assume_partition_disengaged_sn2(short partid) | 514 | xpc_assume_partition_disengaged_sn2(short partid) |
513 | { | 515 | { |
514 | struct amo *amo = xpc_vars->amos_page + XPC_ENGAGED_PARTITIONS_AMO_SN2; | 516 | struct amo *amo = xpc_vars_sn2->amos_page + |
517 | XPC_ENGAGED_PARTITIONS_AMO_SN2; | ||
515 | 518 | ||
516 | /* clear bit(s) based on partid mask in our partition's amo */ | 519 | /* clear bit(s) based on partid mask in our partition's amo */ |
517 | FETCHOP_STORE_OP(TO_AMO((u64)&amo->variable), FETCHOP_AND, | 520 | FETCHOP_STORE_OP(TO_AMO((u64)&amo->variable), FETCHOP_AND, |
@@ -580,27 +583,27 @@ xpc_rsvd_page_init_sn2(struct xpc_rsvd_page *rp) | |||
580 | int i; | 583 | int i; |
581 | int ret; | 584 | int ret; |
582 | 585 | ||
583 | xpc_vars = XPC_RP_VARS(rp); | 586 | xpc_vars_sn2 = XPC_RP_VARS(rp); |
584 | 587 | ||
585 | rp->sn.vars_pa = __pa(xpc_vars); | 588 | rp->sn.vars_pa = __pa(xpc_vars_sn2); |
586 | 589 | ||
587 | /* vars_part array follows immediately after vars */ | 590 | /* vars_part array follows immediately after vars */ |
588 | xpc_vars_part = (struct xpc_vars_part_sn2 *)((u8 *)XPC_RP_VARS(rp) + | 591 | xpc_vars_part_sn2 = (struct xpc_vars_part_sn2 *)((u8 *)XPC_RP_VARS(rp) + |
589 | XPC_RP_VARS_SIZE); | 592 | XPC_RP_VARS_SIZE); |
590 | 593 | ||
591 | /* | 594 | /* |
592 | * Before clearing xpc_vars, see if a page of amos had been previously | 595 | * Before clearing xpc_vars_sn2, see if a page of amos had been |
593 | * allocated. If not we'll need to allocate one and set permissions | 596 | * previously allocated. If not we'll need to allocate one and set |
594 | * so that cross-partition amos are allowed. | 597 | * permissions so that cross-partition amos are allowed. |
595 | * | 598 | * |
596 | * The allocated amo page needs MCA reporting to remain disabled after | 599 | * The allocated amo page needs MCA reporting to remain disabled after |
597 | * XPC has unloaded. To make this work, we keep a copy of the pointer | 600 | * XPC has unloaded. To make this work, we keep a copy of the pointer |
598 | * to this page (i.e., amos_page) in the struct xpc_vars structure, | 601 | * to this page (i.e., amos_page) in the struct xpc_vars_sn2 structure, |
599 | * which is pointed to by the reserved page, and re-use that saved copy | 602 | * which is pointed to by the reserved page, and re-use that saved copy |
600 | * on subsequent loads of XPC. This amo page is never freed, and its | 603 | * on subsequent loads of XPC. This amo page is never freed, and its |
601 | * memory protections are never restricted. | 604 | * memory protections are never restricted. |
602 | */ | 605 | */ |
603 | amos_page = xpc_vars->amos_page; | 606 | amos_page = xpc_vars_sn2->amos_page; |
604 | if (amos_page == NULL) { | 607 | if (amos_page == NULL) { |
605 | amos_page = (struct amo *)TO_AMO(uncached_alloc_page(0, 1)); | 608 | amos_page = (struct amo *)TO_AMO(uncached_alloc_page(0, 1)); |
606 | if (amos_page == NULL) { | 609 | if (amos_page == NULL) { |
@@ -621,18 +624,18 @@ xpc_rsvd_page_init_sn2(struct xpc_rsvd_page *rp) | |||
621 | } | 624 | } |
622 | } | 625 | } |
623 | 626 | ||
624 | /* clear xpc_vars */ | 627 | /* clear xpc_vars_sn2 */ |
625 | memset(xpc_vars, 0, sizeof(struct xpc_vars_sn2)); | 628 | memset(xpc_vars_sn2, 0, sizeof(struct xpc_vars_sn2)); |
626 | 629 | ||
627 | xpc_vars->version = XPC_V_VERSION; | 630 | xpc_vars_sn2->version = XPC_V_VERSION; |
628 | xpc_vars->activate_IRQ_nasid = cpuid_to_nasid(0); | 631 | xpc_vars_sn2->activate_IRQ_nasid = cpuid_to_nasid(0); |
629 | xpc_vars->activate_IRQ_phys_cpuid = cpu_physical_id(0); | 632 | xpc_vars_sn2->activate_IRQ_phys_cpuid = cpu_physical_id(0); |
630 | xpc_vars->vars_part_pa = __pa(xpc_vars_part); | 633 | xpc_vars_sn2->vars_part_pa = __pa(xpc_vars_part_sn2); |
631 | xpc_vars->amos_page_pa = ia64_tpa((u64)amos_page); | 634 | xpc_vars_sn2->amos_page_pa = ia64_tpa((u64)amos_page); |
632 | xpc_vars->amos_page = amos_page; /* save for next load of XPC */ | 635 | xpc_vars_sn2->amos_page = amos_page; /* save for next load of XPC */ |
633 | 636 | ||
634 | /* clear xpc_vars_part */ | 637 | /* clear xpc_vars_part_sn2 */ |
635 | memset((u64 *)xpc_vars_part, 0, sizeof(struct xpc_vars_part_sn2) * | 638 | memset((u64 *)xpc_vars_part_sn2, 0, sizeof(struct xpc_vars_part_sn2) * |
636 | xp_max_npartitions); | 639 | xp_max_npartitions); |
637 | 640 | ||
638 | /* initialize the activate IRQ related amo variables */ | 641 | /* initialize the activate IRQ related amo variables */ |
@@ -649,30 +652,30 @@ xpc_rsvd_page_init_sn2(struct xpc_rsvd_page *rp) | |||
649 | static void | 652 | static void |
650 | xpc_increment_heartbeat_sn2(void) | 653 | xpc_increment_heartbeat_sn2(void) |
651 | { | 654 | { |
652 | xpc_vars->heartbeat++; | 655 | xpc_vars_sn2->heartbeat++; |
653 | } | 656 | } |
654 | 657 | ||
655 | static void | 658 | static void |
656 | xpc_offline_heartbeat_sn2(void) | 659 | xpc_offline_heartbeat_sn2(void) |
657 | { | 660 | { |
658 | xpc_increment_heartbeat_sn2(); | 661 | xpc_increment_heartbeat_sn2(); |
659 | xpc_vars->heartbeat_offline = 1; | 662 | xpc_vars_sn2->heartbeat_offline = 1; |
660 | } | 663 | } |
661 | 664 | ||
662 | static void | 665 | static void |
663 | xpc_online_heartbeat_sn2(void) | 666 | xpc_online_heartbeat_sn2(void) |
664 | { | 667 | { |
665 | xpc_increment_heartbeat_sn2(); | 668 | xpc_increment_heartbeat_sn2(); |
666 | xpc_vars->heartbeat_offline = 0; | 669 | xpc_vars_sn2->heartbeat_offline = 0; |
667 | } | 670 | } |
668 | 671 | ||
669 | static void | 672 | static void |
670 | xpc_heartbeat_init_sn2(void) | 673 | xpc_heartbeat_init_sn2(void) |
671 | { | 674 | { |
672 | DBUG_ON(xpc_vars == NULL); | 675 | DBUG_ON(xpc_vars_sn2 == NULL); |
673 | 676 | ||
674 | bitmap_zero(xpc_vars->heartbeating_to_mask, XP_MAX_NPARTITIONS_SN2); | 677 | bitmap_zero(xpc_vars_sn2->heartbeating_to_mask, XP_MAX_NPARTITIONS_SN2); |
675 | xpc_heartbeating_to_mask = &xpc_vars->heartbeating_to_mask[0]; | 678 | xpc_heartbeating_to_mask = &xpc_vars_sn2->heartbeating_to_mask[0]; |
676 | xpc_online_heartbeat_sn2(); | 679 | xpc_online_heartbeat_sn2(); |
677 | } | 680 | } |
678 | 681 | ||
@@ -845,7 +848,8 @@ xpc_cancel_partition_deactivation_request_sn2(struct xpc_partition *part) | |||
845 | static int | 848 | static int |
846 | xpc_partition_deactivation_requested_sn2(short partid) | 849 | xpc_partition_deactivation_requested_sn2(short partid) |
847 | { | 850 | { |
848 | struct amo *amo = xpc_vars->amos_page + XPC_DEACTIVATE_REQUEST_AMO_SN2; | 851 | struct amo *amo = xpc_vars_sn2->amos_page + |
852 | XPC_DEACTIVATE_REQUEST_AMO_SN2; | ||
849 | 853 | ||
850 | /* our partition's amo variable ANDed with partid mask */ | 854 | /* our partition's amo variable ANDed with partid mask */ |
851 | return (FETCHOP_LOAD_OP(TO_AMO((u64)&amo->variable), FETCHOP_LOAD) & | 855 | return (FETCHOP_LOAD_OP(TO_AMO((u64)&amo->variable), FETCHOP_LOAD) & |
@@ -1033,7 +1037,7 @@ xpc_identify_activate_IRQ_sender_sn2(void) | |||
1033 | int n_IRQs_detected = 0; | 1037 | int n_IRQs_detected = 0; |
1034 | struct amo *act_amos; | 1038 | struct amo *act_amos; |
1035 | 1039 | ||
1036 | act_amos = xpc_vars->amos_page + XPC_ACTIVATE_IRQ_AMOS_SN2; | 1040 | act_amos = xpc_vars_sn2->amos_page + XPC_ACTIVATE_IRQ_AMOS_SN2; |
1037 | 1041 | ||
1038 | /* scan through act amo variable looking for non-zero entries */ | 1042 | /* scan through act amo variable looking for non-zero entries */ |
1039 | for (word = 0; word < xpc_nasid_mask_words; word++) { | 1043 | for (word = 0; word < xpc_nasid_mask_words; word++) { |
@@ -1261,15 +1265,17 @@ xpc_setup_infrastructure_sn2(struct xpc_partition *part) | |||
1261 | * The setting of the magic # indicates that these per partition | 1265 | * The setting of the magic # indicates that these per partition |
1262 | * specific variables are ready to be used. | 1266 | * specific variables are ready to be used. |
1263 | */ | 1267 | */ |
1264 | xpc_vars_part[partid].GPs_pa = __pa(part_sn2->local_GPs); | 1268 | xpc_vars_part_sn2[partid].GPs_pa = __pa(part_sn2->local_GPs); |
1265 | xpc_vars_part[partid].openclose_args_pa = | 1269 | xpc_vars_part_sn2[partid].openclose_args_pa = |
1266 | __pa(part->local_openclose_args); | 1270 | __pa(part->local_openclose_args); |
1267 | xpc_vars_part[partid].chctl_amo_pa = __pa(part_sn2->local_chctl_amo_va); | 1271 | xpc_vars_part_sn2[partid].chctl_amo_pa = |
1272 | __pa(part_sn2->local_chctl_amo_va); | ||
1268 | cpuid = raw_smp_processor_id(); /* any CPU in this partition will do */ | 1273 | cpuid = raw_smp_processor_id(); /* any CPU in this partition will do */ |
1269 | xpc_vars_part[partid].notify_IRQ_nasid = cpuid_to_nasid(cpuid); | 1274 | xpc_vars_part_sn2[partid].notify_IRQ_nasid = cpuid_to_nasid(cpuid); |
1270 | xpc_vars_part[partid].notify_IRQ_phys_cpuid = cpu_physical_id(cpuid); | 1275 | xpc_vars_part_sn2[partid].notify_IRQ_phys_cpuid = |
1271 | xpc_vars_part[partid].nchannels = part->nchannels; | 1276 | cpu_physical_id(cpuid); |
1272 | xpc_vars_part[partid].magic = XPC_VP_MAGIC1; | 1277 | xpc_vars_part_sn2[partid].nchannels = part->nchannels; |
1278 | xpc_vars_part_sn2[partid].magic = XPC_VP_MAGIC1; | ||
1273 | 1279 | ||
1274 | return xpSuccess; | 1280 | return xpSuccess; |
1275 | 1281 | ||
@@ -1316,7 +1322,7 @@ xpc_teardown_infrastructure_sn2(struct xpc_partition *part) | |||
1316 | DBUG_ON(part->setup_state != XPC_P_SETUP); | 1322 | DBUG_ON(part->setup_state != XPC_P_SETUP); |
1317 | part->setup_state = XPC_P_WTEARDOWN; | 1323 | part->setup_state = XPC_P_WTEARDOWN; |
1318 | 1324 | ||
1319 | xpc_vars_part[partid].magic = 0; | 1325 | xpc_vars_part_sn2[partid].magic = 0; |
1320 | 1326 | ||
1321 | free_irq(SGI_XPC_NOTIFY, (void *)(u64)partid); | 1327 | free_irq(SGI_XPC_NOTIFY, (void *)(u64)partid); |
1322 | 1328 | ||
@@ -1432,7 +1438,7 @@ xpc_pull_remote_vars_part_sn2(struct xpc_partition *part) | |||
1432 | return xpRetry; | 1438 | return xpRetry; |
1433 | } | 1439 | } |
1434 | 1440 | ||
1435 | if (xpc_vars_part[partid].magic == XPC_VP_MAGIC1) { | 1441 | if (xpc_vars_part_sn2[partid].magic == XPC_VP_MAGIC1) { |
1436 | 1442 | ||
1437 | /* validate the variables */ | 1443 | /* validate the variables */ |
1438 | 1444 | ||
@@ -1462,7 +1468,7 @@ xpc_pull_remote_vars_part_sn2(struct xpc_partition *part) | |||
1462 | 1468 | ||
1463 | /* let the other side know that we've pulled their variables */ | 1469 | /* let the other side know that we've pulled their variables */ |
1464 | 1470 | ||
1465 | xpc_vars_part[partid].magic = XPC_VP_MAGIC2; | 1471 | xpc_vars_part_sn2[partid].magic = XPC_VP_MAGIC2; |
1466 | } | 1472 | } |
1467 | 1473 | ||
1468 | if (pulled_entry->magic == XPC_VP_MAGIC1) | 1474 | if (pulled_entry->magic == XPC_VP_MAGIC1) |