Skip to content
  1. Dec 10, 2020
    • Miklos Szeredi's avatar
      fuse: fix bad inode · 5d069dbe
      Miklos Szeredi authored
      
      
      Jan Kara's analysis of the syzbot report (edited):
      
        The reproducer opens a directory on FUSE filesystem, it then attaches
        dnotify mark to the open directory.  After that a fuse_do_getattr() call
        finds that attributes returned by the server are inconsistent, and calls
        make_bad_inode() which, among other things does:
      
                inode->i_mode = S_IFREG;
      
        This then confuses dnotify which doesn't tear down its structures
        properly and eventually crashes.
      
      Avoid calling make_bad_inode() on a live inode: switch to a private flag on
      the fuse inode.  Also add the test to ops which the bad_inode_ops would
      have caught.
      
      This bug goes back to the initial merge of fuse in 2.6.14...
      
      Reported-by: default avatar <syzbot+f427adf9324b92652ccc@syzkaller.appspotmail.com>
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
      Tested-by: default avatarJan Kara <jack@suse.cz>
      Cc: <stable@vger.kernel.org>
      5d069dbe
  2. Nov 12, 2020
    • Vivek Goyal's avatar
      fuse: support SB_NOSEC flag to improve write performance · 9d769e6a
      Vivek Goyal authored
      Virtiofs can be slow with small writes if xattr are enabled and we are
      doing cached writes (No direct I/O).  Ganesh Mahalingam noticed this.
      
      Some debugging showed that file_remove_privs() is called in cached write
      path on every write.  And everytime it calls security_inode_need_killpriv()
      which results in call to __vfs_getxattr(XATTR_NAME_CAPS).  And this goes to
      file server to fetch xattr.  This extra round trip for every write slows
      down writes tremendously.
      
      Normally to avoid paying this penalty on every write, vfs has the notion of
      caching this information in inode (S_NOSEC).  So vfs sets S_NOSEC, if
      filesystem opted for it using super block flag SB_NOSEC.  And S_NOSEC is
      cleared when setuid/setgid bit is set or when security xattr is set on
      inode so that next time a write happens, we check inode again for clearing
      setuid/setgid bits as well clear any security.capability xattr.
      
      This seems to work well for local file systems but for remote file systems
      it is possible that VFS does not have full picture and a different client
      sets setuid/setgid bit or security.capability xattr on file and that means
      VFS information about S_NOSEC on another client will be stale.  So for
      remote filesystems SB_NOSEC was disabled by default.
      
      Commit 9e1f1de0 ("more conservative S_NOSEC handling") mentioned that
      these filesystems can still make use of SB_NOSEC as long as they clear
      S_NOSEC when they are refreshing inode attriutes from server.
      
      So this patch tries to enable SB_NOSEC on fuse (regular fuse as well as
      virtiofs).  And clear SB_NOSEC when we are refreshing inode attributes.
      
      This is enabled only if server supports FUSE_HANDLE_KILLPRIV_V2.  This says
      that server will clear setuid/setgid/security.capability on
      chown/truncate/write as apporpriate.
      
      This should provide tighter coherency because now suid/sgid/
      security.capability will be cleared even if fuse client cache has not seen
      these attrs.
      
      Basic idea is that fuse client will trigger suid/sgid/security.capability
      clearing based on its attr cache.  But even if cache has gone stale, it is
      fine because FUSE_HANDLE_KILLPRIV_V2 will make sure WRITE clear
      suid/sgid/security.capability.
      
      We make this change only if server supports FUSE_HANDLE_KILLPRIV_V2.  This
      should make sure that existing filesystems which might be relying on
      seucurity.capability always being queried from server are not impacted.
      
      This tighter coherency relies on WRITE showing up on server (and not being
      cached in guest).  So writeback_cache mode will not provide that tight
      coherency and it is not recommended to use two together.  Having said that
      it might work reasonably well for lot of use cases.
      
      This change improves random write performance very significantly.  Running
      virtiofsd with cache=auto and following fio command:
      
      fio --ioengine=libaio --direct=1  --name=test --filename=/mnt/virtiofs/random_read_write.fio --bs=4k --iodepth=64 --size=4G --readwrite=randwrite
      
      Bandwidth increases from around 50MB/s to around 250MB/s as a result of
      applying this patch.  So improvement is very significant.
      
      Link: https://github.com/kata-containers/runtime/issues/2815
      
      
      Reported-by: default avatar"Mahalingam, Ganesh" <ganesh.mahalingam@intel.com>
      Signed-off-by: default avatarVivek Goyal <vgoyal@redhat.com>
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
      9d769e6a
    • Vivek Goyal's avatar
      fuse: add a flag FUSE_OPEN_KILL_SUIDGID for open() request · 643a666a
      Vivek Goyal authored
      
      
      With FUSE_HANDLE_KILLPRIV_V2 support, server will need to kill suid/sgid/
      security.capability on open(O_TRUNC), if server supports
      FUSE_ATOMIC_O_TRUNC.
      
      But server needs to kill suid/sgid only if caller does not have CAP_FSETID.
      Given server does not have this information, client needs to send this info
      to server.
      
      So add a flag FUSE_OPEN_KILL_SUIDGID to fuse_open_in request which tells
      server to kill suid/sgid (only if group execute is set).
      
      This flag is added to the FUSE_OPEN request, as well as the FUSE_CREATE
      request if the create was non-exclusive, since that might result in an
      existing file being opened/truncated.
      
      Signed-off-by: default avatarVivek Goyal <vgoyal@redhat.com>
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
      643a666a
    • Vivek Goyal's avatar
      fuse: don't send ATTR_MODE to kill suid/sgid for handle_killpriv_v2 · 8981bdfd
      Vivek Goyal authored
      
      
      If client does a write() on a suid/sgid file, VFS will first call
      fuse_setattr() with ATTR_KILL_S[UG]ID set.  This requires sending setattr
      to file server with ATTR_MODE set to kill suid/sgid.  But to do that client
      needs to know latest mode otherwise it is racy.
      
      To reduce the race window, current code first call fuse_do_getattr() to get
      latest ->i_mode and then resets suid/sgid bits and sends rest to server
      with setattr(ATTR_MODE).  This does not reduce the race completely but
      narrows race window significantly.
      
      With fc->handle_killpriv_v2 enabled, it should be possible to remove this
      race completely.  Do not kill suid/sgid with ATTR_MODE at all.  It will be
      killed by server when WRITE request is sent to server soon.  This is
      similar to fc->handle_killpriv logic.  V2 is just more refined version of
      protocol.  Hence this patch does not send ATTR_MODE to kill suid/sgid if
      fc->handle_killpriv_v2 is enabled.
      
      This creates an issue if fc->writeback_cache is enabled.  In that case
      WRITE can be cached in guest and server might not see WRITE request and
      hence will not kill suid/sgid.  Miklos suggested that in such cases, we
      should fallback to a writethrough WRITE instead and that will generate
      WRITE request and kill suid/sgid.  This patch implements that too.
      
      But this relies on client seeing the suid/sgid set.  If another client sets
      suid/sgid and this client does not see it immideately, then we will not
      fallback to writethrough WRITE.  So this is one limitation with both
      fc->handle_killpriv_v2 and fc->writeback_cache enabled.  Both the options
      are not fully compatible.  But might be good enough for many use cases.
      
      Note: This patch is not checking whether security.capability is set or not
            when falling back to writethrough path.  If suid/sgid is not set and
            only security.capability is set, that will be taken care of by
            file_remove_privs() call in ->writeback_cache path.
      
      Signed-off-by: default avatarVivek Goyal <vgoyal@redhat.com>
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
      8981bdfd
    • Vivek Goyal's avatar
      fuse: setattr should set FATTR_KILL_SUIDGID · 31792161
      Vivek Goyal authored
      
      
      If fc->handle_killpriv_v2 is enabled, we expect file server to clear
      suid/sgid/security.capbility upon chown/truncate/write as appropriate.
      
      Upon truncate (ATTR_SIZE), suid/sgid are cleared only if caller does not
      have CAP_FSETID.  File server does not know whether caller has CAP_FSETID
      or not.  Hence set FATTR_KILL_SUIDGID upon truncate to let file server know
      that caller does not have CAP_FSETID and it should kill suid/sgid as
      appropriate.
      
      On chown (ATTR_UID/ATTR_GID) suid/sgid need to be cleared irrespective of
      capabilities of calling process, so set FATTR_KILL_SUIDGID unconditionally
      in that case.
      
      Signed-off-by: default avatarVivek Goyal <vgoyal@redhat.com>
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
      31792161
    • Vivek Goyal's avatar
      fuse: set FUSE_WRITE_KILL_SUIDGID in cached write path · b8667395
      Vivek Goyal authored
      
      
      With HANDLE_KILLPRIV_V2, server will need to kill suid/sgid if caller does
      not have CAP_FSETID.  We already have a flag FUSE_WRITE_KILL_SUIDGID in
      WRITE request and we already set it in direct I/O path.
      
      To make it work in cached write path also, start setting
      FUSE_WRITE_KILL_SUIDGID in this path too.
      
      Set it only if fc->handle_killpriv_v2 is set.  Otherwise client is
      responsible for kill suid/sgid.
      
      In case of direct I/O we set FUSE_WRITE_KILL_SUIDGID unconditionally
      because we don't call file_remove_privs() in that path (with cache=none
      option).
      
      Signed-off-by: default avatarVivek Goyal <vgoyal@redhat.com>
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
      b8667395
    • Miklos Szeredi's avatar
      fuse: rename FUSE_WRITE_KILL_PRIV to FUSE_WRITE_KILL_SUIDGID · 10c52c84
      Miklos Szeredi authored
      
      
      Kernel has:
      ATTR_KILL_PRIV -> clear "security.capability"
      ATTR_KILL_SUID -> clear S_ISUID
      ATTR_KILL_SGID -> clear S_ISGID if executable
      
      Fuse has:
      FUSE_WRITE_KILL_PRIV -> clear S_ISUID and S_ISGID if executable
      
      So FUSE_WRITE_KILL_PRIV implies the complement of ATTR_KILL_PRIV, which is
      somewhat confusing.  Also PRIV implies all privileges, including
      "security.capability".
      
      Change the name to FUSE_WRITE_KILL_SUIDGID and make FUSE_WRITE_KILL_PRIV an
      alias to perserve API compatibility
      
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
      10c52c84
    • Vivek Goyal's avatar
      fuse: introduce the notion of FUSE_HANDLE_KILLPRIV_V2 · 63f9909f
      Vivek Goyal authored
      
      
      We already have FUSE_HANDLE_KILLPRIV flag that says that file server will
      remove suid/sgid/caps on truncate/chown/write. But that's little different
      from what Linux VFS implements.
      
      To be consistent with Linux VFS behavior what we want is.
      
      - caps are always cleared on chown/write/truncate
      - suid is always cleared on chown, while for truncate/write it is cleared
        only if caller does not have CAP_FSETID.
      - sgid is always cleared on chown, while for truncate/write it is cleared
        only if caller does not have CAP_FSETID as well as file has group execute
        permission.
      
      As previous flag did not provide above semantics. Implement a V2 of the
      protocol with above said constraints.
      
      Server does not know if caller has CAP_FSETID or not. So for the case
      of write()/truncate(), client will send information in special flag to
      indicate whether to kill priviliges or not. These changes are in subsequent
      patches.
      
      FUSE_HANDLE_KILLPRIV_V2 relies on WRITE being sent to server to clear
      suid/sgid/security.capability. But with ->writeback_cache, WRITES are
      cached in guest. So it is not recommended to use FUSE_HANDLE_KILLPRIV_V2
      and writeback_cache together. Though it probably might be good enough
      for lot of use cases.
      
      Signed-off-by: default avatarVivek Goyal <vgoyal@redhat.com>
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
      63f9909f
    • Miklos Szeredi's avatar
      fuse: always revalidate if exclusive create · df8629af
      Miklos Szeredi authored
      
      
      Failure to do so may result in EEXIST even if the file only exists in the
      cache and not in the filesystem.
      
      The atomic nature of O_EXCL mandates that the cached state should be
      ignored and existence verified anew.
      
      Reported-by: default avatarKen Schalk <kschalk@nvidia.com>
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
      df8629af
    • Miklos Szeredi's avatar
      virtiofs: clean up error handling in virtio_fs_get_tree() · 833c5a42
      Miklos Szeredi authored
      
      
      Avoid duplicating error cleanup.
      
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
      833c5a42
    • Miklos Szeredi's avatar
      fuse: add fuse_sb_destroy() helper · 6a68d1e1
      Miklos Szeredi authored
      
      
      This is to avoid minor code duplication between fuse_kill_sb_anon() and
      fuse_kill_sb_blk().
      
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
      6a68d1e1
    • Miklos Szeredi's avatar
      fuse: simplify get_fuse_conn*() · bd3bf1e8
      Miklos Szeredi authored
      
      
      All callers dereference the result, so no point in checking for NULL
      pointer dereference here.
      
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
      bd3bf1e8
    • Miklos Szeredi's avatar
      fuse: get rid of fuse_mount refcount · 514b5e3f
      Miklos Szeredi authored
      
      
      Fuse mount now only ever has a refcount of one (before being freed) so the
      count field is unnecessary.
      
      Remove the refcounting and fold fuse_mount_put() into callers.  The only
      caller of fuse_mount_put() where fm->fc was NULL is fuse_dentry_automount()
      and here the fuse_conn_put() can simply be omitted.
      
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
      514b5e3f
    • Miklos Szeredi's avatar
      virtiofs: simplify sb setup · b19d3d00
      Miklos Szeredi authored
      
      
      Currently when acquiring an sb for virtiofs fuse_mount_get() is being
      called from virtio_fs_set_super() if a new sb is being filled and
      fuse_mount_put() is called unconditionally after sget_fc() returns.
      
      The exact same result can be obtained by checking whether
      fs_contex->s_fs_info was set to NULL (ref trasferred to sb->s_fs_info) and
      only calling fuse_mount_put() if the ref wasn't transferred (error or
      matching sb found).
      
      This allows getting rid of virtio_fs_set_super() and fuse_mount_get().
      
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
      b19d3d00
    • Miklos Szeredi's avatar
      virtiofs fix leak in setup · 66ab33bf
      Miklos Szeredi authored
      This can be triggered for example by adding the "-omand" mount option,
      which will be rejected and virtio_fs_fill_super() will return an error.
      
      In such a case the allocations for fuse_conn and fuse_mount will leak due
      to s_root not yet being set and so ->put_super() not being called.
      
      Fixes: a62a8ef9
      
       ("virtio-fs: add virtiofs filesystem")
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
      66ab33bf
    • Miklos Szeredi's avatar
      fuse: launder page should wait for page writeback · 3993382b
      Miklos Szeredi authored
      
      
      Qian Cai reports that the WARNING in tree_insert() can be triggered by a
      fuzzer with the following call chain:
      
      invalidate_inode_pages2_range()
         fuse_launder_page()
            fuse_writepage_locked()
               tree_insert()
      
      The reason is that another write for the same page is already queued.
      
      The simplest fix is to wait until the pending write is completed and only
      after that queue the new write.
      
      Since this case is very rare, the additional wait should not be a problem.
      
      Reported-by: default avatarQian Cai <cai@redhat.com>
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
      3993382b
  3. Oct 26, 2020
  4. Oct 25, 2020
    • Hans de Goede's avatar
      i2c: core: Restore acpi_walk_dep_device_list() getting called after registering the ACPI i2c devs · 8058d699
      Hans de Goede authored
      Commit 21653a41 ("i2c: core: Call i2c_acpi_install_space_handler()
      before i2c_acpi_register_devices()")'s intention was to only move the
      acpi_install_address_space_handler() call to the point before where
      the ACPI declared i2c-children of the adapter where instantiated by
      i2c_acpi_register_devices().
      
      But i2c_acpi_install_space_handler() had a call to
      acpi_walk_dep_device_list() hidden (that is I missed it) at the end
      of it, so as an unwanted side-effect now acpi_walk_dep_device_list()
      was also being called before i2c_acpi_register_devices().
      
      Move the acpi_walk_dep_device_list() call to the end of
      i2c_acpi_register_devices(), so that it is once again called *after*
      the i2c_client-s hanging of the adapter have been created.
      
      This fixes the Microsoft Surface Go 2 hanging at boot.
      
      Fixes: 21653a41 ("i2c: core: Call i2c_acpi_install_space_handler() before i2c_acpi_register_devices()")
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=209627
      
      
      Reported-by: default avatarRainer Finke <rainer@finke.cc>
      Reported-by: default avatarKieran Bingham <kieran.bingham@ideasonboard.com>
      Suggested-by: default avatarMaximilian Luz <luzmaximilian@gmail.com>
      Tested-by: default avatarKieran Bingham <kieran.bingham@ideasonboard.com>
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Signed-off-by: default avatarWolfram Sang <wsa@kernel.org>
      8058d699
    • Linus Torvalds's avatar
      Merge tag 'block-5.10-2020-10-24' of git://git.kernel.dk/linux-block · d7691390
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
      
       - NVMe pull request from Christoph
           - rdma error handling fixes (Chao Leng)
           - fc error handling and reconnect fixes (James Smart)
           - fix the qid displace when tracing ioctl command (Keith Busch)
           - don't use BLK_MQ_REQ_NOWAIT for passthru (Chaitanya Kulkarni)
           - fix MTDT for passthru (Logan Gunthorpe)
           - blacklist Write Same on more devices (Kai-Heng Feng)
           - fix an uninitialized work struct (zhenwei pi)"
      
       - lightnvm out-of-bounds fix (Colin)
      
       - SG allocation leak fix (Doug)
      
       - rnbd fixes (Gioh, Guoqing, Jack)
      
       - zone error translation fixes (Keith)
      
       - kerneldoc markup fix (Mauro)
      
       - zram lockdep fix (Peter)
      
       - Kill unused io_context members (Yufen)
      
       - NUMA memory allocation cleanup (Xianting)
      
       - NBD config wakeup fix (Xiubo)
      
      * tag 'block-5.10-2020-10-24' of git://git.kernel.dk/linux-block: (27 commits)
        block: blk-mq: fix a kernel-doc markup
        nvme-fc: shorten reconnect delay if possible for FC
        nvme-fc: wait for queues to freeze before calling update_hr_hw_queues
        nvme-fc: fix error loop in create_hw_io_queues
        nvme-fc: fix io timeout to abort I/O
        null_blk: use zone status for max active/open
        nvmet: don't use BLK_MQ_REQ_NOWAIT for passthru
        nvmet: cleanup nvmet_passthru_map_sg()
        nvmet: limit passthru MTDS by BIO_MAX_PAGES
        nvmet: fix uninitialized work for zero kato
        nvme-pci: disable Write Zeroes on Sandisk Skyhawk
        nvme: use queuedata for nvme_req_qid
        nvme-rdma: fix crash due to incorrect cqe
        nvme-rdma: fix crash when connect rejected
        block: remove unused members for io_context
        blk-mq: remove the calling of local_memory_node()
        zram: Fix __zram_bvec_{read,write}() locking order
        skd_main: remove unused including <linux/version.h>
        sgl_alloc_order: fix memory leak
        lightnvm: fix out-of-bounds write to array devices->info[]
        ...
      d7691390
    • Linus Torvalds's avatar
      Merge tag 'io_uring-5.10-2020-10-24' of git://git.kernel.dk/linux-block · af004187
      Linus Torvalds authored
      Pull io_uring fixes from Jens Axboe:
      
       - fsize was missed in previous unification of work flags
      
       - Few fixes cleaning up the flags unification creds cases (Pavel)
      
       - Fix NUMA affinities for completely unplugged/replugged node for io-wq
      
       - Two fallout fixes from the set_fs changes. One local to io_uring, one
         for the splice entry point that io_uring uses.
      
       - Linked timeout fixes (Pavel)
      
       - Removal of ->flush() ->files work-around that we don't need anymore
         with referenced files (Pavel)
      
       - Various cleanups (Pavel)
      
      * tag 'io_uring-5.10-2020-10-24' of git://git.kernel.dk/linux-block:
        splice: change exported internal do_splice() helper to take kernel offset
        io_uring: make loop_rw_iter() use original user supplied pointers
        io_uring: remove req cancel in ->flush()
        io-wq: re-set NUMA node affinities if CPUs come online
        io_uring: don't reuse linked_timeout
        io_uring: unify fsize with def->work_flags
        io_uring: fix racy REQ_F_LINK_TIMEOUT clearing
        io_uring: do poll's hash_node init in common code
        io_uring: inline io_poll_task_handler()
        io_uring: remove extra ->file check in poll prep
        io_uring: make cached_cq_overflow non atomic_t
        io_uring: inline io_fail_links()
        io_uring: kill ref get/drop in personality init
        io_uring: flags-based creds init in queue
      af004187
    • Linus Torvalds's avatar
      Merge tag 'libata-5.10-2020-10-24' of git://git.kernel.dk/linux-block · cb6b2897
      Linus Torvalds authored
      Pull libata fixes from Jens Axboe:
       "Two minor libata fixes:
      
         - Fix a DMA boundary mask regression for sata_rcar (Geert)
      
         - kerneldoc markup fix (Mauro)"
      
      * tag 'libata-5.10-2020-10-24' of git://git.kernel.dk/linux-block:
        ata: fix some kernel-doc markups
        ata: sata_rcar: Fix DMA boundary mask
      cb6b2897
    • Linus Torvalds's avatar
      Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 0eac1102
      Linus Torvalds authored
      Pull misc vfs updates from Al Viro:
       "Assorted stuff all over the place (the largest group here is
        Christoph's stat cleanups)"
      
      * 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        fs: remove KSTAT_QUERY_FLAGS
        fs: remove vfs_stat_set_lookup_flags
        fs: move vfs_fstatat out of line
        fs: implement vfs_stat and vfs_lstat in terms of vfs_fstatat
        fs: remove vfs_statx_fd
        fs: omfs: use kmemdup() rather than kmalloc+memcpy
        [PATCH] reduce boilerplate in fsid handling
        fs: Remove duplicated flag O_NDELAY occurring twice in VALID_OPEN_FLAGS
        selftests: mount: add nosymfollow tests
        Add a "nosymfollow" mount option.
      0eac1102
    • Linus Torvalds's avatar
      Merge tag 'dma-mapping-5.10-1' of git://git.infradead.org/users/hch/dma-mapping · 1b307ac8
      Linus Torvalds authored
      Pull dma-mapping fixes from Christoph Hellwig:
      
       - document the new dma_{alloc,free}_pages() API
      
       - two fixups for the dma-mapping.h split
      
      * tag 'dma-mapping-5.10-1' of git://git.infradead.org/users/hch/dma-mapping:
        dma-mapping: document dma_{alloc,free}_pages
        dma-mapping: move more functions to dma-map-ops.h
        ARM/sa1111: add a missing include of dma-map-ops.h
      1b307ac8
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 9bf8d8bc
      Linus Torvalds authored
      Pull KVM fixes from Paolo Bonzini:
       "Two fixes for this merge window, and an unrelated bugfix for a host
        hang"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: ioapic: break infinite recursion on lazy EOI
        KVM: vmx: rename pi_init to avoid conflict with paride
        KVM: x86/mmu: Avoid modulo operator on 64-bit value to fix i386 build
      9bf8d8bc
    • Linus Torvalds's avatar
      Merge tag 'x86_seves_fixes_for_v5.10_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c51ae124
      Linus Torvalds authored
      Pull x86 SEV-ES fixes from Borislav Petkov:
       "Three fixes to SEV-ES to correct setting up the new early pagetable on
        5-level paging machines, to always map boot_params and the kernel
        cmdline, and disable stack protector for ../compressed/head{32,64}.c.
        (Arvind Sankar)"
      
      * tag 'x86_seves_fixes_for_v5.10_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/boot/64: Explicitly map boot_params and command line
        x86/head/64: Disable stack protection for head$(BITS).o
        x86/boot/64: Initialize 5-level paging variables earlier
      c51ae124