diff options
Diffstat (limited to 'arch')
| -rw-r--r-- | arch/powerpc/boot/dts/p1023rds.dts | 2 | ||||
| -rw-r--r-- | arch/powerpc/configs/85xx/p1023rds_defconfig | 1 | ||||
| -rw-r--r-- | arch/powerpc/configs/corenet32_smp_defconfig | 1 | ||||
| -rw-r--r-- | arch/powerpc/configs/corenet64_smp_defconfig | 5 | ||||
| -rw-r--r-- | arch/powerpc/configs/mpc85xx_defconfig | 1 | ||||
| -rw-r--r-- | arch/powerpc/configs/mpc85xx_smp_defconfig | 1 | ||||
| -rw-r--r-- | arch/x86/include/asm/pvclock.h | 2 | ||||
| -rw-r--r-- | arch/x86/kernel/cpu/perf_event.c | 3 | ||||
| -rw-r--r-- | arch/x86/pci/acpi.c | 9 | ||||
| -rw-r--r-- | arch/x86/xen/setup.c | 19 | ||||
| -rw-r--r-- | arch/x86/xen/smp.c | 10 | ||||
| -rw-r--r-- | arch/x86/xen/xen-asm_32.S | 8 |
12 files changed, 54 insertions, 8 deletions
diff --git a/arch/powerpc/boot/dts/p1023rds.dts b/arch/powerpc/boot/dts/p1023rds.dts index bfa96aa8f2ca..d9b776740a67 100644 --- a/arch/powerpc/boot/dts/p1023rds.dts +++ b/arch/powerpc/boot/dts/p1023rds.dts | |||
| @@ -387,7 +387,7 @@ | |||
| 387 | #size-cells = <1>; | 387 | #size-cells = <1>; |
| 388 | compatible = "cfi-flash"; | 388 | compatible = "cfi-flash"; |
| 389 | reg = <0x0 0x0 0x02000000>; | 389 | reg = <0x0 0x0 0x02000000>; |
| 390 | bank-width = <1>; | 390 | bank-width = <2>; |
| 391 | device-width = <1>; | 391 | device-width = <1>; |
| 392 | partition@0 { | 392 | partition@0 { |
| 393 | label = "ramdisk"; | 393 | label = "ramdisk"; |
diff --git a/arch/powerpc/configs/85xx/p1023rds_defconfig b/arch/powerpc/configs/85xx/p1023rds_defconfig index 980ff8f61fd4..3ff5a81c709f 100644 --- a/arch/powerpc/configs/85xx/p1023rds_defconfig +++ b/arch/powerpc/configs/85xx/p1023rds_defconfig | |||
| @@ -171,3 +171,4 @@ CONFIG_CRYPTO_SHA256=y | |||
| 171 | CONFIG_CRYPTO_SHA512=y | 171 | CONFIG_CRYPTO_SHA512=y |
| 172 | CONFIG_CRYPTO_AES=y | 172 | CONFIG_CRYPTO_AES=y |
| 173 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | 173 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
| 174 | CONFIG_CRYPTO_DEV_FSL_CAAM=y | ||
diff --git a/arch/powerpc/configs/corenet32_smp_defconfig b/arch/powerpc/configs/corenet32_smp_defconfig index 10562a5c65b9..4311d02a3bfd 100644 --- a/arch/powerpc/configs/corenet32_smp_defconfig +++ b/arch/powerpc/configs/corenet32_smp_defconfig | |||
| @@ -185,3 +185,4 @@ CONFIG_CRYPTO_SHA256=y | |||
| 185 | CONFIG_CRYPTO_SHA512=y | 185 | CONFIG_CRYPTO_SHA512=y |
| 186 | CONFIG_CRYPTO_AES=y | 186 | CONFIG_CRYPTO_AES=y |
| 187 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | 187 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
| 188 | CONFIG_CRYPTO_DEV_FSL_CAAM=y | ||
diff --git a/arch/powerpc/configs/corenet64_smp_defconfig b/arch/powerpc/configs/corenet64_smp_defconfig index d32283555b53..c92c204a204b 100644 --- a/arch/powerpc/configs/corenet64_smp_defconfig +++ b/arch/powerpc/configs/corenet64_smp_defconfig | |||
| @@ -100,5 +100,8 @@ CONFIG_DEBUG_INFO=y | |||
| 100 | CONFIG_SYSCTL_SYSCALL_CHECK=y | 100 | CONFIG_SYSCTL_SYSCALL_CHECK=y |
| 101 | CONFIG_VIRQ_DEBUG=y | 101 | CONFIG_VIRQ_DEBUG=y |
| 102 | CONFIG_CRYPTO_PCBC=m | 102 | CONFIG_CRYPTO_PCBC=m |
| 103 | CONFIG_CRYPTO_SHA256=y | ||
| 104 | CONFIG_CRYPTO_SHA512=y | ||
| 105 | CONFIG_CRYPTO_AES=y | ||
| 103 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | 106 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
| 104 | CONFIG_CRYPTO_DEV_TALITOS=y | 107 | CONFIG_CRYPTO_DEV_FSL_CAAM=y |
diff --git a/arch/powerpc/configs/mpc85xx_defconfig b/arch/powerpc/configs/mpc85xx_defconfig index fcd85d2c72dc..a3467bfb7671 100644 --- a/arch/powerpc/configs/mpc85xx_defconfig +++ b/arch/powerpc/configs/mpc85xx_defconfig | |||
| @@ -139,6 +139,7 @@ CONFIG_SND=y | |||
| 139 | CONFIG_SND_INTEL8X0=y | 139 | CONFIG_SND_INTEL8X0=y |
| 140 | # CONFIG_SND_PPC is not set | 140 | # CONFIG_SND_PPC is not set |
| 141 | # CONFIG_SND_USB is not set | 141 | # CONFIG_SND_USB is not set |
| 142 | CONFIG_SND_SOC=y | ||
| 142 | CONFIG_HID_A4TECH=y | 143 | CONFIG_HID_A4TECH=y |
| 143 | CONFIG_HID_APPLE=y | 144 | CONFIG_HID_APPLE=y |
| 144 | CONFIG_HID_BELKIN=y | 145 | CONFIG_HID_BELKIN=y |
diff --git a/arch/powerpc/configs/mpc85xx_smp_defconfig b/arch/powerpc/configs/mpc85xx_smp_defconfig index 908c941fc24c..9693f6ed3da0 100644 --- a/arch/powerpc/configs/mpc85xx_smp_defconfig +++ b/arch/powerpc/configs/mpc85xx_smp_defconfig | |||
| @@ -140,6 +140,7 @@ CONFIG_SND=y | |||
| 140 | CONFIG_SND_INTEL8X0=y | 140 | CONFIG_SND_INTEL8X0=y |
| 141 | # CONFIG_SND_PPC is not set | 141 | # CONFIG_SND_PPC is not set |
| 142 | # CONFIG_SND_USB is not set | 142 | # CONFIG_SND_USB is not set |
| 143 | CONFIG_SND_SOC=y | ||
| 143 | CONFIG_HID_A4TECH=y | 144 | CONFIG_HID_A4TECH=y |
| 144 | CONFIG_HID_APPLE=y | 145 | CONFIG_HID_APPLE=y |
| 145 | CONFIG_HID_BELKIN=y | 146 | CONFIG_HID_BELKIN=y |
diff --git a/arch/x86/include/asm/pvclock.h b/arch/x86/include/asm/pvclock.h index a518c0a45044..c59cc97fe6c1 100644 --- a/arch/x86/include/asm/pvclock.h +++ b/arch/x86/include/asm/pvclock.h | |||
| @@ -44,7 +44,7 @@ static inline u64 pvclock_scale_delta(u64 delta, u32 mul_frac, int shift) | |||
| 44 | : "a" ((u32)delta), "1" ((u32)(delta >> 32)), "2" (mul_frac) ); | 44 | : "a" ((u32)delta), "1" ((u32)(delta >> 32)), "2" (mul_frac) ); |
| 45 | #elif defined(__x86_64__) | 45 | #elif defined(__x86_64__) |
| 46 | __asm__ ( | 46 | __asm__ ( |
| 47 | "mul %[mul_frac] ; shrd $32, %[hi], %[lo]" | 47 | "mulq %[mul_frac] ; shrd $32, %[hi], %[lo]" |
| 48 | : [lo]"=a"(product), | 48 | : [lo]"=a"(product), |
| 49 | [hi]"=d"(tmp) | 49 | [hi]"=d"(tmp) |
| 50 | : "0"(delta), | 50 | : "0"(delta), |
diff --git a/arch/x86/kernel/cpu/perf_event.c b/arch/x86/kernel/cpu/perf_event.c index 4ee3abf20ed6..cfa62ec090ec 100644 --- a/arch/x86/kernel/cpu/perf_event.c +++ b/arch/x86/kernel/cpu/perf_event.c | |||
| @@ -1900,6 +1900,9 @@ perf_callchain_user(struct perf_callchain_entry *entry, struct pt_regs *regs) | |||
| 1900 | 1900 | ||
| 1901 | perf_callchain_store(entry, regs->ip); | 1901 | perf_callchain_store(entry, regs->ip); |
| 1902 | 1902 | ||
| 1903 | if (!current->mm) | ||
| 1904 | return; | ||
| 1905 | |||
| 1903 | if (perf_callchain_user32(regs, entry)) | 1906 | if (perf_callchain_user32(regs, entry)) |
| 1904 | return; | 1907 | return; |
| 1905 | 1908 | ||
diff --git a/arch/x86/pci/acpi.c b/arch/x86/pci/acpi.c index c95330267f08..039d91315bc5 100644 --- a/arch/x86/pci/acpi.c +++ b/arch/x86/pci/acpi.c | |||
| @@ -365,8 +365,13 @@ struct pci_bus * __devinit pci_acpi_scan_root(struct acpi_pci_root *root) | |||
| 365 | */ | 365 | */ |
| 366 | if (bus) { | 366 | if (bus) { |
| 367 | struct pci_bus *child; | 367 | struct pci_bus *child; |
| 368 | list_for_each_entry(child, &bus->children, node) | 368 | list_for_each_entry(child, &bus->children, node) { |
| 369 | pcie_bus_configure_settings(child, child->self->pcie_mpss); | 369 | struct pci_dev *self = child->self; |
| 370 | if (!self) | ||
| 371 | continue; | ||
| 372 | |||
| 373 | pcie_bus_configure_settings(child, self->pcie_mpss); | ||
| 374 | } | ||
| 370 | } | 375 | } |
| 371 | 376 | ||
| 372 | if (!bus) | 377 | if (!bus) |
diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c index df118a825f39..c3b8d440873c 100644 --- a/arch/x86/xen/setup.c +++ b/arch/x86/xen/setup.c | |||
| @@ -184,6 +184,19 @@ static unsigned long __init xen_set_identity(const struct e820entry *list, | |||
| 184 | PFN_UP(start_pci), PFN_DOWN(last)); | 184 | PFN_UP(start_pci), PFN_DOWN(last)); |
| 185 | return identity; | 185 | return identity; |
| 186 | } | 186 | } |
| 187 | |||
| 188 | static unsigned long __init xen_get_max_pages(void) | ||
| 189 | { | ||
| 190 | unsigned long max_pages = MAX_DOMAIN_PAGES; | ||
| 191 | domid_t domid = DOMID_SELF; | ||
| 192 | int ret; | ||
| 193 | |||
| 194 | ret = HYPERVISOR_memory_op(XENMEM_maximum_reservation, &domid); | ||
| 195 | if (ret > 0) | ||
| 196 | max_pages = ret; | ||
| 197 | return min(max_pages, MAX_DOMAIN_PAGES); | ||
| 198 | } | ||
| 199 | |||
| 187 | /** | 200 | /** |
| 188 | * machine_specific_memory_setup - Hook for machine specific memory setup. | 201 | * machine_specific_memory_setup - Hook for machine specific memory setup. |
| 189 | **/ | 202 | **/ |
| @@ -292,6 +305,12 @@ char * __init xen_memory_setup(void) | |||
| 292 | 305 | ||
| 293 | sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map); | 306 | sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map); |
| 294 | 307 | ||
| 308 | extra_limit = xen_get_max_pages(); | ||
| 309 | if (extra_limit >= max_pfn) | ||
| 310 | extra_pages = extra_limit - max_pfn; | ||
| 311 | else | ||
| 312 | extra_pages = 0; | ||
| 313 | |||
| 295 | extra_pages += xen_return_unused_memory(xen_start_info->nr_pages, &e820); | 314 | extra_pages += xen_return_unused_memory(xen_start_info->nr_pages, &e820); |
| 296 | 315 | ||
| 297 | /* | 316 | /* |
diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c index e79dbb95482b..d4fc6d454f8d 100644 --- a/arch/x86/xen/smp.c +++ b/arch/x86/xen/smp.c | |||
| @@ -32,6 +32,7 @@ | |||
| 32 | #include <xen/page.h> | 32 | #include <xen/page.h> |
| 33 | #include <xen/events.h> | 33 | #include <xen/events.h> |
| 34 | 34 | ||
| 35 | #include <xen/hvc-console.h> | ||
| 35 | #include "xen-ops.h" | 36 | #include "xen-ops.h" |
| 36 | #include "mmu.h" | 37 | #include "mmu.h" |
| 37 | 38 | ||
| @@ -207,6 +208,15 @@ static void __init xen_smp_prepare_cpus(unsigned int max_cpus) | |||
| 207 | unsigned cpu; | 208 | unsigned cpu; |
| 208 | unsigned int i; | 209 | unsigned int i; |
| 209 | 210 | ||
| 211 | if (skip_ioapic_setup) { | ||
| 212 | char *m = (max_cpus == 0) ? | ||
| 213 | "The nosmp parameter is incompatible with Xen; " \ | ||
| 214 | "use Xen dom0_max_vcpus=1 parameter" : | ||
| 215 | "The noapic parameter is incompatible with Xen"; | ||
| 216 | |||
| 217 | xen_raw_printk(m); | ||
| 218 | panic(m); | ||
| 219 | } | ||
| 210 | xen_init_lock_cpu(0); | 220 | xen_init_lock_cpu(0); |
| 211 | 221 | ||
| 212 | smp_store_cpu_info(0); | 222 | smp_store_cpu_info(0); |
diff --git a/arch/x86/xen/xen-asm_32.S b/arch/x86/xen/xen-asm_32.S index 22a2093b5862..b040b0e518ca 100644 --- a/arch/x86/xen/xen-asm_32.S +++ b/arch/x86/xen/xen-asm_32.S | |||
| @@ -113,11 +113,13 @@ xen_iret_start_crit: | |||
| 113 | 113 | ||
| 114 | /* | 114 | /* |
| 115 | * If there's something pending, mask events again so we can | 115 | * If there's something pending, mask events again so we can |
| 116 | * jump back into xen_hypervisor_callback | 116 | * jump back into xen_hypervisor_callback. Otherwise do not |
| 117 | * touch XEN_vcpu_info_mask. | ||
| 117 | */ | 118 | */ |
| 118 | sete XEN_vcpu_info_mask(%eax) | 119 | jne 1f |
| 120 | movb $1, XEN_vcpu_info_mask(%eax) | ||
| 119 | 121 | ||
| 120 | popl %eax | 122 | 1: popl %eax |
| 121 | 123 | ||
| 122 | /* | 124 | /* |
| 123 | * From this point on the registers are restored and the stack | 125 | * From this point on the registers are restored and the stack |
