Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[PATCH] sparc64 pt_regs fixes

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

authored by

Al Viro and committed by
Linus Torvalds
6d24c8dc 0d84438d

+29 -21
+1 -1
arch/sparc64/kernel/ebus.c
··· 79 79 } 80 80 } 81 81 82 - static irqreturn_t ebus_dma_irq(int irq, void *dev_id, struct pt_regs *regs) 82 + static irqreturn_t ebus_dma_irq(int irq, void *dev_id) 83 83 { 84 84 struct ebus_dma_info *p = dev_id; 85 85 unsigned long flags;
+4 -1
arch/sparc64/kernel/irq.c
··· 547 547 void handler_irq(int irq, struct pt_regs *regs) 548 548 { 549 549 struct ino_bucket *bucket; 550 + struct pt_regs *old_regs; 550 551 551 552 clear_softint(1 << irq); 552 553 554 + old_regs = set_irq_regs(regs); 553 555 irq_enter(); 554 556 555 557 /* Sliiiick... */ ··· 560 558 struct ino_bucket *next = __bucket(bucket->irq_chain); 561 559 562 560 bucket->irq_chain = 0; 563 - __do_IRQ(bucket->virt_irq, regs); 561 + __do_IRQ(bucket->virt_irq); 564 562 565 563 bucket = next; 566 564 } 567 565 568 566 irq_exit(); 567 + set_irq_regs(old_regs); 569 568 } 570 569 571 570 struct sun5_timer {
+3 -3
arch/sparc64/kernel/pci_psycho.c
··· 533 533 #define PSYCHO_UEAFSR_RESV2 0x00000000007fffffUL /* Reserved */ 534 534 #define PSYCHO_UE_AFAR 0x0038UL 535 535 536 - static irqreturn_t psycho_ue_intr(int irq, void *dev_id, struct pt_regs *regs) 536 + static irqreturn_t psycho_ue_intr(int irq, void *dev_id) 537 537 { 538 538 struct pci_controller_info *p = dev_id; 539 539 unsigned long afsr_reg = p->pbm_A.controller_regs + PSYCHO_UE_AFSR; ··· 610 610 #define PSYCHO_CEAFSR_RESV2 0x00000000007fffffUL /* Reserved */ 611 611 #define PSYCHO_CE_AFAR 0x0040UL 612 612 613 - static irqreturn_t psycho_ce_intr(int irq, void *dev_id, struct pt_regs *regs) 613 + static irqreturn_t psycho_ce_intr(int irq, void *dev_id) 614 614 { 615 615 struct pci_controller_info *p = dev_id; 616 616 unsigned long afsr_reg = p->pbm_A.controller_regs + PSYCHO_CE_AFSR; ··· 735 735 return ret; 736 736 } 737 737 738 - static irqreturn_t psycho_pcierr_intr(int irq, void *dev_id, struct pt_regs *regs) 738 + static irqreturn_t psycho_pcierr_intr(int irq, void *dev_id) 739 739 { 740 740 struct pci_pbm_info *pbm = dev_id; 741 741 struct pci_controller_info *p = pbm->parent;
+3 -3
arch/sparc64/kernel/pci_sabre.c
··· 574 574 spin_unlock_irqrestore(&iommu->lock, flags); 575 575 } 576 576 577 - static irqreturn_t sabre_ue_intr(int irq, void *dev_id, struct pt_regs *regs) 577 + static irqreturn_t sabre_ue_intr(int irq, void *dev_id) 578 578 { 579 579 struct pci_controller_info *p = dev_id; 580 580 unsigned long afsr_reg = p->pbm_A.controller_regs + SABRE_UE_AFSR; ··· 634 634 return IRQ_HANDLED; 635 635 } 636 636 637 - static irqreturn_t sabre_ce_intr(int irq, void *dev_id, struct pt_regs *regs) 637 + static irqreturn_t sabre_ce_intr(int irq, void *dev_id) 638 638 { 639 639 struct pci_controller_info *p = dev_id; 640 640 unsigned long afsr_reg = p->pbm_A.controller_regs + SABRE_CE_AFSR; ··· 726 726 return ret; 727 727 } 728 728 729 - static irqreturn_t sabre_pcierr_intr(int irq, void *dev_id, struct pt_regs *regs) 729 + static irqreturn_t sabre_pcierr_intr(int irq, void *dev_id) 730 730 { 731 731 struct pci_controller_info *p = dev_id; 732 732 unsigned long afsr_reg, afar_reg;
+4 -4
arch/sparc64/kernel/pci_schizo.c
··· 515 515 #define SCHIZO_UEAFSR_MTAG 0x000000000000e000UL /* Safari */ 516 516 #define SCHIZO_UEAFSR_ECCSYND 0x00000000000001ffUL /* Safari */ 517 517 518 - static irqreturn_t schizo_ue_intr(int irq, void *dev_id, struct pt_regs *regs) 518 + static irqreturn_t schizo_ue_intr(int irq, void *dev_id) 519 519 { 520 520 struct pci_controller_info *p = dev_id; 521 521 unsigned long afsr_reg = p->pbm_B.controller_regs + SCHIZO_UE_AFSR; ··· 603 603 #define SCHIZO_CEAFSR_MTAG 0x000000000000e000UL 604 604 #define SCHIZO_CEAFSR_ECCSYND 0x00000000000001ffUL 605 605 606 - static irqreturn_t schizo_ce_intr(int irq, void *dev_id, struct pt_regs *regs) 606 + static irqreturn_t schizo_ce_intr(int irq, void *dev_id) 607 607 { 608 608 struct pci_controller_info *p = dev_id; 609 609 unsigned long afsr_reg = p->pbm_B.controller_regs + SCHIZO_CE_AFSR; ··· 778 778 return ret; 779 779 } 780 780 781 - static irqreturn_t schizo_pcierr_intr(int irq, void *dev_id, struct pt_regs *regs) 781 + static irqreturn_t schizo_pcierr_intr(int irq, void *dev_id) 782 782 { 783 783 struct pci_pbm_info *pbm = dev_id; 784 784 struct pci_controller_info *p = pbm->parent; ··· 933 933 /* We only expect UNMAP errors here. The rest of the Safari errors 934 934 * are marked fatal and thus cause a system reset. 935 935 */ 936 - static irqreturn_t schizo_safarierr_intr(int irq, void *dev_id, struct pt_regs *regs) 936 + static irqreturn_t schizo_safarierr_intr(int irq, void *dev_id) 937 937 { 938 938 struct pci_controller_info *p = dev_id; 939 939 u64 errlog;
+1 -1
arch/sparc64/kernel/power.c
··· 35 35 static DECLARE_WAIT_QUEUE_HEAD(powerd_wait); 36 36 static int button_pressed; 37 37 38 - static irqreturn_t power_handler(int irq, void *dev_id, struct pt_regs *regs) 38 + static irqreturn_t power_handler(int irq, void *dev_id) 39 39 { 40 40 if (button_pressed == 0) { 41 41 button_pressed = 1;
+3 -3
arch/sparc64/kernel/sbus.c
··· 839 839 #define SYSIO_UEAFSR_SIZE 0x00001c0000000000UL /* Bad transfer size 2^SIZE */ 840 840 #define SYSIO_UEAFSR_MID 0x000003e000000000UL /* UPA MID causing the fault */ 841 841 #define SYSIO_UEAFSR_RESV2 0x0000001fffffffffUL /* Reserved */ 842 - static irqreturn_t sysio_ue_handler(int irq, void *dev_id, struct pt_regs *regs) 842 + static irqreturn_t sysio_ue_handler(int irq, void *dev_id) 843 843 { 844 844 struct sbus_bus *sbus = dev_id; 845 845 struct sbus_iommu *iommu = sbus->iommu; ··· 911 911 #define SYSIO_CEAFSR_SIZE 0x00001c0000000000UL /* Bad transfer size 2^SIZE */ 912 912 #define SYSIO_CEAFSR_MID 0x000003e000000000UL /* UPA MID causing the fault */ 913 913 #define SYSIO_CEAFSR_RESV2 0x0000001fffffffffUL /* Reserved */ 914 - static irqreturn_t sysio_ce_handler(int irq, void *dev_id, struct pt_regs *regs) 914 + static irqreturn_t sysio_ce_handler(int irq, void *dev_id) 915 915 { 916 916 struct sbus_bus *sbus = dev_id; 917 917 struct sbus_iommu *iommu = sbus->iommu; ··· 988 988 #define SYSIO_SBAFSR_SIZE 0x00001c0000000000UL /* Size of transfer */ 989 989 #define SYSIO_SBAFSR_MID 0x000003e000000000UL /* MID causing the error */ 990 990 #define SYSIO_SBAFSR_RESV3 0x0000001fffffffffUL /* Reserved */ 991 - static irqreturn_t sysio_sbus_error_handler(int irq, void *dev_id, struct pt_regs *regs) 991 + static irqreturn_t sysio_sbus_error_handler(int irq, void *dev_id) 992 992 { 993 993 struct sbus_bus *sbus = dev_id; 994 994 struct sbus_iommu *iommu = sbus->iommu;
+5 -1
arch/sparc64/kernel/smp.c
··· 31 31 #include <asm/cpudata.h> 32 32 33 33 #include <asm/irq.h> 34 + #include <asm/irq_regs.h> 34 35 #include <asm/page.h> 35 36 #include <asm/pgtable.h> 36 37 #include <asm/oplib.h> ··· 1188 1187 unsigned long compare, tick, pstate; 1189 1188 int cpu = smp_processor_id(); 1190 1189 int user = user_mode(regs); 1190 + struct pt_regs *old_regs; 1191 1191 1192 1192 /* 1193 1193 * Check for level 14 softint. ··· 1205 1203 clear_softint(tick_mask); 1206 1204 } 1207 1205 1206 + old_regs = set_irq_regs(regs); 1208 1207 do { 1209 - profile_tick(CPU_PROFILING, regs); 1208 + profile_tick(CPU_PROFILING); 1210 1209 if (!--prof_counter(cpu)) { 1211 1210 irq_enter(); 1212 1211 ··· 1239 1236 : /* no outputs */ 1240 1237 : "r" (pstate)); 1241 1238 } while (time_after_eq(tick, compare)); 1239 + set_irq_regs(old_regs); 1242 1240 } 1243 1241 1244 1242 static void __init smp_setup_percpu_timer(void)
+4 -4
include/asm-sparc64/floppy.h
··· 208 208 pdma_areasize = pdma_size; 209 209 } 210 210 211 - irqreturn_t sparc_floppy_irq(int irq, void *dev_cookie, struct pt_regs *regs) 211 + irqreturn_t sparc_floppy_irq(int irq, void *dev_cookie) 212 212 { 213 213 if (likely(doing_pdma)) { 214 214 void __iomem *stat = (void __iomem *) fdc_status; ··· 255 255 } 256 256 257 257 main_interrupt: 258 - return floppy_interrupt(irq, dev_cookie, regs); 258 + return floppy_interrupt(irq, dev_cookie); 259 259 } 260 260 261 261 static int sun_fd_request_irq(void) ··· 311 311 static struct sun_pci_dma_op sun_pci_dma_current = { -1U, 0, 0, NULL}; 312 312 static struct sun_pci_dma_op sun_pci_dma_pending = { -1U, 0, 0, NULL}; 313 313 314 - extern irqreturn_t floppy_interrupt(int irq, void *dev_id, struct pt_regs *regs); 314 + extern irqreturn_t floppy_interrupt(int irq, void *dev_id); 315 315 316 316 static unsigned char sun_pci_fd_inb(unsigned long port) 317 317 { ··· 446 446 447 447 void sun_pci_fd_dma_callback(struct ebus_dma_info *p, int event, void *cookie) 448 448 { 449 - floppy_interrupt(0, NULL, NULL); 449 + floppy_interrupt(0, NULL); 450 450 } 451 451 452 452 /*
+1
include/asm-sparc64/irq_regs.h
··· 1 + #include <asm-generic/irq_regs.h>