aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Neuling <mikey@neuling.org>2012-06-25 09:33:14 -0400
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2012-07-10 05:18:03 -0400
commit44ce6a5ee751893ecdedbd7544c645752a5dbc01 (patch)
tree6611fafa46eedf5c134dc722163ee70bc18ee6f9
parent4404a9f98f0d426907a926c094a2dfbaa17b796d (diff)
powerpc: Merge STK_REG/PARAM/FRAMESIZE
Merge the defines of STACKFRAMESIZE, STK_REG, STK_PARAM from different places. Signed-off-by: Michael Neuling <mikey@neuling.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
-rw-r--r--arch/powerpc/include/asm/ppc_asm.h5
-rw-r--r--arch/powerpc/lib/checksum_64.S3
-rw-r--r--arch/powerpc/lib/copypage_power7.S3
-rw-r--r--arch/powerpc/lib/copyuser_power7.S3
-rw-r--r--arch/powerpc/lib/memcpy_power7.S3
-rw-r--r--arch/powerpc/mm/hash_low_64.S88
-rw-r--r--arch/powerpc/platforms/cell/beat_hvCall.S28
-rw-r--r--arch/powerpc/platforms/powernv/opal-takeover.S2
-rw-r--r--arch/powerpc/platforms/pseries/hvCall.S72
9 files changed, 93 insertions, 114 deletions
diff --git a/arch/powerpc/include/asm/ppc_asm.h b/arch/powerpc/include/asm/ppc_asm.h
index f6f67db212a7..c0c6318e7c24 100644
--- a/arch/powerpc/include/asm/ppc_asm.h
+++ b/arch/powerpc/include/asm/ppc_asm.h
@@ -181,6 +181,11 @@ END_FW_FTR_SECTION_IFSET(FW_FEATURE_SPLPAR)
181#ifdef __KERNEL__ 181#ifdef __KERNEL__
182#ifdef CONFIG_PPC64 182#ifdef CONFIG_PPC64
183 183
184#define STACKFRAMESIZE 256
185#define STK_REG(i) (112 + ((i)-14)*8)
186
187#define STK_PARAM(i) (48 + ((i)-3)*8)
188
184#define XGLUE(a,b) a##b 189#define XGLUE(a,b) a##b
185#define GLUE(a,b) XGLUE(a,b) 190#define GLUE(a,b) XGLUE(a,b)
186 191
diff --git a/arch/powerpc/lib/checksum_64.S b/arch/powerpc/lib/checksum_64.S
index 7ca6871c11ee..167f72555d60 100644
--- a/arch/powerpc/lib/checksum_64.S
+++ b/arch/powerpc/lib/checksum_64.S
@@ -65,9 +65,6 @@ _GLOBAL(csum_tcpudp_magic)
65 srwi r3,r3,16 65 srwi r3,r3,16
66 blr 66 blr
67 67
68#define STACKFRAMESIZE 256
69#define STK_REG(i) (112 + ((i)-14)*8)
70
71/* 68/*
72 * Computes the checksum of a memory block at buff, length len, 69 * Computes the checksum of a memory block at buff, length len,
73 * and adds in "sum" (32-bit). 70 * and adds in "sum" (32-bit).
diff --git a/arch/powerpc/lib/copypage_power7.S b/arch/powerpc/lib/copypage_power7.S
index a2126cebb957..0ef75bf0695c 100644
--- a/arch/powerpc/lib/copypage_power7.S
+++ b/arch/powerpc/lib/copypage_power7.S
@@ -20,9 +20,6 @@
20#include <asm/page.h> 20#include <asm/page.h>
21#include <asm/ppc_asm.h> 21#include <asm/ppc_asm.h>
22 22
23#define STACKFRAMESIZE 256
24#define STK_REG(i) (112 + ((i)-14)*8)
25
26_GLOBAL(copypage_power7) 23_GLOBAL(copypage_power7)
27 /* 24 /*
28 * We prefetch both the source and destination using enhanced touch 25 * We prefetch both the source and destination using enhanced touch
diff --git a/arch/powerpc/lib/copyuser_power7.S b/arch/powerpc/lib/copyuser_power7.S
index c8680c0cc3e4..f9ede7c6606e 100644
--- a/arch/powerpc/lib/copyuser_power7.S
+++ b/arch/powerpc/lib/copyuser_power7.S
@@ -19,9 +19,6 @@
19 */ 19 */
20#include <asm/ppc_asm.h> 20#include <asm/ppc_asm.h>
21 21
22#define STACKFRAMESIZE 256
23#define STK_REG(i) (112 + ((i)-14)*8)
24
25 .macro err1 22 .macro err1
26100: 23100:
27 .section __ex_table,"a" 24 .section __ex_table,"a"
diff --git a/arch/powerpc/lib/memcpy_power7.S b/arch/powerpc/lib/memcpy_power7.S
index 04524a2a0b88..0efdc51bc716 100644
--- a/arch/powerpc/lib/memcpy_power7.S
+++ b/arch/powerpc/lib/memcpy_power7.S
@@ -19,9 +19,6 @@
19 */ 19 */
20#include <asm/ppc_asm.h> 20#include <asm/ppc_asm.h>
21 21
22#define STACKFRAMESIZE 256
23#define STK_REG(i) (112 + ((i)-14)*8)
24
25_GLOBAL(memcpy_power7) 22_GLOBAL(memcpy_power7)
26#ifdef CONFIG_ALTIVEC 23#ifdef CONFIG_ALTIVEC
27 cmpldi r5,16 24 cmpldi r5,16
diff --git a/arch/powerpc/mm/hash_low_64.S b/arch/powerpc/mm/hash_low_64.S
index 113dcb0f61df..602aeb06d298 100644
--- a/arch/powerpc/mm/hash_low_64.S
+++ b/arch/powerpc/mm/hash_low_64.S
@@ -34,14 +34,6 @@
34 * | CR save area (SP + 8) 34 * | CR save area (SP + 8)
35 * SP ---> +-- Back chain (SP + 0) 35 * SP ---> +-- Back chain (SP + 0)
36 */ 36 */
37#define STACKFRAMESIZE 256
38
39/* Save parameters offsets */
40#define STK_PARM(i) (STACKFRAMESIZE + 48 + ((i)-3)*8)
41
42/* Save non-volatile offsets */
43#define STK_REG(i) (112 + ((i)-14)*8)
44
45 37
46#ifndef CONFIG_PPC_64K_PAGES 38#ifndef CONFIG_PPC_64K_PAGES
47 39
@@ -64,9 +56,9 @@ _GLOBAL(__hash_page_4K)
64 std r0,16(r1) 56 std r0,16(r1)
65 stdu r1,-STACKFRAMESIZE(r1) 57 stdu r1,-STACKFRAMESIZE(r1)
66 /* Save all params that we need after a function call */ 58 /* Save all params that we need after a function call */
67 std r6,STK_PARM(R6)(r1) 59 std r6,STK_PARAM(R6)(r1)
68 std r8,STK_PARM(R8)(r1) 60 std r8,STK_PARAM(R8)(r1)
69 std r9,STK_PARM(R9)(r1) 61 std r9,STK_PARAM(R9)(r1)
70 62
71 /* Save non-volatile registers. 63 /* Save non-volatile registers.
72 * r31 will hold "old PTE" 64 * r31 will hold "old PTE"
@@ -162,7 +154,7 @@ END_FTR_SECTION(CPU_FTR_NOEXECUTE|CPU_FTR_COHERENT_ICACHE, CPU_FTR_NOEXECUTE)
162 /* At this point, r3 contains new PP bits, save them in 154 /* At this point, r3 contains new PP bits, save them in
163 * place of "access" in the param area (sic) 155 * place of "access" in the param area (sic)
164 */ 156 */
165 std r3,STK_PARM(R4)(r1) 157 std r3,STK_PARAM(R4)(r1)
166 158
167 /* Get htab_hash_mask */ 159 /* Get htab_hash_mask */
168 ld r4,htab_hash_mask@got(2) 160 ld r4,htab_hash_mask@got(2)
@@ -192,11 +184,11 @@ htab_insert_pte:
192 rldicr r3,r0,3,63-3 /* r3 = (hash & mask) << 3 */ 184 rldicr r3,r0,3,63-3 /* r3 = (hash & mask) << 3 */
193 185
194 /* Call ppc_md.hpte_insert */ 186 /* Call ppc_md.hpte_insert */
195 ld r6,STK_PARM(R4)(r1) /* Retrieve new pp bits */ 187 ld r6,STK_PARAM(R4)(r1) /* Retrieve new pp bits */
196 mr r4,r29 /* Retrieve va */ 188 mr r4,r29 /* Retrieve va */
197 li r7,0 /* !bolted, !secondary */ 189 li r7,0 /* !bolted, !secondary */
198 li r8,MMU_PAGE_4K /* page size */ 190 li r8,MMU_PAGE_4K /* page size */
199 ld r9,STK_PARM(R9)(r1) /* segment size */ 191 ld r9,STK_PARAM(R9)(r1) /* segment size */
200_GLOBAL(htab_call_hpte_insert1) 192_GLOBAL(htab_call_hpte_insert1)
201 bl . /* Patched by htab_finish_init() */ 193 bl . /* Patched by htab_finish_init() */
202 cmpdi 0,r3,0 194 cmpdi 0,r3,0
@@ -215,11 +207,11 @@ _GLOBAL(htab_call_hpte_insert1)
215 rldicr r3,r0,3,63-3 /* r0 = (~hash & mask) << 3 */ 207 rldicr r3,r0,3,63-3 /* r0 = (~hash & mask) << 3 */
216 208
217 /* Call ppc_md.hpte_insert */ 209 /* Call ppc_md.hpte_insert */
218 ld r6,STK_PARM(R4)(r1) /* Retrieve new pp bits */ 210 ld r6,STK_PARAM(R4)(r1) /* Retrieve new pp bits */
219 mr r4,r29 /* Retrieve va */ 211 mr r4,r29 /* Retrieve va */
220 li r7,HPTE_V_SECONDARY /* !bolted, secondary */ 212 li r7,HPTE_V_SECONDARY /* !bolted, secondary */
221 li r8,MMU_PAGE_4K /* page size */ 213 li r8,MMU_PAGE_4K /* page size */
222 ld r9,STK_PARM(R9)(r1) /* segment size */ 214 ld r9,STK_PARAM(R9)(r1) /* segment size */
223_GLOBAL(htab_call_hpte_insert2) 215_GLOBAL(htab_call_hpte_insert2)
224 bl . /* Patched by htab_finish_init() */ 216 bl . /* Patched by htab_finish_init() */
225 cmpdi 0,r3,0 217 cmpdi 0,r3,0
@@ -255,7 +247,7 @@ htab_pte_insert_ok:
255 * (maybe add eieio may be good still ?) 247 * (maybe add eieio may be good still ?)
256 */ 248 */
257htab_write_out_pte: 249htab_write_out_pte:
258 ld r6,STK_PARM(R6)(r1) 250 ld r6,STK_PARAM(R6)(r1)
259 std r30,0(r6) 251 std r30,0(r6)
260 li r3, 0 252 li r3, 0
261htab_bail: 253htab_bail:
@@ -288,8 +280,8 @@ htab_modify_pte:
288 /* Call ppc_md.hpte_updatepp */ 280 /* Call ppc_md.hpte_updatepp */
289 mr r5,r29 /* va */ 281 mr r5,r29 /* va */
290 li r6,MMU_PAGE_4K /* page size */ 282 li r6,MMU_PAGE_4K /* page size */
291 ld r7,STK_PARM(R9)(r1) /* segment size */ 283 ld r7,STK_PARAM(R9)(r1) /* segment size */
292 ld r8,STK_PARM(R8)(r1) /* get "local" param */ 284 ld r8,STK_PARAM(R8)(r1) /* get "local" param */
293_GLOBAL(htab_call_hpte_updatepp) 285_GLOBAL(htab_call_hpte_updatepp)
294 bl . /* Patched by htab_finish_init() */ 286 bl . /* Patched by htab_finish_init() */
295 287
@@ -312,7 +304,7 @@ htab_wrong_access:
312 304
313htab_pte_insert_failure: 305htab_pte_insert_failure:
314 /* Bail out restoring old PTE */ 306 /* Bail out restoring old PTE */
315 ld r6,STK_PARM(R6)(r1) 307 ld r6,STK_PARAM(R6)(r1)
316 std r31,0(r6) 308 std r31,0(r6)
317 li r3,-1 309 li r3,-1
318 b htab_bail 310 b htab_bail
@@ -340,9 +332,9 @@ _GLOBAL(__hash_page_4K)
340 std r0,16(r1) 332 std r0,16(r1)
341 stdu r1,-STACKFRAMESIZE(r1) 333 stdu r1,-STACKFRAMESIZE(r1)
342 /* Save all params that we need after a function call */ 334 /* Save all params that we need after a function call */
343 std r6,STK_PARM(R6)(r1) 335 std r6,STK_PARAM(R6)(r1)
344 std r8,STK_PARM(R8)(r1) 336 std r8,STK_PARAM(R8)(r1)
345 std r9,STK_PARM(R9)(r1) 337 std r9,STK_PARAM(R9)(r1)
346 338
347 /* Save non-volatile registers. 339 /* Save non-volatile registers.
348 * r31 will hold "old PTE" 340 * r31 will hold "old PTE"
@@ -452,7 +444,7 @@ END_FTR_SECTION(CPU_FTR_NOEXECUTE|CPU_FTR_COHERENT_ICACHE, CPU_FTR_NOEXECUTE)
452 /* At this point, r3 contains new PP bits, save them in 444 /* At this point, r3 contains new PP bits, save them in
453 * place of "access" in the param area (sic) 445 * place of "access" in the param area (sic)
454 */ 446 */
455 std r3,STK_PARM(R4)(r1) 447 std r3,STK_PARAM(R4)(r1)
456 448
457 /* Get htab_hash_mask */ 449 /* Get htab_hash_mask */
458 ld r4,htab_hash_mask@got(2) 450 ld r4,htab_hash_mask@got(2)
@@ -473,7 +465,7 @@ END_FTR_SECTION(CPU_FTR_NOEXECUTE|CPU_FTR_COHERENT_ICACHE, CPU_FTR_NOEXECUTE)
473 andis. r0,r31,_PAGE_COMBO@h 465 andis. r0,r31,_PAGE_COMBO@h
474 beq htab_inval_old_hpte 466 beq htab_inval_old_hpte
475 467
476 ld r6,STK_PARM(R6)(r1) 468 ld r6,STK_PARAM(R6)(r1)
477 ori r26,r6,0x8000 /* Load the hidx mask */ 469 ori r26,r6,0x8000 /* Load the hidx mask */
478 ld r26,0(r26) 470 ld r26,0(r26)
479 addi r5,r25,36 /* Check actual HPTE_SUB bit, this */ 471 addi r5,r25,36 /* Check actual HPTE_SUB bit, this */
@@ -495,11 +487,11 @@ htab_special_pfn:
495 rldicr r3,r0,3,63-3 /* r0 = (hash & mask) << 3 */ 487 rldicr r3,r0,3,63-3 /* r0 = (hash & mask) << 3 */
496 488
497 /* Call ppc_md.hpte_insert */ 489 /* Call ppc_md.hpte_insert */
498 ld r6,STK_PARM(R4)(r1) /* Retrieve new pp bits */ 490 ld r6,STK_PARAM(R4)(r1) /* Retrieve new pp bits */
499 mr r4,r29 /* Retrieve va */ 491 mr r4,r29 /* Retrieve va */
500 li r7,0 /* !bolted, !secondary */ 492 li r7,0 /* !bolted, !secondary */
501 li r8,MMU_PAGE_4K /* page size */ 493 li r8,MMU_PAGE_4K /* page size */
502 ld r9,STK_PARM(R9)(r1) /* segment size */ 494 ld r9,STK_PARAM(R9)(r1) /* segment size */
503_GLOBAL(htab_call_hpte_insert1) 495_GLOBAL(htab_call_hpte_insert1)
504 bl . /* patched by htab_finish_init() */ 496 bl . /* patched by htab_finish_init() */
505 cmpdi 0,r3,0 497 cmpdi 0,r3,0
@@ -522,11 +514,11 @@ _GLOBAL(htab_call_hpte_insert1)
522 rldicr r3,r0,3,63-3 /* r0 = (~hash & mask) << 3 */ 514 rldicr r3,r0,3,63-3 /* r0 = (~hash & mask) << 3 */
523 515
524 /* Call ppc_md.hpte_insert */ 516 /* Call ppc_md.hpte_insert */
525 ld r6,STK_PARM(R4)(r1) /* Retrieve new pp bits */ 517 ld r6,STK_PARAM(R4)(r1) /* Retrieve new pp bits */
526 mr r4,r29 /* Retrieve va */ 518 mr r4,r29 /* Retrieve va */
527 li r7,HPTE_V_SECONDARY /* !bolted, secondary */ 519 li r7,HPTE_V_SECONDARY /* !bolted, secondary */
528 li r8,MMU_PAGE_4K /* page size */ 520 li r8,MMU_PAGE_4K /* page size */
529 ld r9,STK_PARM(R9)(r1) /* segment size */ 521 ld r9,STK_PARAM(R9)(r1) /* segment size */
530_GLOBAL(htab_call_hpte_insert2) 522_GLOBAL(htab_call_hpte_insert2)
531 bl . /* patched by htab_finish_init() */ 523 bl . /* patched by htab_finish_init() */
532 cmpdi 0,r3,0 524 cmpdi 0,r3,0
@@ -559,8 +551,8 @@ htab_inval_old_hpte:
559 mr r4,r31 /* PTE.pte */ 551 mr r4,r31 /* PTE.pte */
560 li r5,0 /* PTE.hidx */ 552 li r5,0 /* PTE.hidx */
561 li r6,MMU_PAGE_64K /* psize */ 553 li r6,MMU_PAGE_64K /* psize */
562 ld r7,STK_PARM(R9)(r1) /* ssize */ 554 ld r7,STK_PARAM(R9)(r1) /* ssize */
563 ld r8,STK_PARM(R8)(r1) /* local */ 555 ld r8,STK_PARAM(R8)(r1) /* local */
564 bl .flush_hash_page 556 bl .flush_hash_page
565 /* Clear out _PAGE_HPTE_SUB bits in the new linux PTE */ 557 /* Clear out _PAGE_HPTE_SUB bits in the new linux PTE */
566 lis r0,_PAGE_HPTE_SUB@h 558 lis r0,_PAGE_HPTE_SUB@h
@@ -576,7 +568,7 @@ htab_pte_insert_ok:
576 /* Insert slot number & secondary bit in PTE second half, 568 /* Insert slot number & secondary bit in PTE second half,
577 * clear _PAGE_BUSY and set approriate HPTE slot bit 569 * clear _PAGE_BUSY and set approriate HPTE slot bit
578 */ 570 */
579 ld r6,STK_PARM(R6)(r1) 571 ld r6,STK_PARAM(R6)(r1)
580 li r0,_PAGE_BUSY 572 li r0,_PAGE_BUSY
581 andc r30,r30,r0 573 andc r30,r30,r0
582 /* HPTE SUB bit */ 574 /* HPTE SUB bit */
@@ -630,8 +622,8 @@ htab_modify_pte:
630 /* Call ppc_md.hpte_updatepp */ 622 /* Call ppc_md.hpte_updatepp */
631 mr r5,r29 /* va */ 623 mr r5,r29 /* va */
632 li r6,MMU_PAGE_4K /* page size */ 624 li r6,MMU_PAGE_4K /* page size */
633 ld r7,STK_PARM(R9)(r1) /* segment size */ 625 ld r7,STK_PARAM(R9)(r1) /* segment size */
634 ld r8,STK_PARM(R8)(r1) /* get "local" param */ 626 ld r8,STK_PARAM(R8)(r1) /* get "local" param */
635_GLOBAL(htab_call_hpte_updatepp) 627_GLOBAL(htab_call_hpte_updatepp)
636 bl . /* patched by htab_finish_init() */ 628 bl . /* patched by htab_finish_init() */
637 629
@@ -644,7 +636,7 @@ _GLOBAL(htab_call_hpte_updatepp)
644 /* Clear the BUSY bit and Write out the PTE */ 636 /* Clear the BUSY bit and Write out the PTE */
645 li r0,_PAGE_BUSY 637 li r0,_PAGE_BUSY
646 andc r30,r30,r0 638 andc r30,r30,r0
647 ld r6,STK_PARM(R6)(r1) 639 ld r6,STK_PARAM(R6)(r1)
648 std r30,0(r6) 640 std r30,0(r6)
649 li r3,0 641 li r3,0
650 b htab_bail 642 b htab_bail
@@ -657,7 +649,7 @@ htab_wrong_access:
657 649
658htab_pte_insert_failure: 650htab_pte_insert_failure:
659 /* Bail out restoring old PTE */ 651 /* Bail out restoring old PTE */
660 ld r6,STK_PARM(R6)(r1) 652 ld r6,STK_PARAM(R6)(r1)
661 std r31,0(r6) 653 std r31,0(r6)
662 li r3,-1 654 li r3,-1
663 b htab_bail 655 b htab_bail
@@ -677,9 +669,9 @@ _GLOBAL(__hash_page_64K)
677 std r0,16(r1) 669 std r0,16(r1)
678 stdu r1,-STACKFRAMESIZE(r1) 670 stdu r1,-STACKFRAMESIZE(r1)
679 /* Save all params that we need after a function call */ 671 /* Save all params that we need after a function call */
680 std r6,STK_PARM(R6)(r1) 672 std r6,STK_PARAM(R6)(r1)
681 std r8,STK_PARM(R8)(r1) 673 std r8,STK_PARAM(R8)(r1)
682 std r9,STK_PARM(R9)(r1) 674 std r9,STK_PARAM(R9)(r1)
683 675
684 /* Save non-volatile registers. 676 /* Save non-volatile registers.
685 * r31 will hold "old PTE" 677 * r31 will hold "old PTE"
@@ -780,7 +772,7 @@ END_FTR_SECTION(CPU_FTR_NOEXECUTE|CPU_FTR_COHERENT_ICACHE, CPU_FTR_NOEXECUTE)
780 /* At this point, r3 contains new PP bits, save them in 772 /* At this point, r3 contains new PP bits, save them in
781 * place of "access" in the param area (sic) 773 * place of "access" in the param area (sic)
782 */ 774 */
783 std r3,STK_PARM(R4)(r1) 775 std r3,STK_PARAM(R4)(r1)
784 776
785 /* Get htab_hash_mask */ 777 /* Get htab_hash_mask */
786 ld r4,htab_hash_mask@got(2) 778 ld r4,htab_hash_mask@got(2)
@@ -813,11 +805,11 @@ ht64_insert_pte:
813 rldicr r3,r0,3,63-3 /* r0 = (hash & mask) << 3 */ 805 rldicr r3,r0,3,63-3 /* r0 = (hash & mask) << 3 */
814 806
815 /* Call ppc_md.hpte_insert */ 807 /* Call ppc_md.hpte_insert */
816 ld r6,STK_PARM(R4)(r1) /* Retrieve new pp bits */ 808 ld r6,STK_PARAM(R4)(r1) /* Retrieve new pp bits */
817 mr r4,r29 /* Retrieve va */ 809 mr r4,r29 /* Retrieve va */
818 li r7,0 /* !bolted, !secondary */ 810 li r7,0 /* !bolted, !secondary */
819 li r8,MMU_PAGE_64K 811 li r8,MMU_PAGE_64K
820 ld r9,STK_PARM(R9)(r1) /* segment size */ 812 ld r9,STK_PARAM(R9)(r1) /* segment size */
821_GLOBAL(ht64_call_hpte_insert1) 813_GLOBAL(ht64_call_hpte_insert1)
822 bl . /* patched by htab_finish_init() */ 814 bl . /* patched by htab_finish_init() */
823 cmpdi 0,r3,0 815 cmpdi 0,r3,0
@@ -836,11 +828,11 @@ _GLOBAL(ht64_call_hpte_insert1)
836 rldicr r3,r0,3,63-3 /* r0 = (~hash & mask) << 3 */ 828 rldicr r3,r0,3,63-3 /* r0 = (~hash & mask) << 3 */
837 829
838 /* Call ppc_md.hpte_insert */ 830 /* Call ppc_md.hpte_insert */
839 ld r6,STK_PARM(R4)(r1) /* Retrieve new pp bits */ 831 ld r6,STK_PARAM(R4)(r1) /* Retrieve new pp bits */
840 mr r4,r29 /* Retrieve va */ 832 mr r4,r29 /* Retrieve va */
841 li r7,HPTE_V_SECONDARY /* !bolted, secondary */ 833 li r7,HPTE_V_SECONDARY /* !bolted, secondary */
842 li r8,MMU_PAGE_64K 834 li r8,MMU_PAGE_64K
843 ld r9,STK_PARM(R9)(r1) /* segment size */ 835 ld r9,STK_PARAM(R9)(r1) /* segment size */
844_GLOBAL(ht64_call_hpte_insert2) 836_GLOBAL(ht64_call_hpte_insert2)
845 bl . /* patched by htab_finish_init() */ 837 bl . /* patched by htab_finish_init() */
846 cmpdi 0,r3,0 838 cmpdi 0,r3,0
@@ -876,7 +868,7 @@ ht64_pte_insert_ok:
876 * (maybe add eieio may be good still ?) 868 * (maybe add eieio may be good still ?)
877 */ 869 */
878ht64_write_out_pte: 870ht64_write_out_pte:
879 ld r6,STK_PARM(R6)(r1) 871 ld r6,STK_PARAM(R6)(r1)
880 std r30,0(r6) 872 std r30,0(r6)
881 li r3, 0 873 li r3, 0
882ht64_bail: 874ht64_bail:
@@ -909,8 +901,8 @@ ht64_modify_pte:
909 /* Call ppc_md.hpte_updatepp */ 901 /* Call ppc_md.hpte_updatepp */
910 mr r5,r29 /* va */ 902 mr r5,r29 /* va */
911 li r6,MMU_PAGE_64K 903 li r6,MMU_PAGE_64K
912 ld r7,STK_PARM(R9)(r1) /* segment size */ 904 ld r7,STK_PARAM(R9)(r1) /* segment size */
913 ld r8,STK_PARM(R8)(r1) /* get "local" param */ 905 ld r8,STK_PARAM(R8)(r1) /* get "local" param */
914_GLOBAL(ht64_call_hpte_updatepp) 906_GLOBAL(ht64_call_hpte_updatepp)
915 bl . /* patched by htab_finish_init() */ 907 bl . /* patched by htab_finish_init() */
916 908
@@ -933,7 +925,7 @@ ht64_wrong_access:
933 925
934ht64_pte_insert_failure: 926ht64_pte_insert_failure:
935 /* Bail out restoring old PTE */ 927 /* Bail out restoring old PTE */
936 ld r6,STK_PARM(R6)(r1) 928 ld r6,STK_PARAM(R6)(r1)
937 std r31,0(r6) 929 std r31,0(r6)
938 li r3,-1 930 li r3,-1
939 b ht64_bail 931 b ht64_bail
diff --git a/arch/powerpc/platforms/cell/beat_hvCall.S b/arch/powerpc/platforms/cell/beat_hvCall.S
index 079165eff3a2..96c801907126 100644
--- a/arch/powerpc/platforms/cell/beat_hvCall.S
+++ b/arch/powerpc/platforms/cell/beat_hvCall.S
@@ -22,8 +22,6 @@
22 22
23#include <asm/ppc_asm.h> 23#include <asm/ppc_asm.h>
24 24
25#define STK_PARM(i) (48 + ((i)-3)*8)
26
27/* Not implemented on Beat, now */ 25/* Not implemented on Beat, now */
28#define HCALL_INST_PRECALL 26#define HCALL_INST_PRECALL
29#define HCALL_INST_POSTCALL 27#define HCALL_INST_POSTCALL
@@ -74,7 +72,7 @@ _GLOBAL(beat_hcall_norets8)
74 mr r6,r7 72 mr r6,r7
75 mr r7,r8 73 mr r7,r8
76 mr r8,r9 74 mr r8,r9
77 ld r10,STK_PARM(R10)(r1) 75 ld r10,STK_PARAM(R10)(r1)
78 76
79 HVSC /* invoke the hypervisor */ 77 HVSC /* invoke the hypervisor */
80 78
@@ -94,7 +92,7 @@ _GLOBAL(beat_hcall1)
94 92
95 HCALL_INST_PRECALL 93 HCALL_INST_PRECALL
96 94
97 std r4,STK_PARM(R4)(r1) /* save ret buffer */ 95 std r4,STK_PARAM(R4)(r1) /* save ret buffer */
98 96
99 mr r11,r3 97 mr r11,r3
100 mr r3,r5 98 mr r3,r5
@@ -108,7 +106,7 @@ _GLOBAL(beat_hcall1)
108 106
109 HCALL_INST_POSTCALL 107 HCALL_INST_POSTCALL
110 108
111 ld r12,STK_PARM(R4)(r1) 109 ld r12,STK_PARAM(R4)(r1)
112 std r4, 0(r12) 110 std r4, 0(r12)
113 111
114 lwz r0,8(r1) 112 lwz r0,8(r1)
@@ -125,7 +123,7 @@ _GLOBAL(beat_hcall2)
125 123
126 HCALL_INST_PRECALL 124 HCALL_INST_PRECALL
127 125
128 std r4,STK_PARM(R4)(r1) /* save ret buffer */ 126 std r4,STK_PARAM(R4)(r1) /* save ret buffer */
129 127
130 mr r11,r3 128 mr r11,r3
131 mr r3,r5 129 mr r3,r5
@@ -139,7 +137,7 @@ _GLOBAL(beat_hcall2)
139 137
140 HCALL_INST_POSTCALL 138 HCALL_INST_POSTCALL
141 139
142 ld r12,STK_PARM(R4)(r1) 140 ld r12,STK_PARAM(R4)(r1)
143 std r4, 0(r12) 141 std r4, 0(r12)
144 std r5, 8(r12) 142 std r5, 8(r12)
145 143
@@ -157,7 +155,7 @@ _GLOBAL(beat_hcall3)
157 155
158 HCALL_INST_PRECALL 156 HCALL_INST_PRECALL
159 157
160 std r4,STK_PARM(R4)(r1) /* save ret buffer */ 158 std r4,STK_PARAM(R4)(r1) /* save ret buffer */
161 159
162 mr r11,r3 160 mr r11,r3
163 mr r3,r5 161 mr r3,r5
@@ -171,7 +169,7 @@ _GLOBAL(beat_hcall3)
171 169
172 HCALL_INST_POSTCALL 170 HCALL_INST_POSTCALL
173 171
174 ld r12,STK_PARM(R4)(r1) 172 ld r12,STK_PARAM(R4)(r1)
175 std r4, 0(r12) 173 std r4, 0(r12)
176 std r5, 8(r12) 174 std r5, 8(r12)
177 std r6, 16(r12) 175 std r6, 16(r12)
@@ -190,7 +188,7 @@ _GLOBAL(beat_hcall4)
190 188
191 HCALL_INST_PRECALL 189 HCALL_INST_PRECALL
192 190
193 std r4,STK_PARM(R4)(r1) /* save ret buffer */ 191 std r4,STK_PARAM(R4)(r1) /* save ret buffer */
194 192
195 mr r11,r3 193 mr r11,r3
196 mr r3,r5 194 mr r3,r5
@@ -204,7 +202,7 @@ _GLOBAL(beat_hcall4)
204 202
205 HCALL_INST_POSTCALL 203 HCALL_INST_POSTCALL
206 204
207 ld r12,STK_PARM(R4)(r1) 205 ld r12,STK_PARAM(R4)(r1)
208 std r4, 0(r12) 206 std r4, 0(r12)
209 std r5, 8(r12) 207 std r5, 8(r12)
210 std r6, 16(r12) 208 std r6, 16(r12)
@@ -224,7 +222,7 @@ _GLOBAL(beat_hcall5)
224 222
225 HCALL_INST_PRECALL 223 HCALL_INST_PRECALL
226 224
227 std r4,STK_PARM(R4)(r1) /* save ret buffer */ 225 std r4,STK_PARAM(R4)(r1) /* save ret buffer */
228 226
229 mr r11,r3 227 mr r11,r3
230 mr r3,r5 228 mr r3,r5
@@ -238,7 +236,7 @@ _GLOBAL(beat_hcall5)
238 236
239 HCALL_INST_POSTCALL 237 HCALL_INST_POSTCALL
240 238
241 ld r12,STK_PARM(R4)(r1) 239 ld r12,STK_PARAM(R4)(r1)
242 std r4, 0(r12) 240 std r4, 0(r12)
243 std r5, 8(r12) 241 std r5, 8(r12)
244 std r6, 16(r12) 242 std r6, 16(r12)
@@ -259,7 +257,7 @@ _GLOBAL(beat_hcall6)
259 257
260 HCALL_INST_PRECALL 258 HCALL_INST_PRECALL
261 259
262 std r4,STK_PARM(R4)(r1) /* save ret buffer */ 260 std r4,STK_PARAM(R4)(r1) /* save ret buffer */
263 261
264 mr r11,r3 262 mr r11,r3
265 mr r3,r5 263 mr r3,r5
@@ -273,7 +271,7 @@ _GLOBAL(beat_hcall6)
273 271
274 HCALL_INST_POSTCALL 272 HCALL_INST_POSTCALL
275 273
276 ld r12,STK_PARM(R4)(r1) 274 ld r12,STK_PARAM(R4)(r1)
277 std r4, 0(r12) 275 std r4, 0(r12)
278 std r5, 8(r12) 276 std r5, 8(r12)
279 std r6, 16(r12) 277 std r6, 16(r12)
diff --git a/arch/powerpc/platforms/powernv/opal-takeover.S b/arch/powerpc/platforms/powernv/opal-takeover.S
index 1bb7768abe4c..3cd262897c27 100644
--- a/arch/powerpc/platforms/powernv/opal-takeover.S
+++ b/arch/powerpc/platforms/powernv/opal-takeover.S
@@ -14,8 +14,6 @@
14#include <asm/asm-offsets.h> 14#include <asm/asm-offsets.h>
15#include <asm/opal.h> 15#include <asm/opal.h>
16 16
17#define STK_PARAM(i) (48 + ((i)-3)*8)
18
19#define H_HAL_TAKEOVER 0x5124 17#define H_HAL_TAKEOVER 0x5124
20#define H_HAL_TAKEOVER_QUERY_MAGIC -1 18#define H_HAL_TAKEOVER_QUERY_MAGIC -1
21 19
diff --git a/arch/powerpc/platforms/pseries/hvCall.S b/arch/powerpc/platforms/pseries/hvCall.S
index 04b8efdee5b7..444fe7759e55 100644
--- a/arch/powerpc/platforms/pseries/hvCall.S
+++ b/arch/powerpc/platforms/pseries/hvCall.S
@@ -13,8 +13,6 @@
13#include <asm/asm-offsets.h> 13#include <asm/asm-offsets.h>
14#include <asm/ptrace.h> 14#include <asm/ptrace.h>
15 15
16#define STK_PARM(i) (48 + ((i)-3)*8)
17
18#ifdef CONFIG_TRACEPOINTS 16#ifdef CONFIG_TRACEPOINTS
19 17
20 .section ".toc","aw" 18 .section ".toc","aw"
@@ -26,7 +24,7 @@ hcall_tracepoint_refcount:
26 .section ".text" 24 .section ".text"
27 25
28/* 26/*
29 * precall must preserve all registers. use unused STK_PARM() 27 * precall must preserve all registers. use unused STK_PARAM()
30 * areas to save snapshots and opcode. We branch around this 28 * areas to save snapshots and opcode. We branch around this
31 * in early init (eg when populating the MMU hashtable) by using an 29 * in early init (eg when populating the MMU hashtable) by using an
32 * unconditional cpu feature. 30 * unconditional cpu feature.
@@ -40,28 +38,28 @@ END_FTR_SECTION(0, 1); \
40 cmpdi r12,0; \ 38 cmpdi r12,0; \
41 beq+ 1f; \ 39 beq+ 1f; \
42 mflr r0; \ 40 mflr r0; \
43 std r3,STK_PARM(R3)(r1); \ 41 std r3,STK_PARAM(R3)(r1); \
44 std r4,STK_PARM(R4)(r1); \ 42 std r4,STK_PARAM(R4)(r1); \
45 std r5,STK_PARM(R5)(r1); \ 43 std r5,STK_PARAM(R5)(r1); \
46 std r6,STK_PARM(R6)(r1); \ 44 std r6,STK_PARAM(R6)(r1); \
47 std r7,STK_PARM(R7)(r1); \ 45 std r7,STK_PARAM(R7)(r1); \
48 std r8,STK_PARM(R8)(r1); \ 46 std r8,STK_PARAM(R8)(r1); \
49 std r9,STK_PARM(R9)(r1); \ 47 std r9,STK_PARAM(R9)(r1); \
50 std r10,STK_PARM(R10)(r1); \ 48 std r10,STK_PARAM(R10)(r1); \
51 std r0,16(r1); \ 49 std r0,16(r1); \
52 addi r4,r1,STK_PARM(FIRST_REG); \ 50 addi r4,r1,STK_PARAM(FIRST_REG); \
53 stdu r1,-STACK_FRAME_OVERHEAD(r1); \ 51 stdu r1,-STACK_FRAME_OVERHEAD(r1); \
54 bl .__trace_hcall_entry; \ 52 bl .__trace_hcall_entry; \
55 addi r1,r1,STACK_FRAME_OVERHEAD; \ 53 addi r1,r1,STACK_FRAME_OVERHEAD; \
56 ld r0,16(r1); \ 54 ld r0,16(r1); \
57 ld r3,STK_PARM(R3)(r1); \ 55 ld r3,STK_PARAM(R3)(r1); \
58 ld r4,STK_PARM(R4)(r1); \ 56 ld r4,STK_PARAM(R4)(r1); \
59 ld r5,STK_PARM(R5)(r1); \ 57 ld r5,STK_PARAM(R5)(r1); \
60 ld r6,STK_PARM(R6)(r1); \ 58 ld r6,STK_PARAM(R6)(r1); \
61 ld r7,STK_PARM(R7)(r1); \ 59 ld r7,STK_PARAM(R7)(r1); \
62 ld r8,STK_PARM(R8)(r1); \ 60 ld r8,STK_PARAM(R8)(r1); \
63 ld r9,STK_PARM(R9)(r1); \ 61 ld r9,STK_PARAM(R9)(r1); \
64 ld r10,STK_PARM(R10)(r1); \ 62 ld r10,STK_PARAM(R10)(r1); \
65 mtlr r0; \ 63 mtlr r0; \
661: 641:
67 65
@@ -79,8 +77,8 @@ END_FTR_SECTION(0, 1); \
79 cmpdi r12,0; \ 77 cmpdi r12,0; \
80 beq+ 1f; \ 78 beq+ 1f; \
81 mflr r0; \ 79 mflr r0; \
82 ld r6,STK_PARM(R3)(r1); \ 80 ld r6,STK_PARAM(R3)(r1); \
83 std r3,STK_PARM(R3)(r1); \ 81 std r3,STK_PARAM(R3)(r1); \
84 mr r4,r3; \ 82 mr r4,r3; \
85 mr r3,r6; \ 83 mr r3,r6; \
86 std r0,16(r1); \ 84 std r0,16(r1); \
@@ -88,7 +86,7 @@ END_FTR_SECTION(0, 1); \
88 bl .__trace_hcall_exit; \ 86 bl .__trace_hcall_exit; \
89 addi r1,r1,STACK_FRAME_OVERHEAD; \ 87 addi r1,r1,STACK_FRAME_OVERHEAD; \
90 ld r0,16(r1); \ 88 ld r0,16(r1); \
91 ld r3,STK_PARM(R3)(r1); \ 89 ld r3,STK_PARAM(R3)(r1); \
92 mtlr r0; \ 90 mtlr r0; \
931: 911:
94 92
@@ -132,7 +130,7 @@ _GLOBAL(plpar_hcall)
132 130
133 HCALL_INST_PRECALL(R5) 131 HCALL_INST_PRECALL(R5)
134 132
135 std r4,STK_PARM(R4)(r1) /* Save ret buffer */ 133 std r4,STK_PARAM(R4)(r1) /* Save ret buffer */
136 134
137 mr r4,r5 135 mr r4,r5
138 mr r5,r6 136 mr r5,r6
@@ -143,7 +141,7 @@ _GLOBAL(plpar_hcall)
143 141
144 HVSC /* invoke the hypervisor */ 142 HVSC /* invoke the hypervisor */
145 143
146 ld r12,STK_PARM(R4)(r1) 144 ld r12,STK_PARAM(R4)(r1)
147 std r4, 0(r12) 145 std r4, 0(r12)
148 std r5, 8(r12) 146 std r5, 8(r12)
149 std r6, 16(r12) 147 std r6, 16(r12)
@@ -168,7 +166,7 @@ _GLOBAL(plpar_hcall_raw)
168 mfcr r0 166 mfcr r0
169 stw r0,8(r1) 167 stw r0,8(r1)
170 168
171 std r4,STK_PARM(R4)(r1) /* Save ret buffer */ 169 std r4,STK_PARAM(R4)(r1) /* Save ret buffer */
172 170
173 mr r4,r5 171 mr r4,r5
174 mr r5,r6 172 mr r5,r6
@@ -179,7 +177,7 @@ _GLOBAL(plpar_hcall_raw)
179 177
180 HVSC /* invoke the hypervisor */ 178 HVSC /* invoke the hypervisor */
181 179
182 ld r12,STK_PARM(R4)(r1) 180 ld r12,STK_PARAM(R4)(r1)
183 std r4, 0(r12) 181 std r4, 0(r12)
184 std r5, 8(r12) 182 std r5, 8(r12)
185 std r6, 16(r12) 183 std r6, 16(r12)
@@ -198,7 +196,7 @@ _GLOBAL(plpar_hcall9)
198 196
199 HCALL_INST_PRECALL(R5) 197 HCALL_INST_PRECALL(R5)
200 198
201 std r4,STK_PARM(R4)(r1) /* Save ret buffer */ 199 std r4,STK_PARAM(R4)(r1) /* Save ret buffer */
202 200
203 mr r4,r5 201 mr r4,r5
204 mr r5,r6 202 mr r5,r6
@@ -206,14 +204,14 @@ _GLOBAL(plpar_hcall9)
206 mr r7,r8 204 mr r7,r8
207 mr r8,r9 205 mr r8,r9
208 mr r9,r10 206 mr r9,r10
209 ld r10,STK_PARM(R11)(r1) /* put arg7 in R10 */ 207 ld r10,STK_PARAM(R11)(r1) /* put arg7 in R10 */
210 ld r11,STK_PARM(R12)(r1) /* put arg8 in R11 */ 208 ld r11,STK_PARAM(R12)(r1) /* put arg8 in R11 */
211 ld r12,STK_PARM(R13)(r1) /* put arg9 in R12 */ 209 ld r12,STK_PARAM(R13)(r1) /* put arg9 in R12 */
212 210
213 HVSC /* invoke the hypervisor */ 211 HVSC /* invoke the hypervisor */
214 212
215 mr r0,r12 213 mr r0,r12
216 ld r12,STK_PARM(R4)(r1) 214 ld r12,STK_PARAM(R4)(r1)
217 std r4, 0(r12) 215 std r4, 0(r12)
218 std r5, 8(r12) 216 std r5, 8(r12)
219 std r6, 16(r12) 217 std r6, 16(r12)
@@ -238,7 +236,7 @@ _GLOBAL(plpar_hcall9_raw)
238 mfcr r0 236 mfcr r0
239 stw r0,8(r1) 237 stw r0,8(r1)
240 238
241 std r4,STK_PARM(R4)(r1) /* Save ret buffer */ 239 std r4,STK_PARAM(R4)(r1) /* Save ret buffer */
242 240
243 mr r4,r5 241 mr r4,r5
244 mr r5,r6 242 mr r5,r6
@@ -246,14 +244,14 @@ _GLOBAL(plpar_hcall9_raw)
246 mr r7,r8 244 mr r7,r8
247 mr r8,r9 245 mr r8,r9
248 mr r9,r10 246 mr r9,r10
249 ld r10,STK_PARM(R11)(r1) /* put arg7 in R10 */ 247 ld r10,STK_PARAM(R11)(r1) /* put arg7 in R10 */
250 ld r11,STK_PARM(R12)(r1) /* put arg8 in R11 */ 248 ld r11,STK_PARAM(R12)(r1) /* put arg8 in R11 */
251 ld r12,STK_PARM(R13)(r1) /* put arg9 in R12 */ 249 ld r12,STK_PARAM(R13)(r1) /* put arg9 in R12 */
252 250
253 HVSC /* invoke the hypervisor */ 251 HVSC /* invoke the hypervisor */
254 252
255 mr r0,r12 253 mr r0,r12
256 ld r12,STK_PARM(R4)(r1) 254 ld r12,STK_PARAM(R4)(r1)
257 std r4, 0(r12) 255 std r4, 0(r12)
258 std r5, 8(r12) 256 std r5, 8(r12)
259 std r6, 16(r12) 257 std r6, 16(r12)