diff options
| author | David S. Miller <davem@davemloft.net> | 2013-10-23 16:28:39 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2013-10-23 16:49:34 -0400 |
| commit | c3fa32b9764dc45dcf8a2231b1c110abc4a63e0b (patch) | |
| tree | 6cf2896a77b65bec64284681e1c3851eb3263e09 /arch/x86/kernel | |
| parent | 34d92d5315b64a3e5292b7e9511c1bb617227fb6 (diff) | |
| parent | 320437af954cbe66478f1f5e8b34cb5a8d072191 (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts:
drivers/net/usb/qmi_wwan.c
include/net/dst.h
Trivial merge conflicts, both were overlapping changes.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/x86/kernel')
| -rw-r--r-- | arch/x86/kernel/apic/x2apic_uv_x.c | 2 | ||||
| -rw-r--r-- | arch/x86/kernel/cpu/perf_event.c | 11 | ||||
| -rw-r--r-- | arch/x86/kernel/kvm.c | 17 | ||||
| -rw-r--r-- | arch/x86/kernel/reboot.c | 8 | ||||
| -rw-r--r-- | arch/x86/kernel/sysfb_simplefb.c | 4 |
5 files changed, 28 insertions, 14 deletions
diff --git a/arch/x86/kernel/apic/x2apic_uv_x.c b/arch/x86/kernel/apic/x2apic_uv_x.c index 1191ac1c9d25..a419814cea57 100644 --- a/arch/x86/kernel/apic/x2apic_uv_x.c +++ b/arch/x86/kernel/apic/x2apic_uv_x.c | |||
| @@ -113,7 +113,7 @@ static int __init early_get_pnodeid(void) | |||
| 113 | break; | 113 | break; |
| 114 | case UV3_HUB_PART_NUMBER: | 114 | case UV3_HUB_PART_NUMBER: |
| 115 | case UV3_HUB_PART_NUMBER_X: | 115 | case UV3_HUB_PART_NUMBER_X: |
| 116 | uv_min_hub_revision_id += UV3_HUB_REVISION_BASE - 1; | 116 | uv_min_hub_revision_id += UV3_HUB_REVISION_BASE; |
| 117 | break; | 117 | break; |
| 118 | } | 118 | } |
| 119 | 119 | ||
diff --git a/arch/x86/kernel/cpu/perf_event.c b/arch/x86/kernel/cpu/perf_event.c index 897783b3302a..9d8449158cf9 100644 --- a/arch/x86/kernel/cpu/perf_event.c +++ b/arch/x86/kernel/cpu/perf_event.c | |||
| @@ -1888,10 +1888,7 @@ void arch_perf_update_userpage(struct perf_event_mmap_page *userpg, u64 now) | |||
| 1888 | userpg->cap_user_rdpmc = x86_pmu.attr_rdpmc; | 1888 | userpg->cap_user_rdpmc = x86_pmu.attr_rdpmc; |
| 1889 | userpg->pmc_width = x86_pmu.cntval_bits; | 1889 | userpg->pmc_width = x86_pmu.cntval_bits; |
| 1890 | 1890 | ||
| 1891 | if (!boot_cpu_has(X86_FEATURE_CONSTANT_TSC)) | 1891 | if (!sched_clock_stable) |
| 1892 | return; | ||
| 1893 | |||
| 1894 | if (!boot_cpu_has(X86_FEATURE_NONSTOP_TSC)) | ||
| 1895 | return; | 1892 | return; |
| 1896 | 1893 | ||
| 1897 | userpg->cap_user_time = 1; | 1894 | userpg->cap_user_time = 1; |
| @@ -1899,10 +1896,8 @@ void arch_perf_update_userpage(struct perf_event_mmap_page *userpg, u64 now) | |||
| 1899 | userpg->time_shift = CYC2NS_SCALE_FACTOR; | 1896 | userpg->time_shift = CYC2NS_SCALE_FACTOR; |
| 1900 | userpg->time_offset = this_cpu_read(cyc2ns_offset) - now; | 1897 | userpg->time_offset = this_cpu_read(cyc2ns_offset) - now; |
| 1901 | 1898 | ||
| 1902 | if (sched_clock_stable && !check_tsc_disabled()) { | 1899 | userpg->cap_user_time_zero = 1; |
| 1903 | userpg->cap_user_time_zero = 1; | 1900 | userpg->time_zero = this_cpu_read(cyc2ns_offset); |
| 1904 | userpg->time_zero = this_cpu_read(cyc2ns_offset); | ||
| 1905 | } | ||
| 1906 | } | 1901 | } |
| 1907 | 1902 | ||
| 1908 | /* | 1903 | /* |
diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c index 697b93af02dd..a0e2a8a80c94 100644 --- a/arch/x86/kernel/kvm.c +++ b/arch/x86/kernel/kvm.c | |||
| @@ -775,11 +775,22 @@ void __init kvm_spinlock_init(void) | |||
| 775 | if (!kvm_para_has_feature(KVM_FEATURE_PV_UNHALT)) | 775 | if (!kvm_para_has_feature(KVM_FEATURE_PV_UNHALT)) |
| 776 | return; | 776 | return; |
| 777 | 777 | ||
| 778 | printk(KERN_INFO "KVM setup paravirtual spinlock\n"); | 778 | pv_lock_ops.lock_spinning = PV_CALLEE_SAVE(kvm_lock_spinning); |
| 779 | pv_lock_ops.unlock_kick = kvm_unlock_kick; | ||
| 780 | } | ||
| 781 | |||
| 782 | static __init int kvm_spinlock_init_jump(void) | ||
| 783 | { | ||
| 784 | if (!kvm_para_available()) | ||
| 785 | return 0; | ||
| 786 | if (!kvm_para_has_feature(KVM_FEATURE_PV_UNHALT)) | ||
| 787 | return 0; | ||
| 779 | 788 | ||
| 780 | static_key_slow_inc(¶virt_ticketlocks_enabled); | 789 | static_key_slow_inc(¶virt_ticketlocks_enabled); |
| 790 | printk(KERN_INFO "KVM setup paravirtual spinlock\n"); | ||
| 781 | 791 | ||
| 782 | pv_lock_ops.lock_spinning = PV_CALLEE_SAVE(kvm_lock_spinning); | 792 | return 0; |
| 783 | pv_lock_ops.unlock_kick = kvm_unlock_kick; | ||
| 784 | } | 793 | } |
| 794 | early_initcall(kvm_spinlock_init_jump); | ||
| 795 | |||
| 785 | #endif /* CONFIG_PARAVIRT_SPINLOCKS */ | 796 | #endif /* CONFIG_PARAVIRT_SPINLOCKS */ |
diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c index e643e744e4d8..7e920bff99a3 100644 --- a/arch/x86/kernel/reboot.c +++ b/arch/x86/kernel/reboot.c | |||
| @@ -326,6 +326,14 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = { | |||
| 326 | DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E6320"), | 326 | DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E6320"), |
| 327 | }, | 327 | }, |
| 328 | }, | 328 | }, |
| 329 | { /* Handle problems with rebooting on the Latitude E5410. */ | ||
| 330 | .callback = set_pci_reboot, | ||
| 331 | .ident = "Dell Latitude E5410", | ||
| 332 | .matches = { | ||
| 333 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), | ||
| 334 | DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E5410"), | ||
| 335 | }, | ||
| 336 | }, | ||
| 329 | { /* Handle problems with rebooting on the Latitude E5420. */ | 337 | { /* Handle problems with rebooting on the Latitude E5420. */ |
| 330 | .callback = set_pci_reboot, | 338 | .callback = set_pci_reboot, |
| 331 | .ident = "Dell Latitude E5420", | 339 | .ident = "Dell Latitude E5420", |
diff --git a/arch/x86/kernel/sysfb_simplefb.c b/arch/x86/kernel/sysfb_simplefb.c index 22513e96b012..86179d409893 100644 --- a/arch/x86/kernel/sysfb_simplefb.c +++ b/arch/x86/kernel/sysfb_simplefb.c | |||
| @@ -72,14 +72,14 @@ __init int create_simplefb(const struct screen_info *si, | |||
| 72 | * the part that is occupied by the framebuffer */ | 72 | * the part that is occupied by the framebuffer */ |
| 73 | len = mode->height * mode->stride; | 73 | len = mode->height * mode->stride; |
| 74 | len = PAGE_ALIGN(len); | 74 | len = PAGE_ALIGN(len); |
| 75 | if (len > si->lfb_size << 16) { | 75 | if (len > (u64)si->lfb_size << 16) { |
| 76 | printk(KERN_WARNING "sysfb: VRAM smaller than advertised\n"); | 76 | printk(KERN_WARNING "sysfb: VRAM smaller than advertised\n"); |
| 77 | return -EINVAL; | 77 | return -EINVAL; |
| 78 | } | 78 | } |
| 79 | 79 | ||
| 80 | /* setup IORESOURCE_MEM as framebuffer memory */ | 80 | /* setup IORESOURCE_MEM as framebuffer memory */ |
| 81 | memset(&res, 0, sizeof(res)); | 81 | memset(&res, 0, sizeof(res)); |
| 82 | res.flags = IORESOURCE_MEM; | 82 | res.flags = IORESOURCE_MEM | IORESOURCE_BUSY; |
| 83 | res.name = simplefb_resname; | 83 | res.name = simplefb_resname; |
| 84 | res.start = si->lfb_base; | 84 | res.start = si->lfb_base; |
| 85 | res.end = si->lfb_base + len - 1; | 85 | res.end = si->lfb_base + len - 1; |
