Linux kernel source tree
Go to file
Linus Torvalds 87dc996d56 A urgent fix for the XEN related PCI/MSI changes:
XEN used a global variable to disable the masking of MSI interrupts as
   XEN handles that on the hypervisor side. This turned out to be a problem
   with VMD as the PCI devices behind a VMD bridge are not always handled
   by the hypervisor and then require masking by guest.
 
   To solve this the global variable was replaced by a interrupt domain
   specific flag, which is set by the generic XEN PCI/MSI domain, but not by
   VMD or any other domain in the system.
 
   So far, so good. But the implementation (and the reviewer) missed the
   fact, that accessing the domain flag cannot be done directly because
   there are at least two situations, where this fails. Legacy architectures
   are not providing interrupt domains at all. The new MSI parent domains do
   not require to have a domain info pointer. Both cases result in a
   unconditional NULL pointer derefence.
 
   The PCI/MSI code already has a function to query the MSI domain specific
   flag in a safe way, which handles all possible cases of PCI/MSI backends.
 
   So the fix it simply to replace the open coded checks by invoking the
   safe helper to query the flag.
 -----BEGIN PGP SIGNATURE-----
 
 iQJHBAABCgAxFiEEQp8+kY+LLUocC4bMphj1TA10mKEFAmfkUA4THHRnbHhAbGlu
 dXRyb25peC5kZQAKCRCmGPVMDXSYoVymD/4xvcTnjjBQgesBWtkZ/wyvOx+zAoZD
 s6ikEnYVzG6jjiob9SXrttJS/fZDuFujmntvq1lp+Lw1MbK/k9qyeKpMUkjVw4V5
 gHgPUZUkKapk2Jf3vYy23cb8CuRp9nANi7r//kzefN/pyEmfuqme3AYNJjusyEyn
 QfhLGE046GI2PLLS+4FKUjk+/aPEk/Pywy3moaSpDVd8Kmsus5GTmxt/AWcwGfcw
 00TSRKstpew+RVLBb7NvSar0D43vtvP/8If6qkIpEttVhB6/4zTREB1z6iPjUSf0
 2+90iubCdSm8wO+y0JDmA13cUct2XqW19M75imSLBIsJAlVtgWgOi2IJF787vDPJ
 3bN2HeScCbl8+0e4Uv+NOi2c906k43MtC4XTrIq0nZjAuRyF9FEtdK+IrcywxuKH
 nuaHtlseGWg97kU49yDTi1k+tRvIpmsibKM4pKZoUZKNMfE2soCFjzj40O7hTcKJ
 LaN/fcDdPGnn+GMPywwIWc7e6kOIYnCqakom/x7e+KWpqfujnM3KLiyOy9iys/oL
 xXfKnMbbmL0CSdUrC7EJn20KFRA2ovAJ+ouzJRkFhCdERCVidY29O3VrstacbevS
 zQKb302PbFraGHa/MiuzyF0BuWuM0T0d12+2wEoVJpN/GTAbgO2vVbk2gvHEReXJ
 eMDn02f5lF659w==
 =ZPMY
 -----END PGP SIGNATURE-----

Merge tag 'irq-urgent-2025-03-26' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull MSI irq fix from Thomas Gleixner:
 "An urgent fix for the XEN related PCI/MSI changes:

  XEN used a global variable to disable the masking of MSI interrupts as
  XEN handles that on the hypervisor side. This turned out to be a
  problem with VMD as the PCI devices behind a VMD bridge are not always
  handled by the hypervisor and then require masking by guest.

  To solve this the global variable was replaced by a interrupt domain
  specific flag, which is set by the generic XEN PCI/MSI domain, but not
  by VMD or any other domain in the system.

  So far, so good. But the implementation (and the reviewer) missed the
  fact, that accessing the domain flag cannot be done directly because
  there are at least two situations, where this fails.

  Legacy architectures are not providing interrupt domains at all. The
  new MSI parent domains do not require to have a domain info pointer.
  Both cases result in a unconditional NULL pointer derefence.

  The PCI/MSI code already has a function to query the MSI domain
  specific flag in a safe way, which handles all possible cases of
  PCI/MSI backends.

  So the fix it simply to replace the open coded checks by invoking the
  safe helper to query the flag"

* tag 'irq-urgent-2025-03-26' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  PCI/MSI: Handle the NOMASK flag correctly for all PCI/MSI backends
2025-03-26 13:20:22 -07:00
arch platform-drivers-x86 for v6.15-1 2025-03-26 09:54:40 -07:00
block CRC updates for 6.15 2025-03-25 18:33:04 -07:00
certs sign-file,extract-cert: use pkcs11 provider for OPENSSL MAJOR >= 3 2024-09-20 19:52:48 +03:00
crypto crypto: crct10dif - remove from crypto API 2025-02-08 20:06:30 -08:00
Documentation * MTD changes: 2025-03-26 10:28:36 -07:00
drivers A urgent fix for the XEN related PCI/MSI changes: 2025-03-26 13:20:22 -07:00
fs fscrypt updates for 6.15 2025-03-25 18:31:38 -07:00
include * MTD changes: 2025-03-26 10:28:36 -07:00
init [ Merge note: this pull request depends on you having merged 2025-03-24 22:06:11 -07:00
io_uring lsm/stable-6.15 PR 20250323 2025-03-25 15:44:19 -07:00
ipc treewide: const qualify ctl_tables where applicable 2025-01-28 13:48:37 +01:00
kernel lsm/stable-6.15 PR 20250323 2025-03-25 15:44:19 -07:00
lib CRC updates for 6.15 2025-03-25 18:33:04 -07:00
LICENSES LICENSES: add 0BSD license text 2024-09-01 20:43:24 -07:00
mm A treewide hrtimer timer cleanup 2025-03-25 10:54:15 -07:00
net A treewide hrtimer timer cleanup 2025-03-25 10:54:15 -07:00
rust lsm/stable-6.15 PR 20250323 2025-03-25 15:44:19 -07:00
samples hardening updates for v6.15-rc1 2025-03-24 15:18:08 -07:00
scripts CRC updates for 6.15 2025-03-25 18:33:04 -07:00
security Smack patches for v6.15 2025-03-25 16:04:11 -07:00
sound hid-for-linus-2025032601 2025-03-26 10:05:43 -07:00
tools platform-drivers-x86 for v6.15-1 2025-03-26 09:54:40 -07:00
usr kbuild: hdrcheck: fix cross build with clang 2025-03-05 04:06:45 +09:00
virt ARM: 2025-03-25 14:22:07 -07:00
.clang-format clang-format: Update with v6.11-rc1's for_each macro list 2024-08-02 13:20:31 +02:00
.clippy.toml rust: give Clippy the minimum supported Rust version 2025-01-10 00:17:25 +01:00
.cocciconfig
.editorconfig .editorconfig: remove trim_trailing_whitespace option 2024-06-13 16:47:52 +02:00
.get_maintainer.ignore MAINTAINERS: Retire Ralf Baechle 2024-11-12 15:48:59 +01:00
.gitattributes .gitattributes: set diff driver for Rust source code files 2023-05-31 17:48:25 +02:00
.gitignore rust: use host dylib naming convention to support macOS 2025-01-10 01:01:24 +01:00
.mailmap lsm/stable-6.15 PR 20250323 2025-03-25 15:44:19 -07:00
.rustfmt.toml rust: add .rustfmt.toml 2022-09-28 09:02:20 +02:00
COPYING COPYING: state that all contributions really are covered by this file 2020-02-10 13:32:20 -08:00
CREDITS MAINTAINERS: Move Pavel to kernel.org address 2025-02-07 09:12:33 -08:00
Kbuild Kbuild updates for v6.1 2022-10-10 12:00:45 -07:00
Kconfig kbuild: ensure full rebuild when the compiler is updated 2020-05-12 13:28:33 +09:00
MAINTAINERS hid-for-linus-2025032601 2025-03-26 10:05:43 -07:00
Makefile [ Merge note: this pull request depends on you having merged 2025-03-24 22:06:11 -07:00
README README: Fix spelling 2024-03-18 03:36:32 -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 reStructuredText 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.