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-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip

Pull xen fixes from Juergen Gross:

- Two small cleanups

- Another fix for addressing the EFI framebuffer above 4GB when running
as Xen dom0

- A patch to let Xen guests use reserved bits in MSI- and IO-APIC-
registers for extended APIC-IDs the same way KVM guests are doing it
already

* tag 'for-linus-5.17a-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
xen/pci: Make use of the helper macro LIST_HEAD()
xen/x2apic: Fix inconsistent indenting
xen/x86: detect support for extended destination ID
xen/x86: obtain full video frame buffer address for Dom0 also under EFI

+23 -11
+7
arch/x86/include/asm/xen/cpuid.h
··· 100 100 /* Memory mapped from other domains has valid IOMMU entries */ 101 101 #define XEN_HVM_CPUID_IOMMU_MAPPINGS (1u << 2) 102 102 #define XEN_HVM_CPUID_VCPU_ID_PRESENT (1u << 3) /* vcpu id is present in EBX */ 103 + #define XEN_HVM_CPUID_DOMID_PRESENT (1u << 4) /* domid is present in ECX */ 104 + /* 105 + * Bits 55:49 from the IO-APIC RTE and bits 11:5 from the MSI address can be 106 + * used to store high bits for the Destination ID. This expands the Destination 107 + * ID field from 8 to 15 bits, allowing to target APIC IDs up 32768. 108 + */ 109 + #define XEN_HVM_CPUID_EXT_DEST_ID (1u << 5) 103 110 104 111 /* 105 112 * Leaf 6 (0x40000x05)
+7 -2
arch/x86/xen/enlighten_hvm.c
··· 185 185 186 186 if (xen_have_vector_callback && xen_feature(XENFEAT_hvm_safe_pvclock)) 187 187 xen_teardown_timer(cpu); 188 - 189 - return 0; 188 + return 0; 190 189 } 191 190 192 191 static bool no_vector_callback __initdata; ··· 245 246 static __init bool xen_x2apic_available(void) 246 247 { 247 248 return x2apic_supported(); 249 + } 250 + 251 + static bool __init msi_ext_dest_id(void) 252 + { 253 + return cpuid_eax(xen_cpuid_base() + 4) & XEN_HVM_CPUID_EXT_DEST_ID; 248 254 } 249 255 250 256 static __init void xen_hvm_guest_late_init(void) ··· 314 310 .init.x2apic_available = xen_x2apic_available, 315 311 .init.init_mem_mapping = xen_hvm_init_mem_mapping, 316 312 .init.guest_late_init = xen_hvm_guest_late_init, 313 + .init.msi_ext_dest_id = msi_ext_dest_id, 317 314 .runtime.pin_vcpu = xen_pin_vcpu, 318 315 .ignore_nopv = true, 319 316 };
+8 -8
arch/x86/xen/vga.c
··· 57 57 screen_info->rsvd_size = info->u.vesa_lfb.rsvd_size; 58 58 screen_info->rsvd_pos = info->u.vesa_lfb.rsvd_pos; 59 59 60 + if (size >= offsetof(struct dom0_vga_console_info, 61 + u.vesa_lfb.ext_lfb_base) 62 + + sizeof(info->u.vesa_lfb.ext_lfb_base) 63 + && info->u.vesa_lfb.ext_lfb_base) { 64 + screen_info->ext_lfb_base = info->u.vesa_lfb.ext_lfb_base; 65 + screen_info->capabilities |= VIDEO_CAPABILITY_64BIT_BASE; 66 + } 67 + 60 68 if (info->video_type == XEN_VGATYPE_EFI_LFB) { 61 69 screen_info->orig_video_isVGA = VIDEO_TYPE_EFI; 62 70 break; ··· 74 66 u.vesa_lfb.mode_attrs) 75 67 + sizeof(info->u.vesa_lfb.mode_attrs)) 76 68 screen_info->vesa_attributes = info->u.vesa_lfb.mode_attrs; 77 - 78 - if (size >= offsetof(struct dom0_vga_console_info, 79 - u.vesa_lfb.ext_lfb_base) 80 - + sizeof(info->u.vesa_lfb.ext_lfb_base) 81 - && info->u.vesa_lfb.ext_lfb_base) { 82 - screen_info->ext_lfb_base = info->u.vesa_lfb.ext_lfb_base; 83 - screen_info->capabilities |= VIDEO_CAPABILITY_64BIT_BASE; 84 - } 85 69 break; 86 70 } 87 71 }
+1 -1
drivers/xen/pci.c
··· 264 264 }; 265 265 266 266 static DEFINE_SPINLOCK(dev_domain_list_spinlock); 267 - static struct list_head dev_domain_list = LIST_HEAD_INIT(dev_domain_list); 267 + static LIST_HEAD(dev_domain_list); 268 268 269 269 static struct xen_device_domain_owner *find_device(struct pci_dev *dev) 270 270 {