Commit 4fe8a0f4c5d64cbc78227a88df4566c0d0ee4648
Exists in
master
and in
4 other branches
Merge branch 'release' of master.kernel.org:/pub/scm/linux/kernel/git/aegl/linux-2.6
Showing 16 changed files Side-by-side Diff
- arch/ia64/Kconfig
- arch/ia64/configs/sn2_defconfig
- arch/ia64/configs/tiger_defconfig
- arch/ia64/configs/zx1_defconfig
- arch/ia64/defconfig
- arch/ia64/kernel/acpi.c
- arch/ia64/kernel/entry.S
- arch/ia64/kernel/iosapic.c
- arch/ia64/lib/memcpy_mck.S
- arch/ia64/mm/fault.c
- arch/ia64/pci/pci.c
- arch/ia64/sn/kernel/setup.c
- arch/ia64/sn/kernel/xpc_main.c
- arch/ia64/sn/kernel/xpnet.c
- include/asm-ia64/iosapic.h
- include/asm-ia64/irq.h
arch/ia64/Kconfig
| ... | ... | @@ -339,12 +339,6 @@ |
| 339 | 339 | To use this option, you have to ensure that the "/proc file system |
| 340 | 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 | 342 | source "drivers/firmware/Kconfig" |
| 349 | 343 | |
| 350 | 344 | source "fs/Kconfig.binfmt" |
arch/ia64/configs/sn2_defconfig
arch/ia64/configs/tiger_defconfig
arch/ia64/configs/zx1_defconfig
arch/ia64/defconfig
| ... | ... | @@ -99,7 +99,6 @@ |
| 99 | 99 | CONFIG_IA64_MCA_RECOVERY=y |
| 100 | 100 | CONFIG_PERFMON=y |
| 101 | 101 | CONFIG_IA64_PALINFO=y |
| 102 | -CONFIG_ACPI_DEALLOCATE_IRQ=y | |
| 103 | 102 | |
| 104 | 103 | # |
| 105 | 104 | # Firmware Drivers |
| ... | ... | @@ -335,7 +334,7 @@ |
| 335 | 334 | CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 |
| 336 | 335 | # CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set |
| 337 | 336 | # CONFIG_SCSI_IPR is not set |
| 338 | -CONFIG_SCSI_QLOGIC_FC=y | |
| 337 | +# CONFIG_SCSI_QLOGIC_FC is not set | |
| 339 | 338 | # CONFIG_SCSI_QLOGIC_FC_FIRMWARE is not set |
| 340 | 339 | CONFIG_SCSI_QLOGIC_1280=y |
| 341 | 340 | # CONFIG_SCSI_QLOGIC_1280_1040 is not set |
arch/ia64/kernel/acpi.c
| ... | ... | @@ -583,14 +583,12 @@ |
| 583 | 583 | |
| 584 | 584 | EXPORT_SYMBOL(acpi_register_gsi); |
| 585 | 585 | |
| 586 | -#ifdef CONFIG_ACPI_DEALLOCATE_IRQ | |
| 587 | 586 | void acpi_unregister_gsi(u32 gsi) |
| 588 | 587 | { |
| 589 | 588 | iosapic_unregister_intr(gsi); |
| 590 | 589 | } |
| 591 | 590 | |
| 592 | 591 | EXPORT_SYMBOL(acpi_unregister_gsi); |
| 593 | -#endif /* CONFIG_ACPI_DEALLOCATE_IRQ */ | |
| 594 | 592 | |
| 595 | 593 | static int __init acpi_parse_fadt(unsigned long phys_addr, unsigned long size) |
| 596 | 594 | { |
arch/ia64/kernel/entry.S
| ... | ... | @@ -204,9 +204,6 @@ |
| 204 | 204 | (p6) br.cond.dpnt .map |
| 205 | 205 | ;; |
| 206 | 206 | .done: |
| 207 | -(p6) ssm psr.ic // if we had to map, reenable the psr.ic bit FIRST!!! | |
| 208 | - ;; | |
| 209 | -(p6) srlz.d | |
| 210 | 207 | ld8 sp=[r21] // load kernel stack pointer of new task |
| 211 | 208 | mov IA64_KR(CURRENT)=in0 // update "current" application register |
| 212 | 209 | mov r8=r13 // return pointer to previously running task |
| ... | ... | @@ -234,6 +231,9 @@ |
| 234 | 231 | mov IA64_KR(CURRENT_STACK)=r26 // remember last page we mapped... |
| 235 | 232 | ;; |
| 236 | 233 | itr.d dtr[r25]=r23 // wire in new mapping... |
| 234 | + ssm psr.ic // reenable the psr.ic bit | |
| 235 | + ;; | |
| 236 | + srlz.d | |
| 237 | 237 | br.cond.sptk .done |
| 238 | 238 | END(ia64_switch_to) |
| 239 | 239 |
arch/ia64/kernel/iosapic.c
| ... | ... | @@ -782,7 +782,6 @@ |
| 782 | 782 | return vector; |
| 783 | 783 | } |
| 784 | 784 | |
| 785 | -#ifdef CONFIG_ACPI_DEALLOCATE_IRQ | |
| 786 | 785 | void |
| 787 | 786 | iosapic_unregister_intr (unsigned int gsi) |
| 788 | 787 | { |
| ... | ... | @@ -865,7 +864,6 @@ |
| 865 | 864 | spin_unlock(&iosapic_lock); |
| 866 | 865 | spin_unlock_irqrestore(&idesc->lock, flags); |
| 867 | 866 | } |
| 868 | -#endif /* CONFIG_ACPI_DEALLOCATE_IRQ */ | |
| 869 | 867 | |
| 870 | 868 | /* |
| 871 | 869 | * ACPI calls this when it finds an entry for a platform interrupt. |
arch/ia64/lib/memcpy_mck.S
| ... | ... | @@ -625,7 +625,10 @@ |
| 625 | 625 | clrrrb |
| 626 | 626 | ;; |
| 627 | 627 | alloc saved_pfs_stack=ar.pfs,3,3,3,0 |
| 628 | + cmp.lt p8,p0=A,r0 | |
| 628 | 629 | sub B = dst0, saved_in0 // how many byte copied so far |
| 630 | + ;; | |
| 631 | +(p8) mov A = 0; // A shouldn't be negative, cap it | |
| 629 | 632 | ;; |
| 630 | 633 | sub C = A, B |
| 631 | 634 | sub D = saved_in2, A |
arch/ia64/mm/fault.c
| ... | ... | @@ -230,9 +230,6 @@ |
| 230 | 230 | return; |
| 231 | 231 | } |
| 232 | 232 | |
| 233 | - if (ia64_done_with_exception(regs)) | |
| 234 | - return; | |
| 235 | - | |
| 236 | 233 | /* |
| 237 | 234 | * Since we have no vma's for region 5, we might get here even if the address is |
| 238 | 235 | * valid, due to the VHPT walker inserting a non present translation that becomes |
| ... | ... | @@ -241,6 +238,9 @@ |
| 241 | 238 | * valid, and return if it is. |
| 242 | 239 | */ |
| 243 | 240 | if (REGION_NUMBER(address) == 5 && mapped_kernel_page_is_present(address)) |
| 241 | + return; | |
| 242 | + | |
| 243 | + if (ia64_done_with_exception(regs)) | |
| 244 | 244 | return; |
| 245 | 245 | |
| 246 | 246 | /* |
arch/ia64/pci/pci.c
| ... | ... | @@ -498,13 +498,11 @@ |
| 498 | 498 | return acpi_pci_irq_enable(dev); |
| 499 | 499 | } |
| 500 | 500 | |
| 501 | -#ifdef CONFIG_ACPI_DEALLOCATE_IRQ | |
| 502 | 501 | void |
| 503 | 502 | pcibios_disable_device (struct pci_dev *dev) |
| 504 | 503 | { |
| 505 | 504 | acpi_pci_irq_disable(dev); |
| 506 | 505 | } |
| 507 | -#endif /* CONFIG_ACPI_DEALLOCATE_IRQ */ | |
| 508 | 506 | |
| 509 | 507 | void |
| 510 | 508 | pcibios_align_resource (void *data, struct resource *res, |
arch/ia64/sn/kernel/setup.c
arch/ia64/sn/kernel/xpc_main.c
| ... | ... | @@ -885,6 +885,10 @@ |
| 885 | 885 | pid_t pid; |
| 886 | 886 | |
| 887 | 887 | |
| 888 | + if (!ia64_platform_is("sn2")) { | |
| 889 | + return -ENODEV; | |
| 890 | + } | |
| 891 | + | |
| 888 | 892 | /* |
| 889 | 893 | * xpc_remote_copy_buffer is used as a temporary buffer for bte_copy'ng |
| 890 | 894 | * both a partition's reserved page and its XPC variables. Its size was |
arch/ia64/sn/kernel/xpnet.c
include/asm-ia64/iosapic.h
| ... | ... | @@ -80,12 +80,9 @@ |
| 80 | 80 | #endif /* CONFIG_HOTPLUG */ |
| 81 | 81 | extern int gsi_to_vector (unsigned int gsi); |
| 82 | 82 | extern int gsi_to_irq (unsigned int gsi); |
| 83 | -extern void iosapic_enable_intr (unsigned int vector); | |
| 84 | 83 | extern int iosapic_register_intr (unsigned int gsi, unsigned long polarity, |
| 85 | 84 | unsigned long trigger); |
| 86 | -#ifdef CONFIG_ACPI_DEALLOCATE_IRQ | |
| 87 | 85 | extern void iosapic_unregister_intr (unsigned int irq); |
| 88 | -#endif | |
| 89 | 86 | extern void __init iosapic_override_isa_irq (unsigned int isa_irq, unsigned int gsi, |
| 90 | 87 | unsigned long polarity, |
| 91 | 88 | unsigned long trigger); |
| ... | ... | @@ -97,7 +94,6 @@ |
| 97 | 94 | unsigned long trigger); |
| 98 | 95 | extern unsigned int iosapic_version (char __iomem *addr); |
| 99 | 96 | |
| 100 | -extern void iosapic_pci_fixup (int); | |
| 101 | 97 | #ifdef CONFIG_NUMA |
| 102 | 98 | extern void __devinit map_iosapic_to_node (unsigned int, int); |
| 103 | 99 | #endif |
include/asm-ia64/irq.h
| ... | ... | @@ -35,9 +35,5 @@ |
| 35 | 35 | extern void enable_irq (unsigned int); |
| 36 | 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 | 38 | #endif /* _ASM_IA64_IRQ_H */ |