aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@g5.osdl.org>2006-10-07 13:52:00 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-10-07 13:52:00 -0400
commitba00003aa83a61b615542dd66f5af8fb4a7cee1d (patch)
tree013dde7e89730e54433aa40b5e9d67997931aed6
parent9c8e7f5cc965d30006c917ab19221e06fcc5a4f9 (diff)
parent40a5f7ca07f8e1d77acdba5ae0c11c15cb7520c1 (diff)
Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: [POWERPC] PReP fixup after irq changes [POWERPC] SPU fixup after irq changes [POWERPC] Fix up after irq changes [POWERPC] Fix iseries/smp.c for irq breakage [POWERPC] Fix viocons for irq breakage [POWERPC] Update iseries_defconfig [POWERPC] Fix fsl_soc build breaks [POWERPC] Minor fix for bootargs property [POWERPC] Update MTFSF_L() comment [POWERPC] Update pSeries defconfig for SATA [POWERPC] Don't get PCI IRQ from OF for devices with no IRQ [POWERPC] Fix zImage decompress location [POWERPC] linux,tce-size property is 32 bits [POWERPC] Add DTS for MPC8349E-mITX board [POWERPC] Fix harmless typo [PPC] Fix some irq breakage with ARCH=ppc
-rw-r--r--arch/powerpc/boot/dts/mpc8349emitx.dts246
-rw-r--r--arch/powerpc/boot/of.c5
-rw-r--r--arch/powerpc/configs/iseries_defconfig86
-rw-r--r--arch/powerpc/configs/pseries_defconfig2
-rw-r--r--arch/powerpc/kernel/ibmebus.c2
-rw-r--r--arch/powerpc/kernel/iommu.c2
-rw-r--r--arch/powerpc/kernel/irq.c2
-rw-r--r--arch/powerpc/kernel/prom.c2
-rw-r--r--arch/powerpc/kernel/prom_parse.c17
-rw-r--r--arch/powerpc/kernel/time.c2
-rw-r--r--arch/powerpc/platforms/82xx/mpc82xx_ads.c5
-rw-r--r--arch/powerpc/platforms/85xx/mpc85xx_ads.c5
-rw-r--r--arch/powerpc/platforms/85xx/mpc85xx_cds.c7
-rw-r--r--arch/powerpc/platforms/86xx/mpc86xx_hpcn.c5
-rw-r--r--arch/powerpc/platforms/cell/interrupt.c5
-rw-r--r--arch/powerpc/platforms/cell/spu_base.c6
-rw-r--r--arch/powerpc/platforms/chrp/setup.c7
-rw-r--r--arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c5
-rw-r--r--arch/powerpc/platforms/iseries/irq.c17
-rw-r--r--arch/powerpc/platforms/iseries/irq.h2
-rw-r--r--arch/powerpc/platforms/iseries/lpevents.c4
-rw-r--r--arch/powerpc/platforms/iseries/mf.c4
-rw-r--r--arch/powerpc/platforms/iseries/smp.c6
-rw-r--r--arch/powerpc/platforms/iseries/smp.h6
-rw-r--r--arch/powerpc/platforms/iseries/viopath.c2
-rw-r--r--arch/powerpc/platforms/powermac/pic.c12
-rw-r--r--arch/powerpc/platforms/powermac/pic.h4
-rw-r--r--arch/powerpc/platforms/powermac/smp.c8
-rw-r--r--arch/powerpc/platforms/pseries/iommu.c3
-rw-r--r--arch/powerpc/platforms/pseries/setup.c2
-rw-r--r--arch/powerpc/platforms/pseries/xics.c4
-rw-r--r--arch/powerpc/sysdev/cpm2_pic.c2
-rw-r--r--arch/powerpc/sysdev/cpm2_pic.h2
-rw-r--r--arch/powerpc/sysdev/fsl_soc.c9
-rw-r--r--arch/powerpc/sysdev/i8259.c2
-rw-r--r--arch/powerpc/sysdev/ipic.c2
-rw-r--r--arch/powerpc/sysdev/mpic.c6
-rw-r--r--arch/powerpc/sysdev/qe_lib/qe_ic.c14
-rw-r--r--arch/powerpc/sysdev/tsi108_pci.c3
-rw-r--r--arch/ppc/kernel/time.c2
-rw-r--r--arch/ppc/platforms/85xx/mpc8560_ads.c6
-rw-r--r--arch/ppc/platforms/85xx/mpc85xx_cds_common.c6
-rw-r--r--arch/ppc/platforms/85xx/stx_gp3.c6
-rw-r--r--arch/ppc/platforms/85xx/tqm85xx.c6
-rw-r--r--arch/ppc/syslib/i8259.c2
-rw-r--r--arch/ppc/syslib/open_pic.c14
-rw-r--r--drivers/char/viocons.c2
-rw-r--r--include/asm-powerpc/i8259.h4
-rw-r--r--include/asm-powerpc/ibmebus.h2
-rw-r--r--include/asm-powerpc/ipic.h4
-rw-r--r--include/asm-powerpc/iseries/hv_lp_event.h2
-rw-r--r--include/asm-powerpc/iseries/it_lp_queue.h2
-rw-r--r--include/asm-powerpc/machdep.h2
-rw-r--r--include/asm-powerpc/mpic.h4
-rw-r--r--include/asm-powerpc/reg.h2
-rw-r--r--include/asm-ppc/floppy.h6
-rw-r--r--include/asm-ppc/machdep.h2
-rw-r--r--include/asm-ppc/open_pic.h6
-rw-r--r--include/asm-ppc/smp.h2
59 files changed, 453 insertions, 154 deletions
diff --git a/arch/powerpc/boot/dts/mpc8349emitx.dts b/arch/powerpc/boot/dts/mpc8349emitx.dts
new file mode 100644
index 000000000000..27807fc45888
--- /dev/null
+++ b/arch/powerpc/boot/dts/mpc8349emitx.dts
@@ -0,0 +1,246 @@
1/*
2 * MPC8349E-mITX Device Tree Source
3 *
4 * Copyright 2006 Freescale Semiconductor Inc.
5 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the
8 * Free Software Foundation; either version 2 of the License, or (at your
9 * option) any later version.
10 */
11/ {
12 model = "MPC8349EMITX";
13 compatible = "MPC834xMITX";
14 #address-cells = <1>;
15 #size-cells = <1>;
16
17 cpus {
18 #cpus = <1>;
19 #address-cells = <1>;
20 #size-cells = <0>;
21
22 PowerPC,8349@0 {
23 device_type = "cpu";
24 reg = <0>;
25 d-cache-line-size = <20>;
26 i-cache-line-size = <20>;
27 d-cache-size = <8000>;
28 i-cache-size = <8000>;
29 timebase-frequency = <0>; // from bootloader
30 bus-frequency = <0>; // from bootloader
31 clock-frequency = <0>; // from bootloader
32 32-bit;
33 };
34 };
35
36 memory {
37 device_type = "memory";
38 reg = <00000000 10000000>;
39 };
40
41 soc8349@e0000000 {
42 #address-cells = <1>;
43 #size-cells = <1>;
44 #interrupt-cells = <2>;
45 device_type = "soc";
46 ranges = <0 e0000000 00100000>;
47 reg = <e0000000 00000200>;
48 bus-frequency = <0>; // from bootloader
49
50 wdt@200 {
51 device_type = "watchdog";
52 compatible = "mpc83xx_wdt";
53 reg = <200 100>;
54 };
55
56 i2c@3000 {
57 device_type = "i2c";
58 compatible = "fsl-i2c";
59 reg = <3000 100>;
60 interrupts = <e 8>;
61 interrupt-parent = <700>;
62 dfsrr;
63 };
64
65 i2c@3100 {
66 device_type = "i2c";
67 compatible = "fsl-i2c";
68 reg = <3100 100>;
69 interrupts = <f 8>;
70 interrupt-parent = <700>;
71 dfsrr;
72 };
73
74 spi@7000 {
75 device_type = "spi";
76 compatible = "mpc83xx_spi";
77 reg = <7000 1000>;
78 interrupts = <10 8>;
79 interrupt-parent = <700>;
80 mode = <0>;
81 };
82
83 usb@22000 {
84 device_type = "usb";
85 compatible = "fsl-usb2-mph";
86 reg = <22000 1000>;
87 #address-cells = <1>;
88 #size-cells = <0>;
89 interrupt-parent = <700>;
90 interrupts = <27 2>;
91 phy_type = "ulpi";
92 port1;
93 };
94
95 usb@23000 {
96 device_type = "usb";
97 compatible = "fsl-usb2-dr";
98 reg = <23000 1000>;
99 #address-cells = <1>;
100 #size-cells = <0>;
101 interrupt-parent = <700>;
102 interrupts = <26 2>;
103 phy_type = "ulpi";
104 };
105
106 mdio@24520 {
107 device_type = "mdio";
108 compatible = "gianfar";
109 reg = <24520 20>;
110 #address-cells = <1>;
111 #size-cells = <0>;
112 linux,phandle = <24520>;
113
114 /* Vitesse 8201 */
115 ethernet-phy@1c {
116 linux,phandle = <245201c>;
117 interrupt-parent = <700>;
118 interrupts = <12 2>;
119 reg = <1c>;
120 device_type = "ethernet-phy";
121 };
122
123 /* Vitesse 7385 */
124 ethernet-phy@1f {
125 linux,phandle = <245201f>;
126 interrupt-parent = <700>;
127 interrupts = <12 2>;
128 reg = <1f>;
129 device_type = "ethernet-phy";
130 };
131 };
132
133 ethernet@24000 {
134 device_type = "network";
135 model = "TSEC";
136 compatible = "gianfar";
137 reg = <24000 1000>;
138 address = [ 00 00 00 00 00 00 ];
139 local-mac-address = [ 00 00 00 00 00 00 ];
140 interrupts = <20 8 21 8 22 8>;
141 interrupt-parent = <700>;
142 phy-handle = <245201c>;
143 };
144
145 ethernet@25000 {
146 #address-cells = <1>;
147 #size-cells = <0>;
148 device_type = "network";
149 model = "TSEC";
150 compatible = "gianfar";
151 reg = <25000 1000>;
152 address = [ 00 00 00 00 00 00 ];
153 local-mac-address = [ 00 00 00 00 00 00 ];
154 interrupts = <23 8 24 8 25 8>;
155 interrupt-parent = <700>;
156 phy-handle = <245201f>;
157 };
158
159 serial@4500 {
160 device_type = "serial";
161 compatible = "ns16550";
162 reg = <4500 100>;
163 clock-frequency = <0>; // from bootloader
164 interrupts = <9 8>;
165 interrupt-parent = <700>;
166 };
167
168 serial@4600 {
169 device_type = "serial";
170 compatible = "ns16550";
171 reg = <4600 100>;
172 clock-frequency = <0>; // from bootloader
173 interrupts = <a 8>;
174 interrupt-parent = <700>;
175 };
176
177 pci@8500 {
178 interrupt-map-mask = <f800 0 0 7>;
179 interrupt-map = <
180 /* IDSEL 0x10 - SATA */
181 8000 0 0 1 700 16 8 /* SATA_INTA */
182 >;
183 interrupt-parent = <700>;
184 interrupts = <42 8>;
185 bus-range = <0 0>;
186 ranges = <42000000 0 80000000 80000000 0 10000000
187 02000000 0 90000000 90000000 0 10000000
188 01000000 0 00000000 e2000000 0 01000000>;
189 clock-frequency = <3f940aa>;
190 #interrupt-cells = <1>;
191 #size-cells = <2>;
192 #address-cells = <3>;
193 reg = <8500 100>;
194 compatible = "83xx";
195 device_type = "pci";
196 };
197
198 pci@8600 {
199 interrupt-map-mask = <f800 0 0 7>;
200 interrupt-map = <
201 /* IDSEL 0x0E - MiniPCI Slot */
202 7000 0 0 1 700 15 8 /* PCI_INTA */
203
204 /* IDSEL 0x0F - PCI Slot */
205 7800 0 0 1 700 14 8 /* PCI_INTA */
206 7800 0 0 2 700 15 8 /* PCI_INTB */
207 >;
208 interrupt-parent = <700>;
209 interrupts = <43 8>;
210 bus-range = <1 1>;
211 ranges = <42000000 0 a0000000 a0000000 0 10000000
212 02000000 0 b0000000 b0000000 0 10000000
213 01000000 0 00000000 e3000000 0 01000000>;
214 clock-frequency = <3f940aa>;
215 #interrupt-cells = <1>;
216 #size-cells = <2>;
217 #address-cells = <3>;
218 reg = <8600 100>;
219 compatible = "83xx";
220 device_type = "pci";
221 };
222
223 crypto@30000 {
224 device_type = "crypto";
225 model = "SEC2";
226 compatible = "talitos";
227 reg = <30000 10000>;
228 interrupts = <b 8>;
229 interrupt-parent = <700>;
230 num-channels = <4>;
231 channel-fifo-len = <18>;
232 exec-units-mask = <0000007e>;
233 descriptor-types-mask = <01010ebf>;
234 };
235
236 pic@700 {
237 linux,phandle = <700>;
238 interrupt-controller;
239 #address-cells = <0>;
240 #interrupt-cells = <2>;
241 reg = <700 100>;
242 built-in;
243 device_type = "ipic";
244 };
245 };
246};
diff --git a/arch/powerpc/boot/of.c b/arch/powerpc/boot/of.c
index fd99f789a37b..3a71845afc6c 100644
--- a/arch/powerpc/boot/of.c
+++ b/arch/powerpc/boot/of.c
@@ -176,12 +176,9 @@ static void *claim(unsigned long virt, unsigned long size, unsigned long align)
176static void *of_try_claim(u32 size) 176static void *of_try_claim(u32 size)
177{ 177{
178 unsigned long addr = 0; 178 unsigned long addr = 0;
179 static u8 first_time = 1;
180 179
181 if (first_time) { 180 if (claim_base == 0)
182 claim_base = _ALIGN_UP((unsigned long)_end, ONE_MB); 181 claim_base = _ALIGN_UP((unsigned long)_end, ONE_MB);
183 first_time = 0;
184 }
185 182
186 for(; claim_base < RAM_END; claim_base += ONE_MB) { 183 for(; claim_base < RAM_END; claim_base += ONE_MB) {
187#ifdef DEBUG 184#ifdef DEBUG
diff --git a/arch/powerpc/configs/iseries_defconfig b/arch/powerpc/configs/iseries_defconfig
index d58f82f836f8..b5005506c2f8 100644
--- a/arch/powerpc/configs/iseries_defconfig
+++ b/arch/powerpc/configs/iseries_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.18-rc6 3# Linux kernel version: 2.6.19-rc1
4# Sun Sep 10 10:22:57 2006 4# Fri Oct 6 13:25:04 2006
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7CONFIG_64BIT=y 7CONFIG_64BIT=y
@@ -22,6 +22,7 @@ CONFIG_ARCH_MAY_HAVE_PC_FDC=y
22CONFIG_PPC_OF=y 22CONFIG_PPC_OF=y
23# CONFIG_PPC_UDBG_16550 is not set 23# CONFIG_PPC_UDBG_16550 is not set
24# CONFIG_GENERIC_TBSYNC is not set 24# CONFIG_GENERIC_TBSYNC is not set
25CONFIG_AUDIT_ARCH=y
25# CONFIG_DEFAULT_UIMAGE is not set 26# CONFIG_DEFAULT_UIMAGE is not set
26 27
27# 28#
@@ -52,10 +53,11 @@ CONFIG_LOCALVERSION=""
52CONFIG_LOCALVERSION_AUTO=y 53CONFIG_LOCALVERSION_AUTO=y
53CONFIG_SWAP=y 54CONFIG_SWAP=y
54CONFIG_SYSVIPC=y 55CONFIG_SYSVIPC=y
56# CONFIG_IPC_NS is not set
55CONFIG_POSIX_MQUEUE=y 57CONFIG_POSIX_MQUEUE=y
56# CONFIG_BSD_PROCESS_ACCT is not set 58# CONFIG_BSD_PROCESS_ACCT is not set
57# CONFIG_TASKSTATS is not set 59# CONFIG_TASKSTATS is not set
58CONFIG_SYSCTL=y 60# CONFIG_UTS_NS is not set
59CONFIG_AUDIT=y 61CONFIG_AUDIT=y
60CONFIG_AUDITSYSCALL=y 62CONFIG_AUDITSYSCALL=y
61CONFIG_IKCONFIG=y 63CONFIG_IKCONFIG=y
@@ -64,7 +66,9 @@ CONFIG_IKCONFIG_PROC=y
64# CONFIG_RELAY is not set 66# CONFIG_RELAY is not set
65CONFIG_INITRAMFS_SOURCE="" 67CONFIG_INITRAMFS_SOURCE=""
66CONFIG_CC_OPTIMIZE_FOR_SIZE=y 68CONFIG_CC_OPTIMIZE_FOR_SIZE=y
69CONFIG_SYSCTL=y
67# CONFIG_EMBEDDED is not set 70# CONFIG_EMBEDDED is not set
71# CONFIG_SYSCTL_SYSCALL is not set
68CONFIG_KALLSYMS=y 72CONFIG_KALLSYMS=y
69# CONFIG_KALLSYMS_ALL is not set 73# CONFIG_KALLSYMS_ALL is not set
70# CONFIG_KALLSYMS_EXTRA_PASS is not set 74# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -73,12 +77,12 @@ CONFIG_PRINTK=y
73CONFIG_BUG=y 77CONFIG_BUG=y
74CONFIG_ELF_CORE=y 78CONFIG_ELF_CORE=y
75CONFIG_BASE_FULL=y 79CONFIG_BASE_FULL=y
76CONFIG_RT_MUTEXES=y
77CONFIG_FUTEX=y 80CONFIG_FUTEX=y
78CONFIG_EPOLL=y 81CONFIG_EPOLL=y
79CONFIG_SHMEM=y 82CONFIG_SHMEM=y
80CONFIG_SLAB=y 83CONFIG_SLAB=y
81CONFIG_VM_EVENT_COUNTERS=y 84CONFIG_VM_EVENT_COUNTERS=y
85CONFIG_RT_MUTEXES=y
82# CONFIG_TINY_SHMEM is not set 86# CONFIG_TINY_SHMEM is not set
83CONFIG_BASE_SMALL=0 87CONFIG_BASE_SMALL=0
84# CONFIG_SLOB is not set 88# CONFIG_SLOB is not set
@@ -97,6 +101,7 @@ CONFIG_STOP_MACHINE=y
97# 101#
98# Block layer 102# Block layer
99# 103#
104CONFIG_BLOCK=y
100# CONFIG_BLK_DEV_IO_TRACE is not set 105# CONFIG_BLK_DEV_IO_TRACE is not set
101 106
102# 107#
@@ -115,13 +120,18 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
115# 120#
116# Platform support 121# Platform support
117# 122#
118# CONFIG_PPC_MULTIPLATFORM is not set 123CONFIG_PPC_MULTIPLATFORM=y
119CONFIG_PPC_ISERIES=y
120# CONFIG_EMBEDDED6xx is not set 124# CONFIG_EMBEDDED6xx is not set
121# CONFIG_APUS is not set 125# CONFIG_APUS is not set
126# CONFIG_PPC_PSERIES is not set
127CONFIG_PPC_ISERIES=y
128# CONFIG_PPC_PMAC is not set
129# CONFIG_PPC_MAPLE is not set
130# CONFIG_PPC_PASEMI is not set
122# CONFIG_PPC_CELL is not set 131# CONFIG_PPC_CELL is not set
123# CONFIG_PPC_CELL_NATIVE is not set 132# CONFIG_PPC_CELL_NATIVE is not set
124# CONFIG_UDBG_RTAS_CONSOLE is not set 133# CONFIG_PPC_IBM_CELL_BLADE is not set
134# CONFIG_U3_DART is not set
125# CONFIG_PPC_RTAS is not set 135# CONFIG_PPC_RTAS is not set
126# CONFIG_MMIO_NVRAM is not set 136# CONFIG_MMIO_NVRAM is not set
127CONFIG_IBMVIO=y 137CONFIG_IBMVIO=y
@@ -147,12 +157,15 @@ CONFIG_BINFMT_ELF=y
147CONFIG_FORCE_MAX_ZONEORDER=13 157CONFIG_FORCE_MAX_ZONEORDER=13
148CONFIG_IOMMU_VMERGE=y 158CONFIG_IOMMU_VMERGE=y
149CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 159CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
160# CONFIG_KEXEC is not set
161# CONFIG_CRASH_DUMP is not set
150CONFIG_IRQ_ALL_CPUS=y 162CONFIG_IRQ_ALL_CPUS=y
151CONFIG_LPARCFG=y 163CONFIG_LPARCFG=y
152# CONFIG_NUMA is not set 164# CONFIG_NUMA is not set
153CONFIG_ARCH_SELECT_MEMORY_MODEL=y 165CONFIG_ARCH_SELECT_MEMORY_MODEL=y
154CONFIG_ARCH_FLATMEM_ENABLE=y 166CONFIG_ARCH_FLATMEM_ENABLE=y
155CONFIG_ARCH_SPARSEMEM_ENABLE=y 167CONFIG_ARCH_SPARSEMEM_ENABLE=y
168CONFIG_ARCH_POPULATES_NODE_MAP=y
156CONFIG_SELECT_MEMORY_MODEL=y 169CONFIG_SELECT_MEMORY_MODEL=y
157CONFIG_FLATMEM_MANUAL=y 170CONFIG_FLATMEM_MANUAL=y
158# CONFIG_DISCONTIGMEM_MANUAL is not set 171# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -179,6 +192,7 @@ CONFIG_GENERIC_ISA_DMA=y
179CONFIG_PCI=y 192CONFIG_PCI=y
180CONFIG_PCI_DOMAINS=y 193CONFIG_PCI_DOMAINS=y
181# CONFIG_PCIEPORTBUS is not set 194# CONFIG_PCIEPORTBUS is not set
195# CONFIG_PCI_MULTITHREAD_PROBE is not set
182# CONFIG_PCI_DEBUG is not set 196# CONFIG_PCI_DEBUG is not set
183 197
184# 198#
@@ -206,6 +220,7 @@ CONFIG_PACKET=y
206CONFIG_UNIX=y 220CONFIG_UNIX=y
207CONFIG_XFRM=y 221CONFIG_XFRM=y
208CONFIG_XFRM_USER=m 222CONFIG_XFRM_USER=m
223CONFIG_XFRM_SUB_POLICY=y
209CONFIG_NET_KEY=m 224CONFIG_NET_KEY=m
210CONFIG_INET=y 225CONFIG_INET=y
211CONFIG_IP_MULTICAST=y 226CONFIG_IP_MULTICAST=y
@@ -224,10 +239,12 @@ CONFIG_INET_XFRM_TUNNEL=m
224CONFIG_INET_TUNNEL=y 239CONFIG_INET_TUNNEL=y
225CONFIG_INET_XFRM_MODE_TRANSPORT=y 240CONFIG_INET_XFRM_MODE_TRANSPORT=y
226CONFIG_INET_XFRM_MODE_TUNNEL=y 241CONFIG_INET_XFRM_MODE_TUNNEL=y
242CONFIG_INET_XFRM_MODE_BEET=m
227CONFIG_INET_DIAG=y 243CONFIG_INET_DIAG=y
228CONFIG_INET_TCP_DIAG=y 244CONFIG_INET_TCP_DIAG=y
229# CONFIG_TCP_CONG_ADVANCED is not set 245# CONFIG_TCP_CONG_ADVANCED is not set
230CONFIG_TCP_CONG_BIC=y 246CONFIG_TCP_CONG_CUBIC=y
247CONFIG_DEFAULT_TCP_CONG="cubic"
231 248
232# 249#
233# IP: Virtual Server Configuration 250# IP: Virtual Server Configuration
@@ -247,6 +264,7 @@ CONFIG_NETFILTER=y
247CONFIG_NETFILTER_XTABLES=m 264CONFIG_NETFILTER_XTABLES=m
248CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 265CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
249CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 266CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
267CONFIG_NETFILTER_XT_TARGET_DSCP=m
250CONFIG_NETFILTER_XT_TARGET_MARK=m 268CONFIG_NETFILTER_XT_TARGET_MARK=m
251CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 269CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
252CONFIG_NETFILTER_XT_TARGET_NOTRACK=m 270CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
@@ -255,6 +273,7 @@ CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
255CONFIG_NETFILTER_XT_MATCH_CONNMARK=m 273CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
256CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m 274CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
257# CONFIG_NETFILTER_XT_MATCH_DCCP is not set 275# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
276CONFIG_NETFILTER_XT_MATCH_DSCP=m
258# CONFIG_NETFILTER_XT_MATCH_ESP is not set 277# CONFIG_NETFILTER_XT_MATCH_ESP is not set
259CONFIG_NETFILTER_XT_MATCH_HELPER=m 278CONFIG_NETFILTER_XT_MATCH_HELPER=m
260CONFIG_NETFILTER_XT_MATCH_LENGTH=m 279CONFIG_NETFILTER_XT_MATCH_LENGTH=m
@@ -294,7 +313,6 @@ CONFIG_IP_NF_MATCH_IPRANGE=m
294CONFIG_IP_NF_MATCH_TOS=m 313CONFIG_IP_NF_MATCH_TOS=m
295CONFIG_IP_NF_MATCH_RECENT=m 314CONFIG_IP_NF_MATCH_RECENT=m
296CONFIG_IP_NF_MATCH_ECN=m 315CONFIG_IP_NF_MATCH_ECN=m
297CONFIG_IP_NF_MATCH_DSCP=m
298# CONFIG_IP_NF_MATCH_AH is not set 316# CONFIG_IP_NF_MATCH_AH is not set
299CONFIG_IP_NF_MATCH_TTL=m 317CONFIG_IP_NF_MATCH_TTL=m
300CONFIG_IP_NF_MATCH_OWNER=m 318CONFIG_IP_NF_MATCH_OWNER=m
@@ -319,7 +337,6 @@ CONFIG_IP_NF_NAT_AMANDA=m
319CONFIG_IP_NF_MANGLE=m 337CONFIG_IP_NF_MANGLE=m
320CONFIG_IP_NF_TARGET_TOS=m 338CONFIG_IP_NF_TARGET_TOS=m
321CONFIG_IP_NF_TARGET_ECN=m 339CONFIG_IP_NF_TARGET_ECN=m
322CONFIG_IP_NF_TARGET_DSCP=m
323CONFIG_IP_NF_TARGET_TTL=m 340CONFIG_IP_NF_TARGET_TTL=m
324CONFIG_IP_NF_TARGET_CLUSTERIP=m 341CONFIG_IP_NF_TARGET_CLUSTERIP=m
325CONFIG_IP_NF_RAW=m 342CONFIG_IP_NF_RAW=m
@@ -351,7 +368,6 @@ CONFIG_LLC=y
351# CONFIG_ATALK is not set 368# CONFIG_ATALK is not set
352# CONFIG_X25 is not set 369# CONFIG_X25 is not set
353# CONFIG_LAPB is not set 370# CONFIG_LAPB is not set
354# CONFIG_NET_DIVERT is not set
355# CONFIG_ECONET is not set 371# CONFIG_ECONET is not set
356# CONFIG_WAN_ROUTER is not set 372# CONFIG_WAN_ROUTER is not set
357 373
@@ -433,6 +449,7 @@ CONFIG_BLK_DEV_INITRD=y
433# 449#
434# CONFIG_RAID_ATTRS is not set 450# CONFIG_RAID_ATTRS is not set
435CONFIG_SCSI=y 451CONFIG_SCSI=y
452CONFIG_SCSI_NETLINK=y
436CONFIG_SCSI_PROC_FS=y 453CONFIG_SCSI_PROC_FS=y
437 454
438# 455#
@@ -454,12 +471,14 @@ CONFIG_SCSI_CONSTANTS=y
454# CONFIG_SCSI_LOGGING is not set 471# CONFIG_SCSI_LOGGING is not set
455 472
456# 473#
457# SCSI Transport Attributes 474# SCSI Transports
458# 475#
459CONFIG_SCSI_SPI_ATTRS=y 476CONFIG_SCSI_SPI_ATTRS=y
460CONFIG_SCSI_FC_ATTRS=y 477CONFIG_SCSI_FC_ATTRS=y
461# CONFIG_SCSI_ISCSI_ATTRS is not set 478# CONFIG_SCSI_ISCSI_ATTRS is not set
462# CONFIG_SCSI_SAS_ATTRS is not set 479CONFIG_SCSI_SAS_ATTRS=m
480CONFIG_SCSI_SAS_LIBSAS=m
481CONFIG_SCSI_SAS_LIBSAS_DEBUG=y
463 482
464# 483#
465# SCSI low-level drivers 484# SCSI low-level drivers
@@ -472,10 +491,11 @@ CONFIG_SCSI_FC_ATTRS=y
472# CONFIG_SCSI_AIC7XXX is not set 491# CONFIG_SCSI_AIC7XXX is not set
473# CONFIG_SCSI_AIC7XXX_OLD is not set 492# CONFIG_SCSI_AIC7XXX_OLD is not set
474# CONFIG_SCSI_AIC79XX is not set 493# CONFIG_SCSI_AIC79XX is not set
494# CONFIG_SCSI_AIC94XX is not set
495# CONFIG_SCSI_ARCMSR is not set
475# CONFIG_MEGARAID_NEWGEN is not set 496# CONFIG_MEGARAID_NEWGEN is not set
476# CONFIG_MEGARAID_LEGACY is not set 497# CONFIG_MEGARAID_LEGACY is not set
477# CONFIG_MEGARAID_SAS is not set 498# CONFIG_MEGARAID_SAS is not set
478# CONFIG_ATA is not set
479# CONFIG_SCSI_HPTIOP is not set 499# CONFIG_SCSI_HPTIOP is not set
480# CONFIG_SCSI_BUSLOGIC is not set 500# CONFIG_SCSI_BUSLOGIC is not set
481# CONFIG_SCSI_DMX3191D is not set 501# CONFIG_SCSI_DMX3191D is not set
@@ -486,16 +506,22 @@ CONFIG_SCSI_FC_ATTRS=y
486CONFIG_SCSI_IBMVSCSI=m 506CONFIG_SCSI_IBMVSCSI=m
487# CONFIG_SCSI_INITIO is not set 507# CONFIG_SCSI_INITIO is not set
488# CONFIG_SCSI_INIA100 is not set 508# CONFIG_SCSI_INIA100 is not set
509# CONFIG_SCSI_STEX is not set
489# CONFIG_SCSI_SYM53C8XX_2 is not set 510# CONFIG_SCSI_SYM53C8XX_2 is not set
490# CONFIG_SCSI_IPR is not set
491# CONFIG_SCSI_QLOGIC_1280 is not set 511# CONFIG_SCSI_QLOGIC_1280 is not set
492# CONFIG_SCSI_QLA_FC is not set 512# CONFIG_SCSI_QLA_FC is not set
513# CONFIG_SCSI_QLA_ISCSI is not set
493# CONFIG_SCSI_LPFC is not set 514# CONFIG_SCSI_LPFC is not set
494# CONFIG_SCSI_DC395x is not set 515# CONFIG_SCSI_DC395x is not set
495# CONFIG_SCSI_DC390T is not set 516# CONFIG_SCSI_DC390T is not set
496# CONFIG_SCSI_DEBUG is not set 517# CONFIG_SCSI_DEBUG is not set
497 518
498# 519#
520# Serial ATA (prod) and Parallel ATA (experimental) drivers
521#
522# CONFIG_ATA is not set
523
524#
499# Multi-device support (RAID and LVM) 525# Multi-device support (RAID and LVM)
500# 526#
501CONFIG_MD=y 527CONFIG_MD=y
@@ -508,6 +534,7 @@ CONFIG_MD_RAID10=m
508CONFIG_MD_MULTIPATH=m 534CONFIG_MD_MULTIPATH=m
509CONFIG_MD_FAULTY=m 535CONFIG_MD_FAULTY=m
510CONFIG_BLK_DEV_DM=y 536CONFIG_BLK_DEV_DM=y
537# CONFIG_DM_DEBUG is not set
511CONFIG_DM_CRYPT=m 538CONFIG_DM_CRYPT=m
512CONFIG_DM_SNAPSHOT=m 539CONFIG_DM_SNAPSHOT=m
513CONFIG_DM_MIRROR=m 540CONFIG_DM_MIRROR=m
@@ -573,6 +600,7 @@ CONFIG_MII=y
573# CONFIG_HP100 is not set 600# CONFIG_HP100 is not set
574CONFIG_NET_PCI=y 601CONFIG_NET_PCI=y
575CONFIG_PCNET32=y 602CONFIG_PCNET32=y
603CONFIG_PCNET32_NAPI=y
576# CONFIG_AMD8111_ETH is not set 604# CONFIG_AMD8111_ETH is not set
577# CONFIG_ADAPTEC_STARFIRE is not set 605# CONFIG_ADAPTEC_STARFIRE is not set
578# CONFIG_B44 is not set 606# CONFIG_B44 is not set
@@ -610,6 +638,7 @@ CONFIG_E1000=m
610# CONFIG_VIA_VELOCITY is not set 638# CONFIG_VIA_VELOCITY is not set
611# CONFIG_TIGON3 is not set 639# CONFIG_TIGON3 is not set
612# CONFIG_BNX2 is not set 640# CONFIG_BNX2 is not set
641# CONFIG_QLA3XXX is not set
613 642
614# 643#
615# Ethernet (10000 Mbit) 644# Ethernet (10000 Mbit)
@@ -649,6 +678,7 @@ CONFIG_PPP_BSDCOMP=m
649# CONFIG_PPP_MPPE is not set 678# CONFIG_PPP_MPPE is not set
650CONFIG_PPPOE=m 679CONFIG_PPPOE=m
651# CONFIG_SLIP is not set 680# CONFIG_SLIP is not set
681CONFIG_SLHC=m
652# CONFIG_NET_FC is not set 682# CONFIG_NET_FC is not set
653# CONFIG_SHAPER is not set 683# CONFIG_SHAPER is not set
654CONFIG_NETCONSOLE=y 684CONFIG_NETCONSOLE=y
@@ -671,6 +701,7 @@ CONFIG_NET_POLL_CONTROLLER=y
671# Input device support 701# Input device support
672# 702#
673CONFIG_INPUT=y 703CONFIG_INPUT=y
704# CONFIG_INPUT_FF_MEMLESS is not set
674 705
675# 706#
676# Userland interfaces 707# Userland interfaces
@@ -774,12 +805,12 @@ CONFIG_MAX_RAW_DEVS=256
774# 805#
775# Misc devices 806# Misc devices
776# 807#
808# CONFIG_TIFM_CORE is not set
777 809
778# 810#
779# Multimedia devices 811# Multimedia devices
780# 812#
781# CONFIG_VIDEO_DEV is not set 813# CONFIG_VIDEO_DEV is not set
782CONFIG_VIDEO_V4L2=y
783 814
784# 815#
785# Digital Video Broadcasting Devices 816# Digital Video Broadcasting Devices
@@ -893,6 +924,9 @@ CONFIG_XFS_FS=m
893CONFIG_XFS_SECURITY=y 924CONFIG_XFS_SECURITY=y
894CONFIG_XFS_POSIX_ACL=y 925CONFIG_XFS_POSIX_ACL=y
895# CONFIG_XFS_RT is not set 926# CONFIG_XFS_RT is not set
927CONFIG_GFS2_FS=m
928CONFIG_GFS2_FS_LOCKING_NOLOCK=m
929CONFIG_GFS2_FS_LOCKING_DLM=m
896# CONFIG_OCFS2_FS is not set 930# CONFIG_OCFS2_FS is not set
897# CONFIG_MINIX_FS is not set 931# CONFIG_MINIX_FS is not set
898# CONFIG_ROMFS_FS is not set 932# CONFIG_ROMFS_FS is not set
@@ -929,12 +963,14 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
929# 963#
930CONFIG_PROC_FS=y 964CONFIG_PROC_FS=y
931CONFIG_PROC_KCORE=y 965CONFIG_PROC_KCORE=y
966CONFIG_PROC_SYSCTL=y
932CONFIG_SYSFS=y 967CONFIG_SYSFS=y
933CONFIG_TMPFS=y 968CONFIG_TMPFS=y
969CONFIG_TMPFS_POSIX_ACL=y
934# CONFIG_HUGETLBFS is not set 970# CONFIG_HUGETLBFS is not set
935# CONFIG_HUGETLB_PAGE is not set 971# CONFIG_HUGETLB_PAGE is not set
936CONFIG_RAMFS=y 972CONFIG_RAMFS=y
937# CONFIG_CONFIGFS_FS is not set 973CONFIG_CONFIGFS_FS=m
938 974
939# 975#
940# Miscellaneous filesystems 976# Miscellaneous filesystems
@@ -988,6 +1024,7 @@ CONFIG_CIFS_POSIX=y
988# CONFIG_CODA_FS is not set 1024# CONFIG_CODA_FS is not set
989# CONFIG_AFS_FS is not set 1025# CONFIG_AFS_FS is not set
990# CONFIG_9P_FS is not set 1026# CONFIG_9P_FS is not set
1027CONFIG_GENERIC_ACL=y
991 1028
992# 1029#
993# Partition Types 1030# Partition Types
@@ -1040,6 +1077,12 @@ CONFIG_NLS_ISO8859_1=y
1040# CONFIG_NLS_UTF8 is not set 1077# CONFIG_NLS_UTF8 is not set
1041 1078
1042# 1079#
1080# Distributed Lock Manager
1081#
1082CONFIG_DLM=m
1083# CONFIG_DLM_DEBUG is not set
1084
1085#
1043# iSeries device drivers 1086# iSeries device drivers
1044# 1087#
1045CONFIG_VIOCONS=y 1088CONFIG_VIOCONS=y
@@ -1073,6 +1116,7 @@ CONFIG_PLIST=y
1073# Kernel hacking 1116# Kernel hacking
1074# 1117#
1075# CONFIG_PRINTK_TIME is not set 1118# CONFIG_PRINTK_TIME is not set
1119CONFIG_ENABLE_MUST_CHECK=y
1076CONFIG_MAGIC_SYSRQ=y 1120CONFIG_MAGIC_SYSRQ=y
1077# CONFIG_UNUSED_SYMBOLS is not set 1121# CONFIG_UNUSED_SYMBOLS is not set
1078CONFIG_DEBUG_KERNEL=y 1122CONFIG_DEBUG_KERNEL=y
@@ -1091,6 +1135,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
1091# CONFIG_DEBUG_INFO is not set 1135# CONFIG_DEBUG_INFO is not set
1092CONFIG_DEBUG_FS=y 1136CONFIG_DEBUG_FS=y
1093# CONFIG_DEBUG_VM is not set 1137# CONFIG_DEBUG_VM is not set
1138# CONFIG_DEBUG_LIST is not set
1094# CONFIG_FORCED_INLINING is not set 1139# CONFIG_FORCED_INLINING is not set
1095# CONFIG_RCU_TORTURE_TEST is not set 1140# CONFIG_RCU_TORTURE_TEST is not set
1096CONFIG_DEBUG_STACKOVERFLOW=y 1141CONFIG_DEBUG_STACKOVERFLOW=y
@@ -1109,6 +1154,10 @@ CONFIG_IRQSTACKS=y
1109# Cryptographic options 1154# Cryptographic options
1110# 1155#
1111CONFIG_CRYPTO=y 1156CONFIG_CRYPTO=y
1157CONFIG_CRYPTO_ALGAPI=y
1158CONFIG_CRYPTO_BLKCIPHER=m
1159CONFIG_CRYPTO_HASH=y
1160CONFIG_CRYPTO_MANAGER=m
1112CONFIG_CRYPTO_HMAC=y 1161CONFIG_CRYPTO_HMAC=y
1113CONFIG_CRYPTO_NULL=m 1162CONFIG_CRYPTO_NULL=m
1114CONFIG_CRYPTO_MD4=m 1163CONFIG_CRYPTO_MD4=m
@@ -1118,9 +1167,12 @@ CONFIG_CRYPTO_SHA256=m
1118CONFIG_CRYPTO_SHA512=m 1167CONFIG_CRYPTO_SHA512=m
1119CONFIG_CRYPTO_WP512=m 1168CONFIG_CRYPTO_WP512=m
1120CONFIG_CRYPTO_TGR192=m 1169CONFIG_CRYPTO_TGR192=m
1170CONFIG_CRYPTO_ECB=m
1171CONFIG_CRYPTO_CBC=m
1121CONFIG_CRYPTO_DES=y 1172CONFIG_CRYPTO_DES=y
1122CONFIG_CRYPTO_BLOWFISH=m 1173CONFIG_CRYPTO_BLOWFISH=m
1123CONFIG_CRYPTO_TWOFISH=m 1174CONFIG_CRYPTO_TWOFISH=m
1175CONFIG_CRYPTO_TWOFISH_COMMON=m
1124CONFIG_CRYPTO_SERPENT=m 1176CONFIG_CRYPTO_SERPENT=m
1125CONFIG_CRYPTO_AES=m 1177CONFIG_CRYPTO_AES=m
1126CONFIG_CRYPTO_CAST5=m 1178CONFIG_CRYPTO_CAST5=m
diff --git a/arch/powerpc/configs/pseries_defconfig b/arch/powerpc/configs/pseries_defconfig
index 44175fb7adec..9828663652e9 100644
--- a/arch/powerpc/configs/pseries_defconfig
+++ b/arch/powerpc/configs/pseries_defconfig
@@ -506,7 +506,7 @@ CONFIG_SCSI_SAS_ATTRS=m
506# CONFIG_MEGARAID_NEWGEN is not set 506# CONFIG_MEGARAID_NEWGEN is not set
507# CONFIG_MEGARAID_LEGACY is not set 507# CONFIG_MEGARAID_LEGACY is not set
508# CONFIG_MEGARAID_SAS is not set 508# CONFIG_MEGARAID_SAS is not set
509# CONFIG_ATA is not set 509CONFIG_ATA=y
510# CONFIG_SCSI_HPTIOP is not set 510# CONFIG_SCSI_HPTIOP is not set
511# CONFIG_SCSI_BUSLOGIC is not set 511# CONFIG_SCSI_BUSLOGIC is not set
512# CONFIG_SCSI_DMX3191D is not set 512# CONFIG_SCSI_DMX3191D is not set
diff --git a/arch/powerpc/kernel/ibmebus.c b/arch/powerpc/kernel/ibmebus.c
index 124dbcba94a8..da9fe254eb94 100644
--- a/arch/powerpc/kernel/ibmebus.c
+++ b/arch/powerpc/kernel/ibmebus.c
@@ -319,7 +319,7 @@ EXPORT_SYMBOL(ibmebus_unregister_driver);
319 319
320int ibmebus_request_irq(struct ibmebus_dev *dev, 320int ibmebus_request_irq(struct ibmebus_dev *dev,
321 u32 ist, 321 u32 ist,
322 irqreturn_t (*handler)(int, void*, struct pt_regs *), 322 irqreturn_t (*handler)(int, void*),
323 unsigned long irq_flags, const char * devname, 323 unsigned long irq_flags, const char * devname,
324 void *dev_id) 324 void *dev_id)
325{ 325{
diff --git a/arch/powerpc/kernel/iommu.c b/arch/powerpc/kernel/iommu.c
index ba0694071728..f88a2a675d90 100644
--- a/arch/powerpc/kernel/iommu.c
+++ b/arch/powerpc/kernel/iommu.c
@@ -75,7 +75,7 @@ static unsigned long iommu_range_alloc(struct iommu_table *tbl,
75 /* This allocator was derived from x86_64's bit string search */ 75 /* This allocator was derived from x86_64's bit string search */
76 76
77 /* Sanity check */ 77 /* Sanity check */
78 if (unlikely(npages) == 0) { 78 if (unlikely(npages == 0)) {
79 if (printk_ratelimit()) 79 if (printk_ratelimit())
80 WARN_ON(1); 80 WARN_ON(1);
81 return DMA_ERROR_CODE; 81 return DMA_ERROR_CODE;
diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c
index 5deaab3090b4..829ac18b566c 100644
--- a/arch/powerpc/kernel/irq.c
+++ b/arch/powerpc/kernel/irq.c
@@ -217,7 +217,7 @@ void do_IRQ(struct pt_regs *regs)
217 * The value -2 is for buggy hardware and means that this IRQ 217 * The value -2 is for buggy hardware and means that this IRQ
218 * has already been handled. -- Tom 218 * has already been handled. -- Tom
219 */ 219 */
220 irq = ppc_md.get_irq(regs); 220 irq = ppc_md.get_irq();
221 221
222 if (irq != NO_IRQ && irq != NO_IRQ_IGNORE) { 222 if (irq != NO_IRQ && irq != NO_IRQ_IGNORE) {
223#ifdef CONFIG_IRQSTACKS 223#ifdef CONFIG_IRQSTACKS
diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
index eb913f80bfb1..865b9648d0d5 100644
--- a/arch/powerpc/kernel/prom.c
+++ b/arch/powerpc/kernel/prom.c
@@ -724,7 +724,7 @@ static int __init early_init_dt_scan_chosen(unsigned long node,
724 strlcpy(cmd_line, p, min((int)l, COMMAND_LINE_SIZE)); 724 strlcpy(cmd_line, p, min((int)l, COMMAND_LINE_SIZE));
725 725
726#ifdef CONFIG_CMDLINE 726#ifdef CONFIG_CMDLINE
727 if (l == 0 || (l == 1 && (*p) == 0)) 727 if (p == NULL || l == 0 || (l == 1 && (*p) == 0))
728 strlcpy(cmd_line, CONFIG_CMDLINE, COMMAND_LINE_SIZE); 728 strlcpy(cmd_line, CONFIG_CMDLINE, COMMAND_LINE_SIZE);
729#endif /* CONFIG_CMDLINE */ 729#endif /* CONFIG_CMDLINE */
730 730
diff --git a/arch/powerpc/kernel/prom_parse.c b/arch/powerpc/kernel/prom_parse.c
index 603dff3ad62a..17fcb4842fe5 100644
--- a/arch/powerpc/kernel/prom_parse.c
+++ b/arch/powerpc/kernel/prom_parse.c
@@ -914,6 +914,17 @@ int of_irq_map_pci(struct pci_dev *pdev, struct of_irq *out_irq)
914 u8 pin; 914 u8 pin;
915 int rc; 915 int rc;
916 916
917 /* We need to first check if the PCI device has a PCI interrupt at all
918 * since we have cases where the device-node might expose non-PCI
919 * interrupts, but the device has no PCI interrupt to it
920 */
921 rc = pci_read_config_byte(pdev, PCI_INTERRUPT_PIN, &pin);
922 if (rc != 0)
923 return rc;
924 /* No pin, exit */
925 if (pin == 0)
926 return -ENODEV;
927
917 /* Check if we have a device node, if yes, fallback to standard OF 928 /* Check if we have a device node, if yes, fallback to standard OF
918 * parsing 929 * parsing
919 */ 930 */
@@ -925,12 +936,6 @@ int of_irq_map_pci(struct pci_dev *pdev, struct of_irq *out_irq)
925 * interrupt spec. we assume #interrupt-cells is 1, which is standard 936 * interrupt spec. we assume #interrupt-cells is 1, which is standard
926 * for PCI. If you do different, then don't use that routine. 937 * for PCI. If you do different, then don't use that routine.
927 */ 938 */
928 rc = pci_read_config_byte(pdev, PCI_INTERRUPT_PIN, &pin);
929 if (rc != 0)
930 return rc;
931 /* No pin, exit */
932 if (pin == 0)
933 return -ENODEV;
934 939
935 /* Now we walk up the PCI tree */ 940 /* Now we walk up the PCI tree */
936 lspec = pin; 941 lspec = pin;
diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c
index d210d0a5006b..5b59bc18dfe7 100644
--- a/arch/powerpc/kernel/time.c
+++ b/arch/powerpc/kernel/time.c
@@ -706,7 +706,7 @@ void timer_interrupt(struct pt_regs * regs)
706 706
707#ifdef CONFIG_PPC_ISERIES 707#ifdef CONFIG_PPC_ISERIES
708 if (hvlpevent_is_pending()) 708 if (hvlpevent_is_pending())
709 process_hvlpevents(regs); 709 process_hvlpevents();
710#endif 710#endif
711 711
712#ifdef CONFIG_PPC64 712#ifdef CONFIG_PPC64
diff --git a/arch/powerpc/platforms/82xx/mpc82xx_ads.c b/arch/powerpc/platforms/82xx/mpc82xx_ads.c
index 4276f087f26e..0cea42a8053d 100644
--- a/arch/powerpc/platforms/82xx/mpc82xx_ads.c
+++ b/arch/powerpc/platforms/82xx/mpc82xx_ads.c
@@ -384,8 +384,7 @@ struct hw_interrupt_type m82xx_pci_ic = {
384}; 384};
385 385
386static void 386static void
387m82xx_pci_irq_demux(unsigned int irq, struct irq_desc *desc, 387m82xx_pci_irq_demux(unsigned int irq, struct irq_desc *desc)
388 struct pt_regs *regs)
389{ 388{
390 unsigned long stat, mask, pend; 389 unsigned long stat, mask, pend;
391 int bit; 390 int bit;
@@ -398,7 +397,7 @@ m82xx_pci_irq_demux(unsigned int irq, struct irq_desc *desc,
398 break; 397 break;
399 for (bit = 0; pend != 0; ++bit, pend <<= 1) { 398 for (bit = 0; pend != 0; ++bit, pend <<= 1) {
400 if (pend & 0x80000000) 399 if (pend & 0x80000000)
401 __do_IRQ(pci_int_base + bit, regs); 400 __do_IRQ(pci_int_base + bit);
402 } 401 }
403 } 402 }
404} 403}
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_ads.c b/arch/powerpc/platforms/85xx/mpc85xx_ads.c
index 8af7126fc6b9..d3e669d69c73 100644
--- a/arch/powerpc/platforms/85xx/mpc85xx_ads.c
+++ b/arch/powerpc/platforms/85xx/mpc85xx_ads.c
@@ -66,12 +66,11 @@ mpc85xx_pcibios_fixup(void)
66 66
67#ifdef CONFIG_CPM2 67#ifdef CONFIG_CPM2
68 68
69static void cpm2_cascade(unsigned int irq, struct irq_desc *desc, 69static void cpm2_cascade(unsigned int irq, struct irq_desc *desc)
70 struct pt_regs *regs)
71{ 70{
72 int cascade_irq; 71 int cascade_irq;
73 72
74 while ((cascade_irq = cpm2_get_irq(regs)) >= 0) { 73 while ((cascade_irq = cpm2_get_irq()) >= 0) {
75 generic_handle_irq(cascade_irq); 74 generic_handle_irq(cascade_irq);
76 } 75 }
77 desc->chip->eoi(irq); 76 desc->chip->eoi(irq);
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_cds.c b/arch/powerpc/platforms/85xx/mpc85xx_cds.c
index b92fc6976a47..953cd5dd3f54 100644
--- a/arch/powerpc/platforms/85xx/mpc85xx_cds.c
+++ b/arch/powerpc/platforms/85xx/mpc85xx_cds.c
@@ -132,10 +132,9 @@ mpc85xx_cds_pcibios_fixup(void)
132 132
133#ifdef CONFIG_PPC_I8259 133#ifdef CONFIG_PPC_I8259
134#warning The i8259 PIC support is currently broken 134#warning The i8259 PIC support is currently broken
135static void mpc85xx_8259_cascade(unsigned int irq, struct 135static void mpc85xx_8259_cascade(unsigned int irq, struct irq_desc *desc)
136 irq_desc *desc, struct pt_regs *regs)
137{ 136{
138 unsigned int cascade_irq = i8259_irq(regs); 137 unsigned int cascade_irq = i8259_irq();
139 138
140 if (cascade_irq != NO_IRQ) 139 if (cascade_irq != NO_IRQ)
141 generic_handle_irq(cascade_irq); 140 generic_handle_irq(cascade_irq);
@@ -150,8 +149,10 @@ void __init mpc85xx_cds_pic_init(void)
150 struct mpic *mpic; 149 struct mpic *mpic;
151 struct resource r; 150 struct resource r;
152 struct device_node *np = NULL; 151 struct device_node *np = NULL;
152#ifdef CONFIG_PPC_I8259
153 struct device_node *cascade_node = NULL; 153 struct device_node *cascade_node = NULL;
154 int cascade_irq; 154 int cascade_irq;
155#endif
155 156
156 np = of_find_node_by_type(np, "open-pic"); 157 np = of_find_node_by_type(np, "open-pic");
157 158
diff --git a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
index 8218703babde..1a1c226ad4d9 100644
--- a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
+++ b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
@@ -53,10 +53,9 @@ unsigned long pci_dram_offset = 0;
53 53
54 54
55#ifdef CONFIG_PCI 55#ifdef CONFIG_PCI
56static void mpc86xx_8259_cascade(unsigned int irq, struct irq_desc *desc, 56static void mpc86xx_8259_cascade(unsigned int irq, struct irq_desc *desc)
57 struct pt_regs *regs)
58{ 57{
59 unsigned int cascade_irq = i8259_irq(regs); 58 unsigned int cascade_irq = i8259_irq();
60 if (cascade_irq != NO_IRQ) 59 if (cascade_irq != NO_IRQ)
61 generic_handle_irq(cascade_irq); 60 generic_handle_irq(cascade_irq);
62 desc->chip->eoi(irq); 61 desc->chip->eoi(irq);
diff --git a/arch/powerpc/platforms/cell/interrupt.c b/arch/powerpc/platforms/cell/interrupt.c
index f8768b096f02..a914c12b4060 100644
--- a/arch/powerpc/platforms/cell/interrupt.c
+++ b/arch/powerpc/platforms/cell/interrupt.c
@@ -98,8 +98,7 @@ static void iic_ioexc_eoi(unsigned int irq)
98{ 98{
99} 99}
100 100
101static void iic_ioexc_cascade(unsigned int irq, struct irq_desc *desc, 101static void iic_ioexc_cascade(unsigned int irq, struct irq_desc *desc)
102 struct pt_regs *regs)
103{ 102{
104 struct cbe_iic_regs __iomem *node_iic = (void __iomem *)desc->handler_data; 103 struct cbe_iic_regs __iomem *node_iic = (void __iomem *)desc->handler_data;
105 unsigned int base = (irq & 0xffffff00) | IIC_IRQ_TYPE_IOEXC; 104 unsigned int base = (irq & 0xffffff00) | IIC_IRQ_TYPE_IOEXC;
@@ -140,7 +139,7 @@ static struct irq_chip iic_ioexc_chip = {
140}; 139};
141 140
142/* Get an IRQ number from the pending state register of the IIC */ 141/* Get an IRQ number from the pending state register of the IIC */
143static unsigned int iic_get_irq(struct pt_regs *regs) 142static unsigned int iic_get_irq(void)
144{ 143{
145 struct cbe_iic_pending_bits pending; 144 struct cbe_iic_pending_bits pending;
146 struct iic *iic; 145 struct iic *iic;
diff --git a/arch/powerpc/platforms/cell/spu_base.c b/arch/powerpc/platforms/cell/spu_base.c
index ac5f12662dbb..ccfd0c4db874 100644
--- a/arch/powerpc/platforms/cell/spu_base.c
+++ b/arch/powerpc/platforms/cell/spu_base.c
@@ -147,7 +147,7 @@ static int __spu_trap_data_map(struct spu *spu, unsigned long ea, u64 dsisr)
147} 147}
148 148
149static irqreturn_t 149static irqreturn_t
150spu_irq_class_0(int irq, void *data, struct pt_regs *regs) 150spu_irq_class_0(int irq, void *data)
151{ 151{
152 struct spu *spu; 152 struct spu *spu;
153 153
@@ -186,7 +186,7 @@ spu_irq_class_0_bottom(struct spu *spu)
186EXPORT_SYMBOL_GPL(spu_irq_class_0_bottom); 186EXPORT_SYMBOL_GPL(spu_irq_class_0_bottom);
187 187
188static irqreturn_t 188static irqreturn_t
189spu_irq_class_1(int irq, void *data, struct pt_regs *regs) 189spu_irq_class_1(int irq, void *data)
190{ 190{
191 struct spu *spu; 191 struct spu *spu;
192 unsigned long stat, mask, dar, dsisr; 192 unsigned long stat, mask, dar, dsisr;
@@ -224,7 +224,7 @@ spu_irq_class_1(int irq, void *data, struct pt_regs *regs)
224EXPORT_SYMBOL_GPL(spu_irq_class_1_bottom); 224EXPORT_SYMBOL_GPL(spu_irq_class_1_bottom);
225 225
226static irqreturn_t 226static irqreturn_t
227spu_irq_class_2(int irq, void *data, struct pt_regs *regs) 227spu_irq_class_2(int irq, void *data)
228{ 228{
229 struct spu *spu; 229 struct spu *spu;
230 unsigned long stat; 230 unsigned long stat;
diff --git a/arch/powerpc/platforms/chrp/setup.c b/arch/powerpc/platforms/chrp/setup.c
index 35cd7a5f6834..cae3d13229b9 100644
--- a/arch/powerpc/platforms/chrp/setup.c
+++ b/arch/powerpc/platforms/chrp/setup.c
@@ -70,7 +70,7 @@ unsigned long event_scan_interval;
70 * has to include <linux/interrupt.h> (to get irqreturn_t), which 70 * has to include <linux/interrupt.h> (to get irqreturn_t), which
71 * causes all sorts of problems. -- paulus 71 * causes all sorts of problems. -- paulus
72 */ 72 */
73extern irqreturn_t xmon_irq(int, void *, struct pt_regs *); 73extern irqreturn_t xmon_irq(int, void *);
74 74
75extern unsigned long loops_per_jiffy; 75extern unsigned long loops_per_jiffy;
76 76
@@ -335,10 +335,9 @@ chrp_event_scan(unsigned long unused)
335 jiffies + event_scan_interval); 335 jiffies + event_scan_interval);
336} 336}
337 337
338static void chrp_8259_cascade(unsigned int irq, struct irq_desc *desc, 338static void chrp_8259_cascade(unsigned int irq, struct irq_desc *desc)
339 struct pt_regs *regs)
340{ 339{
341 unsigned int cascade_irq = i8259_irq(regs); 340 unsigned int cascade_irq = i8259_irq();
342 if (cascade_irq != NO_IRQ) 341 if (cascade_irq != NO_IRQ)
343 generic_handle_irq(cascade_irq); 342 generic_handle_irq(cascade_irq);
344 desc->chip->eoi(irq); 343 desc->chip->eoi(irq);
diff --git a/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c b/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c
index cb6f084844f2..bdb475c65cba 100644
--- a/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c
+++ b/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c
@@ -61,8 +61,7 @@ pci_dram_offset = MPC7448_HPC2_PCI_MEM_OFFSET;
61extern int tsi108_setup_pci(struct device_node *dev); 61extern int tsi108_setup_pci(struct device_node *dev);
62extern void _nmask_and_or_msr(unsigned long nmask, unsigned long or_val); 62extern void _nmask_and_or_msr(unsigned long nmask, unsigned long or_val);
63extern void tsi108_pci_int_init(void); 63extern void tsi108_pci_int_init(void);
64extern void tsi108_irq_cascade(unsigned int irq, struct irq_desc *desc, 64extern void tsi108_irq_cascade(unsigned int irq, struct irq_desc *desc);
65 struct pt_regs *regs);
66 65
67int mpc7448_hpc2_exclude_device(u_char bus, u_char devfn) 66int mpc7448_hpc2_exclude_device(u_char bus, u_char devfn)
68{ 67{
@@ -200,7 +199,7 @@ static void __init mpc7448_hpc2_init_IRQ(void)
200 tsi_pic = of_find_node_by_type(NULL, "open-pic"); 199 tsi_pic = of_find_node_by_type(NULL, "open-pic");
201 if (tsi_pic) { 200 if (tsi_pic) {
202 unsigned int size; 201 unsigned int size;
203 void *prop = get_property(tsi_pic, "reg", &size); 202 const void *prop = get_property(tsi_pic, "reg", &size);
204 mpic_paddr = of_translate_address(tsi_pic, prop); 203 mpic_paddr = of_translate_address(tsi_pic, prop);
205 } 204 }
206 205
diff --git a/arch/powerpc/platforms/iseries/irq.c b/arch/powerpc/platforms/iseries/irq.c
index e32446877e78..5225abfafd9b 100644
--- a/arch/powerpc/platforms/iseries/irq.c
+++ b/arch/powerpc/platforms/iseries/irq.c
@@ -43,10 +43,7 @@
43#include "irq.h" 43#include "irq.h"
44#include "pci.h" 44#include "pci.h"
45#include "call_pci.h" 45#include "call_pci.h"
46 46#include "smp.h"
47#if defined(CONFIG_SMP)
48extern void iSeries_smp_message_recv(struct pt_regs *);
49#endif
50 47
51#ifdef CONFIG_PCI 48#ifdef CONFIG_PCI
52 49
@@ -88,7 +85,7 @@ static DEFINE_SPINLOCK(pending_irqs_lock);
88static int num_pending_irqs; 85static int num_pending_irqs;
89static int pending_irqs[NR_IRQS]; 86static int pending_irqs[NR_IRQS];
90 87
91static void int_received(struct pci_event *event, struct pt_regs *regs) 88static void int_received(struct pci_event *event)
92{ 89{
93 int irq; 90 int irq;
94 91
@@ -146,11 +143,11 @@ static void int_received(struct pci_event *event, struct pt_regs *regs)
146 } 143 }
147} 144}
148 145
149static void pci_event_handler(struct HvLpEvent *event, struct pt_regs *regs) 146static void pci_event_handler(struct HvLpEvent *event)
150{ 147{
151 if (event && (event->xType == HvLpEvent_Type_PciIo)) { 148 if (event && (event->xType == HvLpEvent_Type_PciIo)) {
152 if (hvlpevent_is_int(event)) 149 if (hvlpevent_is_int(event))
153 int_received((struct pci_event *)event, regs); 150 int_received((struct pci_event *)event);
154 else 151 else
155 printk(KERN_ERR 152 printk(KERN_ERR
156 "pci_event_handler: unexpected ack received\n"); 153 "pci_event_handler: unexpected ack received\n");
@@ -308,18 +305,18 @@ int __init iSeries_allocate_IRQ(HvBusNumber bus,
308/* 305/*
309 * Get the next pending IRQ. 306 * Get the next pending IRQ.
310 */ 307 */
311unsigned int iSeries_get_irq(struct pt_regs *regs) 308unsigned int iSeries_get_irq(void)
312{ 309{
313 int irq = NO_IRQ_IGNORE; 310 int irq = NO_IRQ_IGNORE;
314 311
315#ifdef CONFIG_SMP 312#ifdef CONFIG_SMP
316 if (get_lppaca()->int_dword.fields.ipi_cnt) { 313 if (get_lppaca()->int_dword.fields.ipi_cnt) {
317 get_lppaca()->int_dword.fields.ipi_cnt = 0; 314 get_lppaca()->int_dword.fields.ipi_cnt = 0;
318 iSeries_smp_message_recv(regs); 315 iSeries_smp_message_recv();
319 } 316 }
320#endif /* CONFIG_SMP */ 317#endif /* CONFIG_SMP */
321 if (hvlpevent_is_pending()) 318 if (hvlpevent_is_pending())
322 process_hvlpevents(regs); 319 process_hvlpevents();
323 320
324#ifdef CONFIG_PCI 321#ifdef CONFIG_PCI
325 if (num_pending_irqs) { 322 if (num_pending_irqs) {
diff --git a/arch/powerpc/platforms/iseries/irq.h b/arch/powerpc/platforms/iseries/irq.h
index 1ee8985140e5..69f1b437fc7b 100644
--- a/arch/powerpc/platforms/iseries/irq.h
+++ b/arch/powerpc/platforms/iseries/irq.h
@@ -4,6 +4,6 @@
4extern void iSeries_init_IRQ(void); 4extern void iSeries_init_IRQ(void);
5extern int iSeries_allocate_IRQ(HvBusNumber, HvSubBusNumber, u32); 5extern int iSeries_allocate_IRQ(HvBusNumber, HvSubBusNumber, u32);
6extern void iSeries_activate_IRQs(void); 6extern void iSeries_activate_IRQs(void);
7extern unsigned int iSeries_get_irq(struct pt_regs *); 7extern unsigned int iSeries_get_irq(void);
8 8
9#endif /* _ISERIES_IRQ_H */ 9#endif /* _ISERIES_IRQ_H */
diff --git a/arch/powerpc/platforms/iseries/lpevents.c b/arch/powerpc/platforms/iseries/lpevents.c
index 98c1c2440aad..e3e929e1b460 100644
--- a/arch/powerpc/platforms/iseries/lpevents.c
+++ b/arch/powerpc/platforms/iseries/lpevents.c
@@ -116,7 +116,7 @@ static void hvlpevent_clear_valid(struct HvLpEvent * event)
116 hvlpevent_invalidate(event); 116 hvlpevent_invalidate(event);
117} 117}
118 118
119void process_hvlpevents(struct pt_regs *regs) 119void process_hvlpevents(void)
120{ 120{
121 struct HvLpEvent * event; 121 struct HvLpEvent * event;
122 122
@@ -144,7 +144,7 @@ void process_hvlpevents(struct pt_regs *regs)
144 __get_cpu_var(hvlpevent_counts)[event->xType]++; 144 __get_cpu_var(hvlpevent_counts)[event->xType]++;
145 if (event->xType < HvLpEvent_Type_NumTypes && 145 if (event->xType < HvLpEvent_Type_NumTypes &&
146 lpEventHandler[event->xType]) 146 lpEventHandler[event->xType])
147 lpEventHandler[event->xType](event, regs); 147 lpEventHandler[event->xType](event);
148 else 148 else
149 printk(KERN_INFO "Unexpected Lp Event type=%d\n", event->xType ); 149 printk(KERN_INFO "Unexpected Lp Event type=%d\n", event->xType );
150 150
diff --git a/arch/powerpc/platforms/iseries/mf.c b/arch/powerpc/platforms/iseries/mf.c
index 1983b640bac1..b5737d68d6c4 100644
--- a/arch/powerpc/platforms/iseries/mf.c
+++ b/arch/powerpc/platforms/iseries/mf.c
@@ -513,7 +513,7 @@ static void handle_ack(struct io_mf_lp_event *event)
513 * parse it enough to know if it is an interrupt or an 513 * parse it enough to know if it is an interrupt or an
514 * acknowledge. 514 * acknowledge.
515 */ 515 */
516static void hv_handler(struct HvLpEvent *event, struct pt_regs *regs) 516static void hv_handler(struct HvLpEvent *event)
517{ 517{
518 if ((event != NULL) && (event->xType == HvLpEvent_Type_MachineFac)) { 518 if ((event != NULL) && (event->xType == HvLpEvent_Type_MachineFac)) {
519 if (hvlpevent_is_ack(event)) 519 if (hvlpevent_is_ack(event))
@@ -847,7 +847,7 @@ static int mf_get_boot_rtc(struct rtc_time *tm)
847 /* We need to poll here as we are not yet taking interrupts */ 847 /* We need to poll here as we are not yet taking interrupts */
848 while (rtc_data.busy) { 848 while (rtc_data.busy) {
849 if (hvlpevent_is_pending()) 849 if (hvlpevent_is_pending())
850 process_hvlpevents(NULL); 850 process_hvlpevents();
851 } 851 }
852 return rtc_set_tm(rtc_data.rc, rtc_data.ce_msg.ce_msg, tm); 852 return rtc_set_tm(rtc_data.rc, rtc_data.ce_msg.ce_msg, tm);
853} 853}
diff --git a/arch/powerpc/platforms/iseries/smp.c b/arch/powerpc/platforms/iseries/smp.c
index 2eb095edb472..aee5908df700 100644
--- a/arch/powerpc/platforms/iseries/smp.c
+++ b/arch/powerpc/platforms/iseries/smp.c
@@ -43,9 +43,11 @@
43#include <asm/cputable.h> 43#include <asm/cputable.h>
44#include <asm/system.h> 44#include <asm/system.h>
45 45
46#include "smp.h"
47
46static unsigned long iSeries_smp_message[NR_CPUS]; 48static unsigned long iSeries_smp_message[NR_CPUS];
47 49
48void iSeries_smp_message_recv(struct pt_regs *regs) 50void iSeries_smp_message_recv(void)
49{ 51{
50 int cpu = smp_processor_id(); 52 int cpu = smp_processor_id();
51 int msg; 53 int msg;
@@ -55,7 +57,7 @@ void iSeries_smp_message_recv(struct pt_regs *regs)
55 57
56 for (msg = 0; msg < 4; msg++) 58 for (msg = 0; msg < 4; msg++)
57 if (test_and_clear_bit(msg, &iSeries_smp_message[cpu])) 59 if (test_and_clear_bit(msg, &iSeries_smp_message[cpu]))
58 smp_message_recv(msg, regs); 60 smp_message_recv(msg);
59} 61}
60 62
61static inline void smp_iSeries_do_message(int cpu, int msg) 63static inline void smp_iSeries_do_message(int cpu, int msg)
diff --git a/arch/powerpc/platforms/iseries/smp.h b/arch/powerpc/platforms/iseries/smp.h
new file mode 100644
index 000000000000..d501f7de01e7
--- /dev/null
+++ b/arch/powerpc/platforms/iseries/smp.h
@@ -0,0 +1,6 @@
1#ifndef _PLATFORMS_ISERIES_SMP_H
2#define _PLATFORMS_ISERIES_SMP_H
3
4extern void iSeries_smp_message_recv(void);
5
6#endif /* _PLATFORMS_ISERIES_SMP_H */
diff --git a/arch/powerpc/platforms/iseries/viopath.c b/arch/powerpc/platforms/iseries/viopath.c
index 9baa4ee82592..04e07e5da0c1 100644
--- a/arch/powerpc/platforms/iseries/viopath.c
+++ b/arch/powerpc/platforms/iseries/viopath.c
@@ -378,7 +378,7 @@ void vio_set_hostlp(void)
378} 378}
379EXPORT_SYMBOL(vio_set_hostlp); 379EXPORT_SYMBOL(vio_set_hostlp);
380 380
381static void vio_handleEvent(struct HvLpEvent *event, struct pt_regs *regs) 381static void vio_handleEvent(struct HvLpEvent *event)
382{ 382{
383 HvLpIndex remoteLp; 383 HvLpIndex remoteLp;
384 int subtype = (event->xSubtype & VIOMAJOR_SUBTYPE_MASK) 384 int subtype = (event->xSubtype & VIOMAJOR_SUBTYPE_MASK)
diff --git a/arch/powerpc/platforms/powermac/pic.c b/arch/powerpc/platforms/powermac/pic.c
index 5da677835c00..39db12890214 100644
--- a/arch/powerpc/platforms/powermac/pic.c
+++ b/arch/powerpc/platforms/powermac/pic.c
@@ -42,7 +42,7 @@
42 * has to include <linux/interrupt.h> (to get irqreturn_t), which 42 * has to include <linux/interrupt.h> (to get irqreturn_t), which
43 * causes all sorts of problems. -- paulus 43 * causes all sorts of problems. -- paulus
44 */ 44 */
45extern irqreturn_t xmon_irq(int, void *, struct pt_regs *); 45extern irqreturn_t xmon_irq(int, void *);
46 46
47#ifdef CONFIG_PPC32 47#ifdef CONFIG_PPC32
48struct pmac_irq_hw { 48struct pmac_irq_hw {
@@ -210,7 +210,7 @@ static struct irq_chip pmac_pic = {
210 .retrigger = pmac_retrigger, 210 .retrigger = pmac_retrigger,
211}; 211};
212 212
213static irqreturn_t gatwick_action(int cpl, void *dev_id, struct pt_regs *regs) 213static irqreturn_t gatwick_action(int cpl, void *dev_id)
214{ 214{
215 unsigned long flags; 215 unsigned long flags;
216 int irq, bits; 216 int irq, bits;
@@ -235,18 +235,18 @@ static irqreturn_t gatwick_action(int cpl, void *dev_id, struct pt_regs *regs)
235 return rc; 235 return rc;
236} 236}
237 237
238static unsigned int pmac_pic_get_irq(struct pt_regs *regs) 238static unsigned int pmac_pic_get_irq(void)
239{ 239{
240 int irq; 240 int irq;
241 unsigned long bits = 0; 241 unsigned long bits = 0;
242 unsigned long flags; 242 unsigned long flags;
243 243
244#ifdef CONFIG_SMP 244#ifdef CONFIG_SMP
245 void psurge_smp_message_recv(struct pt_regs *); 245 void psurge_smp_message_recv(void);
246 246
247 /* IPI's are a hack on the powersurge -- Cort */ 247 /* IPI's are a hack on the powersurge -- Cort */
248 if ( smp_processor_id() != 0 ) { 248 if ( smp_processor_id() != 0 ) {
249 psurge_smp_message_recv(regs); 249 psurge_smp_message_recv();
250 return NO_IRQ_IGNORE; /* ignore, already handled */ 250 return NO_IRQ_IGNORE; /* ignore, already handled */
251 } 251 }
252#endif /* CONFIG_SMP */ 252#endif /* CONFIG_SMP */
@@ -444,7 +444,7 @@ static void pmac_u3_cascade(unsigned int irq, struct irq_desc *desc)
444{ 444{
445 struct mpic *mpic = desc->handler_data; 445 struct mpic *mpic = desc->handler_data;
446 446
447 unsigned int cascade_irq = mpic_get_one_irq(mpic, get_irq_regs()); 447 unsigned int cascade_irq = mpic_get_one_irq(mpic);
448 if (cascade_irq != NO_IRQ) 448 if (cascade_irq != NO_IRQ)
449 generic_handle_irq(cascade_irq); 449 generic_handle_irq(cascade_irq);
450 desc->chip->eoi(irq); 450 desc->chip->eoi(irq);
diff --git a/arch/powerpc/platforms/powermac/pic.h b/arch/powerpc/platforms/powermac/pic.h
index 664103dfeef9..c44c89f5e532 100644
--- a/arch/powerpc/platforms/powermac/pic.h
+++ b/arch/powerpc/platforms/powermac/pic.h
@@ -5,7 +5,7 @@
5 5
6extern struct hw_interrupt_type pmac_pic; 6extern struct hw_interrupt_type pmac_pic;
7 7
8void pmac_pic_init(void); 8extern void pmac_pic_init(void);
9int pmac_get_irq(struct pt_regs *regs); 9extern int pmac_get_irq(void);
10 10
11#endif /* __PPC_PLATFORMS_PMAC_PIC_H */ 11#endif /* __PPC_PLATFORMS_PMAC_PIC_H */
diff --git a/arch/powerpc/platforms/powermac/smp.c b/arch/powerpc/platforms/powermac/smp.c
index 1949b657b092..574cd205b302 100644
--- a/arch/powerpc/platforms/powermac/smp.c
+++ b/arch/powerpc/platforms/powermac/smp.c
@@ -160,7 +160,7 @@ static inline void psurge_clr_ipi(int cpu)
160 */ 160 */
161static unsigned long psurge_smp_message[NR_CPUS]; 161static unsigned long psurge_smp_message[NR_CPUS];
162 162
163void psurge_smp_message_recv(struct pt_regs *regs) 163void psurge_smp_message_recv(void)
164{ 164{
165 int cpu = smp_processor_id(); 165 int cpu = smp_processor_id();
166 int msg; 166 int msg;
@@ -174,12 +174,12 @@ void psurge_smp_message_recv(struct pt_regs *regs)
174 /* make sure there is a message there */ 174 /* make sure there is a message there */
175 for (msg = 0; msg < 4; msg++) 175 for (msg = 0; msg < 4; msg++)
176 if (test_and_clear_bit(msg, &psurge_smp_message[cpu])) 176 if (test_and_clear_bit(msg, &psurge_smp_message[cpu]))
177 smp_message_recv(msg, regs); 177 smp_message_recv(msg);
178} 178}
179 179
180irqreturn_t psurge_primary_intr(int irq, void *d, struct pt_regs *regs) 180irqreturn_t psurge_primary_intr(int irq, void *d)
181{ 181{
182 psurge_smp_message_recv(regs); 182 psurge_smp_message_recv();
183 return IRQ_HANDLED; 183 return IRQ_HANDLED;
184} 184}
185 185
diff --git a/arch/powerpc/platforms/pseries/iommu.c b/arch/powerpc/platforms/pseries/iommu.c
index bbf2e34dc358..d24ba547e53f 100644
--- a/arch/powerpc/platforms/pseries/iommu.c
+++ b/arch/powerpc/platforms/pseries/iommu.c
@@ -267,7 +267,8 @@ static void iommu_table_setparms(struct pci_controller *phb,
267 struct iommu_table *tbl) 267 struct iommu_table *tbl)
268{ 268{
269 struct device_node *node; 269 struct device_node *node;
270 const unsigned long *basep, *sizep; 270 const unsigned long *basep;
271 const u32 *sizep;
271 272
272 node = (struct device_node *)phb->arch_data; 273 node = (struct device_node *)phb->arch_data;
273 274
diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c
index ad9aec2c6fee..89a8119f988d 100644
--- a/arch/powerpc/platforms/pseries/setup.c
+++ b/arch/powerpc/platforms/pseries/setup.c
@@ -123,7 +123,7 @@ static void __init fwnmi_init(void)
123 123
124void pseries_8259_cascade(unsigned int irq, struct irq_desc *desc) 124void pseries_8259_cascade(unsigned int irq, struct irq_desc *desc)
125{ 125{
126 unsigned int cascade_irq = i8259_irq(get_irq_regs()); 126 unsigned int cascade_irq = i8259_irq();
127 if (cascade_irq != NO_IRQ) 127 if (cascade_irq != NO_IRQ)
128 generic_handle_irq(cascade_irq); 128 generic_handle_irq(cascade_irq);
129 desc->chip->eoi(irq); 129 desc->chip->eoi(irq);
diff --git a/arch/powerpc/platforms/pseries/xics.c b/arch/powerpc/platforms/pseries/xics.c
index f6bd2f285153..d071abe78ab1 100644
--- a/arch/powerpc/platforms/pseries/xics.c
+++ b/arch/powerpc/platforms/pseries/xics.c
@@ -308,14 +308,14 @@ static inline unsigned int xics_remap_irq(unsigned int vec)
308 return NO_IRQ; 308 return NO_IRQ;
309} 309}
310 310
311static unsigned int xics_get_irq_direct(struct pt_regs *regs) 311static unsigned int xics_get_irq_direct(void)
312{ 312{
313 unsigned int cpu = smp_processor_id(); 313 unsigned int cpu = smp_processor_id();
314 314
315 return xics_remap_irq(direct_xirr_info_get(cpu)); 315 return xics_remap_irq(direct_xirr_info_get(cpu));
316} 316}
317 317
318static unsigned int xics_get_irq_lpar(struct pt_regs *regs) 318static unsigned int xics_get_irq_lpar(void)
319{ 319{
320 unsigned int cpu = smp_processor_id(); 320 unsigned int cpu = smp_processor_id();
321 321
diff --git a/arch/powerpc/sysdev/cpm2_pic.c b/arch/powerpc/sysdev/cpm2_pic.c
index 28b018994746..767ee6651adc 100644
--- a/arch/powerpc/sysdev/cpm2_pic.c
+++ b/arch/powerpc/sysdev/cpm2_pic.c
@@ -147,7 +147,7 @@ static struct irq_chip cpm2_pic = {
147 .end = cpm2_end_irq, 147 .end = cpm2_end_irq,
148}; 148};
149 149
150unsigned int cpm2_get_irq(struct pt_regs *regs) 150unsigned int cpm2_get_irq(void)
151{ 151{
152 int irq; 152 int irq;
153 unsigned long bits; 153 unsigned long bits;
diff --git a/arch/powerpc/sysdev/cpm2_pic.h b/arch/powerpc/sysdev/cpm2_pic.h
index 3c513e5a688e..2840616529e4 100644
--- a/arch/powerpc/sysdev/cpm2_pic.h
+++ b/arch/powerpc/sysdev/cpm2_pic.h
@@ -3,7 +3,7 @@
3 3
4extern intctl_cpm2_t *cpm2_intctl; 4extern intctl_cpm2_t *cpm2_intctl;
5 5
6extern unsigned int cpm2_get_irq(struct pt_regs *regs); 6extern unsigned int cpm2_get_irq(void);
7 7
8extern void cpm2_pic_init(struct device_node*); 8extern void cpm2_pic_init(struct device_node*);
9 9
diff --git a/arch/powerpc/sysdev/fsl_soc.c b/arch/powerpc/sysdev/fsl_soc.c
index 7d759f1c26b1..dbe92ae20333 100644
--- a/arch/powerpc/sysdev/fsl_soc.c
+++ b/arch/powerpc/sysdev/fsl_soc.c
@@ -567,7 +567,7 @@ static int __init fs_enet_of_init(void)
567 struct resource r[4]; 567 struct resource r[4];
568 struct device_node *phy, *mdio; 568 struct device_node *phy, *mdio;
569 struct fs_platform_info fs_enet_data; 569 struct fs_platform_info fs_enet_data;
570 const unsigned int *id, *phy_addr, phy_irq; 570 const unsigned int *id, *phy_addr, *phy_irq;
571 const void *mac_addr; 571 const void *mac_addr;
572 const phandle *ph; 572 const phandle *ph;
573 const char *model; 573 const char *model;
@@ -641,7 +641,7 @@ static int __init fs_enet_of_init(void)
641 641
642 if (strstr(model, "FCC")) { 642 if (strstr(model, "FCC")) {
643 int fcc_index = *id - 1; 643 int fcc_index = *id - 1;
644 unsigned char* mdio_bb_prop; 644 const unsigned char *mdio_bb_prop;
645 645
646 fs_enet_data.dpram_offset = (u32)cpm_dpram_addr(0); 646 fs_enet_data.dpram_offset = (u32)cpm_dpram_addr(0);
647 fs_enet_data.rx_ring = 32; 647 fs_enet_data.rx_ring = 32;
@@ -708,8 +708,9 @@ static int __init fs_enet_of_init(void)
708 ret = platform_device_add_data(fs_enet_dev, &fs_enet_data, 708 ret = platform_device_add_data(fs_enet_dev, &fs_enet_data,
709 sizeof(struct 709 sizeof(struct
710 fs_platform_info)); 710 fs_platform_info));
711 if (ret) 711 if (ret)
712 goto unreg; 712 goto unreg;
713 }
713 } 714 }
714 return 0; 715 return 0;
715 716
diff --git a/arch/powerpc/sysdev/i8259.c b/arch/powerpc/sysdev/i8259.c
index 26a6a3becd66..0450265d73bb 100644
--- a/arch/powerpc/sysdev/i8259.c
+++ b/arch/powerpc/sysdev/i8259.c
@@ -34,7 +34,7 @@ static struct irq_host *i8259_host;
34 * which is called. It should be noted that polling is broken on some 34 * which is called. It should be noted that polling is broken on some
35 * IBM and Motorola PReP boxes so we must use the int-ack feature on them. 35 * IBM and Motorola PReP boxes so we must use the int-ack feature on them.
36 */ 36 */
37unsigned int i8259_irq(struct pt_regs *regs) 37unsigned int i8259_irq(void)
38{ 38{
39 int irq; 39 int irq;
40 int lock = 0; 40 int lock = 0;
diff --git a/arch/powerpc/sysdev/ipic.c b/arch/powerpc/sysdev/ipic.c
index 6ebdae8e6f69..bc4d4a7f9657 100644
--- a/arch/powerpc/sysdev/ipic.c
+++ b/arch/powerpc/sysdev/ipic.c
@@ -709,7 +709,7 @@ void ipic_clear_mcp_status(u32 mask)
709} 709}
710 710
711/* Return an interrupt vector or NO_IRQ if no interrupt is pending. */ 711/* Return an interrupt vector or NO_IRQ if no interrupt is pending. */
712unsigned int ipic_get_irq(struct pt_regs *regs) 712unsigned int ipic_get_irq(void)
713{ 713{
714 int irq; 714 int irq;
715 715
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
index 195215560fd7..ba4833f57d47 100644
--- a/arch/powerpc/sysdev/mpic.c
+++ b/arch/powerpc/sysdev/mpic.c
@@ -1217,7 +1217,7 @@ void mpic_send_ipi(unsigned int ipi_no, unsigned int cpu_mask)
1217 mpic_physmask(cpu_mask & cpus_addr(cpu_online_map)[0])); 1217 mpic_physmask(cpu_mask & cpus_addr(cpu_online_map)[0]));
1218} 1218}
1219 1219
1220unsigned int mpic_get_one_irq(struct mpic *mpic, struct pt_regs *regs) 1220unsigned int mpic_get_one_irq(struct mpic *mpic)
1221{ 1221{
1222 u32 src; 1222 u32 src;
1223 1223
@@ -1230,13 +1230,13 @@ unsigned int mpic_get_one_irq(struct mpic *mpic, struct pt_regs *regs)
1230 return irq_linear_revmap(mpic->irqhost, src); 1230 return irq_linear_revmap(mpic->irqhost, src);
1231} 1231}
1232 1232
1233unsigned int mpic_get_irq(struct pt_regs *regs) 1233unsigned int mpic_get_irq(void)
1234{ 1234{
1235 struct mpic *mpic = mpic_primary; 1235 struct mpic *mpic = mpic_primary;
1236 1236
1237 BUG_ON(mpic == NULL); 1237 BUG_ON(mpic == NULL);
1238 1238
1239 return mpic_get_one_irq(mpic, regs); 1239 return mpic_get_one_irq(mpic);
1240} 1240}
1241 1241
1242 1242
diff --git a/arch/powerpc/sysdev/qe_lib/qe_ic.c b/arch/powerpc/sysdev/qe_lib/qe_ic.c
index 0dec010bcbb5..6995f51b9488 100644
--- a/arch/powerpc/sysdev/qe_lib/qe_ic.c
+++ b/arch/powerpc/sysdev/qe_lib/qe_ic.c
@@ -300,7 +300,7 @@ static struct irq_host_ops qe_ic_host_ops = {
300}; 300};
301 301
302/* Return an interrupt vector or NO_IRQ if no interrupt is pending. */ 302/* Return an interrupt vector or NO_IRQ if no interrupt is pending. */
303unsigned int qe_ic_get_low_irq(struct qe_ic *qe_ic, struct pt_regs *regs) 303unsigned int qe_ic_get_low_irq(struct qe_ic *qe_ic)
304{ 304{
305 int irq; 305 int irq;
306 306
@@ -316,7 +316,7 @@ unsigned int qe_ic_get_low_irq(struct qe_ic *qe_ic, struct pt_regs *regs)
316} 316}
317 317
318/* Return an interrupt vector or NO_IRQ if no interrupt is pending. */ 318/* Return an interrupt vector or NO_IRQ if no interrupt is pending. */
319unsigned int qe_ic_get_high_irq(struct qe_ic *qe_ic, struct pt_regs *regs) 319unsigned int qe_ic_get_high_irq(struct qe_ic *qe_ic)
320{ 320{
321 int irq; 321 int irq;
322 322
@@ -333,13 +333,12 @@ unsigned int qe_ic_get_high_irq(struct qe_ic *qe_ic, struct pt_regs *regs)
333 333
334/* FIXME: We mask all the QE Low interrupts while handling. We should 334/* FIXME: We mask all the QE Low interrupts while handling. We should
335 * let other interrupt come in, but BAD interrupts are generated */ 335 * let other interrupt come in, but BAD interrupts are generated */
336void fastcall qe_ic_cascade_low(unsigned int irq, struct irq_desc *desc, 336void fastcall qe_ic_cascade_low(unsigned int irq, struct irq_desc *desc)
337 struct pt_regs *regs)
338{ 337{
339 struct qe_ic *qe_ic = desc->handler_data; 338 struct qe_ic *qe_ic = desc->handler_data;
340 struct irq_chip *chip = irq_desc[irq].chip; 339 struct irq_chip *chip = irq_desc[irq].chip;
341 340
342 unsigned int cascade_irq = qe_ic_get_low_irq(qe_ic, regs); 341 unsigned int cascade_irq = qe_ic_get_low_irq(qe_ic);
343 342
344 chip->mask_ack(irq); 343 chip->mask_ack(irq);
345 if (cascade_irq != NO_IRQ) 344 if (cascade_irq != NO_IRQ)
@@ -349,13 +348,12 @@ void fastcall qe_ic_cascade_low(unsigned int irq, struct irq_desc *desc,
349 348
350/* FIXME: We mask all the QE High interrupts while handling. We should 349/* FIXME: We mask all the QE High interrupts while handling. We should
351 * let other interrupt come in, but BAD interrupts are generated */ 350 * let other interrupt come in, but BAD interrupts are generated */
352void fastcall qe_ic_cascade_high(unsigned int irq, struct irq_desc *desc, 351void fastcall qe_ic_cascade_high(unsigned int irq, struct irq_desc *desc)
353 struct pt_regs *regs)
354{ 352{
355 struct qe_ic *qe_ic = desc->handler_data; 353 struct qe_ic *qe_ic = desc->handler_data;
356 struct irq_chip *chip = irq_desc[irq].chip; 354 struct irq_chip *chip = irq_desc[irq].chip;
357 355
358 unsigned int cascade_irq = qe_ic_get_high_irq(qe_ic, regs); 356 unsigned int cascade_irq = qe_ic_get_high_irq(qe_ic);
359 357
360 chip->mask_ack(irq); 358 chip->mask_ack(irq);
361 if (cascade_irq != NO_IRQ) 359 if (cascade_irq != NO_IRQ)
diff --git a/arch/powerpc/sysdev/tsi108_pci.c b/arch/powerpc/sysdev/tsi108_pci.c
index 14f4a1ab6d18..322f86e93de5 100644
--- a/arch/powerpc/sysdev/tsi108_pci.c
+++ b/arch/powerpc/sysdev/tsi108_pci.c
@@ -405,8 +405,7 @@ void __init tsi108_pci_int_init(void)
405 init_pci_source(); 405 init_pci_source();
406} 406}
407 407
408void tsi108_irq_cascade(unsigned int irq, struct irq_desc *desc, 408void tsi108_irq_cascade(unsigned int irq, struct irq_desc *desc)
409 struct pt_regs *regs)
410{ 409{
411 unsigned int cascade_irq = get_pci_source(); 410 unsigned int cascade_irq = get_pci_source();
412 if (cascade_irq != NO_IRQ) 411 if (cascade_irq != NO_IRQ)
diff --git a/arch/ppc/kernel/time.c b/arch/ppc/kernel/time.c
index 187388625a76..d4b2cf74da6a 100644
--- a/arch/ppc/kernel/time.c
+++ b/arch/ppc/kernel/time.c
@@ -142,7 +142,7 @@ void timer_interrupt(struct pt_regs * regs)
142 while ((next_dec = tb_ticks_per_jiffy - tb_delta(&jiffy_stamp)) <= 0) { 142 while ((next_dec = tb_ticks_per_jiffy - tb_delta(&jiffy_stamp)) <= 0) {
143 jiffy_stamp += tb_ticks_per_jiffy; 143 jiffy_stamp += tb_ticks_per_jiffy;
144 144
145 profile_tick(CPU_PROFILING, regs); 145 profile_tick(CPU_PROFILING);
146 update_process_times(user_mode(regs)); 146 update_process_times(user_mode(regs));
147 147
148 if (smp_processor_id()) 148 if (smp_processor_id())
diff --git a/arch/ppc/platforms/85xx/mpc8560_ads.c b/arch/ppc/platforms/85xx/mpc8560_ads.c
index 94badafe4ef1..14ecec7bbed7 100644
--- a/arch/ppc/platforms/85xx/mpc8560_ads.c
+++ b/arch/ppc/platforms/85xx/mpc8560_ads.c
@@ -211,10 +211,10 @@ mpc8560ads_setup_arch(void)
211#endif 211#endif
212} 212}
213 213
214static irqreturn_t cpm2_cascade(int irq, void *dev_id, struct pt_regs *regs) 214static irqreturn_t cpm2_cascade(int irq, void *dev_id)
215{ 215{
216 while ((irq = cpm2_get_irq(regs)) >= 0) 216 while ((irq = cpm2_get_irq()) >= 0)
217 __do_IRQ(irq, regs); 217 __do_IRQ(irq);
218 return IRQ_HANDLED; 218 return IRQ_HANDLED;
219} 219}
220 220
diff --git a/arch/ppc/platforms/85xx/mpc85xx_cds_common.c b/arch/ppc/platforms/85xx/mpc85xx_cds_common.c
index 75204588a3e7..5ce0f69c1db6 100644
--- a/arch/ppc/platforms/85xx/mpc85xx_cds_common.c
+++ b/arch/ppc/platforms/85xx/mpc85xx_cds_common.c
@@ -127,10 +127,10 @@ mpc85xx_cds_show_cpuinfo(struct seq_file *m)
127} 127}
128 128
129#ifdef CONFIG_CPM2 129#ifdef CONFIG_CPM2
130static irqreturn_t cpm2_cascade(int irq, void *dev_id, struct pt_regs *regs) 130static irqreturn_t cpm2_cascade(int irq, void *dev_id)
131{ 131{
132 while((irq = cpm2_get_irq(regs)) >= 0) 132 while((irq = cpm2_get_irq()) >= 0)
133 __do_IRQ(irq, regs); 133 __do_IRQ(irq);
134 return IRQ_HANDLED; 134 return IRQ_HANDLED;
135} 135}
136 136
diff --git a/arch/ppc/platforms/85xx/stx_gp3.c b/arch/ppc/platforms/85xx/stx_gp3.c
index 495aa79bb3a1..4bb18ab27672 100644
--- a/arch/ppc/platforms/85xx/stx_gp3.c
+++ b/arch/ppc/platforms/85xx/stx_gp3.c
@@ -156,10 +156,10 @@ gp3_setup_arch(void)
156 printk ("bi_immr_base = %8.8lx\n", binfo->bi_immr_base); 156 printk ("bi_immr_base = %8.8lx\n", binfo->bi_immr_base);
157} 157}
158 158
159static irqreturn_t cpm2_cascade(int irq, void *dev_id, struct pt_regs *regs) 159static irqreturn_t cpm2_cascade(int irq, void *dev_id)
160{ 160{
161 while ((irq = cpm2_get_irq(regs)) >= 0) 161 while ((irq = cpm2_get_irq()) >= 0)
162 __do_IRQ(irq, regs); 162 __do_IRQ(irq);
163 163
164 return IRQ_HANDLED; 164 return IRQ_HANDLED;
165} 165}
diff --git a/arch/ppc/platforms/85xx/tqm85xx.c b/arch/ppc/platforms/85xx/tqm85xx.c
index 189ed4175f9f..dd45f2e18449 100644
--- a/arch/ppc/platforms/85xx/tqm85xx.c
+++ b/arch/ppc/platforms/85xx/tqm85xx.c
@@ -181,10 +181,10 @@ tqm85xx_setup_arch(void)
181} 181}
182 182
183#ifdef CONFIG_MPC8560 183#ifdef CONFIG_MPC8560
184static irqreturn_t cpm2_cascade(int irq, void *dev_id, struct pt_regs *regs) 184static irqreturn_t cpm2_cascade(int irq, void *dev_id)
185{ 185{
186 while ((irq = cpm2_get_irq(regs)) >= 0) 186 while ((irq = cpm2_get_irq()) >= 0)
187 __do_IRQ(irq, regs); 187 __do_IRQ(irq);
188 return IRQ_HANDLED; 188 return IRQ_HANDLED;
189} 189}
190 190
diff --git a/arch/ppc/syslib/i8259.c b/arch/ppc/syslib/i8259.c
index eb35353af837..a43dda5a8334 100644
--- a/arch/ppc/syslib/i8259.c
+++ b/arch/ppc/syslib/i8259.c
@@ -28,7 +28,7 @@ static int i8259_pic_irq_offset;
28 * which is called. It should be noted that polling is broken on some 28 * which is called. It should be noted that polling is broken on some
29 * IBM and Motorola PReP boxes so we must use the int-ack feature on them. 29 * IBM and Motorola PReP boxes so we must use the int-ack feature on them.
30 */ 30 */
31int i8259_irq(struct pt_regs *regs) 31int i8259_irq(void)
32{ 32{
33 int irq; 33 int irq;
34 34
diff --git a/arch/ppc/syslib/open_pic.c b/arch/ppc/syslib/open_pic.c
index aa0b95788705..18ec94733293 100644
--- a/arch/ppc/syslib/open_pic.c
+++ b/arch/ppc/syslib/open_pic.c
@@ -45,7 +45,7 @@ static u_int NumSources;
45static int open_pic_irq_offset; 45static int open_pic_irq_offset;
46static volatile OpenPIC_Source __iomem *ISR[NR_IRQS]; 46static volatile OpenPIC_Source __iomem *ISR[NR_IRQS];
47static int openpic_cascade_irq = -1; 47static int openpic_cascade_irq = -1;
48static int (*openpic_cascade_fn)(struct pt_regs *); 48static int (*openpic_cascade_fn)(void);
49 49
50/* Global Operations */ 50/* Global Operations */
51static void openpic_disable_8259_pass_through(void); 51static void openpic_disable_8259_pass_through(void);
@@ -54,7 +54,7 @@ static void openpic_set_spurious(u_int vector);
54#ifdef CONFIG_SMP 54#ifdef CONFIG_SMP
55/* Interprocessor Interrupts */ 55/* Interprocessor Interrupts */
56static void openpic_initipi(u_int ipi, u_int pri, u_int vector); 56static void openpic_initipi(u_int ipi, u_int pri, u_int vector);
57static irqreturn_t openpic_ipi_action(int cpl, void *dev_id, struct pt_regs *); 57static irqreturn_t openpic_ipi_action(int cpl, void *dev_id);
58#endif 58#endif
59 59
60/* Timer Interrupts */ 60/* Timer Interrupts */
@@ -700,7 +700,7 @@ static struct irqaction openpic_cascade_irqaction = {
700 700
701void __init 701void __init
702openpic_hookup_cascade(u_int irq, char *name, 702openpic_hookup_cascade(u_int irq, char *name,
703 int (*cascade_fn)(struct pt_regs *)) 703 int (*cascade_fn)(void))
704{ 704{
705 openpic_cascade_irq = irq; 705 openpic_cascade_irq = irq;
706 openpic_cascade_fn = cascade_fn; 706 openpic_cascade_fn = cascade_fn;
@@ -857,16 +857,16 @@ static void openpic_end_ipi(unsigned int irq_nr)
857{ 857{
858} 858}
859 859
860static irqreturn_t openpic_ipi_action(int cpl, void *dev_id, struct pt_regs *regs) 860static irqreturn_t openpic_ipi_action(int cpl, void *dev_id)
861{ 861{
862 smp_message_recv(cpl-OPENPIC_VEC_IPI-open_pic_irq_offset, regs); 862 smp_message_recv(cpl-OPENPIC_VEC_IPI-open_pic_irq_offset);
863 return IRQ_HANDLED; 863 return IRQ_HANDLED;
864} 864}
865 865
866#endif /* CONFIG_SMP */ 866#endif /* CONFIG_SMP */
867 867
868int 868int
869openpic_get_irq(struct pt_regs *regs) 869openpic_get_irq(void)
870{ 870{
871 int irq = openpic_irq(); 871 int irq = openpic_irq();
872 872
@@ -876,7 +876,7 @@ openpic_get_irq(struct pt_regs *regs)
876 * This should move to irq.c eventually. -- paulus 876 * This should move to irq.c eventually. -- paulus
877 */ 877 */
878 if (irq == openpic_cascade_irq && openpic_cascade_fn != NULL) { 878 if (irq == openpic_cascade_irq && openpic_cascade_fn != NULL) {
879 int cirq = openpic_cascade_fn(regs); 879 int cirq = openpic_cascade_fn();
880 880
881 /* Allow for the cascade being shared with other devices */ 881 /* Allow for the cascade being shared with other devices */
882 if (cirq != -1) { 882 if (cirq != -1) {
diff --git a/drivers/char/viocons.c b/drivers/char/viocons.c
index a362ee9c92dd..6d2e314860df 100644
--- a/drivers/char/viocons.c
+++ b/drivers/char/viocons.c
@@ -947,7 +947,7 @@ static void vioHandleData(struct HvLpEvent *event)
947 */ 947 */
948 continue; 948 continue;
949 } else if (vio_sysrq_pressed) { 949 } else if (vio_sysrq_pressed) {
950 handle_sysrq(cevent->data[index], NULL, tty); 950 handle_sysrq(cevent->data[index], tty);
951 vio_sysrq_pressed = 0; 951 vio_sysrq_pressed = 0;
952 /* 952 /*
953 * continue because we don't want to add 953 * continue because we don't want to add
diff --git a/include/asm-powerpc/i8259.h b/include/asm-powerpc/i8259.h
index c80e113052cd..78489fb8d140 100644
--- a/include/asm-powerpc/i8259.h
+++ b/include/asm-powerpc/i8259.h
@@ -6,10 +6,10 @@
6 6
7#ifdef CONFIG_PPC_MERGE 7#ifdef CONFIG_PPC_MERGE
8extern void i8259_init(struct device_node *node, unsigned long intack_addr); 8extern void i8259_init(struct device_node *node, unsigned long intack_addr);
9extern unsigned int i8259_irq(struct pt_regs *regs); 9extern unsigned int i8259_irq(void);
10#else 10#else
11extern void i8259_init(unsigned long intack_addr, int offset); 11extern void i8259_init(unsigned long intack_addr, int offset);
12extern int i8259_irq(struct pt_regs *regs); 12extern int i8259_irq(void);
13#endif 13#endif
14 14
15#endif /* __KERNEL__ */ 15#endif /* __KERNEL__ */
diff --git a/include/asm-powerpc/ibmebus.h b/include/asm-powerpc/ibmebus.h
index 7ab195a27888..9d25f2063b03 100644
--- a/include/asm-powerpc/ibmebus.h
+++ b/include/asm-powerpc/ibmebus.h
@@ -65,7 +65,7 @@ void ibmebus_unregister_driver(struct ibmebus_driver *drv);
65 65
66int ibmebus_request_irq(struct ibmebus_dev *dev, 66int ibmebus_request_irq(struct ibmebus_dev *dev,
67 u32 ist, 67 u32 ist,
68 irqreturn_t (*handler)(int, void*, struct pt_regs *), 68 irqreturn_t (*handler)(int, void*),
69 unsigned long irq_flags, const char * devname, 69 unsigned long irq_flags, const char * devname,
70 void *dev_id); 70 void *dev_id);
71void ibmebus_free_irq(struct ibmebus_dev *dev, u32 ist, void *dev_id); 71void ibmebus_free_irq(struct ibmebus_dev *dev, u32 ist, void *dev_id);
diff --git a/include/asm-powerpc/ipic.h b/include/asm-powerpc/ipic.h
index 1ce09a35906e..9fbb03415860 100644
--- a/include/asm-powerpc/ipic.h
+++ b/include/asm-powerpc/ipic.h
@@ -79,12 +79,12 @@ extern void ipic_clear_mcp_status(u32 mask);
79 79
80#ifdef CONFIG_PPC_MERGE 80#ifdef CONFIG_PPC_MERGE
81extern void ipic_init(struct device_node *node, unsigned int flags); 81extern void ipic_init(struct device_node *node, unsigned int flags);
82extern unsigned int ipic_get_irq(struct pt_regs *regs); 82extern unsigned int ipic_get_irq(void);
83#else 83#else
84extern void ipic_init(phys_addr_t phys_addr, unsigned int flags, 84extern void ipic_init(phys_addr_t phys_addr, unsigned int flags,
85 unsigned int irq_offset, 85 unsigned int irq_offset,
86 unsigned char *senses, unsigned int senses_count); 86 unsigned char *senses, unsigned int senses_count);
87extern int ipic_get_irq(struct pt_regs *regs); 87extern int ipic_get_irq(void);
88#endif 88#endif
89 89
90#endif /* __ASM_IPIC_H__ */ 90#endif /* __ASM_IPIC_H__ */
diff --git a/include/asm-powerpc/iseries/hv_lp_event.h b/include/asm-powerpc/iseries/hv_lp_event.h
index 4065a4de4935..6ce2ce1e2690 100644
--- a/include/asm-powerpc/iseries/hv_lp_event.h
+++ b/include/asm-powerpc/iseries/hv_lp_event.h
@@ -50,7 +50,7 @@ struct HvLpEvent {
50 u64 xCorrelationToken; /* Unique value for source/type x10-x17 */ 50 u64 xCorrelationToken; /* Unique value for source/type x10-x17 */
51}; 51};
52 52
53typedef void (*LpEventHandler)(struct HvLpEvent *, struct pt_regs *); 53typedef void (*LpEventHandler)(struct HvLpEvent *);
54 54
55/* Register a handler for an event type - returns 0 on success */ 55/* Register a handler for an event type - returns 0 on success */
56extern int HvLpEvent_registerHandler(HvLpEvent_Type eventType, 56extern int HvLpEvent_registerHandler(HvLpEvent_Type eventType,
diff --git a/include/asm-powerpc/iseries/it_lp_queue.h b/include/asm-powerpc/iseries/it_lp_queue.h
index 3f6814769295..428278838821 100644
--- a/include/asm-powerpc/iseries/it_lp_queue.h
+++ b/include/asm-powerpc/iseries/it_lp_queue.h
@@ -72,7 +72,7 @@ struct hvlpevent_queue {
72extern struct hvlpevent_queue hvlpevent_queue; 72extern struct hvlpevent_queue hvlpevent_queue;
73 73
74extern int hvlpevent_is_pending(void); 74extern int hvlpevent_is_pending(void);
75extern void process_hvlpevents(struct pt_regs *); 75extern void process_hvlpevents(void);
76extern void setup_hvlpevent_queue(void); 76extern void setup_hvlpevent_queue(void);
77 77
78#endif /* _ASM_POWERPC_ISERIES_IT_LP_QUEUE_H */ 78#endif /* _ASM_POWERPC_ISERIES_IT_LP_QUEUE_H */
diff --git a/include/asm-powerpc/machdep.h b/include/asm-powerpc/machdep.h
index c17c13742401..dac90dc341cb 100644
--- a/include/asm-powerpc/machdep.h
+++ b/include/asm-powerpc/machdep.h
@@ -97,7 +97,7 @@ struct machdep_calls {
97 void (*show_percpuinfo)(struct seq_file *m, int i); 97 void (*show_percpuinfo)(struct seq_file *m, int i);
98 98
99 void (*init_IRQ)(void); 99 void (*init_IRQ)(void);
100 unsigned int (*get_irq)(struct pt_regs *); 100 unsigned int (*get_irq)(void);
101#ifdef CONFIG_KEXEC 101#ifdef CONFIG_KEXEC
102 void (*kexec_cpu_down)(int crash_shutdown, int secondary); 102 void (*kexec_cpu_down)(int crash_shutdown, int secondary);
103#endif 103#endif
diff --git a/include/asm-powerpc/mpic.h b/include/asm-powerpc/mpic.h
index a9f9604b9eff..ef0a5458d2b2 100644
--- a/include/asm-powerpc/mpic.h
+++ b/include/asm-powerpc/mpic.h
@@ -409,9 +409,9 @@ extern void mpic_send_ipi(unsigned int ipi_no, unsigned int cpu_mask);
409void smp_mpic_message_pass(int target, int msg); 409void smp_mpic_message_pass(int target, int msg);
410 410
411/* Fetch interrupt from a given mpic */ 411/* Fetch interrupt from a given mpic */
412extern unsigned int mpic_get_one_irq(struct mpic *mpic, struct pt_regs *regs); 412extern unsigned int mpic_get_one_irq(struct mpic *mpic);
413/* This one gets to the primary mpic */ 413/* This one gets to the primary mpic */
414extern unsigned int mpic_get_irq(struct pt_regs *regs); 414extern unsigned int mpic_get_irq(void);
415 415
416/* Set the EPIC clock ratio */ 416/* Set the EPIC clock ratio */
417void mpic_set_clk_ratio(struct mpic *mpic, u32 clock_ratio); 417void mpic_set_clk_ratio(struct mpic *mpic, u32 clock_ratio);
diff --git a/include/asm-powerpc/reg.h b/include/asm-powerpc/reg.h
index 3a9fcc15811b..8fb96811b55d 100644
--- a/include/asm-powerpc/reg.h
+++ b/include/asm-powerpc/reg.h
@@ -503,7 +503,7 @@
503 503
504/* 504/*
505 * An mtfsf instruction with the L bit set. On CPUs that support this a 505 * An mtfsf instruction with the L bit set. On CPUs that support this a
506 * full 64bits of FPSCR is restored and on other CPUs it is ignored. 506 * full 64bits of FPSCR is restored and on other CPUs the L bit is ignored.
507 * 507 *
508 * Until binutils gets the new form of mtfsf, hardwire the instruction. 508 * Until binutils gets the new form of mtfsf, hardwire the instruction.
509 */ 509 */
diff --git a/include/asm-ppc/floppy.h b/include/asm-ppc/floppy.h
index d3963ca79ad8..ae316e6d2ca9 100644
--- a/include/asm-ppc/floppy.h
+++ b/include/asm-ppc/floppy.h
@@ -38,14 +38,14 @@ static int virtual_dma_mode;
38static int doing_vdma; 38static int doing_vdma;
39static struct fd_dma_ops *fd_ops; 39static struct fd_dma_ops *fd_ops;
40 40
41static irqreturn_t floppy_hardint(int irq, void *dev_id, struct pt_regs * regs) 41static irqreturn_t floppy_hardint(int irq, void *dev_id)
42{ 42{
43 unsigned char st; 43 unsigned char st;
44 int lcount; 44 int lcount;
45 char *lptr; 45 char *lptr;
46 46
47 if (!doing_vdma) 47 if (!doing_vdma)
48 return floppy_interrupt(irq, dev_id, regs); 48 return floppy_interrupt(irq, dev_id);
49 49
50 50
51 st = 1; 51 st = 1;
@@ -69,7 +69,7 @@ static irqreturn_t floppy_hardint(int irq, void *dev_id, struct pt_regs * regs)
69 virtual_dma_residue += virtual_dma_count; 69 virtual_dma_residue += virtual_dma_count;
70 virtual_dma_count=0; 70 virtual_dma_count=0;
71 doing_vdma = 0; 71 doing_vdma = 0;
72 floppy_interrupt(irq, dev_id, regs); 72 floppy_interrupt(irq, dev_id);
73 return IRQ_HANDLED; 73 return IRQ_HANDLED;
74 } 74 }
75 return IRQ_HANDLED; 75 return IRQ_HANDLED;
diff --git a/include/asm-ppc/machdep.h b/include/asm-ppc/machdep.h
index da7746738aee..293a444a1d77 100644
--- a/include/asm-ppc/machdep.h
+++ b/include/asm-ppc/machdep.h
@@ -43,7 +43,7 @@ struct machdep_calls {
43 /* Optional, may be NULL. */ 43 /* Optional, may be NULL. */
44 unsigned int (*irq_canonicalize)(unsigned int irq); 44 unsigned int (*irq_canonicalize)(unsigned int irq);
45 void (*init_IRQ)(void); 45 void (*init_IRQ)(void);
46 int (*get_irq)(struct pt_regs *); 46 int (*get_irq)(void);
47 47
48 /* A general init function, called by ppc_init in init/main.c. 48 /* A general init function, called by ppc_init in init/main.c.
49 May be NULL. DEPRECATED ! */ 49 May be NULL. DEPRECATED ! */
diff --git a/include/asm-ppc/open_pic.h b/include/asm-ppc/open_pic.h
index a4fe962d9f73..778d5726212c 100644
--- a/include/asm-ppc/open_pic.h
+++ b/include/asm-ppc/open_pic.h
@@ -48,12 +48,12 @@ extern void openpic_init(int linux_irq_offset);
48extern void openpic_init_nmi_irq(u_int irq); 48extern void openpic_init_nmi_irq(u_int irq);
49extern void openpic_set_irq_priority(u_int irq, u_int pri); 49extern void openpic_set_irq_priority(u_int irq, u_int pri);
50extern void openpic_hookup_cascade(u_int irq, char *name, 50extern void openpic_hookup_cascade(u_int irq, char *name,
51 int (*cascade_fn)(struct pt_regs *)); 51 int (*cascade_fn)(void));
52extern u_int openpic_irq(void); 52extern u_int openpic_irq(void);
53extern void openpic_eoi(void); 53extern void openpic_eoi(void);
54extern void openpic_request_IPIs(void); 54extern void openpic_request_IPIs(void);
55extern void do_openpic_setup_cpu(void); 55extern void do_openpic_setup_cpu(void);
56extern int openpic_get_irq(struct pt_regs *regs); 56extern int openpic_get_irq(void);
57extern void openpic_reset_processor_phys(u_int cpumask); 57extern void openpic_reset_processor_phys(u_int cpumask);
58extern void openpic_setup_ISU(int isu_num, unsigned long addr); 58extern void openpic_setup_ISU(int isu_num, unsigned long addr);
59extern void openpic_cause_IPI(u_int ipi, cpumask_t cpumask); 59extern void openpic_cause_IPI(u_int ipi, cpumask_t cpumask);
@@ -93,6 +93,6 @@ extern void openpic2_init(int linux_irq_offset);
93extern void openpic2_init_nmi_irq(u_int irq); 93extern void openpic2_init_nmi_irq(u_int irq);
94extern u_int openpic2_irq(void); 94extern u_int openpic2_irq(void);
95extern void openpic2_eoi(void); 95extern void openpic2_eoi(void);
96extern int openpic2_get_irq(struct pt_regs *regs); 96extern int openpic2_get_irq(void);
97extern void openpic2_setup_ISU(int isu_num, unsigned long addr); 97extern void openpic2_setup_ISU(int isu_num, unsigned long addr);
98#endif /* _PPC_KERNEL_OPEN_PIC_H */ 98#endif /* _PPC_KERNEL_OPEN_PIC_H */
diff --git a/include/asm-ppc/smp.h b/include/asm-ppc/smp.h
index 0b7fa89589df..e75791ea33a6 100644
--- a/include/asm-ppc/smp.h
+++ b/include/asm-ppc/smp.h
@@ -39,7 +39,7 @@ extern struct smp_ops_t *smp_ops;
39extern void smp_send_tlb_invalidate(int); 39extern void smp_send_tlb_invalidate(int);
40extern void smp_send_xmon_break(int cpu); 40extern void smp_send_xmon_break(int cpu);
41struct pt_regs; 41struct pt_regs;
42extern void smp_message_recv(int, struct pt_regs *); 42extern void smp_message_recv(int);
43 43
44extern int __cpu_disable(void); 44extern int __cpu_disable(void);
45extern void __cpu_die(unsigned int cpu); 45extern void __cpu_die(unsigned int cpu);