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 tag 'for-linus-5.17a-rc3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip

Pull xen fixes from Juergen Gross:

- documentation fixes related to Xen

- enable x2apic mode when available when running as hardware
virtualized guest under Xen

- cleanup and fix a corner case of vcpu enumeration when running a
paravirtualized Xen guest

* tag 'for-linus-5.17a-rc3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
x86/Xen: streamline (and fix) PV CPU enumeration
xen: update missing ioctl magic numers documentation
Improve docs for IOCTL_GNTDEV_MAP_GRANT_REF
xen: xenbus_dev.h: delete incorrect file name
xen/x2apic: enable x2apic mode when supported for HVM

+20 -50
+3
Documentation/userspace-api/ioctl/ioctl-number.rst
··· 115 115 'B' 00-1F linux/cciss_ioctl.h conflict! 116 116 'B' 00-0F include/linux/pmu.h conflict! 117 117 'B' C0-FF advanced bbus <mailto:maassen@uni-freiburg.de> 118 + 'B' 00-0F xen/xenbus_dev.h conflict! 118 119 'C' all linux/soundcard.h conflict! 119 120 'C' 01-2F linux/capi.h conflict! 120 121 'C' F0-FF drivers/net/wan/cosa.h conflict! ··· 135 134 'F' 80-8F linux/arcfb.h conflict! 136 135 'F' DD video/sstfb.h conflict! 137 136 'G' 00-3F drivers/misc/sgi-gru/grulib.h conflict! 137 + 'G' 00-0F xen/gntalloc.h, xen/gntdev.h conflict! 138 138 'H' 00-7F linux/hiddev.h conflict! 139 139 'H' 00-0F linux/hidraw.h conflict! 140 140 'H' 01 linux/mei.h conflict! ··· 178 176 'P' 60-6F sound/sscape_ioctl.h conflict! 179 177 'P' 00-0F drivers/usb/class/usblp.c conflict! 180 178 'P' 01-09 drivers/misc/pci_endpoint_test.c conflict! 179 + 'P' 00-0F xen/privcmd.h conflict! 181 180 'Q' all linux/soundcard.h 182 181 'R' 00-1F linux/random.h conflict! 183 182 'R' 01 linux/rfkill.h conflict!
-14
arch/x86/include/asm/xen/hypervisor.h
··· 43 43 return hypervisor_cpuid_base("XenVMMXenVMM", 2); 44 44 } 45 45 46 - #ifdef CONFIG_XEN 47 - extern bool __init xen_hvm_need_lapic(void); 48 - 49 - static inline bool __init xen_x2apic_para_available(void) 50 - { 51 - return xen_hvm_need_lapic(); 52 - } 53 - #else 54 - static inline bool __init xen_x2apic_para_available(void) 55 - { 56 - return (xen_cpuid_base() != 0); 57 - } 58 - #endif 59 - 60 46 struct pci_dev; 61 47 62 48 #ifdef CONFIG_XEN_PV_DOM0
+4 -9
arch/x86/xen/enlighten_hvm.c
··· 9 9 #include <xen/events.h> 10 10 #include <xen/interface/memory.h> 11 11 12 + #include <asm/apic.h> 12 13 #include <asm/cpu.h> 13 14 #include <asm/smp.h> 14 15 #include <asm/io_apic.h> ··· 243 242 } 244 243 early_param("xen_no_vector_callback", xen_parse_no_vector_callback); 245 244 246 - bool __init xen_hvm_need_lapic(void) 245 + static __init bool xen_x2apic_available(void) 247 246 { 248 - if (xen_pv_domain()) 249 - return false; 250 - if (!xen_hvm_domain()) 251 - return false; 252 - if (xen_feature(XENFEAT_hvm_pirqs) && xen_have_vector_callback) 253 - return false; 254 - return true; 247 + return x2apic_supported(); 255 248 } 256 249 257 250 static __init void xen_hvm_guest_late_init(void) ··· 307 312 .detect = xen_platform_hvm, 308 313 .type = X86_HYPER_XEN_HVM, 309 314 .init.init_platform = xen_hvm_guest_init, 310 - .init.x2apic_available = xen_x2apic_para_available, 315 + .init.x2apic_available = xen_x2apic_available, 311 316 .init.init_mem_mapping = xen_hvm_init_mem_mapping, 312 317 .init.guest_late_init = xen_hvm_guest_late_init, 313 318 .runtime.pin_vcpu = xen_pin_vcpu,
-4
arch/x86/xen/enlighten_pv.c
··· 1341 1341 1342 1342 xen_acpi_sleep_register(); 1343 1343 1344 - /* Avoid searching for BIOS MP tables */ 1345 - x86_init.mpparse.find_smp_config = x86_init_noop; 1346 - x86_init.mpparse.get_smp_config = x86_init_uint_noop; 1347 - 1348 1344 xen_boot_params_init_edd(); 1349 1345 1350 1346 #ifdef CONFIG_ACPI
+6 -20
arch/x86/xen/smp_pv.c
··· 148 148 return rc; 149 149 } 150 150 151 - static void __init xen_fill_possible_map(void) 152 - { 153 - int i, rc; 154 - 155 - if (xen_initial_domain()) 156 - return; 157 - 158 - for (i = 0; i < nr_cpu_ids; i++) { 159 - rc = HYPERVISOR_vcpu_op(VCPUOP_is_up, i, NULL); 160 - if (rc >= 0) { 161 - num_processors++; 162 - set_cpu_possible(i, true); 163 - } 164 - } 165 - } 166 - 167 - static void __init xen_filter_cpu_maps(void) 151 + static void __init _get_smp_config(unsigned int early) 168 152 { 169 153 int i, rc; 170 154 unsigned int subtract = 0; 171 155 172 - if (!xen_initial_domain()) 156 + if (early) 173 157 return; 174 158 175 159 num_processors = 0; ··· 194 210 * sure the old memory can be recycled. */ 195 211 make_lowmem_page_readwrite(xen_initial_gdt); 196 212 197 - xen_filter_cpu_maps(); 198 213 xen_setup_vcpu_info_placement(); 199 214 200 215 /* ··· 459 476 void __init xen_smp_init(void) 460 477 { 461 478 smp_ops = xen_smp_ops; 462 - xen_fill_possible_map(); 479 + 480 + /* Avoid searching for BIOS MP tables */ 481 + x86_init.mpparse.find_smp_config = x86_init_noop; 482 + x86_init.mpparse.get_smp_config = _get_smp_config; 463 483 }
+7 -1
include/uapi/xen/gntdev.h
··· 47 47 /* 48 48 * Inserts the grant references into the mapping table of an instance 49 49 * of gntdev. N.B. This does not perform the mapping, which is deferred 50 - * until mmap() is called with @index as the offset. 50 + * until mmap() is called with @index as the offset. @index should be 51 + * considered opaque to userspace, with one exception: if no grant 52 + * references have ever been inserted into the mapping table of this 53 + * instance, @index will be set to 0. This is necessary to use gntdev 54 + * with userspace APIs that expect a file descriptor that can be 55 + * mmap()'d at offset 0, such as Wayland. If @count is set to 0, this 56 + * ioctl will fail. 51 57 */ 52 58 #define IOCTL_GNTDEV_MAP_GRANT_REF \ 53 59 _IOC(_IOC_NONE, 'G', 0, sizeof(struct ioctl_gntdev_map_grant_ref))
-2
include/xen/xenbus_dev.h
··· 1 1 /****************************************************************************** 2 - * evtchn.h 3 - * 4 2 * Interface to /dev/xen/xenbus_backend. 5 3 * 6 4 * Copyright (c) 2011 Bastian Blank <waldi@debian.org>