1. 10 Mar, 2022 2 commits
    • Linus Torvalds's avatar
      Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux · 9c674947
      Linus Torvalds authored
      Pull clk fixes from Stephen Boyd:
       "One more small batch of clk driver fixes:
      
         - A fix for the Qualcomm GDSC power domain delays that avoids black
           screens at boot on some more recent SoCs that use a different delay
           than the hard-coded delays in the driver.
      
         - A build fix LAN966X clk driver that let it be built on
           architectures that didn't have IOMEM"
      
      * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
        clk: lan966x: Fix linking error
        clk: qcom: dispcc: Update the transition delay for MDSS GDSC
        clk: qcom: gdsc: Add support to update GDSC transition delay
      9c674947
    • Linus Torvalds's avatar
      Merge tag 'xsa396-5.17-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · b5521fe9
      Linus Torvalds authored
      Pull xen fixes from Juergen Gross:
       "Several Linux PV device frontends are using the grant table interfaces
        for removing access rights of the backends in ways being subject to
        race conditions, resulting in potential data leaks, data corruption by
        malicious backends, and denial of service triggered by malicious
        backends:
      
         - blkfront, netfront, scsifront and the gntalloc driver are testing
           whether a grant reference is still in use. If this is not the case,
           they assume that a following removal of the granted access will
           always succeed, which is not true in case the backend has mapped
           the granted page between those two operations.
      
           As a result the backend can keep access to the memory page of the
           guest no matter how the page will be used after the frontend I/O
           has finished. The xenbus driver has a similar problem, as it
           doesn't check the success of removing the granted access of a
           shared ring buffer.
      
         - blkfront, netfront, scsifront, usbfront, dmabuf, xenbus, 9p,
           kbdfront, and pvcalls are using a functionality to delay freeing a
           grant reference until it is no longer in use, but the freeing of
           the related data page is not synchronized with dropping the granted
           access.
      
           As a result the backend can keep access to the memory page even
           after it has been freed and then re-used for a different purpose.
      
         - netfront will fail a BUG_ON() assertion if it fails to revoke
           access in the rx path.
      
           This will result in a Denial of Service (DoS) situation of the
           guest which can be triggered by the backend"
      
      * tag 'xsa396-5.17-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        xen/netfront: react properly to failing gnttab_end_foreign_access_ref()
        xen/gnttab: fix gnttab_end_foreign_access() without page specified
        xen/pvcalls: use alloc/free_pages_exact()
        xen/9p: use alloc/free_pages_exact()
        xen/usb: don't use gnttab_end_foreign_access() in xenhcd_gnttab_done()
        xen: remove gnttab_query_foreign_access()
        xen/gntalloc: don't use gnttab_query_foreign_access()
        xen/scsifront: don't use gnttab_query_foreign_access() for mapped status
        xen/netfront: don't use gnttab_query_foreign_access() for mapped status
        xen/blkfront: don't use gnttab_query_foreign_access() for mapped status
        xen/grant-table: add gnttab_try_end_foreign_access()
        xen/xenbus: don't let xenbus_grant_ring() remove grants in error case
      b5521fe9
  2. 09 Mar, 2022 7 commits
  3. 08 Mar, 2022 10 commits
  4. 07 Mar, 2022 18 commits
    • Linus Torvalds's avatar
      Merge tag 'mtd/fixes-for-5.17-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux · ea4424be
      Linus Torvalds authored
      Pull MTD fix from Miquel Raynal:
       "As part of a previous changeset introducing support for the K3
        architecture, the OMAP_GPMC (a non visible symbol) got selected by the
        selection of MTD_NAND_OMAP2 instead of doing so from the architecture
        directly (like for the other users of these two drivers). Indeed, from
        a hardware perspective, the OMAP NAND controller needs the GPMC to
        work.
      
        This led to a robot error which got addressed in fix merge into -rc4.
        Unfortunately, the approach at this time still used "select" and lead
        to further build error reports (sparc64:allmodconfig).
      
        This time we switch to 'depends on' in order to prevent random
        misconfigurations. The different dependencies will however need a
        future cleanup"
      
      * tag 'mtd/fixes-for-5.17-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux:
        mtd: rawnand: omap2: Actually prevent invalid configuration and build error
      ea4424be
    • Linus Torvalds's avatar
      Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost · 06be3029
      Linus Torvalds authored
      Pull virtio fixes from Michael Tsirkin:
       "Some last minute fixes that took a while to get ready. Not
        regressions, but they look safe and seem to be worth to have"
      
      * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
        tools/virtio: handle fallout from folio work
        tools/virtio: fix virtio_test execution
        vhost: remove avail_event arg from vhost_update_avail_event()
        virtio: drop default for virtio-mem
        vdpa: fix use-after-free on vp_vdpa_remove
        virtio-blk: Remove BUG_ON() in virtio_queue_rq()
        virtio-blk: Don't use MAX_DISCARD_SEGMENTS if max_discard_seg is zero
        vhost: fix hung thread due to erroneous iotlb entries
        vduse: Fix returning wrong type in vduse_domain_alloc_iova()
        vdpa/mlx5: add validation for VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET command
        vdpa/mlx5: should verify CTRL_VQ feature exists for MQ
        vdpa: factor out vdpa_set_features_unlocked for vdpa internal use
        virtio_console: break out of buf poll on remove
        virtio: document virtio_reset_device
        virtio: acknowledge all features before access
        virtio: unexport virtio_finalize_features
      06be3029
    • Halil Pasic's avatar
      swiotlb: rework "fix info leak with DMA_FROM_DEVICE" · aa6f8dcb
      Halil Pasic authored
      Unfortunately, we ended up merging an old version of the patch "fix info
      leak with DMA_FROM_DEVICE" instead of merging the latest one. Christoph
      (the swiotlb maintainer), he asked me to create an incremental fix
      (after I have pointed this out the mix up, and asked him for guidance).
      So here we go.
      
      The main differences between what we got and what was agreed are:
      * swiotlb_sync_single_for_device is also required to do an extra bounce
      * We decided not to introduce DMA_ATTR_OVERWRITE until we have exploiters
      * The implantation of DMA_ATTR_OVERWRITE is flawed: DMA_ATTR_OVERWRITE
        must take precedence over DMA_ATTR_SKIP_CPU_SYNC
      
      Thus this patch removes DMA_ATTR_OVERWRITE, and makes
      swiotlb_sync_single_for_device() bounce unconditionally (that is, also
      when dir == DMA_TO_DEVICE) in order do avoid synchronising back stale
      data from the swiotlb buffer.
      
      Let me note, that if the size used with dma_sync_* API is less than the
      size used with dma_[un]map_*, under certain circumstances we may still
      end up with swiotlb not being transparent. In that sense, this is no
      perfect fix either.
      
      To get this bullet proof, we would have to bounce the entire
      mapping/bounce buffer. For that we would have to figure out the starting
      address, and the size of the mapping in
      swiotlb_sync_single_for_device(). While this does seem possible, there
      seems to be no firm consensus on how things are supposed to work.
      Signed-off-by: default avatarHalil Pasic <pasic@linux.ibm.com>
      Fixes: ddbd89de ("swiotlb: fix info leak with DMA_FROM_DEVICE")
      Cc: stable@vger.kernel.org
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      aa6f8dcb
    • James Morse's avatar
      arm64: proton-pack: Include unprivileged eBPF status in Spectre v2 mitigation reporting · 58c9a506
      James Morse authored
      The mitigations for Spectre-BHB are only applied when an exception is
      taken from user-space. The mitigation status is reported via the spectre_v2
      sysfs vulnerabilities file.
      
      When unprivileged eBPF is enabled the mitigation in the exception vectors
      can be avoided by an eBPF program.
      
      When unprivileged eBPF is enabled, print a warning and report vulnerable
      via the sysfs vulnerabilities file.
      Acked-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: default avatarJames Morse <james.morse@arm.com>
      58c9a506
    • Roger Quadros's avatar
      mtd: rawnand: omap2: Actually prevent invalid configuration and build error · 42da5a4b
      Roger Quadros authored
      The root of the problem is that we are selecting symbols that have
      dependencies. This can cause random configurations that can fail.
      The cleanest solution is to avoid using select.
      
      This driver uses interfaces from the OMAP_GPMC driver so we have to
      depend on it instead.
      
      Fixes: 4cd335da ("mtd: rawnand: omap2: Prevent invalid configuration and build error")
      Signed-off-by: default avatarRoger Quadros <rogerq@kernel.org>
      Signed-off-by: default avatarMiquel Raynal <miquel.raynal@bootlin.com>
      Tested-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Link: https://lore.kernel.org/linux-mtd/20220219193600.24892-1-rogerq@kernel.org
      42da5a4b
    • Miklos Szeredi's avatar
      fuse: fix pipe buffer lifetime for direct_io · 0c4bcfde
      Miklos Szeredi authored
      In FOPEN_DIRECT_IO mode, fuse_file_write_iter() calls
      fuse_direct_write_iter(), which normally calls fuse_direct_io(), which then
      imports the write buffer with fuse_get_user_pages(), which uses
      iov_iter_get_pages() to grab references to userspace pages instead of
      actually copying memory.
      
      On the filesystem device side, these pages can then either be read to
      userspace (via fuse_dev_read()), or splice()d over into a pipe using
      fuse_dev_splice_read() as pipe buffers with &nosteal_pipe_buf_ops.
      
      This is wrong because after fuse_dev_do_read() unlocks the FUSE request,
      the userspace filesystem can mark the request as completed, causing write()
      to return. At that point, the userspace filesystem should no longer have
      access to the pipe buffer.
      
      Fix by copying pages coming from the user address space to new pipe
      buffers.
      Reported-by: default avatarJann Horn <jannh@google.com>
      Fixes: c3021629 ("fuse: support splice() reading from fuse device")
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
      0c4bcfde
    • Juergen Gross's avatar
      xen/netfront: react properly to failing gnttab_end_foreign_access_ref() · 66e3531b
      Juergen Gross authored
      When calling gnttab_end_foreign_access_ref() the returned value must
      be tested and the reaction to that value should be appropriate.
      
      In case of failure in xennet_get_responses() the reaction should not be
      to crash the system, but to disable the network device.
      
      The calls in setup_netfront() can be replaced by calls of
      gnttab_end_foreign_access(). While at it avoid double free of ring
      pages and grant references via xennet_disconnect_backend() in this case.
      
      This is CVE-2022-23042 / part of XSA-396.
      Reported-by: default avatarDemi Marie Obenour <demi@invisiblethingslab.com>
      Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
      Reviewed-by: default avatarJan Beulich <jbeulich@suse.com>
      ---
      V2:
      - avoid double free
      V3:
      - remove pointless initializer (Jan Beulich)
      66e3531b
    • Juergen Gross's avatar
      xen/gnttab: fix gnttab_end_foreign_access() without page specified · 42baefac
      Juergen Gross authored
      gnttab_end_foreign_access() is used to free a grant reference and
      optionally to free the associated page. In case the grant is still in
      use by the other side processing is being deferred. This leads to a
      problem in case no page to be freed is specified by the caller: the
      caller doesn't know that the page is still mapped by the other side
      and thus should not be used for other purposes.
      
      The correct way to handle this situation is to take an additional
      reference to the granted page in case handling is being deferred and
      to drop that reference when the grant reference could be freed
      finally.
      
      This requires that there are no users of gnttab_end_foreign_access()
      left directly repurposing the granted page after the call, as this
      might result in clobbered data or information leaks via the not yet
      freed grant reference.
      
      This is part of CVE-2022-23041 / XSA-396.
      Reported-by: default avatarSimon Gaiser <simon@invisiblethingslab.com>
      Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
      Reviewed-by: default avatarJan Beulich <jbeulich@suse.com>
      ---
      V4:
      - expand comment in header
      V5:
      - get page ref in case of kmalloc() failure, too
      42baefac
    • Juergen Gross's avatar
      xen/pvcalls: use alloc/free_pages_exact() · b0576cc9
      Juergen Gross authored
      Instead of __get_free_pages() and free_pages() use alloc_pages_exact()
      and free_pages_exact(). This is in preparation of a change of
      gnttab_end_foreign_access() which will prohibit use of high-order
      pages.
      
      This is part of CVE-2022-23041 / XSA-396.
      Reported-by: default avatarSimon Gaiser <simon@invisiblethingslab.com>
      Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
      Reviewed-by: default avatarJan Beulich <jbeulich@suse.com>
      ---
      V4:
      - new patch
      b0576cc9
    • Juergen Gross's avatar
      xen/9p: use alloc/free_pages_exact() · 5cadd4bb
      Juergen Gross authored
      Instead of __get_free_pages() and free_pages() use alloc_pages_exact()
      and free_pages_exact(). This is in preparation of a change of
      gnttab_end_foreign_access() which will prohibit use of high-order
      pages.
      
      By using the local variable "order" instead of ring->intf->ring_order
      in the error path of xen_9pfs_front_alloc_dataring() another bug is
      fixed, as the error path can be entered before ring->intf->ring_order
      is being set.
      
      By using alloc_pages_exact() the size in bytes is specified for the
      allocation, which fixes another bug for the case of
      order < (PAGE_SHIFT - XEN_PAGE_SHIFT).
      
      This is part of CVE-2022-23041 / XSA-396.
      Reported-by: default avatarSimon Gaiser <simon@invisiblethingslab.com>
      Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
      Reviewed-by: default avatarJan Beulich <jbeulich@suse.com>
      ---
      V4:
      - new patch
      5cadd4bb
    • Juergen Gross's avatar
      xen/usb: don't use gnttab_end_foreign_access() in xenhcd_gnttab_done() · cd7bcfab
      Juergen Gross authored
      The usage of gnttab_end_foreign_access() in xenhcd_gnttab_done() is
      not safe against a malicious backend, as the backend could keep the
      I/O page mapped and modify it even after the granted memory page is
      being used for completely other purposes in the local system.
      
      So replace that use case with gnttab_try_end_foreign_access() and
      disable the PV host adapter in case the backend didn't stop using the
      granted page.
      
      In xenhcd_urb_request_done() immediately return in case of setting
      the device state to "error" instead of looking into further backend
      responses.
      Reported-by: default avatarDemi Marie Obenour <demi@invisiblethingslab.com>
      Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
      Reviewed-by: default avatarJan Beulich <jbeulich@suse.com>
      ---
      V2:
      - use gnttab_try_end_foreign_access()
      cd7bcfab
    • Juergen Gross's avatar
      xen: remove gnttab_query_foreign_access() · 1dbd11ca
      Juergen Gross authored
      Remove gnttab_query_foreign_access(), as it is unused and unsafe to
      use.
      
      All previous use cases assumed a grant would not be in use after
      gnttab_query_foreign_access() returned 0. This information is useless
      in best case, as it only refers to a situation in the past, which could
      have changed already.
      Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
      Reviewed-by: default avatarJan Beulich <jbeulich@suse.com>
      1dbd11ca
    • Juergen Gross's avatar
      xen/gntalloc: don't use gnttab_query_foreign_access() · d3b6372c
      Juergen Gross authored
      Using gnttab_query_foreign_access() is unsafe, as it is racy by design.
      
      The use case in the gntalloc driver is not needed at all. While at it
      replace the call of gnttab_end_foreign_access_ref() with a call of
      gnttab_end_foreign_access(), which is what is really wanted there. In
      case the grant wasn't used due to an allocation failure, just free the
      grant via gnttab_free_grant_reference().
      
      This is CVE-2022-23039 / part of XSA-396.
      Reported-by: default avatarDemi Marie Obenour <demi@invisiblethingslab.com>
      Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
      Reviewed-by: default avatarJan Beulich <jbeulich@suse.com>
      ---
      V3:
      - fix __del_gref() (Jan Beulich)
      d3b6372c
    • Juergen Gross's avatar
      xen/scsifront: don't use gnttab_query_foreign_access() for mapped status · 33172ab5
      Juergen Gross authored
      It isn't enough to check whether a grant is still being in use by
      calling gnttab_query_foreign_access(), as a mapping could be realized
      by the other side just after having called that function.
      
      In case the call was done in preparation of revoking a grant it is
      better to do so via gnttab_try_end_foreign_access() and check the
      success of that operation instead.
      
      This is CVE-2022-23038 / part of XSA-396.
      Reported-by: default avatarDemi Marie Obenour <demi@invisiblethingslab.com>
      Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
      Reviewed-by: default avatarJan Beulich <jbeulich@suse.com>
      ---
      V2:
      - use gnttab_try_end_foreign_access()
      33172ab5
    • Juergen Gross's avatar
      xen/netfront: don't use gnttab_query_foreign_access() for mapped status · 31185df7
      Juergen Gross authored
      It isn't enough to check whether a grant is still being in use by
      calling gnttab_query_foreign_access(), as a mapping could be realized
      by the other side just after having called that function.
      
      In case the call was done in preparation of revoking a grant it is
      better to do so via gnttab_end_foreign_access_ref() and check the
      success of that operation instead.
      
      This is CVE-2022-23037 / part of XSA-396.
      Reported-by: default avatarDemi Marie Obenour <demi@invisiblethingslab.com>
      Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
      Reviewed-by: default avatarJan Beulich <jbeulich@suse.com>
      ---
      V2:
      - use gnttab_try_end_foreign_access()
      V3:
      - don't use gnttab_try_end_foreign_access()
      31185df7
    • Juergen Gross's avatar
      xen/blkfront: don't use gnttab_query_foreign_access() for mapped status · abf1fd59
      Juergen Gross authored
      It isn't enough to check whether a grant is still being in use by
      calling gnttab_query_foreign_access(), as a mapping could be realized
      by the other side just after having called that function.
      
      In case the call was done in preparation of revoking a grant it is
      better to do so via gnttab_end_foreign_access_ref() and check the
      success of that operation instead.
      
      For the ring allocation use alloc_pages_exact() in order to avoid
      high order pages in case of a multi-page ring.
      
      If a grant wasn't unmapped by the backend without persistent grants
      being used, set the device state to "error".
      
      This is CVE-2022-23036 / part of XSA-396.
      Reported-by: default avatarDemi Marie Obenour <demi@invisiblethingslab.com>
      Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
      Reviewed-by: default avatarRoger Pau Monné <roger.pau@citrix.com>
      ---
      V2:
      - use gnttab_try_end_foreign_access()
      V4:
      - use alloc_pages_exact() and free_pages_exact()
      - set state to error if backend didn't unmap (Roger Pau Monné)
      abf1fd59
    • Juergen Gross's avatar
      xen/grant-table: add gnttab_try_end_foreign_access() · 6b1775f2
      Juergen Gross authored
      Add a new grant table function gnttab_try_end_foreign_access(), which
      will remove and free a grant if it is not in use.
      
      Its main use case is to either free a grant if it is no longer in use,
      or to take some other action if it is still in use. This other action
      can be an error exit, or (e.g. in the case of blkfront persistent grant
      feature) some special handling.
      
      This is CVE-2022-23036, CVE-2022-23038 / part of XSA-396.
      Reported-by: default avatarDemi Marie Obenour <demi@invisiblethingslab.com>
      Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
      Reviewed-by: default avatarJan Beulich <jbeulich@suse.com>
      ---
      V2:
      - new patch
      V4:
      - add comments to header (Jan Beulich)
      6b1775f2
    • Juergen Gross's avatar
      xen/xenbus: don't let xenbus_grant_ring() remove grants in error case · 3777ea7b
      Juergen Gross authored
      Letting xenbus_grant_ring() tear down grants in the error case is
      problematic, as the other side could already have used these grants.
      Calling gnttab_end_foreign_access_ref() without checking success is
      resulting in an unclear situation for any caller of xenbus_grant_ring()
      as in the error case the memory pages of the ring page might be
      partially mapped. Freeing them would risk unwanted foreign access to
      them, while not freeing them would leak memory.
      
      In order to remove the need to undo any gnttab_grant_foreign_access()
      calls, use gnttab_alloc_grant_references() to make sure no further
      error can occur in the loop granting access to the ring pages.
      
      It should be noted that this way of handling removes leaking of
      grant entries in the error case, too.
      
      This is CVE-2022-23040 / part of XSA-396.
      Reported-by: default avatarDemi Marie Obenour <demi@invisiblethingslab.com>
      Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
      Reviewed-by: default avatarJan Beulich <jbeulich@suse.com>
      3777ea7b
  5. 06 Mar, 2022 3 commits
    • Linus Torvalds's avatar
      Linux 5.17-rc7 · ffb217a1
      Linus Torvalds authored
      ffb217a1
    • Linus Torvalds's avatar
      Merge tag 'for-5.17-rc6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 3ee65c0f
      Linus Torvalds authored
      Pull btrfs fixes from David Sterba:
       "A few more fixes for various problems that have user visible effects
        or seem to be urgent:
      
         - fix corruption when combining DIO and non-blocking io_uring over
           multiple extents (seen on MariaDB)
      
         - fix relocation crash due to premature return from commit
      
         - fix quota deadlock between rescan and qgroup removal
      
         - fix item data bounds checks in tree-checker (found on a fuzzed
           image)
      
         - fix fsync of prealloc extents after EOF
      
         - add missing run of delayed items after unlink during log replay
      
         - don't start relocation until snapshot drop is finished
      
         - fix reversed condition for subpage writers locking
      
         - fix warning on page error"
      
      * tag 'for-5.17-rc6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
        btrfs: fallback to blocking mode when doing async dio over multiple extents
        btrfs: add missing run of delayed items after unlink during log replay
        btrfs: qgroup: fix deadlock between rescan worker and remove qgroup
        btrfs: fix relocation crash due to premature return from btrfs_commit_transaction()
        btrfs: do not start relocation until in progress drops are done
        btrfs: tree-checker: use u64 for item data end to avoid overflow
        btrfs: do not WARN_ON() if we have PageError set
        btrfs: fix lost prealloc extents beyond eof after full fsync
        btrfs: subpage: fix a wrong check on subpage->writers
      3ee65c0f
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · f81664f7
      Linus Torvalds authored
      Pull kvm fixes from Paolo Bonzini:
       "x86 guest:
      
         - Tweaks to the paravirtualization code, to avoid using them when
           they're pointless or harmful
      
        x86 host:
      
         - Fix for SRCU lockdep splat
      
         - Brown paper bag fix for the propagation of errno"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: x86: pull kvm->srcu read-side to kvm_arch_vcpu_ioctl_run
        KVM: x86/mmu: Passing up the error state of mmu_alloc_shadow_roots()
        KVM: x86: Yield to IPI target vCPU only if it is busy
        x86/kvmclock: Fix Hyper-V Isolated VM's boot issue when vCPUs > 64
        x86/kvm: Don't waste memory if kvmclock is disabled
        x86/kvm: Don't use PV TLB/yield when mwait is advertised
      f81664f7