Merge tag 'for-linus-6.3-rc3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 17 Mar 2023 17:45:49 +0000 (10:45 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 17 Mar 2023 17:45:49 +0000 (10:45 -0700)
Pull xen fixes from Juergen Gross:

 - cleanup for xen time handling

 - enable the VGA console in a Xen PVH dom0

 - cleanup in the xenfs driver

* tag 'for-linus-6.3-rc3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
  xen: remove unnecessary (void*) conversions
  x86/PVH: obtain VGA console info in Dom0
  x86/xen/time: cleanup xen_tsc_safe_clocksource
  xen: update arch/x86/include/asm/xen/cpuid.h

1  2 
arch/x86/xen/enlighten_pv.c
arch/x86/xen/time.c

index bb59cc6ddb2d425d4a782eb443969910e4508d83,68f5f5d209dfaa4b13132976be7b882e8fccc114..093b78c8bbec0724e59947211b55e3eaae76cc8c
@@@ -276,7 -276,6 +276,7 @@@ static void __init xen_init_capabilitie
        setup_clear_cpu_cap(X86_FEATURE_ACC);
        setup_clear_cpu_cap(X86_FEATURE_X2APIC);
        setup_clear_cpu_cap(X86_FEATURE_SME);
 +      setup_clear_cpu_cap(X86_FEATURE_LKGS);
  
        /*
         * Xen PV would need some work to support PCID: CR3 handling as well
@@@ -1069,7 -1068,7 +1069,7 @@@ static const typeof(pv_ops) xen_cpu_op
  
                .write_cr4 = xen_write_cr4,
  
 -              .wbinvd = native_wbinvd,
 +              .wbinvd = pv_native_wbinvd,
  
                .read_msr = xen_read_msr,
                .write_msr = xen_write_msr,
@@@ -1390,7 -1389,8 +1390,8 @@@ asmlinkage __visible void __init xen_st
  
                x86_platform.set_legacy_features =
                                xen_dom0_set_legacy_features;
-               xen_init_vga(info, xen_start_info->console.dom0.info_size);
+               xen_init_vga(info, xen_start_info->console.dom0.info_size,
+                            &boot_params.screen_info);
                xen_start_info->console.domU.mfn = 0;
                xen_start_info->console.domU.evtchn = 0;
  
diff --combined arch/x86/xen/time.c
index 1d597364b49dc3f9b7e8d259f1300181d4beab8e,94056013a2a47180d0453f0c33be94cf886b7bb3..b74ac2562cfbafddf4be10d53983515febbc7276
@@@ -20,6 -20,7 +20,7 @@@
  #include <asm/pvclock.h>
  #include <asm/xen/hypervisor.h>
  #include <asm/xen/hypercall.h>
+ #include <asm/xen/cpuid.h>
  
  #include <xen/events.h>
  #include <xen/features.h>
@@@ -60,17 -61,9 +61,17 @@@ static u64 xen_clocksource_get_cycles(s
        return xen_clocksource_read();
  }
  
 -static u64 xen_sched_clock(void)
 +static noinstr u64 xen_sched_clock(void)
  {
 -      return xen_clocksource_read() - xen_sched_clock_offset;
 +        struct pvclock_vcpu_time_info *src;
 +      u64 ret;
 +
 +      preempt_disable_notrace();
 +      src = &__this_cpu_read(xen_vcpu)->time;
 +      ret = pvclock_clocksource_read_nowd(src);
 +      ret -= xen_sched_clock_offset;
 +      preempt_enable_notrace();
 +      return ret;
  }
  
  static void xen_read_wallclock(struct timespec64 *ts)
@@@ -503,11 -496,7 +504,7 @@@ static int __init xen_tsc_safe_clocksou
        /* Leaf 4, sub-leaf 0 (0x40000x03) */
        cpuid_count(xen_cpuid_base() + 3, 0, &eax, &ebx, &ecx, &edx);
  
-       /* tsc_mode = no_emulate (2) */
-       if (ebx != 2)
-               return 0;
-       return 1;
+       return ebx == XEN_CPUID_TSC_MODE_NEVER_EMULATE;
  }
  
  static void __init xen_time_init(void)