diff options
| author | Linus Torvalds <torvalds@g5.osdl.org> | 2005-09-08 20:26:52 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-09-08 20:26:52 -0400 |
| commit | 4fe8a0f4c5d64cbc78227a88df4566c0d0ee4648 (patch) | |
| tree | 9dc3fc8276d987058cd8f3826113c5baa2a1b595 | |
| parent | 529980c8b0b04e8a3f6606cdc156f1f81a5d68cd (diff) | |
| parent | 344a076110f4ecb16ea6d286b63be696604982ed (diff) | |
Merge branch 'release' of master.kernel.org:/pub/scm/linux/kernel/git/aegl/linux-2.6
| -rw-r--r-- | arch/ia64/Kconfig | 6 | ||||
| -rw-r--r-- | arch/ia64/configs/sn2_defconfig | 1 | ||||
| -rw-r--r-- | arch/ia64/configs/tiger_defconfig | 1 | ||||
| -rw-r--r-- | arch/ia64/configs/zx1_defconfig | 1 | ||||
| -rw-r--r-- | arch/ia64/defconfig | 3 | ||||
| -rw-r--r-- | arch/ia64/kernel/acpi.c | 2 | ||||
| -rw-r--r-- | arch/ia64/kernel/entry.S | 6 | ||||
| -rw-r--r-- | arch/ia64/kernel/iosapic.c | 2 | ||||
| -rw-r--r-- | arch/ia64/lib/memcpy_mck.S | 3 | ||||
| -rw-r--r-- | arch/ia64/mm/fault.c | 6 | ||||
| -rw-r--r-- | arch/ia64/pci/pci.c | 2 | ||||
| -rw-r--r-- | arch/ia64/sn/kernel/setup.c | 2 | ||||
| -rw-r--r-- | arch/ia64/sn/kernel/xpc_main.c | 4 | ||||
| -rw-r--r-- | arch/ia64/sn/kernel/xpnet.c | 4 | ||||
| -rw-r--r-- | include/asm-ia64/iosapic.h | 4 | ||||
| -rw-r--r-- | include/asm-ia64/irq.h | 4 |
16 files changed, 19 insertions, 32 deletions
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig index 00151a8320d8..ed25d66c8d50 100644 --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig | |||
| @@ -339,12 +339,6 @@ config IA64_PALINFO | |||
| 339 | To use this option, you have to ensure that the "/proc file system | 339 | To use this option, you have to ensure that the "/proc file system |
| 340 | support" (CONFIG_PROC_FS) is enabled, too. | 340 | support" (CONFIG_PROC_FS) is enabled, too. |
| 341 | 341 | ||
| 342 | config ACPI_DEALLOCATE_IRQ | ||
| 343 | bool | ||
| 344 | depends on ACPI | ||
| 345 | depends on IOSAPIC && EXPERIMENTAL | ||
| 346 | default y | ||
| 347 | |||
| 348 | source "drivers/firmware/Kconfig" | 342 | source "drivers/firmware/Kconfig" |
| 349 | 343 | ||
| 350 | source "fs/Kconfig.binfmt" | 344 | source "fs/Kconfig.binfmt" |
diff --git a/arch/ia64/configs/sn2_defconfig b/arch/ia64/configs/sn2_defconfig index 1ca6e6e11b42..08112ab38468 100644 --- a/arch/ia64/configs/sn2_defconfig +++ b/arch/ia64/configs/sn2_defconfig | |||
| @@ -111,7 +111,6 @@ CONFIG_COMPAT=y | |||
| 111 | CONFIG_IA64_MCA_RECOVERY=y | 111 | CONFIG_IA64_MCA_RECOVERY=y |
| 112 | CONFIG_PERFMON=y | 112 | CONFIG_PERFMON=y |
| 113 | CONFIG_IA64_PALINFO=y | 113 | CONFIG_IA64_PALINFO=y |
| 114 | CONFIG_ACPI_DEALLOCATE_IRQ=y | ||
| 115 | 114 | ||
| 116 | # | 115 | # |
| 117 | # Firmware Drivers | 116 | # Firmware Drivers |
diff --git a/arch/ia64/configs/tiger_defconfig b/arch/ia64/configs/tiger_defconfig index 3ec94a12eac0..d452e18ac494 100644 --- a/arch/ia64/configs/tiger_defconfig +++ b/arch/ia64/configs/tiger_defconfig | |||
| @@ -109,7 +109,6 @@ CONFIG_COMPAT=y | |||
| 109 | CONFIG_IA64_MCA_RECOVERY=y | 109 | CONFIG_IA64_MCA_RECOVERY=y |
| 110 | CONFIG_PERFMON=y | 110 | CONFIG_PERFMON=y |
| 111 | CONFIG_IA64_PALINFO=y | 111 | CONFIG_IA64_PALINFO=y |
| 112 | CONFIG_ACPI_DEALLOCATE_IRQ=y | ||
| 113 | 112 | ||
| 114 | # | 113 | # |
| 115 | # Firmware Drivers | 114 | # Firmware Drivers |
diff --git a/arch/ia64/configs/zx1_defconfig b/arch/ia64/configs/zx1_defconfig index d4cf73d124bc..80b0e9eb7fb3 100644 --- a/arch/ia64/configs/zx1_defconfig +++ b/arch/ia64/configs/zx1_defconfig | |||
| @@ -109,7 +109,6 @@ CONFIG_COMPAT=y | |||
| 109 | CONFIG_IA64_MCA_RECOVERY=y | 109 | CONFIG_IA64_MCA_RECOVERY=y |
| 110 | CONFIG_PERFMON=y | 110 | CONFIG_PERFMON=y |
| 111 | CONFIG_IA64_PALINFO=y | 111 | CONFIG_IA64_PALINFO=y |
| 112 | CONFIG_ACPI_DEALLOCATE_IRQ=y | ||
| 113 | 112 | ||
| 114 | # | 113 | # |
| 115 | # Firmware Drivers | 114 | # Firmware Drivers |
diff --git a/arch/ia64/defconfig b/arch/ia64/defconfig index b6ec8d32c346..5da208115ea1 100644 --- a/arch/ia64/defconfig +++ b/arch/ia64/defconfig | |||
| @@ -99,7 +99,6 @@ CONFIG_COMPAT=y | |||
| 99 | CONFIG_IA64_MCA_RECOVERY=y | 99 | CONFIG_IA64_MCA_RECOVERY=y |
| 100 | CONFIG_PERFMON=y | 100 | CONFIG_PERFMON=y |
| 101 | CONFIG_IA64_PALINFO=y | 101 | CONFIG_IA64_PALINFO=y |
| 102 | CONFIG_ACPI_DEALLOCATE_IRQ=y | ||
| 103 | 102 | ||
| 104 | # | 103 | # |
| 105 | # Firmware Drivers | 104 | # Firmware Drivers |
| @@ -335,7 +334,7 @@ CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 | |||
| 335 | CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 | 334 | CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 |
| 336 | # CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set | 335 | # CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set |
| 337 | # CONFIG_SCSI_IPR is not set | 336 | # CONFIG_SCSI_IPR is not set |
| 338 | CONFIG_SCSI_QLOGIC_FC=y | 337 | # CONFIG_SCSI_QLOGIC_FC is not set |
| 339 | # CONFIG_SCSI_QLOGIC_FC_FIRMWARE is not set | 338 | # CONFIG_SCSI_QLOGIC_FC_FIRMWARE is not set |
| 340 | CONFIG_SCSI_QLOGIC_1280=y | 339 | CONFIG_SCSI_QLOGIC_1280=y |
| 341 | # CONFIG_SCSI_QLOGIC_1280_1040 is not set | 340 | # CONFIG_SCSI_QLOGIC_1280_1040 is not set |
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c index 318787c84ac0..28a4529fdd60 100644 --- a/arch/ia64/kernel/acpi.c +++ b/arch/ia64/kernel/acpi.c | |||
| @@ -583,14 +583,12 @@ int acpi_register_gsi(u32 gsi, int edge_level, int active_high_low) | |||
| 583 | 583 | ||
| 584 | EXPORT_SYMBOL(acpi_register_gsi); | 584 | EXPORT_SYMBOL(acpi_register_gsi); |
| 585 | 585 | ||
| 586 | #ifdef CONFIG_ACPI_DEALLOCATE_IRQ | ||
| 587 | void acpi_unregister_gsi(u32 gsi) | 586 | void acpi_unregister_gsi(u32 gsi) |
| 588 | { | 587 | { |
| 589 | iosapic_unregister_intr(gsi); | 588 | iosapic_unregister_intr(gsi); |
| 590 | } | 589 | } |
| 591 | 590 | ||
| 592 | EXPORT_SYMBOL(acpi_unregister_gsi); | 591 | EXPORT_SYMBOL(acpi_unregister_gsi); |
| 593 | #endif /* CONFIG_ACPI_DEALLOCATE_IRQ */ | ||
| 594 | 592 | ||
| 595 | static int __init acpi_parse_fadt(unsigned long phys_addr, unsigned long size) | 593 | static int __init acpi_parse_fadt(unsigned long phys_addr, unsigned long size) |
| 596 | { | 594 | { |
diff --git a/arch/ia64/kernel/entry.S b/arch/ia64/kernel/entry.S index 9be53e1ea404..3c8821024509 100644 --- a/arch/ia64/kernel/entry.S +++ b/arch/ia64/kernel/entry.S | |||
| @@ -204,9 +204,6 @@ GLOBAL_ENTRY(ia64_switch_to) | |||
| 204 | (p6) br.cond.dpnt .map | 204 | (p6) br.cond.dpnt .map |
| 205 | ;; | 205 | ;; |
| 206 | .done: | 206 | .done: |
| 207 | (p6) ssm psr.ic // if we had to map, reenable the psr.ic bit FIRST!!! | ||
| 208 | ;; | ||
| 209 | (p6) srlz.d | ||
| 210 | ld8 sp=[r21] // load kernel stack pointer of new task | 207 | ld8 sp=[r21] // load kernel stack pointer of new task |
| 211 | mov IA64_KR(CURRENT)=in0 // update "current" application register | 208 | mov IA64_KR(CURRENT)=in0 // update "current" application register |
| 212 | mov r8=r13 // return pointer to previously running task | 209 | mov r8=r13 // return pointer to previously running task |
| @@ -234,6 +231,9 @@ GLOBAL_ENTRY(ia64_switch_to) | |||
| 234 | mov IA64_KR(CURRENT_STACK)=r26 // remember last page we mapped... | 231 | mov IA64_KR(CURRENT_STACK)=r26 // remember last page we mapped... |
| 235 | ;; | 232 | ;; |
| 236 | itr.d dtr[r25]=r23 // wire in new mapping... | 233 | itr.d dtr[r25]=r23 // wire in new mapping... |
| 234 | ssm psr.ic // reenable the psr.ic bit | ||
| 235 | ;; | ||
| 236 | srlz.d | ||
| 237 | br.cond.sptk .done | 237 | br.cond.sptk .done |
| 238 | END(ia64_switch_to) | 238 | END(ia64_switch_to) |
| 239 | 239 | ||
diff --git a/arch/ia64/kernel/iosapic.c b/arch/ia64/kernel/iosapic.c index a13df592ebf7..574084f343fa 100644 --- a/arch/ia64/kernel/iosapic.c +++ b/arch/ia64/kernel/iosapic.c | |||
| @@ -782,7 +782,6 @@ again: | |||
| 782 | return vector; | 782 | return vector; |
| 783 | } | 783 | } |
| 784 | 784 | ||
| 785 | #ifdef CONFIG_ACPI_DEALLOCATE_IRQ | ||
| 786 | void | 785 | void |
| 787 | iosapic_unregister_intr (unsigned int gsi) | 786 | iosapic_unregister_intr (unsigned int gsi) |
| 788 | { | 787 | { |
| @@ -865,7 +864,6 @@ iosapic_unregister_intr (unsigned int gsi) | |||
| 865 | spin_unlock(&iosapic_lock); | 864 | spin_unlock(&iosapic_lock); |
| 866 | spin_unlock_irqrestore(&idesc->lock, flags); | 865 | spin_unlock_irqrestore(&idesc->lock, flags); |
| 867 | } | 866 | } |
| 868 | #endif /* CONFIG_ACPI_DEALLOCATE_IRQ */ | ||
| 869 | 867 | ||
| 870 | /* | 868 | /* |
| 871 | * ACPI calls this when it finds an entry for a platform interrupt. | 869 | * ACPI calls this when it finds an entry for a platform interrupt. |
diff --git a/arch/ia64/lib/memcpy_mck.S b/arch/ia64/lib/memcpy_mck.S index 6f308e62c137..46c9331e7ab5 100644 --- a/arch/ia64/lib/memcpy_mck.S +++ b/arch/ia64/lib/memcpy_mck.S | |||
| @@ -625,8 +625,11 @@ EK(.ex_handler, (p17) st8 [dst1]=r39,8); \ | |||
| 625 | clrrrb | 625 | clrrrb |
| 626 | ;; | 626 | ;; |
| 627 | alloc saved_pfs_stack=ar.pfs,3,3,3,0 | 627 | alloc saved_pfs_stack=ar.pfs,3,3,3,0 |
| 628 | cmp.lt p8,p0=A,r0 | ||
| 628 | sub B = dst0, saved_in0 // how many byte copied so far | 629 | sub B = dst0, saved_in0 // how many byte copied so far |
| 629 | ;; | 630 | ;; |
| 631 | (p8) mov A = 0; // A shouldn't be negative, cap it | ||
| 632 | ;; | ||
| 630 | sub C = A, B | 633 | sub C = A, B |
| 631 | sub D = saved_in2, A | 634 | sub D = saved_in2, A |
| 632 | ;; | 635 | ;; |
diff --git a/arch/ia64/mm/fault.c b/arch/ia64/mm/fault.c index 24614869e866..3c32af910d60 100644 --- a/arch/ia64/mm/fault.c +++ b/arch/ia64/mm/fault.c | |||
| @@ -230,9 +230,6 @@ ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_regs *re | |||
| 230 | return; | 230 | return; |
| 231 | } | 231 | } |
| 232 | 232 | ||
| 233 | if (ia64_done_with_exception(regs)) | ||
| 234 | return; | ||
| 235 | |||
| 236 | /* | 233 | /* |
| 237 | * Since we have no vma's for region 5, we might get here even if the address is | 234 | * Since we have no vma's for region 5, we might get here even if the address is |
| 238 | * valid, due to the VHPT walker inserting a non present translation that becomes | 235 | * valid, due to the VHPT walker inserting a non present translation that becomes |
| @@ -243,6 +240,9 @@ ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_regs *re | |||
| 243 | if (REGION_NUMBER(address) == 5 && mapped_kernel_page_is_present(address)) | 240 | if (REGION_NUMBER(address) == 5 && mapped_kernel_page_is_present(address)) |
| 244 | return; | 241 | return; |
| 245 | 242 | ||
| 243 | if (ia64_done_with_exception(regs)) | ||
| 244 | return; | ||
| 245 | |||
| 246 | /* | 246 | /* |
| 247 | * Oops. The kernel tried to access some bad page. We'll have to terminate things | 247 | * Oops. The kernel tried to access some bad page. We'll have to terminate things |
| 248 | * with extreme prejudice. | 248 | * with extreme prejudice. |
diff --git a/arch/ia64/pci/pci.c b/arch/ia64/pci/pci.c index 9977c122e9fa..9b5de589b82f 100644 --- a/arch/ia64/pci/pci.c +++ b/arch/ia64/pci/pci.c | |||
| @@ -498,13 +498,11 @@ pcibios_enable_device (struct pci_dev *dev, int mask) | |||
| 498 | return acpi_pci_irq_enable(dev); | 498 | return acpi_pci_irq_enable(dev); |
| 499 | } | 499 | } |
| 500 | 500 | ||
| 501 | #ifdef CONFIG_ACPI_DEALLOCATE_IRQ | ||
| 502 | void | 501 | void |
| 503 | pcibios_disable_device (struct pci_dev *dev) | 502 | pcibios_disable_device (struct pci_dev *dev) |
| 504 | { | 503 | { |
| 505 | acpi_pci_irq_disable(dev); | 504 | acpi_pci_irq_disable(dev); |
| 506 | } | 505 | } |
| 507 | #endif /* CONFIG_ACPI_DEALLOCATE_IRQ */ | ||
| 508 | 506 | ||
| 509 | void | 507 | void |
| 510 | pcibios_align_resource (void *data, struct resource *res, | 508 | pcibios_align_resource (void *data, struct resource *res, |
diff --git a/arch/ia64/sn/kernel/setup.c b/arch/ia64/sn/kernel/setup.c index a594aca959e6..14908ad7db8c 100644 --- a/arch/ia64/sn/kernel/setup.c +++ b/arch/ia64/sn/kernel/setup.c | |||
| @@ -56,7 +56,7 @@ | |||
| 56 | 56 | ||
| 57 | DEFINE_PER_CPU(struct pda_s, pda_percpu); | 57 | DEFINE_PER_CPU(struct pda_s, pda_percpu); |
| 58 | 58 | ||
| 59 | #define MAX_PHYS_MEMORY (1UL << 49) /* 1 TB */ | 59 | #define MAX_PHYS_MEMORY (1UL << IA64_MAX_PHYS_BITS) /* Max physical address supported */ |
| 60 | 60 | ||
| 61 | lboard_t *root_lboard[MAX_COMPACT_NODES]; | 61 | lboard_t *root_lboard[MAX_COMPACT_NODES]; |
| 62 | 62 | ||
diff --git a/arch/ia64/sn/kernel/xpc_main.c b/arch/ia64/sn/kernel/xpc_main.c index bb1d5cf30440..ed7c21586e98 100644 --- a/arch/ia64/sn/kernel/xpc_main.c +++ b/arch/ia64/sn/kernel/xpc_main.c | |||
| @@ -885,6 +885,10 @@ xpc_init(void) | |||
| 885 | pid_t pid; | 885 | pid_t pid; |
| 886 | 886 | ||
| 887 | 887 | ||
| 888 | if (!ia64_platform_is("sn2")) { | ||
| 889 | return -ENODEV; | ||
| 890 | } | ||
| 891 | |||
| 888 | /* | 892 | /* |
| 889 | * xpc_remote_copy_buffer is used as a temporary buffer for bte_copy'ng | 893 | * xpc_remote_copy_buffer is used as a temporary buffer for bte_copy'ng |
| 890 | * both a partition's reserved page and its XPC variables. Its size was | 894 | * both a partition's reserved page and its XPC variables. Its size was |
diff --git a/arch/ia64/sn/kernel/xpnet.c b/arch/ia64/sn/kernel/xpnet.c index 78c13d676fa6..d0c2c114a459 100644 --- a/arch/ia64/sn/kernel/xpnet.c +++ b/arch/ia64/sn/kernel/xpnet.c | |||
| @@ -636,6 +636,10 @@ xpnet_init(void) | |||
| 636 | int result = -ENOMEM; | 636 | int result = -ENOMEM; |
| 637 | 637 | ||
| 638 | 638 | ||
| 639 | if (!ia64_platform_is("sn2")) { | ||
| 640 | return -ENODEV; | ||
| 641 | } | ||
| 642 | |||
| 639 | dev_info(xpnet, "registering network device %s\n", XPNET_DEVICE_NAME); | 643 | dev_info(xpnet, "registering network device %s\n", XPNET_DEVICE_NAME); |
| 640 | 644 | ||
| 641 | /* | 645 | /* |
diff --git a/include/asm-ia64/iosapic.h b/include/asm-ia64/iosapic.h index a429fe225b07..20f98f1751a1 100644 --- a/include/asm-ia64/iosapic.h +++ b/include/asm-ia64/iosapic.h | |||
| @@ -80,12 +80,9 @@ extern int iosapic_remove (unsigned int gsi_base); | |||
| 80 | #endif /* CONFIG_HOTPLUG */ | 80 | #endif /* CONFIG_HOTPLUG */ |
| 81 | extern int gsi_to_vector (unsigned int gsi); | 81 | extern int gsi_to_vector (unsigned int gsi); |
| 82 | extern int gsi_to_irq (unsigned int gsi); | 82 | extern int gsi_to_irq (unsigned int gsi); |
| 83 | extern void iosapic_enable_intr (unsigned int vector); | ||
| 84 | extern int iosapic_register_intr (unsigned int gsi, unsigned long polarity, | 83 | extern int iosapic_register_intr (unsigned int gsi, unsigned long polarity, |
| 85 | unsigned long trigger); | 84 | unsigned long trigger); |
| 86 | #ifdef CONFIG_ACPI_DEALLOCATE_IRQ | ||
| 87 | extern void iosapic_unregister_intr (unsigned int irq); | 85 | extern void iosapic_unregister_intr (unsigned int irq); |
| 88 | #endif | ||
| 89 | extern void __init iosapic_override_isa_irq (unsigned int isa_irq, unsigned int gsi, | 86 | extern void __init iosapic_override_isa_irq (unsigned int isa_irq, unsigned int gsi, |
| 90 | unsigned long polarity, | 87 | unsigned long polarity, |
| 91 | unsigned long trigger); | 88 | unsigned long trigger); |
| @@ -97,7 +94,6 @@ extern int __init iosapic_register_platform_intr (u32 int_type, | |||
| 97 | unsigned long trigger); | 94 | unsigned long trigger); |
| 98 | extern unsigned int iosapic_version (char __iomem *addr); | 95 | extern unsigned int iosapic_version (char __iomem *addr); |
| 99 | 96 | ||
| 100 | extern void iosapic_pci_fixup (int); | ||
| 101 | #ifdef CONFIG_NUMA | 97 | #ifdef CONFIG_NUMA |
| 102 | extern void __devinit map_iosapic_to_node (unsigned int, int); | 98 | extern void __devinit map_iosapic_to_node (unsigned int, int); |
| 103 | #endif | 99 | #endif |
diff --git a/include/asm-ia64/irq.h b/include/asm-ia64/irq.h index cd984d08fd15..dbe86c0bbce5 100644 --- a/include/asm-ia64/irq.h +++ b/include/asm-ia64/irq.h | |||
| @@ -35,8 +35,4 @@ extern void disable_irq_nosync (unsigned int); | |||
| 35 | extern void enable_irq (unsigned int); | 35 | extern void enable_irq (unsigned int); |
| 36 | extern void set_irq_affinity_info (unsigned int irq, int dest, int redir); | 36 | extern void set_irq_affinity_info (unsigned int irq, int dest, int redir); |
| 37 | 37 | ||
| 38 | struct irqaction; | ||
| 39 | struct pt_regs; | ||
| 40 | int handle_IRQ_event(unsigned int, struct pt_regs *, struct irqaction *); | ||
| 41 | |||
| 42 | #endif /* _ASM_IA64_IRQ_H */ | 38 | #endif /* _ASM_IA64_IRQ_H */ |
