Linux kernel source tree
Go to file
Maxim Levitsky 603ccef42c KVM: x86: SVM: fix avic_kick_target_vcpus_fast
There are two issues in avic_kick_target_vcpus_fast

1. It is legal to issue an IPI request with APIC_DEST_NOSHORT
   and a physical destination of 0xFF (or 0xFFFFFFFF in case of x2apic),
   which must be treated as a broadcast destination.

   Fix this by explicitly checking for it.
   Also don’t use ‘index’ in this case as it gives no new information.

2. It is legal to issue a logical IPI request to more than one target.
   Index field only provides index in physical id table of first
   such target and therefore can't be used before we are sure
   that only a single target was addressed.

   Instead, parse the ICRL/ICRH, double check that a unicast interrupt
   was requested, and use that info to figure out the physical id
   of the target vCPU.
   At that point there is no need to use the index field as well.

In addition to fixing the above	issues,	also skip the call to
kvm_apic_match_dest.

It is possible to do this now, because now as long as AVIC is not
inhibited, it is guaranteed that none of the vCPUs changed their
apic id from its default value.

This fixes boot of windows guest with AVIC enabled because it uses
IPI with 0xFF destination and no destination shorthand.

Fixes: 7223fd2d53 ("KVM: SVM: Use target APIC ID to complete AVIC IRQs when possible")
Cc: stable@vger.kernel.org

Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com>
Message-Id: <20220606180829.102503-5-mlevitsk@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2022-06-09 10:52:19 -04:00
arch KVM: x86: SVM: fix avic_kick_target_vcpus_fast 2022-06-09 10:52:19 -04:00
block for-5.19/drivers-2022-06-02 2022-06-03 10:25:56 -07:00
certs Kbuild updates for v5.19 2022-05-26 12:09:50 -07:00
crypto This update includes the following changes: 2022-05-27 18:06:49 -07:00
Documentation KVM: arm64: Ignore 'kvm-arm.mode=protected' when using VHE 2022-06-09 13:24:02 +01:00
drivers fix for breakage in #work.fd this window 2022-06-05 17:14:03 -07:00
fs fix for breakage in #work.fd this window 2022-06-05 17:14:03 -07:00
include A single featurelet for delay accounting. Delayed a bit 2022-06-05 16:58:27 -07:00
init This set of changes updates init and user mode helper tasks to be 2022-06-03 16:03:05 -07:00
ipc These changes update the ipc sysctls so that they are fundamentally 2022-06-03 15:54:57 -07:00
kernel KVM/riscv fixes for 5.19, take #1 2022-06-09 09:45:00 -04:00
lib Bitmap patches for 5.19-rc1 2022-06-04 14:04:27 -07:00
LICENSES LICENSES/LGPL-2.1: Add LGPL-2.1-or-later as valid identifiers 2021-12-16 14:33:10 +01:00
mm Hot fixes for 5.19-rc1. 2022-06-05 17:05:38 -07:00
net bluetooth: don't use bitmaps for random flag accesses 2022-06-05 16:28:41 -07:00
samples drm for 5.19-rc1 2022-05-25 16:18:27 -07:00
scripts A set of objtool fixes: 2022-06-05 09:45:27 -07:00
security Cleanups (and one fix) around struct mount handling. 2022-06-04 19:00:05 -07:00
sound USB / Thunderbolt changes for 5.19-rc1 2022-06-03 11:17:49 -07:00
tools KVM/riscv fixes for 5.19, take #1 2022-06-09 09:45:00 -04:00
usr Not a lot of material this cycle. Many singleton patches against various 2022-05-27 11:22:03 -07:00
virt KVM/riscv fixes for 5.19, take #1 2022-06-09 09:45:00 -04:00
.clang-format clang-format: Fix space after for_each macros 2022-05-20 19:27:16 +02:00
.cocciconfig
.get_maintainer.ignore Opt out of scripts/get_maintainer.pl 2019-05-16 10:53:40 -07:00
.gitattributes .gitattributes: use 'dts' diff driver for dts files 2019-12-04 19:44:11 -08:00
.gitignore kbuild: split the second line of *.mod into *.usyms 2022-05-08 03:16:59 +09:00
.mailmap Hot fixes for 5.19-rc1. 2022-06-05 17:05:38 -07:00
COPYING COPYING: state that all contributions really are covered by this file 2020-02-10 13:32:20 -08:00
CREDITS MAINTAINERS: replace a Microchip AT91 maintainer 2022-02-09 11:30:01 +01:00
Kbuild kbuild: rename hostprogs-y/always to hostprogs/always-y 2020-02-04 01:53:07 +09:00
Kconfig kbuild: ensure full rebuild when the compiler is updated 2020-05-12 13:28:33 +09:00
MAINTAINERS MAINTAINERS: Limit KVM RISC-V entry to existing selftests 2022-06-09 09:18:22 +05:30
Makefile Linux 5.19-rc1 2022-06-05 17:18:54 -07:00
README Drop all 00-INDEX files from Documentation/ 2018-09-09 15:08:58 -06:00

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.