diff options
author | Andrew Banman <abanman@sgi.com> | 2016-09-21 12:09:17 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2016-09-22 05:16:14 -0400 |
commit | 21e3f12fc0e12181102ad0400bcb50bc7a027106 (patch) | |
tree | fb65dc33a37ff5a6bb069f68d77bd22cdeb5e19b | |
parent | 5e4f96fe2a61c759d5d47f8112813618805c85a0 (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.c | 26 |
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); |