diff options
Diffstat (limited to 'arch/sparc64')
-rw-r--r-- | arch/sparc64/defconfig | 19 | ||||
-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/setup.c | 10 | ||||
-rw-r--r-- | arch/sparc64/kernel/smp.c | 6 | ||||
-rw-r--r-- | arch/sparc64/kernel/time.c | 7 |
12 files changed, 49 insertions, 37 deletions
diff --git a/arch/sparc64/defconfig b/arch/sparc64/defconfig index f54ab375464b..dcae559879ae 100644 --- a/arch/sparc64/defconfig +++ b/arch/sparc64/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 | 3 | # Linux kernel version: 2.6.19-rc1 |
4 | # Mon Oct 2 14:24:40 2006 | 4 | # Thu Oct 5 02:08:41 2006 |
5 | # | 5 | # |
6 | CONFIG_SPARC=y | 6 | CONFIG_SPARC=y |
7 | CONFIG_SPARC64=y | 7 | CONFIG_SPARC64=y |
@@ -197,6 +197,7 @@ CONFIG_INET_XFRM_TUNNEL=y | |||
197 | CONFIG_INET_TUNNEL=y | 197 | CONFIG_INET_TUNNEL=y |
198 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | 198 | CONFIG_INET_XFRM_MODE_TRANSPORT=y |
199 | CONFIG_INET_XFRM_MODE_TUNNEL=y | 199 | CONFIG_INET_XFRM_MODE_TUNNEL=y |
200 | CONFIG_INET_XFRM_MODE_BEET=y | ||
200 | CONFIG_INET_DIAG=y | 201 | CONFIG_INET_DIAG=y |
201 | CONFIG_INET_TCP_DIAG=y | 202 | CONFIG_INET_TCP_DIAG=y |
202 | # CONFIG_TCP_CONG_ADVANCED is not set | 203 | # CONFIG_TCP_CONG_ADVANCED is not set |
@@ -214,6 +215,7 @@ CONFIG_INET6_XFRM_TUNNEL=m | |||
214 | CONFIG_INET6_TUNNEL=m | 215 | CONFIG_INET6_TUNNEL=m |
215 | CONFIG_INET6_XFRM_MODE_TRANSPORT=m | 216 | CONFIG_INET6_XFRM_MODE_TRANSPORT=m |
216 | CONFIG_INET6_XFRM_MODE_TUNNEL=m | 217 | CONFIG_INET6_XFRM_MODE_TUNNEL=m |
218 | CONFIG_INET6_XFRM_MODE_BEET=m | ||
217 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | 219 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set |
218 | CONFIG_IPV6_TUNNEL=m | 220 | CONFIG_IPV6_TUNNEL=m |
219 | # CONFIG_IPV6_SUBTREES is not set | 221 | # CONFIG_IPV6_SUBTREES is not set |
@@ -373,6 +375,7 @@ CONFIG_BLK_DEV_ALI15X3=y | |||
373 | # CONFIG_BLK_DEV_CS5530 is not set | 375 | # CONFIG_BLK_DEV_CS5530 is not set |
374 | # CONFIG_BLK_DEV_HPT34X is not set | 376 | # CONFIG_BLK_DEV_HPT34X is not set |
375 | # CONFIG_BLK_DEV_HPT366 is not set | 377 | # CONFIG_BLK_DEV_HPT366 is not set |
378 | # CONFIG_BLK_DEV_JMICRON is not set | ||
376 | # CONFIG_BLK_DEV_SC1200 is not set | 379 | # CONFIG_BLK_DEV_SC1200 is not set |
377 | # CONFIG_BLK_DEV_PIIX is not set | 380 | # CONFIG_BLK_DEV_PIIX is not set |
378 | # CONFIG_BLK_DEV_IT821X is not set | 381 | # CONFIG_BLK_DEV_IT821X is not set |
@@ -449,10 +452,10 @@ CONFIG_ISCSI_TCP=m | |||
449 | # CONFIG_SCSI_INIA100 is not set | 452 | # CONFIG_SCSI_INIA100 is not set |
450 | # CONFIG_SCSI_STEX is not set | 453 | # CONFIG_SCSI_STEX is not set |
451 | # CONFIG_SCSI_SYM53C8XX_2 is not set | 454 | # CONFIG_SCSI_SYM53C8XX_2 is not set |
452 | # CONFIG_SCSI_IPR is not set | ||
453 | # CONFIG_SCSI_QLOGIC_1280 is not set | 455 | # CONFIG_SCSI_QLOGIC_1280 is not set |
454 | # CONFIG_SCSI_QLOGICPTI is not set | 456 | # CONFIG_SCSI_QLOGICPTI is not set |
455 | # CONFIG_SCSI_QLA_FC is not set | 457 | # CONFIG_SCSI_QLA_FC is not set |
458 | # CONFIG_SCSI_QLA_ISCSI is not set | ||
456 | # CONFIG_SCSI_LPFC is not set | 459 | # CONFIG_SCSI_LPFC is not set |
457 | # CONFIG_SCSI_DC395x is not set | 460 | # CONFIG_SCSI_DC395x is not set |
458 | # CONFIG_SCSI_DC390T is not set | 461 | # CONFIG_SCSI_DC390T is not set |
@@ -478,6 +481,7 @@ CONFIG_MD_RAID456=m | |||
478 | CONFIG_MD_MULTIPATH=m | 481 | CONFIG_MD_MULTIPATH=m |
479 | # CONFIG_MD_FAULTY is not set | 482 | # CONFIG_MD_FAULTY is not set |
480 | CONFIG_BLK_DEV_DM=m | 483 | CONFIG_BLK_DEV_DM=m |
484 | # CONFIG_DM_DEBUG is not set | ||
481 | CONFIG_DM_CRYPT=m | 485 | CONFIG_DM_CRYPT=m |
482 | CONFIG_DM_SNAPSHOT=m | 486 | CONFIG_DM_SNAPSHOT=m |
483 | CONFIG_DM_MIRROR=m | 487 | CONFIG_DM_MIRROR=m |
@@ -840,12 +844,12 @@ CONFIG_HWMON=y | |||
840 | # | 844 | # |
841 | # Misc devices | 845 | # Misc devices |
842 | # | 846 | # |
847 | # CONFIG_TIFM_CORE is not set | ||
843 | 848 | ||
844 | # | 849 | # |
845 | # Multimedia devices | 850 | # Multimedia devices |
846 | # | 851 | # |
847 | # CONFIG_VIDEO_DEV is not set | 852 | # CONFIG_VIDEO_DEV is not set |
848 | CONFIG_VIDEO_V4L2=y | ||
849 | 853 | ||
850 | # | 854 | # |
851 | # Digital Video Broadcasting Devices | 855 | # Digital Video Broadcasting Devices |
@@ -858,6 +862,7 @@ CONFIG_VIDEO_V4L2=y | |||
858 | # | 862 | # |
859 | # CONFIG_FIRMWARE_EDID is not set | 863 | # CONFIG_FIRMWARE_EDID is not set |
860 | CONFIG_FB=y | 864 | CONFIG_FB=y |
865 | CONFIG_FB_DDC=y | ||
861 | CONFIG_FB_CFB_FILLRECT=y | 866 | CONFIG_FB_CFB_FILLRECT=y |
862 | CONFIG_FB_CFB_COPYAREA=y | 867 | CONFIG_FB_CFB_COPYAREA=y |
863 | CONFIG_FB_CFB_IMAGEBLIT=y | 868 | CONFIG_FB_CFB_IMAGEBLIT=y |
@@ -1236,6 +1241,7 @@ CONFIG_FS_MBCACHE=y | |||
1236 | # CONFIG_JFS_FS is not set | 1241 | # CONFIG_JFS_FS is not set |
1237 | CONFIG_FS_POSIX_ACL=y | 1242 | CONFIG_FS_POSIX_ACL=y |
1238 | # CONFIG_XFS_FS is not set | 1243 | # CONFIG_XFS_FS is not set |
1244 | # CONFIG_GFS2_FS is not set | ||
1239 | # CONFIG_OCFS2_FS is not set | 1245 | # CONFIG_OCFS2_FS is not set |
1240 | # CONFIG_MINIX_FS is not set | 1246 | # CONFIG_MINIX_FS is not set |
1241 | # CONFIG_ROMFS_FS is not set | 1247 | # CONFIG_ROMFS_FS is not set |
@@ -1279,6 +1285,7 @@ CONFIG_RAMFS=y | |||
1279 | # | 1285 | # |
1280 | # CONFIG_ADFS_FS is not set | 1286 | # CONFIG_ADFS_FS is not set |
1281 | # CONFIG_AFFS_FS is not set | 1287 | # CONFIG_AFFS_FS is not set |
1288 | # CONFIG_ECRYPT_FS is not set | ||
1282 | # CONFIG_HFS_FS is not set | 1289 | # CONFIG_HFS_FS is not set |
1283 | # CONFIG_HFSPLUS_FS is not set | 1290 | # CONFIG_HFSPLUS_FS is not set |
1284 | # CONFIG_BEFS_FS is not set | 1291 | # CONFIG_BEFS_FS is not set |
@@ -1355,6 +1362,10 @@ CONFIG_NLS_DEFAULT="iso8859-1" | |||
1355 | # CONFIG_NLS_UTF8 is not set | 1362 | # CONFIG_NLS_UTF8 is not set |
1356 | 1363 | ||
1357 | # | 1364 | # |
1365 | # Distributed Lock Manager | ||
1366 | # | ||
1367 | |||
1368 | # | ||
1358 | # Instrumentation Support | 1369 | # Instrumentation Support |
1359 | # | 1370 | # |
1360 | CONFIG_PROFILING=y | 1371 | CONFIG_PROFILING=y |
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/setup.c b/arch/sparc64/kernel/setup.c index 958287448cfe..cc8ad480a204 100644 --- a/arch/sparc64/kernel/setup.c +++ b/arch/sparc64/kernel/setup.c | |||
@@ -91,16 +91,6 @@ void kernel_enter_debugger(void) | |||
91 | { | 91 | { |
92 | } | 92 | } |
93 | 93 | ||
94 | int obp_system_intr(void) | ||
95 | { | ||
96 | if (boot_flags & BOOTME_DEBUG) { | ||
97 | printk("OBP: system interrupted\n"); | ||
98 | prom_halt(); | ||
99 | return 1; | ||
100 | } | ||
101 | return 0; | ||
102 | } | ||
103 | |||
104 | /* | 94 | /* |
105 | * Process kernel command line switches that are specific to the | 95 | * Process kernel command line switches that are specific to the |
106 | * SPARC or that require special low-level processing. | 96 | * SPARC or that require special low-level processing. |
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 | ||