diff options
Diffstat (limited to 'arch/sparc64/kernel')
-rw-r--r-- | arch/sparc64/kernel/ebus.c | 2 | ||||
-rw-r--r-- | arch/sparc64/kernel/irq.c | 12 | ||||
-rw-r--r-- | arch/sparc64/kernel/of_device.c | 2 | ||||
-rw-r--r-- | arch/sparc64/kernel/pci_psycho.c | 6 | ||||
-rw-r--r-- | arch/sparc64/kernel/pci_sabre.c | 6 | ||||
-rw-r--r-- | arch/sparc64/kernel/pci_schizo.c | 8 | ||||
-rw-r--r-- | arch/sparc64/kernel/power.c | 2 | ||||
-rw-r--r-- | arch/sparc64/kernel/sbus.c | 6 | ||||
-rw-r--r-- | arch/sparc64/kernel/smp.c | 6 | ||||
-rw-r--r-- | arch/sparc64/kernel/time.c | 7 |
10 files changed, 34 insertions, 23 deletions
diff --git a/arch/sparc64/kernel/ebus.c b/arch/sparc64/kernel/ebus.c index 8a9b470e1b65..2df25c2b4071 100644 --- a/arch/sparc64/kernel/ebus.c +++ b/arch/sparc64/kernel/ebus.c | |||
@@ -79,7 +79,7 @@ static void __ebus_dma_reset(struct ebus_dma_info *p, int no_drain) | |||
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 | struct ebus_dma_info *p = dev_id; | 84 | struct ebus_dma_info *p = dev_id; |
85 | unsigned long flags; | 85 | unsigned long flags; |
diff --git a/arch/sparc64/kernel/irq.c b/arch/sparc64/kernel/irq.c index 4e64724cb9ae..d64b1ea848de 100644 --- a/arch/sparc64/kernel/irq.c +++ b/arch/sparc64/kernel/irq.c | |||
@@ -522,12 +522,13 @@ void ack_bad_irq(unsigned int virt_irq) | |||
522 | } | 522 | } |
523 | 523 | ||
524 | #ifndef CONFIG_SMP | 524 | #ifndef CONFIG_SMP |
525 | extern irqreturn_t timer_interrupt(int, void *, struct pt_regs *); | 525 | extern irqreturn_t timer_interrupt(int, void *); |
526 | 526 | ||
527 | void timer_irq(int irq, struct pt_regs *regs) | 527 | void timer_irq(int irq, struct pt_regs *regs) |
528 | { | 528 | { |
529 | unsigned long clr_mask = 1 << irq; | 529 | unsigned long clr_mask = 1 << irq; |
530 | unsigned long tick_mask = tick_ops->softint_mask; | 530 | unsigned long tick_mask = tick_ops->softint_mask; |
531 | struct pt_regs *old_regs; | ||
531 | 532 | ||
532 | if (get_softint() & tick_mask) { | 533 | if (get_softint() & tick_mask) { |
533 | irq = 0; | 534 | irq = 0; |
@@ -535,21 +536,25 @@ void timer_irq(int irq, struct pt_regs *regs) | |||
535 | } | 536 | } |
536 | clear_softint(clr_mask); | 537 | clear_softint(clr_mask); |
537 | 538 | ||
539 | old_regs = set_irq_regs(regs); | ||
538 | irq_enter(); | 540 | irq_enter(); |
539 | 541 | ||
540 | kstat_this_cpu.irqs[0]++; | 542 | kstat_this_cpu.irqs[0]++; |
541 | timer_interrupt(irq, NULL, regs); | 543 | timer_interrupt(irq, NULL); |
542 | 544 | ||
543 | irq_exit(); | 545 | irq_exit(); |
546 | set_irq_regs(old_regs); | ||
544 | } | 547 | } |
545 | #endif | 548 | #endif |
546 | 549 | ||
547 | void handler_irq(int irq, struct pt_regs *regs) | 550 | void handler_irq(int irq, struct pt_regs *regs) |
548 | { | 551 | { |
549 | struct ino_bucket *bucket; | 552 | struct ino_bucket *bucket; |
553 | struct pt_regs *old_regs; | ||
550 | 554 | ||
551 | clear_softint(1 << irq); | 555 | clear_softint(1 << irq); |
552 | 556 | ||
557 | old_regs = set_irq_regs(regs); | ||
553 | irq_enter(); | 558 | irq_enter(); |
554 | 559 | ||
555 | /* Sliiiick... */ | 560 | /* Sliiiick... */ |
@@ -558,12 +563,13 @@ void handler_irq(int irq, struct pt_regs *regs) | |||
558 | struct ino_bucket *next = __bucket(bucket->irq_chain); | 563 | struct ino_bucket *next = __bucket(bucket->irq_chain); |
559 | 564 | ||
560 | bucket->irq_chain = 0; | 565 | bucket->irq_chain = 0; |
561 | __do_IRQ(bucket->virt_irq, regs); | 566 | __do_IRQ(bucket->virt_irq); |
562 | 567 | ||
563 | bucket = next; | 568 | bucket = next; |
564 | } | 569 | } |
565 | 570 | ||
566 | irq_exit(); | 571 | irq_exit(); |
572 | set_irq_regs(old_regs); | ||
567 | } | 573 | } |
568 | 574 | ||
569 | struct sun5_timer { | 575 | struct sun5_timer { |
diff --git a/arch/sparc64/kernel/of_device.c b/arch/sparc64/kernel/of_device.c index 7f9204535770..d822c7c18e1f 100644 --- a/arch/sparc64/kernel/of_device.c +++ b/arch/sparc64/kernel/of_device.c | |||
@@ -841,7 +841,7 @@ static struct of_device * __init scan_one_device(struct device_node *dp, | |||
841 | if (!parent) | 841 | if (!parent) |
842 | strcpy(op->dev.bus_id, "root"); | 842 | strcpy(op->dev.bus_id, "root"); |
843 | else | 843 | else |
844 | strcpy(op->dev.bus_id, dp->path_component_name); | 844 | sprintf(op->dev.bus_id, "%s@%08x", dp->name, dp->node); |
845 | 845 | ||
846 | if (of_device_register(op)) { | 846 | if (of_device_register(op)) { |
847 | printk("%s: Could not register of device.\n", | 847 | printk("%s: Could not register of device.\n", |
diff --git a/arch/sparc64/kernel/pci_psycho.c b/arch/sparc64/kernel/pci_psycho.c index 1ec0aab68c08..fda5db223d96 100644 --- a/arch/sparc64/kernel/pci_psycho.c +++ b/arch/sparc64/kernel/pci_psycho.c | |||
@@ -533,7 +533,7 @@ static void psycho_check_iommu_error(struct pci_controller_info *p, | |||
533 | #define PSYCHO_UEAFSR_RESV2 0x00000000007fffffUL /* Reserved */ | 533 | #define PSYCHO_UEAFSR_RESV2 0x00000000007fffffUL /* Reserved */ |
534 | #define PSYCHO_UE_AFAR 0x0038UL | 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 | struct pci_controller_info *p = dev_id; | 538 | struct pci_controller_info *p = dev_id; |
539 | unsigned long afsr_reg = p->pbm_A.controller_regs + PSYCHO_UE_AFSR; | 539 | unsigned long afsr_reg = p->pbm_A.controller_regs + PSYCHO_UE_AFSR; |
@@ -610,7 +610,7 @@ static irqreturn_t psycho_ue_intr(int irq, void *dev_id, struct pt_regs *regs) | |||
610 | #define PSYCHO_CEAFSR_RESV2 0x00000000007fffffUL /* Reserved */ | 610 | #define PSYCHO_CEAFSR_RESV2 0x00000000007fffffUL /* Reserved */ |
611 | #define PSYCHO_CE_AFAR 0x0040UL | 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 | struct pci_controller_info *p = dev_id; | 615 | struct pci_controller_info *p = dev_id; |
616 | unsigned long afsr_reg = p->pbm_A.controller_regs + PSYCHO_CE_AFSR; | 616 | unsigned long afsr_reg = p->pbm_A.controller_regs + PSYCHO_CE_AFSR; |
@@ -735,7 +735,7 @@ static irqreturn_t psycho_pcierr_intr_other(struct pci_pbm_info *pbm, int is_pbm | |||
735 | return ret; | 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 | struct pci_pbm_info *pbm = dev_id; | 740 | struct pci_pbm_info *pbm = dev_id; |
741 | struct pci_controller_info *p = pbm->parent; | 741 | struct pci_controller_info *p = pbm->parent; |
diff --git a/arch/sparc64/kernel/pci_sabre.c b/arch/sparc64/kernel/pci_sabre.c index 45891850b90d..6ec569828c29 100644 --- a/arch/sparc64/kernel/pci_sabre.c +++ b/arch/sparc64/kernel/pci_sabre.c | |||
@@ -574,7 +574,7 @@ static void sabre_check_iommu_error(struct pci_controller_info *p, | |||
574 | spin_unlock_irqrestore(&iommu->lock, flags); | 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 | struct pci_controller_info *p = dev_id; | 579 | struct pci_controller_info *p = dev_id; |
580 | unsigned long afsr_reg = p->pbm_A.controller_regs + SABRE_UE_AFSR; | 580 | unsigned long afsr_reg = p->pbm_A.controller_regs + SABRE_UE_AFSR; |
@@ -634,7 +634,7 @@ static irqreturn_t sabre_ue_intr(int irq, void *dev_id, struct pt_regs *regs) | |||
634 | return IRQ_HANDLED; | 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 | struct pci_controller_info *p = dev_id; | 639 | struct pci_controller_info *p = dev_id; |
640 | unsigned long afsr_reg = p->pbm_A.controller_regs + SABRE_CE_AFSR; | 640 | unsigned long afsr_reg = p->pbm_A.controller_regs + SABRE_CE_AFSR; |
@@ -726,7 +726,7 @@ static irqreturn_t sabre_pcierr_intr_other(struct pci_controller_info *p) | |||
726 | return ret; | 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 | struct pci_controller_info *p = dev_id; | 731 | struct pci_controller_info *p = dev_id; |
732 | unsigned long afsr_reg, afar_reg; | 732 | unsigned long afsr_reg, afar_reg; |
diff --git a/arch/sparc64/kernel/pci_schizo.c b/arch/sparc64/kernel/pci_schizo.c index 75ade83ecc65..66911b126aed 100644 --- a/arch/sparc64/kernel/pci_schizo.c +++ b/arch/sparc64/kernel/pci_schizo.c | |||
@@ -515,7 +515,7 @@ static void schizo_check_iommu_error(struct pci_controller_info *p, | |||
515 | #define SCHIZO_UEAFSR_MTAG 0x000000000000e000UL /* Safari */ | 515 | #define SCHIZO_UEAFSR_MTAG 0x000000000000e000UL /* Safari */ |
516 | #define SCHIZO_UEAFSR_ECCSYND 0x00000000000001ffUL /* Safari */ | 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 | struct pci_controller_info *p = dev_id; | 520 | struct pci_controller_info *p = dev_id; |
521 | unsigned long afsr_reg = p->pbm_B.controller_regs + SCHIZO_UE_AFSR; | 521 | unsigned long afsr_reg = p->pbm_B.controller_regs + SCHIZO_UE_AFSR; |
@@ -603,7 +603,7 @@ static irqreturn_t schizo_ue_intr(int irq, void *dev_id, struct pt_regs *regs) | |||
603 | #define SCHIZO_CEAFSR_MTAG 0x000000000000e000UL | 603 | #define SCHIZO_CEAFSR_MTAG 0x000000000000e000UL |
604 | #define SCHIZO_CEAFSR_ECCSYND 0x00000000000001ffUL | 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 | struct pci_controller_info *p = dev_id; | 608 | struct pci_controller_info *p = dev_id; |
609 | unsigned long afsr_reg = p->pbm_B.controller_regs + SCHIZO_CE_AFSR; | 609 | unsigned long afsr_reg = p->pbm_B.controller_regs + SCHIZO_CE_AFSR; |
@@ -778,7 +778,7 @@ static irqreturn_t schizo_pcierr_intr_other(struct pci_pbm_info *pbm) | |||
778 | return ret; | 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 | struct pci_pbm_info *pbm = dev_id; | 783 | struct pci_pbm_info *pbm = dev_id; |
784 | struct pci_controller_info *p = pbm->parent; | 784 | struct pci_controller_info *p = pbm->parent; |
@@ -933,7 +933,7 @@ static irqreturn_t schizo_pcierr_intr(int irq, void *dev_id, struct pt_regs *reg | |||
933 | /* We only expect UNMAP errors here. The rest of the Safari errors | 933 | /* We only expect UNMAP errors here. The rest of the Safari errors |
934 | * are marked fatal and thus cause a system reset. | 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 | struct pci_controller_info *p = dev_id; | 938 | struct pci_controller_info *p = dev_id; |
939 | u64 errlog; | 939 | u64 errlog; |
diff --git a/arch/sparc64/kernel/power.c b/arch/sparc64/kernel/power.c index 0b9c70627ce4..699b24b890df 100644 --- a/arch/sparc64/kernel/power.c +++ b/arch/sparc64/kernel/power.c | |||
@@ -35,7 +35,7 @@ static void __iomem *power_reg; | |||
35 | static DECLARE_WAIT_QUEUE_HEAD(powerd_wait); | 35 | static DECLARE_WAIT_QUEUE_HEAD(powerd_wait); |
36 | static int button_pressed; | 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 | if (button_pressed == 0) { | 40 | if (button_pressed == 0) { |
41 | button_pressed = 1; | 41 | button_pressed = 1; |
diff --git a/arch/sparc64/kernel/sbus.c b/arch/sparc64/kernel/sbus.c index c49a57795743..01d6d869ea2b 100644 --- a/arch/sparc64/kernel/sbus.c +++ b/arch/sparc64/kernel/sbus.c | |||
@@ -839,7 +839,7 @@ unsigned int sbus_build_irq(void *buscookie, unsigned int ino) | |||
839 | #define SYSIO_UEAFSR_SIZE 0x00001c0000000000UL /* Bad transfer size 2^SIZE */ | 839 | #define SYSIO_UEAFSR_SIZE 0x00001c0000000000UL /* Bad transfer size 2^SIZE */ |
840 | #define SYSIO_UEAFSR_MID 0x000003e000000000UL /* UPA MID causing the fault */ | 840 | #define SYSIO_UEAFSR_MID 0x000003e000000000UL /* UPA MID causing the fault */ |
841 | #define SYSIO_UEAFSR_RESV2 0x0000001fffffffffUL /* Reserved */ | 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 | struct sbus_bus *sbus = dev_id; | 844 | struct sbus_bus *sbus = dev_id; |
845 | struct sbus_iommu *iommu = sbus->iommu; | 845 | struct sbus_iommu *iommu = sbus->iommu; |
@@ -911,7 +911,7 @@ static irqreturn_t sysio_ue_handler(int irq, void *dev_id, struct pt_regs *regs) | |||
911 | #define SYSIO_CEAFSR_SIZE 0x00001c0000000000UL /* Bad transfer size 2^SIZE */ | 911 | #define SYSIO_CEAFSR_SIZE 0x00001c0000000000UL /* Bad transfer size 2^SIZE */ |
912 | #define SYSIO_CEAFSR_MID 0x000003e000000000UL /* UPA MID causing the fault */ | 912 | #define SYSIO_CEAFSR_MID 0x000003e000000000UL /* UPA MID causing the fault */ |
913 | #define SYSIO_CEAFSR_RESV2 0x0000001fffffffffUL /* Reserved */ | 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 | struct sbus_bus *sbus = dev_id; | 916 | struct sbus_bus *sbus = dev_id; |
917 | struct sbus_iommu *iommu = sbus->iommu; | 917 | struct sbus_iommu *iommu = sbus->iommu; |
@@ -988,7 +988,7 @@ static irqreturn_t sysio_ce_handler(int irq, void *dev_id, struct pt_regs *regs) | |||
988 | #define SYSIO_SBAFSR_SIZE 0x00001c0000000000UL /* Size of transfer */ | 988 | #define SYSIO_SBAFSR_SIZE 0x00001c0000000000UL /* Size of transfer */ |
989 | #define SYSIO_SBAFSR_MID 0x000003e000000000UL /* MID causing the error */ | 989 | #define SYSIO_SBAFSR_MID 0x000003e000000000UL /* MID causing the error */ |
990 | #define SYSIO_SBAFSR_RESV3 0x0000001fffffffffUL /* Reserved */ | 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 | struct sbus_bus *sbus = dev_id; | 993 | struct sbus_bus *sbus = dev_id; |
994 | struct sbus_iommu *iommu = sbus->iommu; | 994 | struct sbus_iommu *iommu = sbus->iommu; |
diff --git a/arch/sparc64/kernel/smp.c b/arch/sparc64/kernel/smp.c index f62bf3a2de1a..cc09d8266414 100644 --- a/arch/sparc64/kernel/smp.c +++ b/arch/sparc64/kernel/smp.c | |||
@@ -31,6 +31,7 @@ | |||
31 | #include <asm/cpudata.h> | 31 | #include <asm/cpudata.h> |
32 | 32 | ||
33 | #include <asm/irq.h> | 33 | #include <asm/irq.h> |
34 | #include <asm/irq_regs.h> | ||
34 | #include <asm/page.h> | 35 | #include <asm/page.h> |
35 | #include <asm/pgtable.h> | 36 | #include <asm/pgtable.h> |
36 | #include <asm/oplib.h> | 37 | #include <asm/oplib.h> |
@@ -1187,6 +1188,7 @@ void smp_percpu_timer_interrupt(struct pt_regs *regs) | |||
1187 | unsigned long compare, tick, pstate; | 1188 | unsigned long compare, tick, pstate; |
1188 | int cpu = smp_processor_id(); | 1189 | int cpu = smp_processor_id(); |
1189 | int user = user_mode(regs); | 1190 | int user = user_mode(regs); |
1191 | struct pt_regs *old_regs; | ||
1190 | 1192 | ||
1191 | /* | 1193 | /* |
1192 | * Check for level 14 softint. | 1194 | * Check for level 14 softint. |
@@ -1203,8 +1205,9 @@ void smp_percpu_timer_interrupt(struct pt_regs *regs) | |||
1203 | clear_softint(tick_mask); | 1205 | clear_softint(tick_mask); |
1204 | } | 1206 | } |
1205 | 1207 | ||
1208 | old_regs = set_irq_regs(regs); | ||
1206 | do { | 1209 | do { |
1207 | profile_tick(CPU_PROFILING, regs); | 1210 | profile_tick(CPU_PROFILING); |
1208 | if (!--prof_counter(cpu)) { | 1211 | if (!--prof_counter(cpu)) { |
1209 | irq_enter(); | 1212 | irq_enter(); |
1210 | 1213 | ||
@@ -1236,6 +1239,7 @@ void smp_percpu_timer_interrupt(struct pt_regs *regs) | |||
1236 | : /* no outputs */ | 1239 | : /* no outputs */ |
1237 | : "r" (pstate)); | 1240 | : "r" (pstate)); |
1238 | } while (time_after_eq(tick, compare)); | 1241 | } while (time_after_eq(tick, compare)); |
1242 | set_irq_regs(old_regs); | ||
1239 | } | 1243 | } |
1240 | 1244 | ||
1241 | static void __init smp_setup_percpu_timer(void) | 1245 | static void __init smp_setup_percpu_timer(void) |
diff --git a/arch/sparc64/kernel/time.c b/arch/sparc64/kernel/time.c index 00f6fc4aaaff..061e1b1fa583 100644 --- a/arch/sparc64/kernel/time.c +++ b/arch/sparc64/kernel/time.c | |||
@@ -45,6 +45,7 @@ | |||
45 | #include <asm/cpudata.h> | 45 | #include <asm/cpudata.h> |
46 | #include <asm/uaccess.h> | 46 | #include <asm/uaccess.h> |
47 | #include <asm/prom.h> | 47 | #include <asm/prom.h> |
48 | #include <asm/irq_regs.h> | ||
48 | 49 | ||
49 | DEFINE_SPINLOCK(mostek_lock); | 50 | DEFINE_SPINLOCK(mostek_lock); |
50 | DEFINE_SPINLOCK(rtc_lock); | 51 | DEFINE_SPINLOCK(rtc_lock); |
@@ -452,7 +453,7 @@ static inline void timer_check_rtc(void) | |||
452 | } | 453 | } |
453 | } | 454 | } |
454 | 455 | ||
455 | irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs * regs) | 456 | irqreturn_t timer_interrupt(int irq, void *dev_id) |
456 | { | 457 | { |
457 | unsigned long ticks, compare, pstate; | 458 | unsigned long ticks, compare, pstate; |
458 | 459 | ||
@@ -460,8 +461,8 @@ irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs * regs) | |||
460 | 461 | ||
461 | do { | 462 | do { |
462 | #ifndef CONFIG_SMP | 463 | #ifndef CONFIG_SMP |
463 | profile_tick(CPU_PROFILING, regs); | 464 | profile_tick(CPU_PROFILING); |
464 | update_process_times(user_mode(regs)); | 465 | update_process_times(user_mode(get_irq_regs())); |
465 | #endif | 466 | #endif |
466 | do_timer(1); | 467 | do_timer(1); |
467 | 468 | ||