aboutsummaryrefslogtreecommitdiffstats
path: root/arch/parisc
diff options
context:
space:
mode:
Diffstat (limited to 'arch/parisc')
-rw-r--r--arch/parisc/kernel/Makefile3
-rw-r--r--arch/parisc/kernel/entry.S46
-rw-r--r--arch/parisc/kernel/head.S3
-rw-r--r--arch/parisc/kernel/init_task.c1
-rw-r--r--arch/parisc/kernel/inventory.c2
-rw-r--r--arch/parisc/kernel/pacache.S70
-rw-r--r--arch/parisc/kernel/parisc_ksyms.c3
-rw-r--r--arch/parisc/kernel/perf_asm.S2
-rw-r--r--arch/parisc/kernel/signal32.c4
-rw-r--r--arch/parisc/kernel/traps.c2
-rw-r--r--arch/parisc/kernel/unaligned.c5
-rw-r--r--arch/parisc/kernel/vmlinux.lds.S1
-rw-r--r--arch/parisc/lib/memcpy.c2
-rw-r--r--arch/parisc/mm/init.c5
14 files changed, 72 insertions, 77 deletions
diff --git a/arch/parisc/kernel/Makefile b/arch/parisc/kernel/Makefile
index 1f6585a56f97..016d3fc4111c 100644
--- a/arch/parisc/kernel/Makefile
+++ b/arch/parisc/kernel/Makefile
@@ -4,9 +4,6 @@
4 4
5extra-y := init_task.o head.o vmlinux.lds 5extra-y := init_task.o head.o vmlinux.lds
6 6
7AFLAGS_entry.o := -traditional
8AFLAGS_pacache.o := -traditional
9
10obj-y := cache.o pacache.o setup.o traps.o time.o irq.o \ 7obj-y := cache.o pacache.o setup.o traps.o time.o irq.o \
11 pa7300lc.o syscall.o entry.o sys_parisc.o firmware.o \ 8 pa7300lc.o syscall.o entry.o sys_parisc.o firmware.o \
12 ptrace.o hardware.o inventory.o drivers.o \ 9 ptrace.o hardware.o inventory.o drivers.o \
diff --git a/arch/parisc/kernel/entry.S b/arch/parisc/kernel/entry.S
index 111d47284eac..d1fa4edd2d80 100644
--- a/arch/parisc/kernel/entry.S
+++ b/arch/parisc/kernel/entry.S
@@ -40,16 +40,8 @@
40#include <linux/linkage.h> 40#include <linux/linkage.h>
41 41
42#ifdef CONFIG_64BIT 42#ifdef CONFIG_64BIT
43#define CMPIB cmpib,*
44#define CMPB cmpb,*
45#define COND(x) *x
46
47 .level 2.0w 43 .level 2.0w
48#else 44#else
49#define CMPIB cmpib,
50#define CMPB cmpb,
51#define COND(x) x
52
53 .level 2.0 45 .level 2.0
54#endif 46#endif
55 47
@@ -957,9 +949,9 @@ intr_check_sig:
957 * Only do signals if we are returning to user space 949 * Only do signals if we are returning to user space
958 */ 950 */
959 LDREG PT_IASQ0(%r16), %r20 951 LDREG PT_IASQ0(%r16), %r20
960 CMPIB=,n 0,%r20,intr_restore /* backward */ 952 cmpib,COND(=),n 0,%r20,intr_restore /* backward */
961 LDREG PT_IASQ1(%r16), %r20 953 LDREG PT_IASQ1(%r16), %r20
962 CMPIB=,n 0,%r20,intr_restore /* backward */ 954 cmpib,COND(=),n 0,%r20,intr_restore /* backward */
963 955
964 copy %r0, %r25 /* long in_syscall = 0 */ 956 copy %r0, %r25 /* long in_syscall = 0 */
965#ifdef CONFIG_64BIT 957#ifdef CONFIG_64BIT
@@ -1013,10 +1005,10 @@ intr_do_resched:
1013 * we jump back to intr_restore. 1005 * we jump back to intr_restore.
1014 */ 1006 */
1015 LDREG PT_IASQ0(%r16), %r20 1007 LDREG PT_IASQ0(%r16), %r20
1016 CMPIB= 0, %r20, intr_do_preempt 1008 cmpib,COND(=) 0, %r20, intr_do_preempt
1017 nop 1009 nop
1018 LDREG PT_IASQ1(%r16), %r20 1010 LDREG PT_IASQ1(%r16), %r20
1019 CMPIB= 0, %r20, intr_do_preempt 1011 cmpib,COND(=) 0, %r20, intr_do_preempt
1020 nop 1012 nop
1021 1013
1022#ifdef CONFIG_64BIT 1014#ifdef CONFIG_64BIT
@@ -1045,7 +1037,7 @@ intr_do_preempt:
1045 /* current_thread_info()->preempt_count */ 1037 /* current_thread_info()->preempt_count */
1046 mfctl %cr30, %r1 1038 mfctl %cr30, %r1
1047 LDREG TI_PRE_COUNT(%r1), %r19 1039 LDREG TI_PRE_COUNT(%r1), %r19
1048 CMPIB<> 0, %r19, intr_restore /* if preempt_count > 0 */ 1040 cmpib,COND(<>) 0, %r19, intr_restore /* if preempt_count > 0 */
1049 nop /* prev insn branched backwards */ 1041 nop /* prev insn branched backwards */
1050 1042
1051 /* check if we interrupted a critical path */ 1043 /* check if we interrupted a critical path */
@@ -1064,7 +1056,7 @@ intr_do_preempt:
1064 */ 1056 */
1065 1057
1066intr_extint: 1058intr_extint:
1067 CMPIB=,n 0,%r16,1f 1059 cmpib,COND(=),n 0,%r16,1f
1068 1060
1069 get_stack_use_cr30 1061 get_stack_use_cr30
1070 b,n 2f 1062 b,n 2f
@@ -1099,7 +1091,7 @@ ENDPROC(syscall_exit_rfi)
1099 1091
1100ENTRY(intr_save) /* for os_hpmc */ 1092ENTRY(intr_save) /* for os_hpmc */
1101 mfsp %sr7,%r16 1093 mfsp %sr7,%r16
1102 CMPIB=,n 0,%r16,1f 1094 cmpib,COND(=),n 0,%r16,1f
1103 get_stack_use_cr30 1095 get_stack_use_cr30
1104 b 2f 1096 b 2f
1105 copy %r8,%r26 1097 copy %r8,%r26
@@ -1121,7 +1113,7 @@ ENTRY(intr_save) /* for os_hpmc */
1121 * adjust isr/ior below. 1113 * adjust isr/ior below.
1122 */ 1114 */
1123 1115
1124 CMPIB=,n 6,%r26,skip_save_ior 1116 cmpib,COND(=),n 6,%r26,skip_save_ior
1125 1117
1126 1118
1127 mfctl %cr20, %r16 /* isr */ 1119 mfctl %cr20, %r16 /* isr */
@@ -1450,11 +1442,11 @@ nadtlb_emulate:
1450 bb,>=,n %r9,26,nadtlb_nullify /* m bit not set, just nullify */ 1442 bb,>=,n %r9,26,nadtlb_nullify /* m bit not set, just nullify */
1451 BL get_register,%r25 1443 BL get_register,%r25
1452 extrw,u %r9,15,5,%r8 /* Get index register # */ 1444 extrw,u %r9,15,5,%r8 /* Get index register # */
1453 CMPIB=,n -1,%r1,nadtlb_fault /* have to use slow path */ 1445 cmpib,COND(=),n -1,%r1,nadtlb_fault /* have to use slow path */
1454 copy %r1,%r24 1446 copy %r1,%r24
1455 BL get_register,%r25 1447 BL get_register,%r25
1456 extrw,u %r9,10,5,%r8 /* Get base register # */ 1448 extrw,u %r9,10,5,%r8 /* Get base register # */
1457 CMPIB=,n -1,%r1,nadtlb_fault /* have to use slow path */ 1449 cmpib,COND(=),n -1,%r1,nadtlb_fault /* have to use slow path */
1458 BL set_register,%r25 1450 BL set_register,%r25
1459 add,l %r1,%r24,%r1 /* doesn't affect c/b bits */ 1451 add,l %r1,%r24,%r1 /* doesn't affect c/b bits */
1460 1452
@@ -1486,7 +1478,7 @@ nadtlb_probe_check:
1486 cmpb,<>,n %r16,%r17,nadtlb_fault /* Must be probe,[rw]*/ 1478 cmpb,<>,n %r16,%r17,nadtlb_fault /* Must be probe,[rw]*/
1487 BL get_register,%r25 /* Find the target register */ 1479 BL get_register,%r25 /* Find the target register */
1488 extrw,u %r9,31,5,%r8 /* Get target register */ 1480 extrw,u %r9,31,5,%r8 /* Get target register */
1489 CMPIB=,n -1,%r1,nadtlb_fault /* have to use slow path */ 1481 cmpib,COND(=),n -1,%r1,nadtlb_fault /* have to use slow path */
1490 BL set_register,%r25 1482 BL set_register,%r25
1491 copy %r0,%r1 /* Write zero to target register */ 1483 copy %r0,%r1 /* Write zero to target register */
1492 b nadtlb_nullify /* Nullify return insn */ 1484 b nadtlb_nullify /* Nullify return insn */
@@ -1570,12 +1562,12 @@ dbit_trap_20w:
1570 L3_ptep ptp,pte,t0,va,dbit_fault 1562 L3_ptep ptp,pte,t0,va,dbit_fault
1571 1563
1572#ifdef CONFIG_SMP 1564#ifdef CONFIG_SMP
1573 CMPIB=,n 0,spc,dbit_nolock_20w 1565 cmpib,COND(=),n 0,spc,dbit_nolock_20w
1574 load32 PA(pa_dbit_lock),t0 1566 load32 PA(pa_dbit_lock),t0
1575 1567
1576dbit_spin_20w: 1568dbit_spin_20w:
1577 LDCW 0(t0),t1 1569 LDCW 0(t0),t1
1578 cmpib,= 0,t1,dbit_spin_20w 1570 cmpib,COND(=) 0,t1,dbit_spin_20w
1579 nop 1571 nop
1580 1572
1581dbit_nolock_20w: 1573dbit_nolock_20w:
@@ -1586,7 +1578,7 @@ dbit_nolock_20w:
1586 1578
1587 idtlbt pte,prot 1579 idtlbt pte,prot
1588#ifdef CONFIG_SMP 1580#ifdef CONFIG_SMP
1589 CMPIB=,n 0,spc,dbit_nounlock_20w 1581 cmpib,COND(=),n 0,spc,dbit_nounlock_20w
1590 ldi 1,t1 1582 ldi 1,t1
1591 stw t1,0(t0) 1583 stw t1,0(t0)
1592 1584
@@ -1606,7 +1598,7 @@ dbit_trap_11:
1606 L2_ptep ptp,pte,t0,va,dbit_fault 1598 L2_ptep ptp,pte,t0,va,dbit_fault
1607 1599
1608#ifdef CONFIG_SMP 1600#ifdef CONFIG_SMP
1609 CMPIB=,n 0,spc,dbit_nolock_11 1601 cmpib,COND(=),n 0,spc,dbit_nolock_11
1610 load32 PA(pa_dbit_lock),t0 1602 load32 PA(pa_dbit_lock),t0
1611 1603
1612dbit_spin_11: 1604dbit_spin_11:
@@ -1628,7 +1620,7 @@ dbit_nolock_11:
1628 1620
1629 mtsp t1, %sr1 /* Restore sr1 */ 1621 mtsp t1, %sr1 /* Restore sr1 */
1630#ifdef CONFIG_SMP 1622#ifdef CONFIG_SMP
1631 CMPIB=,n 0,spc,dbit_nounlock_11 1623 cmpib,COND(=),n 0,spc,dbit_nounlock_11
1632 ldi 1,t1 1624 ldi 1,t1
1633 stw t1,0(t0) 1625 stw t1,0(t0)
1634 1626
@@ -1646,7 +1638,7 @@ dbit_trap_20:
1646 L2_ptep ptp,pte,t0,va,dbit_fault 1638 L2_ptep ptp,pte,t0,va,dbit_fault
1647 1639
1648#ifdef CONFIG_SMP 1640#ifdef CONFIG_SMP
1649 CMPIB=,n 0,spc,dbit_nolock_20 1641 cmpib,COND(=),n 0,spc,dbit_nolock_20
1650 load32 PA(pa_dbit_lock),t0 1642 load32 PA(pa_dbit_lock),t0
1651 1643
1652dbit_spin_20: 1644dbit_spin_20:
@@ -1665,7 +1657,7 @@ dbit_nolock_20:
1665 idtlbt pte,prot 1657 idtlbt pte,prot
1666 1658
1667#ifdef CONFIG_SMP 1659#ifdef CONFIG_SMP
1668 CMPIB=,n 0,spc,dbit_nounlock_20 1660 cmpib,COND(=),n 0,spc,dbit_nounlock_20
1669 ldi 1,t1 1661 ldi 1,t1
1670 stw t1,0(t0) 1662 stw t1,0(t0)
1671 1663
@@ -1994,7 +1986,7 @@ ENTRY(syscall_exit)
1994 1986
1995 /* We can't use "CMPIB<> PER_HPUX" since "im5" field is sign extended */ 1987 /* We can't use "CMPIB<> PER_HPUX" since "im5" field is sign extended */
1996 ldo -PER_HPUX(%r19), %r19 1988 ldo -PER_HPUX(%r19), %r19
1997 CMPIB<>,n 0,%r19,1f 1989 cmpib,COND(<>),n 0,%r19,1f
1998 1990
1999 /* Save other hpux returns if personality is PER_HPUX */ 1991 /* Save other hpux returns if personality is PER_HPUX */
2000 STREG %r22,TASK_PT_GR22(%r1) 1992 STREG %r22,TASK_PT_GR22(%r1)
diff --git a/arch/parisc/kernel/head.S b/arch/parisc/kernel/head.S
index ec2482dc1beb..a84e31e82876 100644
--- a/arch/parisc/kernel/head.S
+++ b/arch/parisc/kernel/head.S
@@ -32,7 +32,8 @@ ENTRY(boot_args)
32 .word 0 /* arg3 */ 32 .word 0 /* arg3 */
33END(boot_args) 33END(boot_args)
34 34
35 .section .text.head 35 __HEAD
36
36 .align 4 37 .align 4
37 .import init_thread_union,data 38 .import init_thread_union,data
38 .import fault_vector_20,code /* IVA parisc 2.0 32 bit */ 39 .import fault_vector_20,code /* IVA parisc 2.0 32 bit */
diff --git a/arch/parisc/kernel/init_task.c b/arch/parisc/kernel/init_task.c
index 26198a074d67..f5941c086551 100644
--- a/arch/parisc/kernel/init_task.c
+++ b/arch/parisc/kernel/init_task.c
@@ -35,7 +35,6 @@
35#include <asm/pgalloc.h> 35#include <asm/pgalloc.h>
36 36
37static struct fs_struct init_fs = INIT_FS; 37static struct fs_struct init_fs = INIT_FS;
38static struct files_struct init_files = INIT_FILES;
39static struct signal_struct init_signals = INIT_SIGNALS(init_signals); 38static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
40static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand); 39static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
41struct mm_struct init_mm = INIT_MM(init_mm); 40struct mm_struct init_mm = INIT_MM(init_mm);
diff --git a/arch/parisc/kernel/inventory.c b/arch/parisc/kernel/inventory.c
index 4845a6444633..bd1f7f1ff74e 100644
--- a/arch/parisc/kernel/inventory.c
+++ b/arch/parisc/kernel/inventory.c
@@ -499,7 +499,7 @@ add_system_map_addresses(struct parisc_device *dev, int num_addrs,
499 dev->addr = kmalloc(num_addrs * sizeof(unsigned long), GFP_KERNEL); 499 dev->addr = kmalloc(num_addrs * sizeof(unsigned long), GFP_KERNEL);
500 if(!dev->addr) { 500 if(!dev->addr) {
501 printk(KERN_ERR "%s %s(): memory allocation failure\n", 501 printk(KERN_ERR "%s %s(): memory allocation failure\n",
502 __FILE__, __FUNCTION__); 502 __FILE__, __func__);
503 return; 503 return;
504 } 504 }
505 505
diff --git a/arch/parisc/kernel/pacache.S b/arch/parisc/kernel/pacache.S
index 5901092e0196..09b77b2553c6 100644
--- a/arch/parisc/kernel/pacache.S
+++ b/arch/parisc/kernel/pacache.S
@@ -85,7 +85,7 @@ ENTRY(flush_tlb_all_local)
85 LDREG ITLB_OFF_COUNT(%r1), %arg2 85 LDREG ITLB_OFF_COUNT(%r1), %arg2
86 LDREG ITLB_LOOP(%r1), %arg3 86 LDREG ITLB_LOOP(%r1), %arg3
87 87
88 ADDIB= -1, %arg3, fitoneloop /* Preadjust and test */ 88 addib,COND(=) -1, %arg3, fitoneloop /* Preadjust and test */
89 movb,<,n %arg3, %r31, fitdone /* If loop < 0, skip */ 89 movb,<,n %arg3, %r31, fitdone /* If loop < 0, skip */
90 copy %arg0, %r28 /* Init base addr */ 90 copy %arg0, %r28 /* Init base addr */
91 91
@@ -95,14 +95,14 @@ fitmanyloop: /* Loop if LOOP >= 2 */
95 copy %arg2, %r29 /* Init middle loop count */ 95 copy %arg2, %r29 /* Init middle loop count */
96 96
97fitmanymiddle: /* Loop if LOOP >= 2 */ 97fitmanymiddle: /* Loop if LOOP >= 2 */
98 ADDIB> -1, %r31, fitmanymiddle /* Adjusted inner loop decr */ 98 addib,COND(>) -1, %r31, fitmanymiddle /* Adjusted inner loop decr */
99 pitlbe 0(%sr1, %r28) 99 pitlbe 0(%sr1, %r28)
100 pitlbe,m %arg1(%sr1, %r28) /* Last pitlbe and addr adjust */ 100 pitlbe,m %arg1(%sr1, %r28) /* Last pitlbe and addr adjust */
101 ADDIB> -1, %r29, fitmanymiddle /* Middle loop decr */ 101 addib,COND(>) -1, %r29, fitmanymiddle /* Middle loop decr */
102 copy %arg3, %r31 /* Re-init inner loop count */ 102 copy %arg3, %r31 /* Re-init inner loop count */
103 103
104 movb,tr %arg0, %r28, fitmanyloop /* Re-init base addr */ 104 movb,tr %arg0, %r28, fitmanyloop /* Re-init base addr */
105 ADDIB<=,n -1, %r22, fitdone /* Outer loop count decr */ 105 addib,COND(<=),n -1, %r22, fitdone /* Outer loop count decr */
106 106
107fitoneloop: /* Loop if LOOP = 1 */ 107fitoneloop: /* Loop if LOOP = 1 */
108 mtsp %r20, %sr1 108 mtsp %r20, %sr1
@@ -110,10 +110,10 @@ fitoneloop: /* Loop if LOOP = 1 */
110 copy %arg2, %r29 /* init middle loop count */ 110 copy %arg2, %r29 /* init middle loop count */
111 111
112fitonemiddle: /* Loop if LOOP = 1 */ 112fitonemiddle: /* Loop if LOOP = 1 */
113 ADDIB> -1, %r29, fitonemiddle /* Middle loop count decr */ 113 addib,COND(>) -1, %r29, fitonemiddle /* Middle loop count decr */
114 pitlbe,m %arg1(%sr1, %r28) /* pitlbe for one loop */ 114 pitlbe,m %arg1(%sr1, %r28) /* pitlbe for one loop */
115 115
116 ADDIB> -1, %r22, fitoneloop /* Outer loop count decr */ 116 addib,COND(>) -1, %r22, fitoneloop /* Outer loop count decr */
117 add %r21, %r20, %r20 /* increment space */ 117 add %r21, %r20, %r20 /* increment space */
118 118
119fitdone: 119fitdone:
@@ -128,7 +128,7 @@ fitdone:
128 LDREG DTLB_OFF_COUNT(%r1), %arg2 128 LDREG DTLB_OFF_COUNT(%r1), %arg2
129 LDREG DTLB_LOOP(%r1), %arg3 129 LDREG DTLB_LOOP(%r1), %arg3
130 130
131 ADDIB= -1, %arg3, fdtoneloop /* Preadjust and test */ 131 addib,COND(=) -1, %arg3, fdtoneloop /* Preadjust and test */
132 movb,<,n %arg3, %r31, fdtdone /* If loop < 0, skip */ 132 movb,<,n %arg3, %r31, fdtdone /* If loop < 0, skip */
133 copy %arg0, %r28 /* Init base addr */ 133 copy %arg0, %r28 /* Init base addr */
134 134
@@ -138,14 +138,14 @@ fdtmanyloop: /* Loop if LOOP >= 2 */
138 copy %arg2, %r29 /* Init middle loop count */ 138 copy %arg2, %r29 /* Init middle loop count */
139 139
140fdtmanymiddle: /* Loop if LOOP >= 2 */ 140fdtmanymiddle: /* Loop if LOOP >= 2 */
141 ADDIB> -1, %r31, fdtmanymiddle /* Adjusted inner loop decr */ 141 addib,COND(>) -1, %r31, fdtmanymiddle /* Adjusted inner loop decr */
142 pdtlbe 0(%sr1, %r28) 142 pdtlbe 0(%sr1, %r28)
143 pdtlbe,m %arg1(%sr1, %r28) /* Last pdtlbe and addr adjust */ 143 pdtlbe,m %arg1(%sr1, %r28) /* Last pdtlbe and addr adjust */
144 ADDIB> -1, %r29, fdtmanymiddle /* Middle loop decr */ 144 addib,COND(>) -1, %r29, fdtmanymiddle /* Middle loop decr */
145 copy %arg3, %r31 /* Re-init inner loop count */ 145 copy %arg3, %r31 /* Re-init inner loop count */
146 146
147 movb,tr %arg0, %r28, fdtmanyloop /* Re-init base addr */ 147 movb,tr %arg0, %r28, fdtmanyloop /* Re-init base addr */
148 ADDIB<=,n -1, %r22,fdtdone /* Outer loop count decr */ 148 addib,COND(<=),n -1, %r22,fdtdone /* Outer loop count decr */
149 149
150fdtoneloop: /* Loop if LOOP = 1 */ 150fdtoneloop: /* Loop if LOOP = 1 */
151 mtsp %r20, %sr1 151 mtsp %r20, %sr1
@@ -153,10 +153,10 @@ fdtoneloop: /* Loop if LOOP = 1 */
153 copy %arg2, %r29 /* init middle loop count */ 153 copy %arg2, %r29 /* init middle loop count */
154 154
155fdtonemiddle: /* Loop if LOOP = 1 */ 155fdtonemiddle: /* Loop if LOOP = 1 */
156 ADDIB> -1, %r29, fdtonemiddle /* Middle loop count decr */ 156 addib,COND(>) -1, %r29, fdtonemiddle /* Middle loop count decr */
157 pdtlbe,m %arg1(%sr1, %r28) /* pdtlbe for one loop */ 157 pdtlbe,m %arg1(%sr1, %r28) /* pdtlbe for one loop */
158 158
159 ADDIB> -1, %r22, fdtoneloop /* Outer loop count decr */ 159 addib,COND(>) -1, %r22, fdtoneloop /* Outer loop count decr */
160 add %r21, %r20, %r20 /* increment space */ 160 add %r21, %r20, %r20 /* increment space */
161 161
162 162
@@ -209,18 +209,18 @@ ENTRY(flush_instruction_cache_local)
209 LDREG ICACHE_COUNT(%r1), %arg2 209 LDREG ICACHE_COUNT(%r1), %arg2
210 LDREG ICACHE_LOOP(%r1), %arg3 210 LDREG ICACHE_LOOP(%r1), %arg3
211 rsm PSW_SM_I, %r22 /* No mmgt ops during loop*/ 211 rsm PSW_SM_I, %r22 /* No mmgt ops during loop*/
212 ADDIB= -1, %arg3, fioneloop /* Preadjust and test */ 212 addib,COND(=) -1, %arg3, fioneloop /* Preadjust and test */
213 movb,<,n %arg3, %r31, fisync /* If loop < 0, do sync */ 213 movb,<,n %arg3, %r31, fisync /* If loop < 0, do sync */
214 214
215fimanyloop: /* Loop if LOOP >= 2 */ 215fimanyloop: /* Loop if LOOP >= 2 */
216 ADDIB> -1, %r31, fimanyloop /* Adjusted inner loop decr */ 216 addib,COND(>) -1, %r31, fimanyloop /* Adjusted inner loop decr */
217 fice %r0(%sr1, %arg0) 217 fice %r0(%sr1, %arg0)
218 fice,m %arg1(%sr1, %arg0) /* Last fice and addr adjust */ 218 fice,m %arg1(%sr1, %arg0) /* Last fice and addr adjust */
219 movb,tr %arg3, %r31, fimanyloop /* Re-init inner loop count */ 219 movb,tr %arg3, %r31, fimanyloop /* Re-init inner loop count */
220 ADDIB<=,n -1, %arg2, fisync /* Outer loop decr */ 220 addib,COND(<=),n -1, %arg2, fisync /* Outer loop decr */
221 221
222fioneloop: /* Loop if LOOP = 1 */ 222fioneloop: /* Loop if LOOP = 1 */
223 ADDIB> -1, %arg2, fioneloop /* Outer loop count decr */ 223 addib,COND(>) -1, %arg2, fioneloop /* Outer loop count decr */
224 fice,m %arg1(%sr1, %arg0) /* Fice for one loop */ 224 fice,m %arg1(%sr1, %arg0) /* Fice for one loop */
225 225
226fisync: 226fisync:
@@ -250,18 +250,18 @@ ENTRY(flush_data_cache_local)
250 LDREG DCACHE_COUNT(%r1), %arg2 250 LDREG DCACHE_COUNT(%r1), %arg2
251 LDREG DCACHE_LOOP(%r1), %arg3 251 LDREG DCACHE_LOOP(%r1), %arg3
252 rsm PSW_SM_I, %r22 252 rsm PSW_SM_I, %r22
253 ADDIB= -1, %arg3, fdoneloop /* Preadjust and test */ 253 addib,COND(=) -1, %arg3, fdoneloop /* Preadjust and test */
254 movb,<,n %arg3, %r31, fdsync /* If loop < 0, do sync */ 254 movb,<,n %arg3, %r31, fdsync /* If loop < 0, do sync */
255 255
256fdmanyloop: /* Loop if LOOP >= 2 */ 256fdmanyloop: /* Loop if LOOP >= 2 */
257 ADDIB> -1, %r31, fdmanyloop /* Adjusted inner loop decr */ 257 addib,COND(>) -1, %r31, fdmanyloop /* Adjusted inner loop decr */
258 fdce %r0(%sr1, %arg0) 258 fdce %r0(%sr1, %arg0)
259 fdce,m %arg1(%sr1, %arg0) /* Last fdce and addr adjust */ 259 fdce,m %arg1(%sr1, %arg0) /* Last fdce and addr adjust */
260 movb,tr %arg3, %r31, fdmanyloop /* Re-init inner loop count */ 260 movb,tr %arg3, %r31, fdmanyloop /* Re-init inner loop count */
261 ADDIB<=,n -1, %arg2, fdsync /* Outer loop decr */ 261 addib,COND(<=),n -1, %arg2, fdsync /* Outer loop decr */
262 262
263fdoneloop: /* Loop if LOOP = 1 */ 263fdoneloop: /* Loop if LOOP = 1 */
264 ADDIB> -1, %arg2, fdoneloop /* Outer loop count decr */ 264 addib,COND(>) -1, %arg2, fdoneloop /* Outer loop count decr */
265 fdce,m %arg1(%sr1, %arg0) /* Fdce for one loop */ 265 fdce,m %arg1(%sr1, %arg0) /* Fdce for one loop */
266 266
267fdsync: 267fdsync:
@@ -342,7 +342,7 @@ ENTRY(copy_user_page_asm)
342 * non-taken backward branch. Note that .+4 is a backwards branch. 342 * non-taken backward branch. Note that .+4 is a backwards branch.
343 * The ldd should only get executed if the branch is taken. 343 * The ldd should only get executed if the branch is taken.
344 */ 344 */
345 ADDIB>,n -1, %r1, 1b /* bundle 10 */ 345 addib,COND(>),n -1, %r1, 1b /* bundle 10 */
346 ldd 0(%r25), %r19 /* start next loads */ 346 ldd 0(%r25), %r19 /* start next loads */
347 347
348#else 348#else
@@ -391,7 +391,7 @@ ENTRY(copy_user_page_asm)
391 stw %r21, 56(%r26) 391 stw %r21, 56(%r26)
392 stw %r22, 60(%r26) 392 stw %r22, 60(%r26)
393 ldo 64(%r26), %r26 393 ldo 64(%r26), %r26
394 ADDIB>,n -1, %r1, 1b 394 addib,COND(>),n -1, %r1, 1b
395 ldw 0(%r25), %r19 395 ldw 0(%r25), %r19
396#endif 396#endif
397 bv %r0(%r2) 397 bv %r0(%r2)
@@ -515,7 +515,7 @@ ENTRY(copy_user_page_asm)
515 stw %r21, 56(%r28) 515 stw %r21, 56(%r28)
516 stw %r22, 60(%r28) 516 stw %r22, 60(%r28)
517 ldo 64(%r28), %r28 517 ldo 64(%r28), %r28
518 ADDIB> -1, %r1,1b 518 addib,COND(>) -1, %r1,1b
519 ldo 64(%r29), %r29 519 ldo 64(%r29), %r29
520 520
521 bv %r0(%r2) 521 bv %r0(%r2)
@@ -574,7 +574,7 @@ ENTRY(__clear_user_page_asm)
574 std %r0, 104(%r28) 574 std %r0, 104(%r28)
575 std %r0, 112(%r28) 575 std %r0, 112(%r28)
576 std %r0, 120(%r28) 576 std %r0, 120(%r28)
577 ADDIB> -1, %r1, 1b 577 addib,COND(>) -1, %r1, 1b
578 ldo 128(%r28), %r28 578 ldo 128(%r28), %r28
579 579
580#else /* ! CONFIG_64BIT */ 580#else /* ! CONFIG_64BIT */
@@ -597,7 +597,7 @@ ENTRY(__clear_user_page_asm)
597 stw %r0, 52(%r28) 597 stw %r0, 52(%r28)
598 stw %r0, 56(%r28) 598 stw %r0, 56(%r28)
599 stw %r0, 60(%r28) 599 stw %r0, 60(%r28)
600 ADDIB> -1, %r1, 1b 600 addib,COND(>) -1, %r1, 1b
601 ldo 64(%r28), %r28 601 ldo 64(%r28), %r28
602#endif /* CONFIG_64BIT */ 602#endif /* CONFIG_64BIT */
603 603
@@ -640,7 +640,7 @@ ENTRY(flush_kernel_dcache_page_asm)
640 fdc,m %r23(%r26) 640 fdc,m %r23(%r26)
641 fdc,m %r23(%r26) 641 fdc,m %r23(%r26)
642 fdc,m %r23(%r26) 642 fdc,m %r23(%r26)
643 CMPB<< %r26, %r25,1b 643 cmpb,COND(<<) %r26, %r25,1b
644 fdc,m %r23(%r26) 644 fdc,m %r23(%r26)
645 645
646 sync 646 sync
@@ -683,7 +683,7 @@ ENTRY(flush_user_dcache_page)
683 fdc,m %r23(%sr3, %r26) 683 fdc,m %r23(%sr3, %r26)
684 fdc,m %r23(%sr3, %r26) 684 fdc,m %r23(%sr3, %r26)
685 fdc,m %r23(%sr3, %r26) 685 fdc,m %r23(%sr3, %r26)
686 CMPB<< %r26, %r25,1b 686 cmpb,COND(<<) %r26, %r25,1b
687 fdc,m %r23(%sr3, %r26) 687 fdc,m %r23(%sr3, %r26)
688 688
689 sync 689 sync
@@ -726,7 +726,7 @@ ENTRY(flush_user_icache_page)
726 fic,m %r23(%sr3, %r26) 726 fic,m %r23(%sr3, %r26)
727 fic,m %r23(%sr3, %r26) 727 fic,m %r23(%sr3, %r26)
728 fic,m %r23(%sr3, %r26) 728 fic,m %r23(%sr3, %r26)
729 CMPB<< %r26, %r25,1b 729 cmpb,COND(<<) %r26, %r25,1b
730 fic,m %r23(%sr3, %r26) 730 fic,m %r23(%sr3, %r26)
731 731
732 sync 732 sync
@@ -769,7 +769,7 @@ ENTRY(purge_kernel_dcache_page)
769 pdc,m %r23(%r26) 769 pdc,m %r23(%r26)
770 pdc,m %r23(%r26) 770 pdc,m %r23(%r26)
771 pdc,m %r23(%r26) 771 pdc,m %r23(%r26)
772 CMPB<< %r26, %r25, 1b 772 cmpb,COND(<<) %r26, %r25, 1b
773 pdc,m %r23(%r26) 773 pdc,m %r23(%r26)
774 774
775 sync 775 sync
@@ -833,7 +833,7 @@ ENTRY(flush_alias_page)
833 fdc,m %r23(%r28) 833 fdc,m %r23(%r28)
834 fdc,m %r23(%r28) 834 fdc,m %r23(%r28)
835 fdc,m %r23(%r28) 835 fdc,m %r23(%r28)
836 CMPB<< %r28, %r29, 1b 836 cmpb,COND(<<) %r28, %r29, 1b
837 fdc,m %r23(%r28) 837 fdc,m %r23(%r28)
838 838
839 sync 839 sync
@@ -856,7 +856,7 @@ flush_user_dcache_range_asm:
856 ldo -1(%r23), %r21 856 ldo -1(%r23), %r21
857 ANDCM %r26, %r21, %r26 857 ANDCM %r26, %r21, %r26
858 858
8591: CMPB<<,n %r26, %r25, 1b 8591: cmpb,COND(<<),n %r26, %r25, 1b
860 fdc,m %r23(%sr3, %r26) 860 fdc,m %r23(%sr3, %r26)
861 861
862 sync 862 sync
@@ -877,7 +877,7 @@ ENTRY(flush_kernel_dcache_range_asm)
877 ldo -1(%r23), %r21 877 ldo -1(%r23), %r21
878 ANDCM %r26, %r21, %r26 878 ANDCM %r26, %r21, %r26
879 879
8801: CMPB<<,n %r26, %r25,1b 8801: cmpb,COND(<<),n %r26, %r25,1b
881 fdc,m %r23(%r26) 881 fdc,m %r23(%r26)
882 882
883 sync 883 sync
@@ -899,7 +899,7 @@ ENTRY(flush_user_icache_range_asm)
899 ldo -1(%r23), %r21 899 ldo -1(%r23), %r21
900 ANDCM %r26, %r21, %r26 900 ANDCM %r26, %r21, %r26
901 901
9021: CMPB<<,n %r26, %r25,1b 9021: cmpb,COND(<<),n %r26, %r25,1b
903 fic,m %r23(%sr3, %r26) 903 fic,m %r23(%sr3, %r26)
904 904
905 sync 905 sync
@@ -942,7 +942,7 @@ ENTRY(flush_kernel_icache_page)
942 fic,m %r23(%sr4, %r26) 942 fic,m %r23(%sr4, %r26)
943 fic,m %r23(%sr4, %r26) 943 fic,m %r23(%sr4, %r26)
944 fic,m %r23(%sr4, %r26) 944 fic,m %r23(%sr4, %r26)
945 CMPB<< %r26, %r25, 1b 945 cmpb,COND(<<) %r26, %r25, 1b
946 fic,m %r23(%sr4, %r26) 946 fic,m %r23(%sr4, %r26)
947 947
948 sync 948 sync
@@ -963,7 +963,7 @@ ENTRY(flush_kernel_icache_range_asm)
963 ldo -1(%r23), %r21 963 ldo -1(%r23), %r21
964 ANDCM %r26, %r21, %r26 964 ANDCM %r26, %r21, %r26
965 965
9661: CMPB<<,n %r26, %r25, 1b 9661: cmpb,COND(<<),n %r26, %r25, 1b
967 fic,m %r23(%sr4, %r26) 967 fic,m %r23(%sr4, %r26)
968 968
969 sync 969 sync
diff --git a/arch/parisc/kernel/parisc_ksyms.c b/arch/parisc/kernel/parisc_ksyms.c
index 5b7fc4aa044d..0eecfbbc59cd 100644
--- a/arch/parisc/kernel/parisc_ksyms.c
+++ b/arch/parisc/kernel/parisc_ksyms.c
@@ -152,3 +152,6 @@ EXPORT_SYMBOL($$dyncall);
152EXPORT_SYMBOL(node_data); 152EXPORT_SYMBOL(node_data);
153EXPORT_SYMBOL(pfnnid_map); 153EXPORT_SYMBOL(pfnnid_map);
154#endif 154#endif
155
156/* from pacache.S -- needed for copy_page */
157EXPORT_SYMBOL(copy_user_page_asm);
diff --git a/arch/parisc/kernel/perf_asm.S b/arch/parisc/kernel/perf_asm.S
index 43874ca3ed67..fa6ea99bb324 100644
--- a/arch/parisc/kernel/perf_asm.S
+++ b/arch/parisc/kernel/perf_asm.S
@@ -20,6 +20,8 @@
20 */ 20 */
21 21
22#include <asm/assembly.h> 22#include <asm/assembly.h>
23
24#include <linux/init.h>
23#include <linux/linkage.h> 25#include <linux/linkage.h>
24 26
25#ifdef CONFIG_64BIT 27#ifdef CONFIG_64BIT
diff --git a/arch/parisc/kernel/signal32.c b/arch/parisc/kernel/signal32.c
index db94affe5c71..fb59852006de 100644
--- a/arch/parisc/kernel/signal32.c
+++ b/arch/parisc/kernel/signal32.c
@@ -289,7 +289,7 @@ setup_sigcontext32(struct compat_sigcontext __user *sc, struct compat_regfile __
289 &sc->sc_iaoq[0], compat_reg); 289 &sc->sc_iaoq[0], compat_reg);
290 290
291 /* Store upper half */ 291 /* Store upper half */
292 compat_reg = (compat_uint_t)(regs->gr[32] >> 32); 292 compat_reg = (compat_uint_t)(regs->gr[31] >> 32);
293 err |= __put_user(compat_reg, &rf->rf_iaoq[0]); 293 err |= __put_user(compat_reg, &rf->rf_iaoq[0]);
294 DBG(2,"setup_sigcontext32: upper half iaoq[0] = %#x\n", compat_reg); 294 DBG(2,"setup_sigcontext32: upper half iaoq[0] = %#x\n", compat_reg);
295 295
@@ -299,7 +299,7 @@ setup_sigcontext32(struct compat_sigcontext __user *sc, struct compat_regfile __
299 DBG(2,"setup_sigcontext32: sc->sc_iaoq[1] = %p <= %#x\n", 299 DBG(2,"setup_sigcontext32: sc->sc_iaoq[1] = %p <= %#x\n",
300 &sc->sc_iaoq[1], compat_reg); 300 &sc->sc_iaoq[1], compat_reg);
301 /* Store upper half */ 301 /* Store upper half */
302 compat_reg = (compat_uint_t)((regs->gr[32]+4) >> 32); 302 compat_reg = (compat_uint_t)((regs->gr[31]+4) >> 32);
303 err |= __put_user(compat_reg, &rf->rf_iaoq[1]); 303 err |= __put_user(compat_reg, &rf->rf_iaoq[1]);
304 DBG(2,"setup_sigcontext32: upper half iaoq[1] = %#x\n", compat_reg); 304 DBG(2,"setup_sigcontext32: upper half iaoq[1] = %#x\n", compat_reg);
305 305
diff --git a/arch/parisc/kernel/traps.c b/arch/parisc/kernel/traps.c
index 9dc6dc42f9cf..675f1d098f05 100644
--- a/arch/parisc/kernel/traps.c
+++ b/arch/parisc/kernel/traps.c
@@ -275,7 +275,7 @@ KERN_CRIT " || ||\n");
275 275
276 /* Wot's wrong wif bein' racy? */ 276 /* Wot's wrong wif bein' racy? */
277 if (current->thread.flags & PARISC_KERNEL_DEATH) { 277 if (current->thread.flags & PARISC_KERNEL_DEATH) {
278 printk(KERN_CRIT "%s() recursion detected.\n", __FUNCTION__); 278 printk(KERN_CRIT "%s() recursion detected.\n", __func__);
279 local_irq_enable(); 279 local_irq_enable();
280 while (1); 280 while (1);
281 } 281 }
diff --git a/arch/parisc/kernel/unaligned.c b/arch/parisc/kernel/unaligned.c
index aebf3c168871..e6f4b7a4b7e3 100644
--- a/arch/parisc/kernel/unaligned.c
+++ b/arch/parisc/kernel/unaligned.c
@@ -30,7 +30,7 @@
30/* #define DEBUG_UNALIGNED 1 */ 30/* #define DEBUG_UNALIGNED 1 */
31 31
32#ifdef DEBUG_UNALIGNED 32#ifdef DEBUG_UNALIGNED
33#define DPRINTF(fmt, args...) do { printk(KERN_DEBUG "%s:%d:%s ", __FILE__, __LINE__, __FUNCTION__ ); printk(KERN_DEBUG fmt, ##args ); } while (0) 33#define DPRINTF(fmt, args...) do { printk(KERN_DEBUG "%s:%d:%s ", __FILE__, __LINE__, __func__ ); printk(KERN_DEBUG fmt, ##args ); } while (0)
34#else 34#else
35#define DPRINTF(fmt, args...) 35#define DPRINTF(fmt, args...)
36#endif 36#endif
@@ -460,7 +460,8 @@ void handle_unaligned(struct pt_regs *regs)
460 goto force_sigbus; 460 goto force_sigbus;
461 } 461 }
462 462
463 if (unaligned_count > 5 && jiffies - last_time > 5*HZ) { 463 if (unaligned_count > 5 &&
464 time_after(jiffies, last_time + 5 * HZ)) {
464 unaligned_count = 0; 465 unaligned_count = 0;
465 last_time = jiffies; 466 last_time = jiffies;
466 } 467 }
diff --git a/arch/parisc/kernel/vmlinux.lds.S b/arch/parisc/kernel/vmlinux.lds.S
index 50b4a3a25d0a..2e516b871752 100644
--- a/arch/parisc/kernel/vmlinux.lds.S
+++ b/arch/parisc/kernel/vmlinux.lds.S
@@ -50,6 +50,7 @@ SECTIONS
50 50
51 _text = .; /* Text and read-only data */ 51 _text = .; /* Text and read-only data */
52 .text ALIGN(16) : { 52 .text ALIGN(16) : {
53 HEAD_TEXT
53 TEXT_TEXT 54 TEXT_TEXT
54 SCHED_TEXT 55 SCHED_TEXT
55 LOCK_TEXT 56 LOCK_TEXT
diff --git a/arch/parisc/lib/memcpy.c b/arch/parisc/lib/memcpy.c
index d22042d33100..2d68431fc22e 100644
--- a/arch/parisc/lib/memcpy.c
+++ b/arch/parisc/lib/memcpy.c
@@ -91,7 +91,7 @@ DECLARE_PER_CPU(struct exception_data, exception_data);
91#define THRESHOLD 16 91#define THRESHOLD 16
92 92
93#ifdef DEBUG_MEMCPY 93#ifdef DEBUG_MEMCPY
94#define DPRINTF(fmt, args...) do { printk(KERN_DEBUG "%s:%d:%s ", __FILE__, __LINE__, __FUNCTION__ ); printk(KERN_DEBUG fmt, ##args ); } while (0) 94#define DPRINTF(fmt, args...) do { printk(KERN_DEBUG "%s:%d:%s ", __FILE__, __LINE__, __func__ ); printk(KERN_DEBUG fmt, ##args ); } while (0)
95#else 95#else
96#define DPRINTF(fmt, args...) 96#define DPRINTF(fmt, args...)
97#endif 97#endif
diff --git a/arch/parisc/mm/init.c b/arch/parisc/mm/init.c
index 1f012843150f..ce0da689a89d 100644
--- a/arch/parisc/mm/init.c
+++ b/arch/parisc/mm/init.c
@@ -547,6 +547,7 @@ void __init mem_init(void)
547} 547}
548 548
549unsigned long *empty_zero_page __read_mostly; 549unsigned long *empty_zero_page __read_mostly;
550EXPORT_SYMBOL(empty_zero_page);
550 551
551void show_mem(void) 552void show_mem(void)
552{ 553{
@@ -555,8 +556,6 @@ void show_mem(void)
555 556
556 printk(KERN_INFO "Mem-info:\n"); 557 printk(KERN_INFO "Mem-info:\n");
557 show_free_areas(); 558 show_free_areas();
558 printk(KERN_INFO "Free swap: %6ldkB\n",
559 nr_swap_pages<<(PAGE_SHIFT-10));
560#ifndef CONFIG_DISCONTIGMEM 559#ifndef CONFIG_DISCONTIGMEM
561 i = max_mapnr; 560 i = max_mapnr;
562 while (i-- > 0) { 561 while (i-- > 0) {
@@ -606,7 +605,7 @@ void show_mem(void)
606 int i, j; 605 int i, j;
607 606
608 for (i = 0; i < npmem_ranges; i++) { 607 for (i = 0; i < npmem_ranges; i++) {
609 zl = node_zonelist(i); 608 zl = node_zonelist(i, 0);
610 for (j = 0; j < MAX_NR_ZONES; j++) { 609 for (j = 0; j < MAX_NR_ZONES; j++) {
611 struct zoneref *z; 610 struct zoneref *z;
612 struct zone *zone; 611 struct zone *zone;