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

Pull xen fixes from Juergen Gross:
"Two related fixes for a boot failure of Xen PV guests"

* tag 'for-linus-4.18-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
xen: setup pv irq ops vector earlier
xen: remove global bit from __default_kernel_pte_mask for pv guests

+13 -16
+12 -13
arch/x86/xen/enlighten_pv.c
··· 1207 1207 1208 1208 xen_setup_features(); 1209 1209 1210 - xen_setup_machphys_mapping(); 1211 - 1212 1210 /* Install Xen paravirt ops */ 1213 1211 pv_info = xen_info; 1214 1212 pv_init_ops.patch = paravirt_patch_default; 1215 1213 pv_cpu_ops = xen_cpu_ops; 1214 + xen_init_irq_ops(); 1215 + 1216 + /* 1217 + * Setup xen_vcpu early because it is needed for 1218 + * local_irq_disable(), irqs_disabled(), e.g. in printk(). 1219 + * 1220 + * Don't do the full vcpu_info placement stuff until we have 1221 + * the cpu_possible_mask and a non-dummy shared_info. 1222 + */ 1223 + xen_vcpu_info_reset(0); 1216 1224 1217 1225 x86_platform.get_nmi_reason = xen_get_nmi_reason; 1218 1226 ··· 1233 1225 * Set up some pagetable state before starting to set any ptes. 1234 1226 */ 1235 1227 1228 + xen_setup_machphys_mapping(); 1236 1229 xen_init_mmu_ops(); 1237 1230 1238 1231 /* Prevent unwanted bits from being set in PTEs. */ 1239 1232 __supported_pte_mask &= ~_PAGE_GLOBAL; 1233 + __default_kernel_pte_mask &= ~_PAGE_GLOBAL; 1240 1234 1241 1235 /* 1242 1236 * Prevent page tables from being allocated in highmem, even ··· 1259 1249 get_cpu_cap(&boot_cpu_data); 1260 1250 x86_configure_nx(); 1261 1251 1262 - xen_init_irq_ops(); 1263 - 1264 1252 /* Let's presume PV guests always boot on vCPU with id 0. */ 1265 1253 per_cpu(xen_vcpu_id, 0) = 0; 1266 - 1267 - /* 1268 - * Setup xen_vcpu early because idt_setup_early_handler needs it for 1269 - * local_irq_disable(), irqs_disabled(). 1270 - * 1271 - * Don't do the full vcpu_info placement stuff until we have 1272 - * the cpu_possible_mask and a non-dummy shared_info. 1273 - */ 1274 - xen_vcpu_info_reset(0); 1275 1254 1276 1255 idt_setup_early_handler(); 1277 1256
+1 -3
arch/x86/xen/irq.c
··· 128 128 129 129 void __init xen_init_irq_ops(void) 130 130 { 131 - /* For PVH we use default pv_irq_ops settings. */ 132 - if (!xen_feature(XENFEAT_hvm_callback_vector)) 133 - pv_irq_ops = xen_irq_ops; 131 + pv_irq_ops = xen_irq_ops; 134 132 x86_init.irqs.intr_init = xen_init_IRQ; 135 133 }