aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Banman <abanman@sgi.com>2016-09-21 12:09:17 -0400
committerIngo Molnar <mingo@kernel.org>2016-09-22 05:16:14 -0400
commit21e3f12fc0e12181102ad0400bcb50bc7a027106 (patch)
treefb65dc33a37ff5a6bb069f68d77bd22cdeb5e19b
parent5e4f96fe2a61c759d5d47f8112813618805c85a0 (diff)
x86/platform/uv/BAU: Use generic function pointers
Convert the use of UV version-specific functions to their abstracted counterparts. Signed-off-by: Andrew Banman <abanman@sgi.com> Acked-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Mike Travis <travis@sgi.com> Acked-by: Dimitri Sivanich <sivanich@sgi.com> Acked-by: Thomas Gleixner <tglx@linutronix.de> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: akpm@linux-foundation.org Cc: rja@sgi.com Link: http://lkml.kernel.org/r/1474474161-265604-7-git-send-email-abanman@sgi.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
-rw-r--r--arch/x86/platform/uv/tlb_uv.c26
1 files changed, 13 insertions, 13 deletions
diff --git a/arch/x86/platform/uv/tlb_uv.c b/arch/x86/platform/uv/tlb_uv.c
index a33a43358e4e..030d452c0b68 100644
--- a/arch/x86/platform/uv/tlb_uv.c
+++ b/arch/x86/platform/uv/tlb_uv.c
@@ -228,7 +228,7 @@ static void reply_to_message(struct msg_desc *mdp, struct bau_control *bcp,
228 msg = mdp->msg; 228 msg = mdp->msg;
229 if (!msg->canceled && do_acknowledge) { 229 if (!msg->canceled && do_acknowledge) {
230 dw = (msg->swack_vec << UV_SW_ACK_NPENDING) | msg->swack_vec; 230 dw = (msg->swack_vec << UV_SW_ACK_NPENDING) | msg->swack_vec;
231 write_mmr_sw_ack(dw); 231 ops.write_l_sw_ack(dw);
232 } 232 }
233 msg->replied_to = 1; 233 msg->replied_to = 1;
234 msg->swack_vec = 0; 234 msg->swack_vec = 0;
@@ -264,7 +264,7 @@ static void bau_process_retry_msg(struct msg_desc *mdp,
264 msg->swack_vec) == 0) && 264 msg->swack_vec) == 0) &&
265 (msg2->sending_cpu == msg->sending_cpu) && 265 (msg2->sending_cpu == msg->sending_cpu) &&
266 (msg2->msg_type != MSG_NOOP)) { 266 (msg2->msg_type != MSG_NOOP)) {
267 mmr = read_mmr_sw_ack(); 267 mmr = ops.read_l_sw_ack();
268 msg_res = msg2->swack_vec; 268 msg_res = msg2->swack_vec;
269 /* 269 /*
270 * This is a message retry; clear the resources held 270 * This is a message retry; clear the resources held
@@ -282,7 +282,7 @@ static void bau_process_retry_msg(struct msg_desc *mdp,
282 stat->d_canceled++; 282 stat->d_canceled++;
283 cancel_count++; 283 cancel_count++;
284 mr = (msg_res << UV_SW_ACK_NPENDING) | msg_res; 284 mr = (msg_res << UV_SW_ACK_NPENDING) | msg_res;
285 write_mmr_sw_ack(mr); 285 ops.write_l_sw_ack(mr);
286 } 286 }
287 } 287 }
288 } 288 }
@@ -415,12 +415,12 @@ static void do_reset(void *ptr)
415 /* 415 /*
416 * only reset the resource if it is still pending 416 * only reset the resource if it is still pending
417 */ 417 */
418 mmr = read_mmr_sw_ack(); 418 mmr = ops.read_l_sw_ack();
419 msg_res = msg->swack_vec; 419 msg_res = msg->swack_vec;
420 mr = (msg_res << UV_SW_ACK_NPENDING) | msg_res; 420 mr = (msg_res << UV_SW_ACK_NPENDING) | msg_res;
421 if (mmr & msg_res) { 421 if (mmr & msg_res) {
422 stat->d_rcanceled++; 422 stat->d_rcanceled++;
423 write_mmr_sw_ack(mr); 423 ops.write_l_sw_ack(mr);
424 } 424 }
425 } 425 }
426 } 426 }
@@ -1214,7 +1214,7 @@ void process_uv2_message(struct msg_desc *mdp, struct bau_control *bcp)
1214 struct bau_pq_entry *msg = mdp->msg; 1214 struct bau_pq_entry *msg = mdp->msg;
1215 struct bau_pq_entry *other_msg; 1215 struct bau_pq_entry *other_msg;
1216 1216
1217 mmr_image = read_mmr_sw_ack(); 1217 mmr_image = ops.read_l_sw_ack();
1218 swack_vec = msg->swack_vec; 1218 swack_vec = msg->swack_vec;
1219 1219
1220 if ((swack_vec & mmr_image) == 0) { 1220 if ((swack_vec & mmr_image) == 0) {
@@ -1443,7 +1443,7 @@ static int ptc_seq_show(struct seq_file *file, void *data)
1443 /* destination side statistics */ 1443 /* destination side statistics */
1444 seq_printf(file, 1444 seq_printf(file,
1445 "%lx %ld %ld %ld %ld %ld %ld %ld %ld %ld %ld %ld\n", 1445 "%lx %ld %ld %ld %ld %ld %ld %ld %ld %ld %ld %ld\n",
1446 read_gmmr_sw_ack(uv_cpu_to_pnode(cpu)), 1446 ops.read_g_sw_ack(uv_cpu_to_pnode(cpu)),
1447 stat->d_requestee, cycles_2_us(stat->d_time), 1447 stat->d_requestee, cycles_2_us(stat->d_time),
1448 stat->d_alltlb, stat->d_onetlb, stat->d_multmsg, 1448 stat->d_alltlb, stat->d_onetlb, stat->d_multmsg,
1449 stat->d_nomsg, stat->d_retries, stat->d_canceled, 1449 stat->d_nomsg, stat->d_retries, stat->d_canceled,
@@ -1737,7 +1737,7 @@ static void activation_descriptor_init(int node, int pnode, int base_pnode)
1737 1737
1738 gpa = uv_gpa(bau_desc); 1738 gpa = uv_gpa(bau_desc);
1739 n = uv_gpa_to_gnode(gpa); 1739 n = uv_gpa_to_gnode(gpa);
1740 m = uv_gpa_to_offset(gpa); 1740 m = ops.bau_gpa_to_offset(gpa);
1741 if (is_uv1_hub()) 1741 if (is_uv1_hub())
1742 uv1 = 1; 1742 uv1 = 1;
1743 1743
@@ -1824,16 +1824,16 @@ static void pq_init(int node, int pnode)
1824 bcp->queue_last = pqp + (DEST_Q_SIZE - 1); 1824 bcp->queue_last = pqp + (DEST_Q_SIZE - 1);
1825 } 1825 }
1826 1826
1827 first = uv_gpa_to_offset(uv_gpa(pqp)); 1827 first = ops.bau_gpa_to_offset(uv_gpa(pqp));
1828 last = uv_gpa_to_offset(uv_gpa(pqp + (DEST_Q_SIZE - 1))); 1828 last = ops.bau_gpa_to_offset(uv_gpa(pqp + (DEST_Q_SIZE - 1)));
1829 tail = first; 1829 tail = first;
1830 gnode = uv_gpa_to_gnode(uv_gpa(pqp)); 1830 gnode = uv_gpa_to_gnode(uv_gpa(pqp));
1831 first = (gnode << UV_PAYLOADQ_GNODE_SHIFT) | tail; 1831 first = (gnode << UV_PAYLOADQ_GNODE_SHIFT) | tail;
1832 1832
1833 write_mmr_payload_first(pnode, first);
1834 write_mmr_payload_last(pnode, last);
1835 write_mmr_payload_tail(pnode, tail); 1833 write_mmr_payload_tail(pnode, tail);
1836 write_gmmr_sw_ack(pnode, 0xffffUL); 1834 ops.write_payload_first(pnode, first);
1835 ops.write_payload_last(pnode, last);
1836 ops.write_g_sw_ack(pnode, 0xffffUL);
1837 1837
1838 /* in effect, all msg_type's are set to MSG_NOOP */ 1838 /* in effect, all msg_type's are set to MSG_NOOP */
1839 memset(pqp, 0, sizeof(struct bau_pq_entry) * DEST_Q_SIZE); 1839 memset(pqp, 0, sizeof(struct bau_pq_entry) * DEST_Q_SIZE);