diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-08-06 12:48:31 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-08-06 12:48:31 -0400 |
commit | c87985a3ce723995fc7b25e598238d67154108a1 (patch) | |
tree | e60def1b77c25c1d74180f62e8a5603f9826f209 /arch/ia64 | |
parent | d155255a344c417acad74156654295a2964e6b81 (diff) | |
parent | 0d7614f09c1ebdbaa1599a5aba7593f147bf96ee (diff) |
Merge tty-next into 3.6-rc1
This handles the merge issue in:
arch/um/drivers/line.c
arch/um/drivers/line.h
And resolves the duplicate patches that were in both trees do to the
tty-next branch not getting merged into 3.6-rc1.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'arch/ia64')
-rw-r--r-- | arch/ia64/Kconfig | 3 | ||||
-rw-r--r-- | arch/ia64/include/asm/atomic.h | 4 | ||||
-rw-r--r-- | arch/ia64/include/asm/iommu.h | 2 | ||||
-rw-r--r-- | arch/ia64/include/asm/kvm.h | 1 | ||||
-rw-r--r-- | arch/ia64/include/asm/machvec.h | 2 | ||||
-rw-r--r-- | arch/ia64/include/asm/machvec_dig.h | 2 | ||||
-rw-r--r-- | arch/ia64/include/asm/machvec_dig_vtd.h | 2 | ||||
-rw-r--r-- | arch/ia64/include/asm/machvec_hpsim.h | 2 | ||||
-rw-r--r-- | arch/ia64/include/asm/machvec_hpzx1.h | 2 | ||||
-rw-r--r-- | arch/ia64/include/asm/machvec_hpzx1_swiotlb.h | 2 | ||||
-rw-r--r-- | arch/ia64/include/asm/machvec_sn2.h | 2 | ||||
-rw-r--r-- | arch/ia64/include/asm/machvec_uv.h | 2 | ||||
-rw-r--r-- | arch/ia64/include/asm/machvec_xen.h | 2 | ||||
-rw-r--r-- | arch/ia64/include/asm/processor.h | 2 | ||||
-rw-r--r-- | arch/ia64/kernel/ia64_ksyms.c | 2 | ||||
-rw-r--r-- | arch/ia64/kernel/irq_ia64.c | 1 | ||||
-rw-r--r-- | arch/ia64/kernel/pci-dma.c | 1 | ||||
-rw-r--r-- | arch/ia64/kernel/perfmon.c | 1 | ||||
-rw-r--r-- | arch/ia64/kernel/smpboot.c | 2 | ||||
-rw-r--r-- | arch/ia64/kvm/Kconfig | 2 | ||||
-rw-r--r-- | arch/ia64/kvm/vmm.c | 6 | ||||
-rw-r--r-- | arch/ia64/mm/fault.c | 46 | ||||
-rw-r--r-- | arch/ia64/pci/fixup.c | 4 | ||||
-rw-r--r-- | arch/ia64/pci/pci.c | 13 |
24 files changed, 59 insertions, 49 deletions
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig index 8186ec5ea151..310cf5781fad 100644 --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig | |||
@@ -126,6 +126,7 @@ config AUDIT_ARCH | |||
126 | 126 | ||
127 | menuconfig PARAVIRT_GUEST | 127 | menuconfig PARAVIRT_GUEST |
128 | bool "Paravirtualized guest support" | 128 | bool "Paravirtualized guest support" |
129 | depends on BROKEN | ||
129 | help | 130 | help |
130 | Say Y here to get to see options related to running Linux under | 131 | Say Y here to get to see options related to running Linux under |
131 | various hypervisors. This option alone does not add any kernel code. | 132 | various hypervisors. This option alone does not add any kernel code. |
@@ -138,8 +139,6 @@ config PARAVIRT | |||
138 | bool "Enable paravirtualization code" | 139 | bool "Enable paravirtualization code" |
139 | depends on PARAVIRT_GUEST | 140 | depends on PARAVIRT_GUEST |
140 | default y | 141 | default y |
141 | bool | ||
142 | default y | ||
143 | help | 142 | help |
144 | This changes the kernel so it can modify itself when it is run | 143 | This changes the kernel so it can modify itself when it is run |
145 | under a hypervisor, potentially improving performance significantly | 144 | under a hypervisor, potentially improving performance significantly |
diff --git a/arch/ia64/include/asm/atomic.h b/arch/ia64/include/asm/atomic.h index 7d9116600a36..6e6fe1839f5d 100644 --- a/arch/ia64/include/asm/atomic.h +++ b/arch/ia64/include/asm/atomic.h | |||
@@ -17,8 +17,8 @@ | |||
17 | #include <asm/intrinsics.h> | 17 | #include <asm/intrinsics.h> |
18 | 18 | ||
19 | 19 | ||
20 | #define ATOMIC_INIT(i) ((atomic_t) { (i) }) | 20 | #define ATOMIC_INIT(i) { (i) } |
21 | #define ATOMIC64_INIT(i) ((atomic64_t) { (i) }) | 21 | #define ATOMIC64_INIT(i) { (i) } |
22 | 22 | ||
23 | #define atomic_read(v) (*(volatile int *)&(v)->counter) | 23 | #define atomic_read(v) (*(volatile int *)&(v)->counter) |
24 | #define atomic64_read(v) (*(volatile long *)&(v)->counter) | 24 | #define atomic64_read(v) (*(volatile long *)&(v)->counter) |
diff --git a/arch/ia64/include/asm/iommu.h b/arch/ia64/include/asm/iommu.h index b6a809fa2995..105c93b00b1b 100644 --- a/arch/ia64/include/asm/iommu.h +++ b/arch/ia64/include/asm/iommu.h | |||
@@ -11,12 +11,10 @@ extern void no_iommu_init(void); | |||
11 | extern int force_iommu, no_iommu; | 11 | extern int force_iommu, no_iommu; |
12 | extern int iommu_pass_through; | 12 | extern int iommu_pass_through; |
13 | extern int iommu_detected; | 13 | extern int iommu_detected; |
14 | extern int iommu_group_mf; | ||
15 | #else | 14 | #else |
16 | #define iommu_pass_through (0) | 15 | #define iommu_pass_through (0) |
17 | #define no_iommu (1) | 16 | #define no_iommu (1) |
18 | #define iommu_detected (0) | 17 | #define iommu_detected (0) |
19 | #define iommu_group_mf (0) | ||
20 | #endif | 18 | #endif |
21 | extern void iommu_dma_init(void); | 19 | extern void iommu_dma_init(void); |
22 | extern void machvec_init(const char *name); | 20 | extern void machvec_init(const char *name); |
diff --git a/arch/ia64/include/asm/kvm.h b/arch/ia64/include/asm/kvm.h index b9f82c84f093..ec6c6b301238 100644 --- a/arch/ia64/include/asm/kvm.h +++ b/arch/ia64/include/asm/kvm.h | |||
@@ -26,6 +26,7 @@ | |||
26 | 26 | ||
27 | /* Select x86 specific features in <linux/kvm.h> */ | 27 | /* Select x86 specific features in <linux/kvm.h> */ |
28 | #define __KVM_HAVE_IOAPIC | 28 | #define __KVM_HAVE_IOAPIC |
29 | #define __KVM_HAVE_IRQ_LINE | ||
29 | #define __KVM_HAVE_DEVICE_ASSIGNMENT | 30 | #define __KVM_HAVE_DEVICE_ASSIGNMENT |
30 | 31 | ||
31 | /* Architectural interrupt line count. */ | 32 | /* Architectural interrupt line count. */ |
diff --git a/arch/ia64/include/asm/machvec.h b/arch/ia64/include/asm/machvec.h index 367d299d9938..2d1ad4b11a85 100644 --- a/arch/ia64/include/asm/machvec.h +++ b/arch/ia64/include/asm/machvec.h | |||
@@ -120,7 +120,7 @@ extern void machvec_tlb_migrate_finish (struct mm_struct *); | |||
120 | # ifdef MACHVEC_PLATFORM_HEADER | 120 | # ifdef MACHVEC_PLATFORM_HEADER |
121 | # include MACHVEC_PLATFORM_HEADER | 121 | # include MACHVEC_PLATFORM_HEADER |
122 | # else | 122 | # else |
123 | # define platform_name ia64_mv.name | 123 | # define ia64_platform_name ia64_mv.name |
124 | # define platform_setup ia64_mv.setup | 124 | # define platform_setup ia64_mv.setup |
125 | # define platform_cpu_init ia64_mv.cpu_init | 125 | # define platform_cpu_init ia64_mv.cpu_init |
126 | # define platform_irq_init ia64_mv.irq_init | 126 | # define platform_irq_init ia64_mv.irq_init |
diff --git a/arch/ia64/include/asm/machvec_dig.h b/arch/ia64/include/asm/machvec_dig.h index 8a0752f40987..1f7403a2fbee 100644 --- a/arch/ia64/include/asm/machvec_dig.h +++ b/arch/ia64/include/asm/machvec_dig.h | |||
@@ -10,7 +10,7 @@ extern ia64_mv_setup_t dig_setup; | |||
10 | * platform's machvec structure. When compiling a non-generic kernel, | 10 | * platform's machvec structure. When compiling a non-generic kernel, |
11 | * the macros are used directly. | 11 | * the macros are used directly. |
12 | */ | 12 | */ |
13 | #define platform_name "dig" | 13 | #define ia64_platform_name "dig" |
14 | #define platform_setup dig_setup | 14 | #define platform_setup dig_setup |
15 | 15 | ||
16 | #endif /* _ASM_IA64_MACHVEC_DIG_h */ | 16 | #endif /* _ASM_IA64_MACHVEC_DIG_h */ |
diff --git a/arch/ia64/include/asm/machvec_dig_vtd.h b/arch/ia64/include/asm/machvec_dig_vtd.h index 6ab1de5c45ef..44308b4c3f6e 100644 --- a/arch/ia64/include/asm/machvec_dig_vtd.h +++ b/arch/ia64/include/asm/machvec_dig_vtd.h | |||
@@ -11,7 +11,7 @@ extern ia64_mv_dma_init pci_iommu_alloc; | |||
11 | * platform's machvec structure. When compiling a non-generic kernel, | 11 | * platform's machvec structure. When compiling a non-generic kernel, |
12 | * the macros are used directly. | 12 | * the macros are used directly. |
13 | */ | 13 | */ |
14 | #define platform_name "dig_vtd" | 14 | #define ia64_platform_name "dig_vtd" |
15 | #define platform_setup dig_setup | 15 | #define platform_setup dig_setup |
16 | #define platform_dma_init pci_iommu_alloc | 16 | #define platform_dma_init pci_iommu_alloc |
17 | 17 | ||
diff --git a/arch/ia64/include/asm/machvec_hpsim.h b/arch/ia64/include/asm/machvec_hpsim.h index cf72fc87fdfe..e75711279366 100644 --- a/arch/ia64/include/asm/machvec_hpsim.h +++ b/arch/ia64/include/asm/machvec_hpsim.h | |||
@@ -11,7 +11,7 @@ extern ia64_mv_irq_init_t hpsim_irq_init; | |||
11 | * platform's machvec structure. When compiling a non-generic kernel, | 11 | * platform's machvec structure. When compiling a non-generic kernel, |
12 | * the macros are used directly. | 12 | * the macros are used directly. |
13 | */ | 13 | */ |
14 | #define platform_name "hpsim" | 14 | #define ia64_platform_name "hpsim" |
15 | #define platform_setup hpsim_setup | 15 | #define platform_setup hpsim_setup |
16 | #define platform_irq_init hpsim_irq_init | 16 | #define platform_irq_init hpsim_irq_init |
17 | 17 | ||
diff --git a/arch/ia64/include/asm/machvec_hpzx1.h b/arch/ia64/include/asm/machvec_hpzx1.h index 3bd83d78a412..c74d3159e9eb 100644 --- a/arch/ia64/include/asm/machvec_hpzx1.h +++ b/arch/ia64/include/asm/machvec_hpzx1.h | |||
@@ -11,7 +11,7 @@ extern ia64_mv_dma_init sba_dma_init; | |||
11 | * platform's machvec structure. When compiling a non-generic kernel, | 11 | * platform's machvec structure. When compiling a non-generic kernel, |
12 | * the macros are used directly. | 12 | * the macros are used directly. |
13 | */ | 13 | */ |
14 | #define platform_name "hpzx1" | 14 | #define ia64_platform_name "hpzx1" |
15 | #define platform_setup dig_setup | 15 | #define platform_setup dig_setup |
16 | #define platform_dma_init sba_dma_init | 16 | #define platform_dma_init sba_dma_init |
17 | 17 | ||
diff --git a/arch/ia64/include/asm/machvec_hpzx1_swiotlb.h b/arch/ia64/include/asm/machvec_hpzx1_swiotlb.h index 1091ac39740c..906ef6210774 100644 --- a/arch/ia64/include/asm/machvec_hpzx1_swiotlb.h +++ b/arch/ia64/include/asm/machvec_hpzx1_swiotlb.h | |||
@@ -11,7 +11,7 @@ extern ia64_mv_dma_get_ops hwsw_dma_get_ops; | |||
11 | * platform's machvec structure. When compiling a non-generic kernel, | 11 | * platform's machvec structure. When compiling a non-generic kernel, |
12 | * the macros are used directly. | 12 | * the macros are used directly. |
13 | */ | 13 | */ |
14 | #define platform_name "hpzx1_swiotlb" | 14 | #define ia64_platform_name "hpzx1_swiotlb" |
15 | #define platform_setup dig_setup | 15 | #define platform_setup dig_setup |
16 | #define platform_dma_init machvec_noop | 16 | #define platform_dma_init machvec_noop |
17 | #define platform_dma_get_ops hwsw_dma_get_ops | 17 | #define platform_dma_get_ops hwsw_dma_get_ops |
diff --git a/arch/ia64/include/asm/machvec_sn2.h b/arch/ia64/include/asm/machvec_sn2.h index f061a30aac42..ece9fa85be88 100644 --- a/arch/ia64/include/asm/machvec_sn2.h +++ b/arch/ia64/include/asm/machvec_sn2.h | |||
@@ -71,7 +71,7 @@ extern ia64_mv_pci_fixup_bus_t sn_pci_fixup_bus; | |||
71 | * platform's machvec structure. When compiling a non-generic kernel, | 71 | * platform's machvec structure. When compiling a non-generic kernel, |
72 | * the macros are used directly. | 72 | * the macros are used directly. |
73 | */ | 73 | */ |
74 | #define platform_name "sn2" | 74 | #define ia64_platform_name "sn2" |
75 | #define platform_setup sn_setup | 75 | #define platform_setup sn_setup |
76 | #define platform_cpu_init sn_cpu_init | 76 | #define platform_cpu_init sn_cpu_init |
77 | #define platform_irq_init sn_irq_init | 77 | #define platform_irq_init sn_irq_init |
diff --git a/arch/ia64/include/asm/machvec_uv.h b/arch/ia64/include/asm/machvec_uv.h index 2931447f3813..2c50853f35ac 100644 --- a/arch/ia64/include/asm/machvec_uv.h +++ b/arch/ia64/include/asm/machvec_uv.h | |||
@@ -20,7 +20,7 @@ extern ia64_mv_setup_t uv_setup; | |||
20 | * platform's machvec structure. When compiling a non-generic kernel, | 20 | * platform's machvec structure. When compiling a non-generic kernel, |
21 | * the macros are used directly. | 21 | * the macros are used directly. |
22 | */ | 22 | */ |
23 | #define platform_name "uv" | 23 | #define ia64_platform_name "uv" |
24 | #define platform_setup uv_setup | 24 | #define platform_setup uv_setup |
25 | 25 | ||
26 | #endif /* _ASM_IA64_MACHVEC_UV_H */ | 26 | #endif /* _ASM_IA64_MACHVEC_UV_H */ |
diff --git a/arch/ia64/include/asm/machvec_xen.h b/arch/ia64/include/asm/machvec_xen.h index 55f9228056cd..8b8bd0eb3923 100644 --- a/arch/ia64/include/asm/machvec_xen.h +++ b/arch/ia64/include/asm/machvec_xen.h | |||
@@ -13,7 +13,7 @@ extern ia64_mv_send_ipi_t xen_platform_send_ipi; | |||
13 | * platform's machvec structure. When compiling a non-generic kernel, | 13 | * platform's machvec structure. When compiling a non-generic kernel, |
14 | * the macros are used directly. | 14 | * the macros are used directly. |
15 | */ | 15 | */ |
16 | #define platform_name "xen" | 16 | #define ia64_platform_name "xen" |
17 | #define platform_setup dig_setup | 17 | #define platform_setup dig_setup |
18 | #define platform_cpu_init xen_cpu_init | 18 | #define platform_cpu_init xen_cpu_init |
19 | #define platform_irq_init xen_irq_init | 19 | #define platform_irq_init xen_irq_init |
diff --git a/arch/ia64/include/asm/processor.h b/arch/ia64/include/asm/processor.h index 832dd3789e9d..944152a50912 100644 --- a/arch/ia64/include/asm/processor.h +++ b/arch/ia64/include/asm/processor.h | |||
@@ -719,7 +719,7 @@ enum idle_boot_override {IDLE_NO_OVERRIDE=0, IDLE_HALT, IDLE_FORCE_MWAIT, | |||
719 | 719 | ||
720 | void default_idle(void); | 720 | void default_idle(void); |
721 | 721 | ||
722 | #define ia64_platform_is(x) (strcmp(x, platform_name) == 0) | 722 | #define ia64_platform_is(x) (strcmp(x, ia64_platform_name) == 0) |
723 | 723 | ||
724 | #endif /* !__ASSEMBLY__ */ | 724 | #endif /* !__ASSEMBLY__ */ |
725 | 725 | ||
diff --git a/arch/ia64/kernel/ia64_ksyms.c b/arch/ia64/kernel/ia64_ksyms.c index 7f4a0ed24152..5b7791dd3965 100644 --- a/arch/ia64/kernel/ia64_ksyms.c +++ b/arch/ia64/kernel/ia64_ksyms.c | |||
@@ -12,7 +12,7 @@ EXPORT_SYMBOL(memset); | |||
12 | EXPORT_SYMBOL(memcpy); | 12 | EXPORT_SYMBOL(memcpy); |
13 | EXPORT_SYMBOL(strlen); | 13 | EXPORT_SYMBOL(strlen); |
14 | 14 | ||
15 | #include<asm/pgtable.h> | 15 | #include <asm/pgtable.h> |
16 | EXPORT_SYMBOL_GPL(empty_zero_page); | 16 | EXPORT_SYMBOL_GPL(empty_zero_page); |
17 | 17 | ||
18 | #include <asm/checksum.h> | 18 | #include <asm/checksum.h> |
diff --git a/arch/ia64/kernel/irq_ia64.c b/arch/ia64/kernel/irq_ia64.c index 5c3e0888265a..1034884b77da 100644 --- a/arch/ia64/kernel/irq_ia64.c +++ b/arch/ia64/kernel/irq_ia64.c | |||
@@ -23,7 +23,6 @@ | |||
23 | #include <linux/ioport.h> | 23 | #include <linux/ioport.h> |
24 | #include <linux/kernel_stat.h> | 24 | #include <linux/kernel_stat.h> |
25 | #include <linux/ptrace.h> | 25 | #include <linux/ptrace.h> |
26 | #include <linux/random.h> /* for rand_initialize_irq() */ | ||
27 | #include <linux/signal.h> | 26 | #include <linux/signal.h> |
28 | #include <linux/smp.h> | 27 | #include <linux/smp.h> |
29 | #include <linux/threads.h> | 28 | #include <linux/threads.h> |
diff --git a/arch/ia64/kernel/pci-dma.c b/arch/ia64/kernel/pci-dma.c index 7cdc89b2483c..1ddcfe5ef353 100644 --- a/arch/ia64/kernel/pci-dma.c +++ b/arch/ia64/kernel/pci-dma.c | |||
@@ -32,7 +32,6 @@ int force_iommu __read_mostly; | |||
32 | #endif | 32 | #endif |
33 | 33 | ||
34 | int iommu_pass_through; | 34 | int iommu_pass_through; |
35 | int iommu_group_mf; | ||
36 | 35 | ||
37 | /* Dummy device used for NULL arguments (normally ISA). Better would | 36 | /* Dummy device used for NULL arguments (normally ISA). Better would |
38 | be probably a smaller DMA mask, but this is bug-to-bug compatible | 37 | be probably a smaller DMA mask, but this is bug-to-bug compatible |
diff --git a/arch/ia64/kernel/perfmon.c b/arch/ia64/kernel/perfmon.c index d7f558c1e711..3fa4bc536953 100644 --- a/arch/ia64/kernel/perfmon.c +++ b/arch/ia64/kernel/perfmon.c | |||
@@ -2353,7 +2353,6 @@ pfm_smpl_buffer_alloc(struct task_struct *task, struct file *filp, pfm_context_t | |||
2353 | */ | 2353 | */ |
2354 | insert_vm_struct(mm, vma); | 2354 | insert_vm_struct(mm, vma); |
2355 | 2355 | ||
2356 | mm->total_vm += size >> PAGE_SHIFT; | ||
2357 | vm_stat_account(vma->vm_mm, vma->vm_flags, vma->vm_file, | 2356 | vm_stat_account(vma->vm_mm, vma->vm_flags, vma->vm_file, |
2358 | vma_pages(vma)); | 2357 | vma_pages(vma)); |
2359 | up_write(&task->mm->mmap_sem); | 2358 | up_write(&task->mm->mmap_sem); |
diff --git a/arch/ia64/kernel/smpboot.c b/arch/ia64/kernel/smpboot.c index 1113b8aba07f..963d2db53bfa 100644 --- a/arch/ia64/kernel/smpboot.c +++ b/arch/ia64/kernel/smpboot.c | |||
@@ -382,7 +382,6 @@ smp_callin (void) | |||
382 | set_numa_node(cpu_to_node_map[cpuid]); | 382 | set_numa_node(cpu_to_node_map[cpuid]); |
383 | set_numa_mem(local_memory_node(cpu_to_node_map[cpuid])); | 383 | set_numa_mem(local_memory_node(cpu_to_node_map[cpuid])); |
384 | 384 | ||
385 | ipi_call_lock_irq(); | ||
386 | spin_lock(&vector_lock); | 385 | spin_lock(&vector_lock); |
387 | /* Setup the per cpu irq handling data structures */ | 386 | /* Setup the per cpu irq handling data structures */ |
388 | __setup_vector_irq(cpuid); | 387 | __setup_vector_irq(cpuid); |
@@ -390,7 +389,6 @@ smp_callin (void) | |||
390 | set_cpu_online(cpuid, true); | 389 | set_cpu_online(cpuid, true); |
391 | per_cpu(cpu_state, cpuid) = CPU_ONLINE; | 390 | per_cpu(cpu_state, cpuid) = CPU_ONLINE; |
392 | spin_unlock(&vector_lock); | 391 | spin_unlock(&vector_lock); |
393 | ipi_call_unlock_irq(); | ||
394 | 392 | ||
395 | smp_setup_percpu_timer(); | 393 | smp_setup_percpu_timer(); |
396 | 394 | ||
diff --git a/arch/ia64/kvm/Kconfig b/arch/ia64/kvm/Kconfig index 9806e55f91be..e7947528aee6 100644 --- a/arch/ia64/kvm/Kconfig +++ b/arch/ia64/kvm/Kconfig | |||
@@ -19,9 +19,11 @@ if VIRTUALIZATION | |||
19 | 19 | ||
20 | config KVM | 20 | config KVM |
21 | tristate "Kernel-based Virtual Machine (KVM) support" | 21 | tristate "Kernel-based Virtual Machine (KVM) support" |
22 | depends on BROKEN | ||
22 | depends on HAVE_KVM && MODULES && EXPERIMENTAL | 23 | depends on HAVE_KVM && MODULES && EXPERIMENTAL |
23 | # for device assignment: | 24 | # for device assignment: |
24 | depends on PCI | 25 | depends on PCI |
26 | depends on BROKEN | ||
25 | select PREEMPT_NOTIFIERS | 27 | select PREEMPT_NOTIFIERS |
26 | select ANON_INODES | 28 | select ANON_INODES |
27 | select HAVE_KVM_IRQCHIP | 29 | select HAVE_KVM_IRQCHIP |
diff --git a/arch/ia64/kvm/vmm.c b/arch/ia64/kvm/vmm.c index f0b9cac82414..176a12cd56de 100644 --- a/arch/ia64/kvm/vmm.c +++ b/arch/ia64/kvm/vmm.c | |||
@@ -20,9 +20,9 @@ | |||
20 | */ | 20 | */ |
21 | 21 | ||
22 | 22 | ||
23 | #include<linux/kernel.h> | 23 | #include <linux/kernel.h> |
24 | #include<linux/module.h> | 24 | #include <linux/module.h> |
25 | #include<asm/fpswa.h> | 25 | #include <asm/fpswa.h> |
26 | 26 | ||
27 | #include "vcpu.h" | 27 | #include "vcpu.h" |
28 | 28 | ||
diff --git a/arch/ia64/mm/fault.c b/arch/ia64/mm/fault.c index 02d29c2a132a..8443daf4f515 100644 --- a/arch/ia64/mm/fault.c +++ b/arch/ia64/mm/fault.c | |||
@@ -72,6 +72,10 @@ mapped_kernel_page_is_present (unsigned long address) | |||
72 | return pte_present(pte); | 72 | return pte_present(pte); |
73 | } | 73 | } |
74 | 74 | ||
75 | # define VM_READ_BIT 0 | ||
76 | # define VM_WRITE_BIT 1 | ||
77 | # define VM_EXEC_BIT 2 | ||
78 | |||
75 | void __kprobes | 79 | void __kprobes |
76 | ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_regs *regs) | 80 | ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_regs *regs) |
77 | { | 81 | { |
@@ -81,6 +85,12 @@ ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_regs *re | |||
81 | struct siginfo si; | 85 | struct siginfo si; |
82 | unsigned long mask; | 86 | unsigned long mask; |
83 | int fault; | 87 | int fault; |
88 | unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE; | ||
89 | |||
90 | mask = ((((isr >> IA64_ISR_X_BIT) & 1UL) << VM_EXEC_BIT) | ||
91 | | (((isr >> IA64_ISR_W_BIT) & 1UL) << VM_WRITE_BIT)); | ||
92 | |||
93 | flags |= ((mask & VM_WRITE) ? FAULT_FLAG_WRITE : 0); | ||
84 | 94 | ||
85 | /* mmap_sem is performance critical.... */ | 95 | /* mmap_sem is performance critical.... */ |
86 | prefetchw(&mm->mmap_sem); | 96 | prefetchw(&mm->mmap_sem); |
@@ -109,6 +119,7 @@ ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_regs *re | |||
109 | if (notify_page_fault(regs, TRAP_BRKPT)) | 119 | if (notify_page_fault(regs, TRAP_BRKPT)) |
110 | return; | 120 | return; |
111 | 121 | ||
122 | retry: | ||
112 | down_read(&mm->mmap_sem); | 123 | down_read(&mm->mmap_sem); |
113 | 124 | ||
114 | vma = find_vma_prev(mm, address, &prev_vma); | 125 | vma = find_vma_prev(mm, address, &prev_vma); |
@@ -130,10 +141,6 @@ ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_regs *re | |||
130 | 141 | ||
131 | /* OK, we've got a good vm_area for this memory area. Check the access permissions: */ | 142 | /* OK, we've got a good vm_area for this memory area. Check the access permissions: */ |
132 | 143 | ||
133 | # define VM_READ_BIT 0 | ||
134 | # define VM_WRITE_BIT 1 | ||
135 | # define VM_EXEC_BIT 2 | ||
136 | |||
137 | # if (((1 << VM_READ_BIT) != VM_READ || (1 << VM_WRITE_BIT) != VM_WRITE) \ | 144 | # if (((1 << VM_READ_BIT) != VM_READ || (1 << VM_WRITE_BIT) != VM_WRITE) \ |
138 | || (1 << VM_EXEC_BIT) != VM_EXEC) | 145 | || (1 << VM_EXEC_BIT) != VM_EXEC) |
139 | # error File is out of sync with <linux/mm.h>. Please update. | 146 | # error File is out of sync with <linux/mm.h>. Please update. |
@@ -142,9 +149,6 @@ ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_regs *re | |||
142 | if (((isr >> IA64_ISR_R_BIT) & 1UL) && (!(vma->vm_flags & (VM_READ | VM_WRITE)))) | 149 | if (((isr >> IA64_ISR_R_BIT) & 1UL) && (!(vma->vm_flags & (VM_READ | VM_WRITE)))) |
143 | goto bad_area; | 150 | goto bad_area; |
144 | 151 | ||
145 | mask = ( (((isr >> IA64_ISR_X_BIT) & 1UL) << VM_EXEC_BIT) | ||
146 | | (((isr >> IA64_ISR_W_BIT) & 1UL) << VM_WRITE_BIT)); | ||
147 | |||
148 | if ((vma->vm_flags & mask) != mask) | 152 | if ((vma->vm_flags & mask) != mask) |
149 | goto bad_area; | 153 | goto bad_area; |
150 | 154 | ||
@@ -153,7 +157,11 @@ ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_regs *re | |||
153 | * sure we exit gracefully rather than endlessly redo the | 157 | * sure we exit gracefully rather than endlessly redo the |
154 | * fault. | 158 | * fault. |
155 | */ | 159 | */ |
156 | fault = handle_mm_fault(mm, vma, address, (mask & VM_WRITE) ? FAULT_FLAG_WRITE : 0); | 160 | fault = handle_mm_fault(mm, vma, address, flags); |
161 | |||
162 | if ((fault & VM_FAULT_RETRY) && fatal_signal_pending(current)) | ||
163 | return; | ||
164 | |||
157 | if (unlikely(fault & VM_FAULT_ERROR)) { | 165 | if (unlikely(fault & VM_FAULT_ERROR)) { |
158 | /* | 166 | /* |
159 | * We ran out of memory, or some other thing happened | 167 | * We ran out of memory, or some other thing happened |
@@ -168,10 +176,24 @@ ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_regs *re | |||
168 | } | 176 | } |
169 | BUG(); | 177 | BUG(); |
170 | } | 178 | } |
171 | if (fault & VM_FAULT_MAJOR) | 179 | |
172 | current->maj_flt++; | 180 | if (flags & FAULT_FLAG_ALLOW_RETRY) { |
173 | else | 181 | if (fault & VM_FAULT_MAJOR) |
174 | current->min_flt++; | 182 | current->maj_flt++; |
183 | else | ||
184 | current->min_flt++; | ||
185 | if (fault & VM_FAULT_RETRY) { | ||
186 | flags &= ~FAULT_FLAG_ALLOW_RETRY; | ||
187 | |||
188 | /* No need to up_read(&mm->mmap_sem) as we would | ||
189 | * have already released it in __lock_page_or_retry | ||
190 | * in mm/filemap.c. | ||
191 | */ | ||
192 | |||
193 | goto retry; | ||
194 | } | ||
195 | } | ||
196 | |||
175 | up_read(&mm->mmap_sem); | 197 | up_read(&mm->mmap_sem); |
176 | return; | 198 | return; |
177 | 199 | ||
diff --git a/arch/ia64/pci/fixup.c b/arch/ia64/pci/fixup.c index f5959c0c1810..eab28e314022 100644 --- a/arch/ia64/pci/fixup.c +++ b/arch/ia64/pci/fixup.c | |||
@@ -30,8 +30,8 @@ static void __devinit pci_fixup_video(struct pci_dev *pdev) | |||
30 | struct pci_bus *bus; | 30 | struct pci_bus *bus; |
31 | u16 config; | 31 | u16 config; |
32 | 32 | ||
33 | if ((strcmp(platform_name, "dig") != 0) | 33 | if ((strcmp(ia64_platform_name, "dig") != 0) |
34 | && (strcmp(platform_name, "hpzx1") != 0)) | 34 | && (strcmp(ia64_platform_name, "hpzx1") != 0)) |
35 | return; | 35 | return; |
36 | /* Maybe, this machine supports legacy memory map. */ | 36 | /* Maybe, this machine supports legacy memory map. */ |
37 | 37 | ||
diff --git a/arch/ia64/pci/pci.c b/arch/ia64/pci/pci.c index 524df4295c90..81acc7a57f3e 100644 --- a/arch/ia64/pci/pci.c +++ b/arch/ia64/pci/pci.c | |||
@@ -351,6 +351,8 @@ pci_acpi_scan_root(struct acpi_pci_root *root) | |||
351 | #endif | 351 | #endif |
352 | 352 | ||
353 | INIT_LIST_HEAD(&info.resources); | 353 | INIT_LIST_HEAD(&info.resources); |
354 | /* insert busn resource at first */ | ||
355 | pci_add_resource(&info.resources, &root->secondary); | ||
354 | acpi_walk_resources(device->handle, METHOD_NAME__CRS, count_window, | 356 | acpi_walk_resources(device->handle, METHOD_NAME__CRS, count_window, |
355 | &windows); | 357 | &windows); |
356 | if (windows) { | 358 | if (windows) { |
@@ -384,7 +386,7 @@ pci_acpi_scan_root(struct acpi_pci_root *root) | |||
384 | return NULL; | 386 | return NULL; |
385 | } | 387 | } |
386 | 388 | ||
387 | pbus->subordinate = pci_scan_child_bus(pbus); | 389 | pci_scan_child_bus(pbus); |
388 | return pbus; | 390 | return pbus; |
389 | 391 | ||
390 | out3: | 392 | out3: |
@@ -496,15 +498,6 @@ pcibios_align_resource (void *data, const struct resource *res, | |||
496 | return res->start; | 498 | return res->start; |
497 | } | 499 | } |
498 | 500 | ||
499 | /* | ||
500 | * PCI BIOS setup, always defaults to SAL interface | ||
501 | */ | ||
502 | char * __init | ||
503 | pcibios_setup (char *str) | ||
504 | { | ||
505 | return str; | ||
506 | } | ||
507 | |||
508 | int | 501 | int |
509 | pci_mmap_page_range (struct pci_dev *dev, struct vm_area_struct *vma, | 502 | pci_mmap_page_range (struct pci_dev *dev, struct vm_area_struct *vma, |
510 | enum pci_mmap_state mmap_state, int write_combine) | 503 | enum pci_mmap_state mmap_state, int write_combine) |