Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'stable/bug.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen

* 'stable/bug.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
xen/tracing: Fix tracing config option properly
xen: Do not enable PV IPIs when vector callback not present
xen/x86: replace order-based range checking of M2P table by linear one
xen: xen-selfballoon.c needs more header files

+15 -11
+2 -2
arch/x86/include/asm/xen/page.h
··· 39 39 ((unsigned long)((u64)CONFIG_XEN_MAX_DOMAIN_MEMORY * 1024 * 1024 * 1024 / PAGE_SIZE)) 40 40 41 41 extern unsigned long *machine_to_phys_mapping; 42 - extern unsigned int machine_to_phys_order; 42 + extern unsigned long machine_to_phys_nr; 43 43 44 44 extern unsigned long get_phys_to_machine(unsigned long pfn); 45 45 extern bool set_phys_to_machine(unsigned long pfn, unsigned long mfn); ··· 87 87 if (xen_feature(XENFEAT_auto_translated_physmap)) 88 88 return mfn; 89 89 90 - if (unlikely((mfn >> machine_to_phys_order) != 0)) { 90 + if (unlikely(mfn >= machine_to_phys_nr)) { 91 91 pfn = ~0; 92 92 goto try_override; 93 93 }
+1 -1
arch/x86/xen/Makefile
··· 15 15 grant-table.o suspend.o platform-pci-unplug.o \ 16 16 p2m.o 17 17 18 - obj-$(CONFIG_FTRACE) += trace.o 18 + obj-$(CONFIG_EVENT_TRACING) += trace.o 19 19 20 20 obj-$(CONFIG_SMP) += smp.o 21 21 obj-$(CONFIG_PARAVIRT_SPINLOCKS)+= spinlock.o
+2 -2
arch/x86/xen/enlighten.c
··· 77 77 78 78 unsigned long *machine_to_phys_mapping = (void *)MACH2PHYS_VIRT_START; 79 79 EXPORT_SYMBOL(machine_to_phys_mapping); 80 - unsigned int machine_to_phys_order; 81 - EXPORT_SYMBOL(machine_to_phys_order); 80 + unsigned long machine_to_phys_nr; 81 + EXPORT_SYMBOL(machine_to_phys_nr); 82 82 83 83 struct start_info *xen_start_info; 84 84 EXPORT_SYMBOL_GPL(xen_start_info);
+8 -4
arch/x86/xen/mmu.c
··· 1713 1713 void __init xen_setup_machphys_mapping(void) 1714 1714 { 1715 1715 struct xen_machphys_mapping mapping; 1716 - unsigned long machine_to_phys_nr_ents; 1717 1716 1718 1717 if (HYPERVISOR_memory_op(XENMEM_machphys_mapping, &mapping) == 0) { 1719 1718 machine_to_phys_mapping = (unsigned long *)mapping.v_start; 1720 - machine_to_phys_nr_ents = mapping.max_mfn + 1; 1719 + machine_to_phys_nr = mapping.max_mfn + 1; 1721 1720 } else { 1722 - machine_to_phys_nr_ents = MACH2PHYS_NR_ENTRIES; 1721 + machine_to_phys_nr = MACH2PHYS_NR_ENTRIES; 1723 1722 } 1724 - machine_to_phys_order = fls(machine_to_phys_nr_ents - 1); 1723 + #ifdef CONFIG_X86_32 1724 + if ((machine_to_phys_mapping + machine_to_phys_nr) 1725 + < machine_to_phys_mapping) 1726 + machine_to_phys_nr = (unsigned long *)NULL 1727 + - machine_to_phys_mapping; 1728 + #endif 1725 1729 } 1726 1730 1727 1731 #ifdef CONFIG_X86_64
+2 -2
arch/x86/xen/smp.c
··· 521 521 native_smp_prepare_cpus(max_cpus); 522 522 WARN_ON(xen_smp_intr_init(0)); 523 523 524 - if (!xen_have_vector_callback) 525 - return; 526 524 xen_init_lock_cpu(0); 527 525 xen_init_spinlocks(); 528 526 } ··· 544 546 545 547 void __init xen_hvm_smp_init(void) 546 548 { 549 + if (!xen_have_vector_callback) 550 + return; 547 551 smp_ops.smp_prepare_cpus = xen_hvm_smp_prepare_cpus; 548 552 smp_ops.smp_send_reschedule = xen_smp_send_reschedule; 549 553 smp_ops.cpu_up = xen_hvm_cpu_up;