aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64
diff options
context:
space:
mode:
Diffstat (limited to 'arch/ia64')
-rw-r--r--arch/ia64/hp/sim/simeth.c6
-rw-r--r--arch/ia64/hp/sim/simscsi.c2
-rw-r--r--arch/ia64/hp/sim/simserial.c20
-rw-r--r--arch/ia64/kernel/irq.c5
-rw-r--r--arch/ia64/kernel/irq_ia64.c11
-rw-r--r--arch/ia64/kernel/machvec.c2
-rw-r--r--arch/ia64/kernel/mca.c32
-rw-r--r--arch/ia64/kernel/time.c8
-rw-r--r--arch/ia64/sn/kernel/huberror.c4
-rw-r--r--arch/ia64/sn/kernel/sn2/timer_interrupt.c2
-rw-r--r--arch/ia64/sn/kernel/xpc_main.c7
-rw-r--r--arch/ia64/sn/pci/pcibr/pcibr_ate.c2
-rw-r--r--arch/ia64/sn/pci/pcibr/pcibr_provider.c4
-rw-r--r--arch/ia64/sn/pci/tioca_provider.c3
-rw-r--r--arch/ia64/sn/pci/tioce_provider.c45
15 files changed, 76 insertions, 77 deletions
diff --git a/arch/ia64/hp/sim/simeth.c b/arch/ia64/hp/sim/simeth.c
index e1a1b11473e2..424e9257c9a0 100644
--- a/arch/ia64/hp/sim/simeth.c
+++ b/arch/ia64/hp/sim/simeth.c
@@ -54,7 +54,7 @@ static int simeth_close(struct net_device *dev);
54static int simeth_tx(struct sk_buff *skb, struct net_device *dev); 54static int simeth_tx(struct sk_buff *skb, struct net_device *dev);
55static int simeth_rx(struct net_device *dev); 55static int simeth_rx(struct net_device *dev);
56static struct net_device_stats *simeth_get_stats(struct net_device *dev); 56static struct net_device_stats *simeth_get_stats(struct net_device *dev);
57static irqreturn_t simeth_interrupt(int irq, void *dev_id, struct pt_regs * regs); 57static irqreturn_t simeth_interrupt(int irq, void *dev_id);
58static void set_multicast_list(struct net_device *dev); 58static void set_multicast_list(struct net_device *dev);
59static int simeth_device_event(struct notifier_block *this,unsigned long event, void *ptr); 59static int simeth_device_event(struct notifier_block *this,unsigned long event, void *ptr);
60 60
@@ -87,7 +87,7 @@ static int simeth_debug; /* set to 1 to get debug information */
87 */ 87 */
88static struct notifier_block simeth_dev_notifier = { 88static struct notifier_block simeth_dev_notifier = {
89 simeth_device_event, 89 simeth_device_event,
90 0 90 NULL
91}; 91};
92 92
93 93
@@ -497,7 +497,7 @@ simeth_rx(struct net_device *dev)
497 * Interrupt handler (Yes, we can do it too !!!) 497 * Interrupt handler (Yes, we can do it too !!!)
498 */ 498 */
499static irqreturn_t 499static irqreturn_t
500simeth_interrupt(int irq, void *dev_id, struct pt_regs * regs) 500simeth_interrupt(int irq, void *dev_id)
501{ 501{
502 struct net_device *dev = dev_id; 502 struct net_device *dev = dev_id;
503 503
diff --git a/arch/ia64/hp/sim/simscsi.c b/arch/ia64/hp/sim/simscsi.c
index 8f0a16a79a67..bb87682bbb1b 100644
--- a/arch/ia64/hp/sim/simscsi.c
+++ b/arch/ia64/hp/sim/simscsi.c
@@ -103,7 +103,7 @@ simscsi_interrupt (unsigned long val)
103 103
104 while ((sc = queue[rd].sc) != 0) { 104 while ((sc = queue[rd].sc) != 0) {
105 atomic_dec(&num_reqs); 105 atomic_dec(&num_reqs);
106 queue[rd].sc = 0; 106 queue[rd].sc = NULL;
107 if (DBG) 107 if (DBG)
108 printk("simscsi_interrupt: done with %ld\n", sc->serial_number); 108 printk("simscsi_interrupt: done with %ld\n", sc->serial_number);
109 (*sc->scsi_done)(sc); 109 (*sc->scsi_done)(sc);
diff --git a/arch/ia64/hp/sim/simserial.c b/arch/ia64/hp/sim/simserial.c
index 246eb3d3757a..caab986af70c 100644
--- a/arch/ia64/hp/sim/simserial.c
+++ b/arch/ia64/hp/sim/simserial.c
@@ -92,7 +92,7 @@ static struct serial_uart_config uart_config[] = {
92 { "ST16650V2", 32, UART_CLEAR_FIFO | UART_USE_FIFO | 92 { "ST16650V2", 32, UART_CLEAR_FIFO | UART_USE_FIFO |
93 UART_STARTECH }, 93 UART_STARTECH },
94 { "TI16750", 64, UART_CLEAR_FIFO | UART_USE_FIFO}, 94 { "TI16750", 64, UART_CLEAR_FIFO | UART_USE_FIFO},
95 { 0, 0} 95 { NULL, 0}
96}; 96};
97 97
98struct tty_driver *hp_simserial_driver; 98struct tty_driver *hp_simserial_driver;
@@ -130,7 +130,7 @@ static void rs_start(struct tty_struct *tty)
130#endif 130#endif
131} 131}
132 132
133static void receive_chars(struct tty_struct *tty, struct pt_regs *regs) 133static void receive_chars(struct tty_struct *tty)
134{ 134{
135 unsigned char ch; 135 unsigned char ch;
136 static unsigned char seen_esc = 0; 136 static unsigned char seen_esc = 0;
@@ -152,7 +152,7 @@ static void receive_chars(struct tty_struct *tty, struct pt_regs *regs)
152 ch = ia64_ssc(0, 0, 0, 0, 152 ch = ia64_ssc(0, 0, 0, 0,
153 SSC_GETCHAR); 153 SSC_GETCHAR);
154 while (!ch); 154 while (!ch);
155 handle_sysrq(ch, regs, NULL); 155 handle_sysrq(ch, NULL);
156 } 156 }
157#endif 157#endif
158 seen_esc = 0; 158 seen_esc = 0;
@@ -170,7 +170,7 @@ static void receive_chars(struct tty_struct *tty, struct pt_regs *regs)
170/* 170/*
171 * This is the serial driver's interrupt routine for a single port 171 * This is the serial driver's interrupt routine for a single port
172 */ 172 */
173static irqreturn_t rs_interrupt_single(int irq, void *dev_id, struct pt_regs * regs) 173static irqreturn_t rs_interrupt_single(int irq, void *dev_id)
174{ 174{
175 struct async_struct * info; 175 struct async_struct * info;
176 176
@@ -187,7 +187,7 @@ static irqreturn_t rs_interrupt_single(int irq, void *dev_id, struct pt_regs * r
187 * pretty simple in our case, because we only get interrupts 187 * pretty simple in our case, because we only get interrupts
188 * on inbound traffic 188 * on inbound traffic
189 */ 189 */
190 receive_chars(info->tty, regs); 190 receive_chars(info->tty);
191 return IRQ_HANDLED; 191 return IRQ_HANDLED;
192} 192}
193 193
@@ -555,7 +555,7 @@ static void shutdown(struct async_struct * info)
555 555
556 if (info->xmit.buf) { 556 if (info->xmit.buf) {
557 free_page((unsigned long) info->xmit.buf); 557 free_page((unsigned long) info->xmit.buf);
558 info->xmit.buf = 0; 558 info->xmit.buf = NULL;
559 } 559 }
560 560
561 if (info->tty) set_bit(TTY_IO_ERROR, &info->tty->flags); 561 if (info->tty) set_bit(TTY_IO_ERROR, &info->tty->flags);
@@ -628,7 +628,7 @@ static void rs_close(struct tty_struct *tty, struct file * filp)
628 if (tty->driver->flush_buffer) tty->driver->flush_buffer(tty); 628 if (tty->driver->flush_buffer) tty->driver->flush_buffer(tty);
629 if (tty->ldisc.flush_buffer) tty->ldisc.flush_buffer(tty); 629 if (tty->ldisc.flush_buffer) tty->ldisc.flush_buffer(tty);
630 info->event = 0; 630 info->event = 0;
631 info->tty = 0; 631 info->tty = NULL;
632 if (info->blocked_open) { 632 if (info->blocked_open) {
633 if (info->close_delay) 633 if (info->close_delay)
634 schedule_timeout_interruptible(info->close_delay); 634 schedule_timeout_interruptible(info->close_delay);
@@ -668,7 +668,7 @@ static void rs_hangup(struct tty_struct *tty)
668 info->event = 0; 668 info->event = 0;
669 state->count = 0; 669 state->count = 0;
670 info->flags &= ~ASYNC_NORMAL_ACTIVE; 670 info->flags &= ~ASYNC_NORMAL_ACTIVE;
671 info->tty = 0; 671 info->tty = NULL;
672 wake_up_interruptible(&info->open_wait); 672 wake_up_interruptible(&info->open_wait);
673} 673}
674 674
@@ -714,7 +714,7 @@ startup(struct async_struct *info)
714{ 714{
715 unsigned long flags; 715 unsigned long flags;
716 int retval=0; 716 int retval=0;
717 irqreturn_t (*handler)(int, void *, struct pt_regs *); 717 irq_handler_t handler;
718 struct serial_state *state= info->state; 718 struct serial_state *state= info->state;
719 unsigned long page; 719 unsigned long page;
720 720
@@ -769,7 +769,7 @@ startup(struct async_struct *info)
769 /* 769 /*
770 * Insert serial port into IRQ chain. 770 * Insert serial port into IRQ chain.
771 */ 771 */
772 info->prev_port = 0; 772 info->prev_port = NULL;
773 info->next_port = IRQ_ports[state->irq]; 773 info->next_port = IRQ_ports[state->irq];
774 if (info->next_port) 774 if (info->next_port)
775 info->next_port->prev_port = info; 775 info->next_port->prev_port = info;
diff --git a/arch/ia64/kernel/irq.c b/arch/ia64/kernel/irq.c
index 7852382de2fa..f07c0864b0b4 100644
--- a/arch/ia64/kernel/irq.c
+++ b/arch/ia64/kernel/irq.c
@@ -194,8 +194,11 @@ void fixup_irqs(void)
194 */ 194 */
195 for (irq=0; irq < NR_IRQS; irq++) { 195 for (irq=0; irq < NR_IRQS; irq++) {
196 if (vectors_in_migration[irq]) { 196 if (vectors_in_migration[irq]) {
197 struct pt_regs *old_regs = set_irq_regs(NULL);
198
197 vectors_in_migration[irq]=0; 199 vectors_in_migration[irq]=0;
198 __do_IRQ(irq, NULL); 200 __do_IRQ(irq);
201 set_irq_regs(old_regs);
199 } 202 }
200 } 203 }
201 204
diff --git a/arch/ia64/kernel/irq_ia64.c b/arch/ia64/kernel/irq_ia64.c
index ab2d19c3661f..68339dd0c9e2 100644
--- a/arch/ia64/kernel/irq_ia64.c
+++ b/arch/ia64/kernel/irq_ia64.c
@@ -138,6 +138,7 @@ void destroy_irq(unsigned int irq)
138void 138void
139ia64_handle_irq (ia64_vector vector, struct pt_regs *regs) 139ia64_handle_irq (ia64_vector vector, struct pt_regs *regs)
140{ 140{
141 struct pt_regs *old_regs = set_irq_regs(regs);
141 unsigned long saved_tpr; 142 unsigned long saved_tpr;
142 143
143#if IRQ_DEBUG 144#if IRQ_DEBUG
@@ -183,7 +184,7 @@ ia64_handle_irq (ia64_vector vector, struct pt_regs *regs)
183 ia64_setreg(_IA64_REG_CR_TPR, vector); 184 ia64_setreg(_IA64_REG_CR_TPR, vector);
184 ia64_srlz_d(); 185 ia64_srlz_d();
185 186
186 __do_IRQ(local_vector_to_irq(vector), regs); 187 __do_IRQ(local_vector_to_irq(vector));
187 188
188 /* 189 /*
189 * Disable interrupts and send EOI: 190 * Disable interrupts and send EOI:
@@ -200,6 +201,7 @@ ia64_handle_irq (ia64_vector vector, struct pt_regs *regs)
200 * come through until ia64_eoi() has been done. 201 * come through until ia64_eoi() has been done.
201 */ 202 */
202 irq_exit(); 203 irq_exit();
204 set_irq_regs(old_regs);
203} 205}
204 206
205#ifdef CONFIG_HOTPLUG_CPU 207#ifdef CONFIG_HOTPLUG_CPU
@@ -224,6 +226,8 @@ void ia64_process_pending_intr(void)
224 */ 226 */
225 while (vector != IA64_SPURIOUS_INT_VECTOR) { 227 while (vector != IA64_SPURIOUS_INT_VECTOR) {
226 if (!IS_RESCHEDULE(vector)) { 228 if (!IS_RESCHEDULE(vector)) {
229 struct pt_regs *old_regs = set_irq_regs(NULL);
230
227 ia64_setreg(_IA64_REG_CR_TPR, vector); 231 ia64_setreg(_IA64_REG_CR_TPR, vector);
228 ia64_srlz_d(); 232 ia64_srlz_d();
229 233
@@ -234,7 +238,8 @@ void ia64_process_pending_intr(void)
234 * Probably could shared code. 238 * Probably could shared code.
235 */ 239 */
236 vectors_in_migration[local_vector_to_irq(vector)]=0; 240 vectors_in_migration[local_vector_to_irq(vector)]=0;
237 __do_IRQ(local_vector_to_irq(vector), NULL); 241 __do_IRQ(local_vector_to_irq(vector));
242 set_irq_regs(old_regs);
238 243
239 /* 244 /*
240 * Disable interrupts and send EOI 245 * Disable interrupts and send EOI
@@ -251,7 +256,7 @@ void ia64_process_pending_intr(void)
251 256
252 257
253#ifdef CONFIG_SMP 258#ifdef CONFIG_SMP
254extern irqreturn_t handle_IPI (int irq, void *dev_id, struct pt_regs *regs); 259extern irqreturn_t handle_IPI (int irq, void *dev_id);
255 260
256static struct irqaction ipi_irqaction = { 261static struct irqaction ipi_irqaction = {
257 .handler = handle_IPI, 262 .handler = handle_IPI,
diff --git a/arch/ia64/kernel/machvec.c b/arch/ia64/kernel/machvec.c
index d4a546aa5048..9620822270a6 100644
--- a/arch/ia64/kernel/machvec.c
+++ b/arch/ia64/kernel/machvec.c
@@ -60,7 +60,7 @@ machvec_setup (char **arg)
60EXPORT_SYMBOL(machvec_setup); 60EXPORT_SYMBOL(machvec_setup);
61 61
62void 62void
63machvec_timer_interrupt (int irq, void *dev_id, struct pt_regs *regs) 63machvec_timer_interrupt (int irq, void *dev_id)
64{ 64{
65} 65}
66EXPORT_SYMBOL(machvec_timer_interrupt); 66EXPORT_SYMBOL(machvec_timer_interrupt);
diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c
index 663230183254..7cfa63a98cb3 100644
--- a/arch/ia64/kernel/mca.c
+++ b/arch/ia64/kernel/mca.c
@@ -499,7 +499,7 @@ int cpe_vector = -1;
499int ia64_cpe_irq = -1; 499int ia64_cpe_irq = -1;
500 500
501static irqreturn_t 501static irqreturn_t
502ia64_mca_cpe_int_handler (int cpe_irq, void *arg, struct pt_regs *ptregs) 502ia64_mca_cpe_int_handler (int cpe_irq, void *arg)
503{ 503{
504 static unsigned long cpe_history[CPE_HISTORY_LENGTH]; 504 static unsigned long cpe_history[CPE_HISTORY_LENGTH];
505 static int index; 505 static int index;
@@ -744,7 +744,7 @@ ia64_mca_wakeup_all(void)
744 * Outputs : None 744 * Outputs : None
745 */ 745 */
746static irqreturn_t 746static irqreturn_t
747ia64_mca_rendez_int_handler(int rendez_irq, void *arg, struct pt_regs *regs) 747ia64_mca_rendez_int_handler(int rendez_irq, void *arg)
748{ 748{
749 unsigned long flags; 749 unsigned long flags;
750 int cpu = smp_processor_id(); 750 int cpu = smp_processor_id();
@@ -753,8 +753,8 @@ ia64_mca_rendez_int_handler(int rendez_irq, void *arg, struct pt_regs *regs)
753 753
754 /* Mask all interrupts */ 754 /* Mask all interrupts */
755 local_irq_save(flags); 755 local_irq_save(flags);
756 if (notify_die(DIE_MCA_RENDZVOUS_ENTER, "MCA", regs, (long)&nd, 0, 0) 756 if (notify_die(DIE_MCA_RENDZVOUS_ENTER, "MCA", get_irq_regs(),
757 == NOTIFY_STOP) 757 (long)&nd, 0, 0) == NOTIFY_STOP)
758 ia64_mca_spin(__FUNCTION__); 758 ia64_mca_spin(__FUNCTION__);
759 759
760 ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_DONE; 760 ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_DONE;
@@ -763,16 +763,16 @@ ia64_mca_rendez_int_handler(int rendez_irq, void *arg, struct pt_regs *regs)
763 */ 763 */
764 ia64_sal_mc_rendez(); 764 ia64_sal_mc_rendez();
765 765
766 if (notify_die(DIE_MCA_RENDZVOUS_PROCESS, "MCA", regs, (long)&nd, 0, 0) 766 if (notify_die(DIE_MCA_RENDZVOUS_PROCESS, "MCA", get_irq_regs(),
767 == NOTIFY_STOP) 767 (long)&nd, 0, 0) == NOTIFY_STOP)
768 ia64_mca_spin(__FUNCTION__); 768 ia64_mca_spin(__FUNCTION__);
769 769
770 /* Wait for the monarch cpu to exit. */ 770 /* Wait for the monarch cpu to exit. */
771 while (monarch_cpu != -1) 771 while (monarch_cpu != -1)
772 cpu_relax(); /* spin until monarch leaves */ 772 cpu_relax(); /* spin until monarch leaves */
773 773
774 if (notify_die(DIE_MCA_RENDZVOUS_LEAVE, "MCA", regs, (long)&nd, 0, 0) 774 if (notify_die(DIE_MCA_RENDZVOUS_LEAVE, "MCA", get_irq_regs(),
775 == NOTIFY_STOP) 775 (long)&nd, 0, 0) == NOTIFY_STOP)
776 ia64_mca_spin(__FUNCTION__); 776 ia64_mca_spin(__FUNCTION__);
777 777
778 /* Enable all interrupts */ 778 /* Enable all interrupts */
@@ -791,12 +791,11 @@ ia64_mca_rendez_int_handler(int rendez_irq, void *arg, struct pt_regs *regs)
791 * 791 *
792 * Inputs : wakeup_irq (Wakeup-interrupt bit) 792 * Inputs : wakeup_irq (Wakeup-interrupt bit)
793 * arg (Interrupt handler specific argument) 793 * arg (Interrupt handler specific argument)
794 * ptregs (Exception frame at the time of the interrupt)
795 * Outputs : None 794 * Outputs : None
796 * 795 *
797 */ 796 */
798static irqreturn_t 797static irqreturn_t
799ia64_mca_wakeup_int_handler(int wakeup_irq, void *arg, struct pt_regs *ptregs) 798ia64_mca_wakeup_int_handler(int wakeup_irq, void *arg)
800{ 799{
801 return IRQ_HANDLED; 800 return IRQ_HANDLED;
802} 801}
@@ -1261,13 +1260,12 @@ static DECLARE_WORK(cmc_enable_work, ia64_mca_cmc_vector_enable_keventd, NULL);
1261 * Inputs 1260 * Inputs
1262 * interrupt number 1261 * interrupt number
1263 * client data arg ptr 1262 * client data arg ptr
1264 * saved registers ptr
1265 * 1263 *
1266 * Outputs 1264 * Outputs
1267 * None 1265 * None
1268 */ 1266 */
1269static irqreturn_t 1267static irqreturn_t
1270ia64_mca_cmc_int_handler(int cmc_irq, void *arg, struct pt_regs *ptregs) 1268ia64_mca_cmc_int_handler(int cmc_irq, void *arg)
1271{ 1269{
1272 static unsigned long cmc_history[CMC_HISTORY_LENGTH]; 1270 static unsigned long cmc_history[CMC_HISTORY_LENGTH];
1273 static int index; 1271 static int index;
@@ -1336,12 +1334,11 @@ out:
1336 * Inputs 1334 * Inputs
1337 * interrupt number 1335 * interrupt number
1338 * client data arg ptr 1336 * client data arg ptr
1339 * saved registers ptr
1340 * Outputs 1337 * Outputs
1341 * handled 1338 * handled
1342 */ 1339 */
1343static irqreturn_t 1340static irqreturn_t
1344ia64_mca_cmc_int_caller(int cmc_irq, void *arg, struct pt_regs *ptregs) 1341ia64_mca_cmc_int_caller(int cmc_irq, void *arg)
1345{ 1342{
1346 static int start_count = -1; 1343 static int start_count = -1;
1347 unsigned int cpuid; 1344 unsigned int cpuid;
@@ -1352,7 +1349,7 @@ ia64_mca_cmc_int_caller(int cmc_irq, void *arg, struct pt_regs *ptregs)
1352 if (start_count == -1) 1349 if (start_count == -1)
1353 start_count = IA64_LOG_COUNT(SAL_INFO_TYPE_CMC); 1350 start_count = IA64_LOG_COUNT(SAL_INFO_TYPE_CMC);
1354 1351
1355 ia64_mca_cmc_int_handler(cmc_irq, arg, ptregs); 1352 ia64_mca_cmc_int_handler(cmc_irq, arg);
1356 1353
1357 for (++cpuid ; cpuid < NR_CPUS && !cpu_online(cpuid) ; cpuid++); 1354 for (++cpuid ; cpuid < NR_CPUS && !cpu_online(cpuid) ; cpuid++);
1358 1355
@@ -1403,14 +1400,13 @@ ia64_mca_cmc_poll (unsigned long dummy)
1403 * Inputs 1400 * Inputs
1404 * interrupt number 1401 * interrupt number
1405 * client data arg ptr 1402 * client data arg ptr
1406 * saved registers ptr
1407 * Outputs 1403 * Outputs
1408 * handled 1404 * handled
1409 */ 1405 */
1410#ifdef CONFIG_ACPI 1406#ifdef CONFIG_ACPI
1411 1407
1412static irqreturn_t 1408static irqreturn_t
1413ia64_mca_cpe_int_caller(int cpe_irq, void *arg, struct pt_regs *ptregs) 1409ia64_mca_cpe_int_caller(int cpe_irq, void *arg)
1414{ 1410{
1415 static int start_count = -1; 1411 static int start_count = -1;
1416 static int poll_time = MIN_CPE_POLL_INTERVAL; 1412 static int poll_time = MIN_CPE_POLL_INTERVAL;
@@ -1422,7 +1418,7 @@ ia64_mca_cpe_int_caller(int cpe_irq, void *arg, struct pt_regs *ptregs)
1422 if (start_count == -1) 1418 if (start_count == -1)
1423 start_count = IA64_LOG_COUNT(SAL_INFO_TYPE_CPE); 1419 start_count = IA64_LOG_COUNT(SAL_INFO_TYPE_CPE);
1424 1420
1425 ia64_mca_cpe_int_handler(cpe_irq, arg, ptregs); 1421 ia64_mca_cpe_int_handler(cpe_irq, arg);
1426 1422
1427 for (++cpuid ; cpuid < NR_CPUS && !cpu_online(cpuid) ; cpuid++); 1423 for (++cpuid ; cpuid < NR_CPUS && !cpu_online(cpuid) ; cpuid++);
1428 1424
diff --git a/arch/ia64/kernel/time.c b/arch/ia64/kernel/time.c
index 62e07f906e05..41169a9bc301 100644
--- a/arch/ia64/kernel/time.c
+++ b/arch/ia64/kernel/time.c
@@ -45,7 +45,7 @@ static struct time_interpolator itc_interpolator = {
45}; 45};
46 46
47static irqreturn_t 47static irqreturn_t
48timer_interrupt (int irq, void *dev_id, struct pt_regs *regs) 48timer_interrupt (int irq, void *dev_id)
49{ 49{
50 unsigned long new_itm; 50 unsigned long new_itm;
51 51
@@ -53,7 +53,7 @@ timer_interrupt (int irq, void *dev_id, struct pt_regs *regs)
53 return IRQ_HANDLED; 53 return IRQ_HANDLED;
54 } 54 }
55 55
56 platform_timer_interrupt(irq, dev_id, regs); 56 platform_timer_interrupt(irq, dev_id);
57 57
58 new_itm = local_cpu_data->itm_next; 58 new_itm = local_cpu_data->itm_next;
59 59
@@ -61,10 +61,10 @@ timer_interrupt (int irq, void *dev_id, struct pt_regs *regs)
61 printk(KERN_ERR "Oops: timer tick before it's due (itc=%lx,itm=%lx)\n", 61 printk(KERN_ERR "Oops: timer tick before it's due (itc=%lx,itm=%lx)\n",
62 ia64_get_itc(), new_itm); 62 ia64_get_itc(), new_itm);
63 63
64 profile_tick(CPU_PROFILING, regs); 64 profile_tick(CPU_PROFILING);
65 65
66 while (1) { 66 while (1) {
67 update_process_times(user_mode(regs)); 67 update_process_times(user_mode(get_irq_regs()));
68 68
69 new_itm += local_cpu_data->itm_delta; 69 new_itm += local_cpu_data->itm_delta;
70 70
diff --git a/arch/ia64/sn/kernel/huberror.c b/arch/ia64/sn/kernel/huberror.c
index 96fb81e6321f..abca6bd7962f 100644
--- a/arch/ia64/sn/kernel/huberror.c
+++ b/arch/ia64/sn/kernel/huberror.c
@@ -22,7 +22,7 @@
22void hubiio_crb_error_handler(struct hubdev_info *hubdev_info); 22void hubiio_crb_error_handler(struct hubdev_info *hubdev_info);
23extern void bte_crb_error_handler(cnodeid_t, int, int, ioerror_t *, 23extern void bte_crb_error_handler(cnodeid_t, int, int, ioerror_t *,
24 int); 24 int);
25static irqreturn_t hub_eint_handler(int irq, void *arg, struct pt_regs *ep) 25static irqreturn_t hub_eint_handler(int irq, void *arg)
26{ 26{
27 struct hubdev_info *hubdev_info; 27 struct hubdev_info *hubdev_info;
28 struct ia64_sal_retval ret_stuff; 28 struct ia64_sal_retval ret_stuff;
@@ -178,7 +178,7 @@ void hubiio_crb_error_handler(struct hubdev_info *hubdev_info)
178 */ 178 */
179void hub_error_init(struct hubdev_info *hubdev_info) 179void hub_error_init(struct hubdev_info *hubdev_info)
180{ 180{
181 if (request_irq(SGI_II_ERROR, (void *)hub_eint_handler, IRQF_SHARED, 181 if (request_irq(SGI_II_ERROR, hub_eint_handler, IRQF_SHARED,
182 "SN_hub_error", (void *)hubdev_info)) 182 "SN_hub_error", (void *)hubdev_info))
183 printk("hub_error_init: Failed to request_irq for 0x%p\n", 183 printk("hub_error_init: Failed to request_irq for 0x%p\n",
184 hubdev_info); 184 hubdev_info);
diff --git a/arch/ia64/sn/kernel/sn2/timer_interrupt.c b/arch/ia64/sn/kernel/sn2/timer_interrupt.c
index fa7f69945917..103d6ea8e94b 100644
--- a/arch/ia64/sn/kernel/sn2/timer_interrupt.c
+++ b/arch/ia64/sn/kernel/sn2/timer_interrupt.c
@@ -36,7 +36,7 @@ extern irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs);
36 36
37#define SN_LB_INT_WAR_INTERVAL 100 37#define SN_LB_INT_WAR_INTERVAL 100
38 38
39void sn_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) 39void sn_timer_interrupt(int irq, void *dev_id)
40{ 40{
41 /* LED blinking */ 41 /* LED blinking */
42 if (!pda->hb_count--) { 42 if (!pda->hb_count--) {
diff --git a/arch/ia64/sn/kernel/xpc_main.c b/arch/ia64/sn/kernel/xpc_main.c
index 4d026f9dd98b..fa96dfc0e1aa 100644
--- a/arch/ia64/sn/kernel/xpc_main.c
+++ b/arch/ia64/sn/kernel/xpc_main.c
@@ -222,7 +222,7 @@ xpc_timeout_partition_disengage_request(unsigned long data)
222 * Notify the heartbeat check thread that an IRQ has been received. 222 * Notify the heartbeat check thread that an IRQ has been received.
223 */ 223 */
224static irqreturn_t 224static irqreturn_t
225xpc_act_IRQ_handler(int irq, void *dev_id, struct pt_regs *regs) 225xpc_act_IRQ_handler(int irq, void *dev_id)
226{ 226{
227 atomic_inc(&xpc_act_IRQ_rcvd); 227 atomic_inc(&xpc_act_IRQ_rcvd);
228 wake_up_interruptible(&xpc_act_IRQ_wq); 228 wake_up_interruptible(&xpc_act_IRQ_wq);
@@ -607,12 +607,9 @@ xpc_activate_partition(struct xpc_partition *part)
607 * irq - Interrupt ReQuest number. NOT USED. 607 * irq - Interrupt ReQuest number. NOT USED.
608 * 608 *
609 * dev_id - partid of IPI's potential sender. 609 * dev_id - partid of IPI's potential sender.
610 *
611 * regs - processor's context before the processor entered
612 * interrupt code. NOT USED.
613 */ 610 */
614irqreturn_t 611irqreturn_t
615xpc_notify_IRQ_handler(int irq, void *dev_id, struct pt_regs *regs) 612xpc_notify_IRQ_handler(int irq, void *dev_id)
616{ 613{
617 partid_t partid = (partid_t) (u64) dev_id; 614 partid_t partid = (partid_t) (u64) dev_id;
618 struct xpc_partition *part = &xpc_partitions[partid]; 615 struct xpc_partition *part = &xpc_partitions[partid];
diff --git a/arch/ia64/sn/pci/pcibr/pcibr_ate.c b/arch/ia64/sn/pci/pcibr/pcibr_ate.c
index 5eb1e1e078b4..935029fc400d 100644
--- a/arch/ia64/sn/pci/pcibr/pcibr_ate.c
+++ b/arch/ia64/sn/pci/pcibr/pcibr_ate.c
@@ -126,7 +126,7 @@ int pcibr_ate_alloc(struct pcibus_info *pcibus_info, int count)
126 * Setup an Address Translation Entry as specified. Use either the Bridge 126 * Setup an Address Translation Entry as specified. Use either the Bridge
127 * internal maps or the external map RAM, as appropriate. 127 * internal maps or the external map RAM, as appropriate.
128 */ 128 */
129static inline u64 *pcibr_ate_addr(struct pcibus_info *pcibus_info, 129static inline u64 __iomem *pcibr_ate_addr(struct pcibus_info *pcibus_info,
130 int ate_index) 130 int ate_index)
131{ 131{
132 if (ate_index < pcibus_info->pbi_int_ate_size) { 132 if (ate_index < pcibus_info->pbi_int_ate_size) {
diff --git a/arch/ia64/sn/pci/pcibr/pcibr_provider.c b/arch/ia64/sn/pci/pcibr/pcibr_provider.c
index 838c93c9a16a..27dd7df0f446 100644
--- a/arch/ia64/sn/pci/pcibr/pcibr_provider.c
+++ b/arch/ia64/sn/pci/pcibr/pcibr_provider.c
@@ -95,7 +95,7 @@ u16 sn_ioboard_to_pci_bus(struct pci_bus *pci_bus)
95 * bridge sends an error interrupt. 95 * bridge sends an error interrupt.
96 */ 96 */
97static irqreturn_t 97static irqreturn_t
98pcibr_error_intr_handler(int irq, void *arg, struct pt_regs *regs) 98pcibr_error_intr_handler(int irq, void *arg)
99{ 99{
100 struct pcibus_info *soft = (struct pcibus_info *)arg; 100 struct pcibus_info *soft = (struct pcibus_info *)arg;
101 101
@@ -138,7 +138,7 @@ pcibr_bus_fixup(struct pcibus_bussoft *prom_bussoft, struct pci_controller *cont
138 /* 138 /*
139 * register the bridge's error interrupt handler 139 * register the bridge's error interrupt handler
140 */ 140 */
141 if (request_irq(SGI_PCIASIC_ERROR, (void *)pcibr_error_intr_handler, 141 if (request_irq(SGI_PCIASIC_ERROR, pcibr_error_intr_handler,
142 IRQF_SHARED, "PCIBR error", (void *)(soft))) { 142 IRQF_SHARED, "PCIBR error", (void *)(soft))) {
143 printk(KERN_WARNING 143 printk(KERN_WARNING
144 "pcibr cannot allocate interrupt for error handler\n"); 144 "pcibr cannot allocate interrupt for error handler\n");
diff --git a/arch/ia64/sn/pci/tioca_provider.c b/arch/ia64/sn/pci/tioca_provider.c
index c36b0f5affb3..8a2cb4e691fd 100644
--- a/arch/ia64/sn/pci/tioca_provider.c
+++ b/arch/ia64/sn/pci/tioca_provider.c
@@ -550,13 +550,12 @@ tioca_dma_map(struct pci_dev *pdev, u64 paddr, size_t byte_count, int dma_flags)
550 * tioca_error_intr_handler - SGI TIO CA error interrupt handler 550 * tioca_error_intr_handler - SGI TIO CA error interrupt handler
551 * @irq: unused 551 * @irq: unused
552 * @arg: pointer to tioca_common struct for the given CA 552 * @arg: pointer to tioca_common struct for the given CA
553 * @pt: unused
554 * 553 *
555 * Handle a CA error interrupt. Simply a wrapper around a SAL call which 554 * Handle a CA error interrupt. Simply a wrapper around a SAL call which
556 * defers processing to the SGI prom. 555 * defers processing to the SGI prom.
557 */ 556 */
558static irqreturn_t 557static irqreturn_t
559tioca_error_intr_handler(int irq, void *arg, struct pt_regs *pt) 558tioca_error_intr_handler(int irq, void *arg)
560{ 559{
561 struct tioca_common *soft = arg; 560 struct tioca_common *soft = arg;
562 struct ia64_sal_retval ret_stuff; 561 struct ia64_sal_retval ret_stuff;
diff --git a/arch/ia64/sn/pci/tioce_provider.c b/arch/ia64/sn/pci/tioce_provider.c
index af7171adcd2c..46e16dcf5971 100644
--- a/arch/ia64/sn/pci/tioce_provider.c
+++ b/arch/ia64/sn/pci/tioce_provider.c
@@ -53,7 +53,7 @@
53 */ 53 */
54 54
55static void inline 55static void inline
56tioce_mmr_war_pre(struct tioce_kernel *kern, void *mmr_addr) 56tioce_mmr_war_pre(struct tioce_kernel *kern, void __iomem *mmr_addr)
57{ 57{
58 u64 mmr_base; 58 u64 mmr_base;
59 u64 mmr_offset; 59 u64 mmr_offset;
@@ -62,7 +62,7 @@ tioce_mmr_war_pre(struct tioce_kernel *kern, void *mmr_addr)
62 return; 62 return;
63 63
64 mmr_base = kern->ce_common->ce_pcibus.bs_base; 64 mmr_base = kern->ce_common->ce_pcibus.bs_base;
65 mmr_offset = (u64)mmr_addr - mmr_base; 65 mmr_offset = (unsigned long)mmr_addr - mmr_base;
66 66
67 if (mmr_offset < 0x45000) { 67 if (mmr_offset < 0x45000) {
68 u64 mmr_war_offset; 68 u64 mmr_war_offset;
@@ -79,7 +79,7 @@ tioce_mmr_war_pre(struct tioce_kernel *kern, void *mmr_addr)
79} 79}
80 80
81static void inline 81static void inline
82tioce_mmr_war_post(struct tioce_kernel *kern, void *mmr_addr) 82tioce_mmr_war_post(struct tioce_kernel *kern, void __iomem *mmr_addr)
83{ 83{
84 u64 mmr_base; 84 u64 mmr_base;
85 u64 mmr_offset; 85 u64 mmr_offset;
@@ -88,7 +88,7 @@ tioce_mmr_war_post(struct tioce_kernel *kern, void *mmr_addr)
88 return; 88 return;
89 89
90 mmr_base = kern->ce_common->ce_pcibus.bs_base; 90 mmr_base = kern->ce_common->ce_pcibus.bs_base;
91 mmr_offset = (u64)mmr_addr - mmr_base; 91 mmr_offset = (unsigned long)mmr_addr - mmr_base;
92 92
93 if (mmr_offset < 0x45000) { 93 if (mmr_offset < 0x45000) {
94 if (mmr_offset == 0x100) 94 if (mmr_offset == 0x100)
@@ -223,7 +223,7 @@ tioce_dma_d64(unsigned long ct_addr, int dma_flags)
223 * @pci_dev. 223 * @pci_dev.
224 */ 224 */
225static inline void 225static inline void
226pcidev_to_tioce(struct pci_dev *pdev, struct tioce **base, 226pcidev_to_tioce(struct pci_dev *pdev, struct tioce __iomem **base,
227 struct tioce_kernel **kernel, int *port) 227 struct tioce_kernel **kernel, int *port)
228{ 228{
229 struct pcidev_info *pcidev_info; 229 struct pcidev_info *pcidev_info;
@@ -235,7 +235,7 @@ pcidev_to_tioce(struct pci_dev *pdev, struct tioce **base,
235 ce_kernel = (struct tioce_kernel *)ce_common->ce_kernel_private; 235 ce_kernel = (struct tioce_kernel *)ce_common->ce_kernel_private;
236 236
237 if (base) 237 if (base)
238 *base = (struct tioce *)ce_common->ce_pcibus.bs_base; 238 *base = (struct tioce __iomem *)ce_common->ce_pcibus.bs_base;
239 if (kernel) 239 if (kernel)
240 *kernel = ce_kernel; 240 *kernel = ce_kernel;
241 241
@@ -275,13 +275,13 @@ tioce_alloc_map(struct tioce_kernel *ce_kern, int type, int port,
275 u64 pagesize; 275 u64 pagesize;
276 int msi_capable, msi_wanted; 276 int msi_capable, msi_wanted;
277 u64 *ate_shadow; 277 u64 *ate_shadow;
278 u64 *ate_reg; 278 u64 __iomem *ate_reg;
279 u64 addr; 279 u64 addr;
280 struct tioce *ce_mmr; 280 struct tioce __iomem *ce_mmr;
281 u64 bus_base; 281 u64 bus_base;
282 struct tioce_dmamap *map; 282 struct tioce_dmamap *map;
283 283
284 ce_mmr = (struct tioce *)ce_kern->ce_common->ce_pcibus.bs_base; 284 ce_mmr = (struct tioce __iomem *)ce_kern->ce_common->ce_pcibus.bs_base;
285 285
286 switch (type) { 286 switch (type) {
287 case TIOCE_ATE_M32: 287 case TIOCE_ATE_M32:
@@ -386,7 +386,7 @@ tioce_dma_d32(struct pci_dev *pdev, u64 ct_addr, int dma_flags)
386{ 386{
387 int dma_ok; 387 int dma_ok;
388 int port; 388 int port;
389 struct tioce *ce_mmr; 389 struct tioce __iomem *ce_mmr;
390 struct tioce_kernel *ce_kern; 390 struct tioce_kernel *ce_kern;
391 u64 ct_upper; 391 u64 ct_upper;
392 u64 ct_lower; 392 u64 ct_lower;
@@ -461,7 +461,7 @@ tioce_dma_unmap(struct pci_dev *pdev, dma_addr_t bus_addr, int dir)
461 int i; 461 int i;
462 int port; 462 int port;
463 struct tioce_kernel *ce_kern; 463 struct tioce_kernel *ce_kern;
464 struct tioce *ce_mmr; 464 struct tioce __iomem *ce_mmr;
465 unsigned long flags; 465 unsigned long flags;
466 466
467 bus_addr = tioce_dma_barrier(bus_addr, 0); 467 bus_addr = tioce_dma_barrier(bus_addr, 0);
@@ -666,12 +666,11 @@ tioce_dma_consistent(struct pci_dev *pdev, u64 paddr, size_t byte_count, int dma
666 * tioce_error_intr_handler - SGI TIO CE error interrupt handler 666 * tioce_error_intr_handler - SGI TIO CE error interrupt handler
667 * @irq: unused 667 * @irq: unused
668 * @arg: pointer to tioce_common struct for the given CE 668 * @arg: pointer to tioce_common struct for the given CE
669 * @pt: unused
670 * 669 *
671 * Handle a CE error interrupt. Simply a wrapper around a SAL call which 670 * Handle a CE error interrupt. Simply a wrapper around a SAL call which
672 * defers processing to the SGI prom. 671 * defers processing to the SGI prom.
673 */ static irqreturn_t 672 */ static irqreturn_t
674tioce_error_intr_handler(int irq, void *arg, struct pt_regs *pt) 673tioce_error_intr_handler(int irq, void *arg)
675{ 674{
676 struct tioce_common *soft = arg; 675 struct tioce_common *soft = arg;
677 struct ia64_sal_retval ret_stuff; 676 struct ia64_sal_retval ret_stuff;
@@ -701,9 +700,9 @@ static void
701tioce_reserve_m32(struct tioce_kernel *ce_kern, u64 base, u64 limit) 700tioce_reserve_m32(struct tioce_kernel *ce_kern, u64 base, u64 limit)
702{ 701{
703 int ate_index, last_ate, ps; 702 int ate_index, last_ate, ps;
704 struct tioce *ce_mmr; 703 struct tioce __iomem *ce_mmr;
705 704
706 ce_mmr = (struct tioce *)ce_kern->ce_common->ce_pcibus.bs_base; 705 ce_mmr = (struct tioce __iomem *)ce_kern->ce_common->ce_pcibus.bs_base;
707 ps = ce_kern->ce_ate3240_pagesize; 706 ps = ce_kern->ce_ate3240_pagesize;
708 ate_index = ATE_PAGE(base, ps); 707 ate_index = ATE_PAGE(base, ps);
709 last_ate = ate_index + ATE_NPAGES(base, limit-base+1, ps) - 1; 708 last_ate = ate_index + ATE_NPAGES(base, limit-base+1, ps) - 1;
@@ -737,7 +736,7 @@ tioce_kern_init(struct tioce_common *tioce_common)
737 int dev; 736 int dev;
738 u32 tmp; 737 u32 tmp;
739 unsigned int seg, bus; 738 unsigned int seg, bus;
740 struct tioce *tioce_mmr; 739 struct tioce __iomem *tioce_mmr;
741 struct tioce_kernel *tioce_kern; 740 struct tioce_kernel *tioce_kern;
742 741
743 tioce_kern = kzalloc(sizeof(struct tioce_kernel), GFP_KERNEL); 742 tioce_kern = kzalloc(sizeof(struct tioce_kernel), GFP_KERNEL);
@@ -768,7 +767,7 @@ tioce_kern_init(struct tioce_common *tioce_common)
768 * the ate's. 767 * the ate's.
769 */ 768 */
770 769
771 tioce_mmr = (struct tioce *)tioce_common->ce_pcibus.bs_base; 770 tioce_mmr = (struct tioce __iomem *)tioce_common->ce_pcibus.bs_base;
772 tioce_mmr_clri(tioce_kern, &tioce_mmr->ce_ure_page_map, 771 tioce_mmr_clri(tioce_kern, &tioce_mmr->ce_ure_page_map,
773 CE_URE_PAGESIZE_MASK); 772 CE_URE_PAGESIZE_MASK);
774 tioce_mmr_seti(tioce_kern, &tioce_mmr->ce_ure_page_map, 773 tioce_mmr_seti(tioce_kern, &tioce_mmr->ce_ure_page_map,
@@ -859,7 +858,7 @@ tioce_force_interrupt(struct sn_irq_info *sn_irq_info)
859 struct pcidev_info *pcidev_info; 858 struct pcidev_info *pcidev_info;
860 struct tioce_common *ce_common; 859 struct tioce_common *ce_common;
861 struct tioce_kernel *ce_kern; 860 struct tioce_kernel *ce_kern;
862 struct tioce *ce_mmr; 861 struct tioce __iomem *ce_mmr;
863 u64 force_int_val; 862 u64 force_int_val;
864 863
865 if (!sn_irq_info->irq_bridge) 864 if (!sn_irq_info->irq_bridge)
@@ -873,7 +872,7 @@ tioce_force_interrupt(struct sn_irq_info *sn_irq_info)
873 return; 872 return;
874 873
875 ce_common = (struct tioce_common *)pcidev_info->pdi_pcibus_info; 874 ce_common = (struct tioce_common *)pcidev_info->pdi_pcibus_info;
876 ce_mmr = (struct tioce *)ce_common->ce_pcibus.bs_base; 875 ce_mmr = (struct tioce __iomem *)ce_common->ce_pcibus.bs_base;
877 ce_kern = (struct tioce_kernel *)ce_common->ce_kernel_private; 876 ce_kern = (struct tioce_kernel *)ce_common->ce_kernel_private;
878 877
879 /* 878 /*
@@ -954,7 +953,7 @@ tioce_target_interrupt(struct sn_irq_info *sn_irq_info)
954 struct pcidev_info *pcidev_info; 953 struct pcidev_info *pcidev_info;
955 struct tioce_common *ce_common; 954 struct tioce_common *ce_common;
956 struct tioce_kernel *ce_kern; 955 struct tioce_kernel *ce_kern;
957 struct tioce *ce_mmr; 956 struct tioce __iomem *ce_mmr;
958 int bit; 957 int bit;
959 u64 vector; 958 u64 vector;
960 959
@@ -963,7 +962,7 @@ tioce_target_interrupt(struct sn_irq_info *sn_irq_info)
963 return; 962 return;
964 963
965 ce_common = (struct tioce_common *)pcidev_info->pdi_pcibus_info; 964 ce_common = (struct tioce_common *)pcidev_info->pdi_pcibus_info;
966 ce_mmr = (struct tioce *)ce_common->ce_pcibus.bs_base; 965 ce_mmr = (struct tioce __iomem *)ce_common->ce_pcibus.bs_base;
967 ce_kern = (struct tioce_kernel *)ce_common->ce_kernel_private; 966 ce_kern = (struct tioce_kernel *)ce_common->ce_kernel_private;
968 967
969 bit = sn_irq_info->irq_int_bit; 968 bit = sn_irq_info->irq_int_bit;
@@ -995,7 +994,7 @@ tioce_bus_fixup(struct pcibus_bussoft *prom_bussoft, struct pci_controller *cont
995 cnodeid_t my_cnode, mem_cnode; 994 cnodeid_t my_cnode, mem_cnode;
996 struct tioce_common *tioce_common; 995 struct tioce_common *tioce_common;
997 struct tioce_kernel *tioce_kern; 996 struct tioce_kernel *tioce_kern;
998 struct tioce *tioce_mmr; 997 struct tioce __iomem *tioce_mmr;
999 998
1000 /* 999 /*
1001 * Allocate kernel bus soft and copy from prom. 1000 * Allocate kernel bus soft and copy from prom.
@@ -1019,7 +1018,7 @@ tioce_bus_fixup(struct pcibus_bussoft *prom_bussoft, struct pci_controller *cont
1019 * interrupt handler. 1018 * interrupt handler.
1020 */ 1019 */
1021 1020
1022 tioce_mmr = (struct tioce *)tioce_common->ce_pcibus.bs_base; 1021 tioce_mmr = (struct tioce __iomem *)tioce_common->ce_pcibus.bs_base;
1023 tioce_mmr_seti(tioce_kern, &tioce_mmr->ce_adm_int_status_alias, ~0ULL); 1022 tioce_mmr_seti(tioce_kern, &tioce_mmr->ce_adm_int_status_alias, ~0ULL);
1024 tioce_mmr_seti(tioce_kern, &tioce_mmr->ce_adm_error_summary_alias, 1023 tioce_mmr_seti(tioce_kern, &tioce_mmr->ce_adm_error_summary_alias,
1025 ~0ULL); 1024 ~0ULL);