1. 02 May, 2024 12 commits
    • Nathan Chancellor's avatar
      kbuild: Remove support for Clang's ThinLTO caching · aba09154
      Nathan Chancellor authored
      There is an issue in clang's ThinLTO caching (enabled for the kernel via
      '--thinlto-cache-dir') with .incbin, which the kernel occasionally uses
      to include data within the kernel, such as the .config file for
      /proc/config.gz. For example, when changing the .config and rebuilding
      vmlinux, the copy of .config in vmlinux does not match the copy of
      .config in the build folder:
      
        $ echo 'CONFIG_LTO_NONE=n
        CONFIG_LTO_CLANG_THIN=y
        CONFIG_IKCONFIG=y
        CONFIG_HEADERS_INSTALL=y' >kernel/configs/repro.config
      
        $ make -skj"$(nproc)" ARCH=x86_64 LLVM=1 clean defconfig repro.config vmlinux
        ...
      
        $ grep CONFIG_HEADERS_INSTALL .config
        CONFIG_HEADERS_INSTALL=y
      
        $ scripts/extract-ikconfig vmlinux | grep CONFIG_HEADERS_INSTALL
        CONFIG_HEADERS_INSTALL=y
      
        $ scripts/config -d HEADERS_INSTALL
      
        $ make -kj"$(nproc)" ARCH=x86_64 LLVM=1 vmlinux
        ...
          UPD     kernel/config_data
          GZIP    kernel/config_data.gz
          CC      kernel/configs.o
        ...
          LD      vmlinux
        ...
      
        $ grep CONFIG_HEADERS_INSTALL .config
        # CONFIG_HEADERS_INSTALL is not set
      
        $ scripts/extract-ikconfig vmlinux | grep CONFIG_HEADERS_INSTALL
        CONFIG_HEADERS_INSTALL=y
      
      Without '--thinlto-cache-dir' or when using full LTO, this issue does
      not occur.
      
      Benchmarking incremental builds on a few different machines with and
      without the cache shows a 20% increase in incremental build time without
      the cache when measured by touching init/main.c and running 'make all'.
      
      ARCH=arm64 defconfig + CONFIG_LTO_CLANG_THIN=y on an arm64 host:
      
        Benchmark 1: With ThinLTO cache
          Time (mean ± σ):     56.347 s ±  0.163 s    [User: 83.768 s, System: 24.661 s]
          Range (min … max):   56.109 s … 56.594 s    10 runs
      
        Benchmark 2: Without ThinLTO cache
          Time (mean ± σ):     67.740 s ±  0.479 s    [User: 718.458 s, System: 31.797 s]
          Range (min … max):   67.059 s … 68.556 s    10 runs
      
        Summary
          With ThinLTO cache ran
            1.20 ± 0.01 times faster than Without ThinLTO cache
      
      ARCH=x86_64 defconfig + CONFIG_LTO_CLANG_THIN=y on an x86_64 host:
      
        Benchmark 1: With ThinLTO cache
          Time (mean ± σ):     85.772 s ±  0.252 s    [User: 91.505 s, System: 8.408 s]
          Range (min … max):   85.447 s … 86.244 s    10 runs
      
        Benchmark 2: Without ThinLTO cache
          Time (mean ± σ):     103.833 s ±  0.288 s    [User: 232.058 s, System: 8.569 s]
          Range (min … max):   103.286 s … 104.124 s    10 runs
      
        Summary
          With ThinLTO cache ran
            1.21 ± 0.00 times faster than Without ThinLTO cache
      
      While it is unfortunate to take this performance improvement off the
      table, correctness is more important. If/when this is fixed in LLVM, it
      can potentially be brought back in a conditional manner. Alternatively,
      a developer can just disable LTO if doing incremental compiles quickly
      is important, as a full compile cycle can still take over a minute even
      with the cache and it is unlikely that LTO will result in functional
      differences for a kernel change.
      
      Cc: stable@vger.kernel.org
      Fixes: dc5723b0 ("kbuild: add support for Clang LTO")
      Reported-by: default avatarYifan Hong <elsk@google.com>
      Closes: https://github.com/ClangBuiltLinux/linux/issues/2021Reported-by: default avatarMasami Hiramatsu <mhiramat@kernel.org>
      Closes: https://lore.kernel.org/r/20220327115526.cc4b0ff55fc53c97683c3e4d@kernel.org/Signed-off-by: default avatarNathan Chancellor <nathan@kernel.org>
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      aba09154
    • Masahiro Yamada's avatar
      kconfig: remove 'optional' property support · 6a121588
      Masahiro Yamada authored
      The 'choice' statement is primarily used to exclusively select one
      option, but the 'optional' property allows all entries to be disabled.
      
      In the following example, both A and B can be disabled simultaneously:
      
          choice
                  prompt "choose A, B, or nothing"
                  optional
      
          config A
                  bool "A"
      
          config B
                  bool "B"
      
          endchoice
      
      You can achieve the equivalent outcome by other means.
      
      A common solution is to add another option to guard the choice block.
      In the following example, you can set ENABLE_A_B_CHOICE=n to disable
      the entire choice block:
      
          choice
                  prompt "choose A or B"
                  depends on ENABLE_A_B_CHOICE
      
          config A
                  bool "A"
      
          config B
                  bool "B"
      
          endchoice
      
      Another approach is to insert one more entry:
      
          choice
                  prompt "choose A, B, or disable both"
      
          config A
                  bool "A"
      
          config B
                  bool "B"
      
          config DISABLE_A_AND_B
                  bool "choose this to disable both A and B"
      
          endchoice
      
      Some real examples are DEBUG_INFO_NONE, INITRAMFS_COMPRESSION_NONE,
      LTO_NONE, etc.
      
      The 'optional' property is even more unnecessary for a tristate choice.
      
      Without the 'optional' property, you can disable A and B; you can set
      'm' in the choice prompt, and disable A and B individually:
      
          choice
                  prompt "choose one built-in or make them modular"
      
          config A
                  tristate "A"
      
          config B
                  tristate "B"
      
          endchoice
      
      In conclusion, the 'optional' property was unneeded.
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      Reviewed-by: default avatarNicolas Schier <n.schier@avm.de>
      6a121588
    • Masahiro Yamada's avatar
      sh: Convert the last use of 'optional' property in Kconfig · d9a1dab6
      Masahiro Yamada authored
      The 'choice' statement is primarily used to exclusively select one
      option, but the 'optional' property allows all entries to be disabled.
      
      This feature is rarely used. In fact, it is only used in arch/sh/Kconfig
      because the equivalent outcome can be achieved by inserting one more
      entry.
      
      The 'optional' property support will be removed from Kconfig.
      
      This commit replaces the 'optional' property with a dummy option,
      CMDLINE_FROM_BOOTLOADER, as seen in some other architectures.
      
      Note:
       The 'default CMDLINE_OVERWRITE' statement does not work as intended
       in combination with 'optional'. If neither CONFIG_CMDLINE_OVERWRITE
       nor CONFIG_CMDLINE_EXTEND is specified in a defconfig file, both of
       them are disabled. This is a bug. To maintain the current behavior,
       I added CONFIG_CMDLINE_FROM_BOOTLOADER=y to those defconfig files.
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      Acked-by: default avatarJohn Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
      d9a1dab6
    • Masahiro Yamada's avatar
      kconfig: remove SYMBOL_CHOICE flag · 1da251c6
      Masahiro Yamada authored
      All symbols except choices have a name.
      
      Previously, choices were allowed to have a name, but commit c83f0209
      ("kconfig: remove named choice support") eliminated that possibility.
      
      Now, it is easy to distinguish choices from normal symbols; if the name
      is NULL, it is a choice.
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      Reviewed-by: default avatarNicolas Schier <n.schier@avm.de>
      1da251c6
    • Masahiro Yamada's avatar
      kbuild: buildtar: remove warning for the default case · 2b1ab140
      Masahiro Yamada authored
      Given KBUILD_IMAGE properly set in arch/*/Makefile, the default case
      should work in most scenarios. The only oddity is the naming of the
      copy destination, vmlinux-kbuild-${KERNELRELEASE}. Let's rename it
      to vmlinuz-${KERNELRELEASE} because the kernel is often compressed.
      Remove the warning to avoid unnecessary patch submissions when the
      default case suffices.
      
      Remove the x86 case, which is now equivalent to the default.
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      Reviewed-by: default avatarNathan Chancellor <nathan@kernel.org>
      2b1ab140
    • Masahiro Yamada's avatar
      kconfig: remove unneeded if-conditional in conf_choice() · c2af3d03
      Masahiro Yamada authored
      All symbols except choices have a name.
      
      child->sym->name never becomes NULL inside choice blocks.
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      c2af3d03
    • Masahiro Yamada's avatar
      kconfig: use menu_for_each_entry() to traverse menu tree · 03c4ecaa
      Masahiro Yamada authored
      Use menu_for_each_entry() to traverse the menu tree instead of
      implementing similar logic in each function.
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      03c4ecaa
    • Masahiro Yamada's avatar
      kconfig: add menu_next() function and menu_for_each(_sub)_entry macros · 7284b4fb
      Masahiro Yamada authored
      Several functions require traversing menu entries sequentially. This
      commit introduces some helpers to simplify such operations.
      
      The menu_next() function facilitates depth-first traversal:
      
       1. Descend to the child level if the current menu has one
       2. Move to the next sibling at the same level if available
       3. Ascend to the parent level if there is no more child or sibling
      
      The menu_for_each_sub_entry() macro iterates over all submenu entries
      using depth-first traverse.
      
      The menu_for_each_entry() macro is the same, but over all menu entries.
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      7284b4fb
    • Ard Biesheuvel's avatar
      vmlinux: Avoid weak reference to notes section · 377d9095
      Ard Biesheuvel authored
      Weak references are references that are permitted to remain unsatisfied
      in the final link. This means they cannot be implemented using place
      relative relocations, resulting in GOT entries when using position
      independent code generation.
      
      The notes section should always exist, so the weak annotations can be
      omitted.
      Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      377d9095
    • Ard Biesheuvel's avatar
      kallsyms: Avoid weak references for kallsyms symbols · 951bcae6
      Ard Biesheuvel authored
      kallsyms is a directory of all the symbols in the vmlinux binary, and so
      creating it is somewhat of a chicken-and-egg problem, as its non-zero
      size affects the layout of the binary, and therefore the values of the
      symbols.
      
      For this reason, the kernel is linked more than once, and the first pass
      does not include any kallsyms data at all. For the linker to accept
      this, the symbol declarations describing the kallsyms metadata are
      emitted as having weak linkage, so they can remain unsatisfied. During
      the subsequent passes, the weak references are satisfied by the kallsyms
      metadata that was constructed based on information gathered from the
      preceding passes.
      
      Weak references lead to somewhat worse codegen, because taking their
      address may need to produce NULL (if the reference was unsatisfied), and
      this is not usually supported by RIP or PC relative symbol references.
      
      Given that these references are ultimately always satisfied in the final
      link, let's drop the weak annotation, and instead, provide fallback
      definitions in the linker script that are only emitted if an unsatisfied
      reference exists.
      
      While at it, drop the FRV specific annotation that these symbols reside
      in .rodata - FRV is long gone.
      
      Tested-by: Nick Desaulniers <ndesaulniers@google.com> # Boot
      Reviewed-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      Reviewed-by: default avatarKees Cook <keescook@chromium.org>
      Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
      Link: https://lkml.kernel.org/r/20230504174320.3930345-1-ardb%40kernel.orgSigned-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      951bcae6
    • Masahiro Yamada's avatar
      kbuild: buildtar: add comments about inconsistent package generation · c3f7bed8
      Masahiro Yamada authored
      scripts/package/buildtar checks some kernel packages, and copies the
      first image found. This may potentially produce an inconsistent (and
      possibly wrong) package.
      
      For instance, the for-loop for arm64 checks Image.{bz2,gz,lz4,lzma,lzo},
      and vmlinuz.efi, then copies the first image found, which might be a
      stale image created in a previous build.
      
      When CONFIG_EFI_ZBOOT is enabled in the pristine source tree,
      'make ARCH=arm64 tar-pkg' will build and copy vmlinuz.efi. This is the
      expected behavior.
      
      If you build the kernel with CONFIG_EFI_ZBOOT disabled, Image.gz will
      be created, which will remain in the tree until you run 'make clean'.
      Even if CONFIG_EFI_ZBOOT is turned on later, 'make ARCH=arm64 tar-pkg'
      will copy stale Image.gz instead of the latest vmlinuz.efi, as Image.gz
      takes precedence over vmlinuz.efi.
      
      In summary, the code "[ -f ... ] && cp" does not consistently produce
      the desired outcome.
      
      Other packaging targets are deterministic; deb-pkg and rpm-pkg copies
      ${KBUILD_IMAGE}, which is determined by CONFIG options.
      
      I removed [ -f ... ] checks from x86, alpha, parisc, and the default
      because they have a single kernel image to copy. If it is missing, it
      should be an error.
      
      I did not modify the code for mips, arm64, riscv. Instead, I left some
      comments. Eventually, someone may fix the code, or at the very least,
      it may discourage the copy-pasting of incorrect code to another
      architecture.
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      Reviewed-by: default avatarEmil Renner Berthing <emil.renner.berthing@canonical.com>
      Reviewed-by: default avatarNicolas Schier <nicolas@fjasle.eu>
      c3f7bed8
    • Rob Herring's avatar
      dt-bindings: kbuild: Add separate target/dependency for processed-schema.json · 604a57ba
      Rob Herring authored
      Running dtbs_check and dt_compatible_check targets really only depend
      on processed-schema.json, but the dependency is 'dt_binding_check'. That
      was sort worked around with the CHECK_DT_BINDING variable in order to
      skip some of the work that 'dt_binding_check' does. It still runs the
      full checks of the schemas which is not necessary and adds 10s of
      seconds to the build time. That's significant when checking only a few
      DTBs and with recent changes that have improved the validation time by
      6-7x.
      
      Add a new target, dt_binding_schema, which just builds
      processed-schema.json and can be used as the dependency for other
      targets. The scripts_dtc dependency isn't needed either as the examples
      aren't built for it.
      Signed-off-by: default avatarRob Herring <robh@kernel.org>
      Tested-by: default avatarConor Dooley <conor.dooley@microchip.com>
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      604a57ba
  2. 23 Apr, 2024 2 commits
  3. 22 Apr, 2024 2 commits
  4. 21 Apr, 2024 7 commits
    • Linus Torvalds's avatar
      Linux 6.9-rc5 · ed30a4a5
      Linus Torvalds authored
      ed30a4a5
    • Linus Torvalds's avatar
      Merge tag 'char-misc-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · 48cf398f
      Linus Torvalds authored
      Pull char / misc driver fixes from Greg KH:
       "Here are some small char/misc and other driver fixes for 6.9-rc5.
        Included in here are the following:
      
         - binder driver fix for reported problem
      
         - speakup crash fix
      
         - mei driver fixes for reported problems
      
         - comdei driver fix
      
         - interconnect driver fixes
      
         - rtsx driver fix
      
         - peci.h kernel doc fix
      
        All of these have been in linux-next for over a week with no reported
        problems"
      
      * tag 'char-misc-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
        peci: linux/peci.h: fix Excess kernel-doc description warning
        binder: check offset alignment in binder_get_object()
        comedi: vmk80xx: fix incomplete endpoint checking
        mei: vsc: Unregister interrupt handler for system suspend
        Revert "mei: vsc: Call wake_up() in the threaded IRQ handler"
        misc: rtsx: Fix rts5264 driver status incorrect when card removed
        mei: me: disable RPL-S on SPS and IGN firmwares
        speakup: Avoid crash on very long word
        interconnect: Don't access req_list while it's being manipulated
        interconnect: qcom: x1e80100: Remove inexistent ACV_PERF BCM
      48cf398f
    • Linus Torvalds's avatar
      Merge tag 'driver-core-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core · 4e90ba75
      Linus Torvalds authored
      Pull kernfs bugfix and documentation update from Greg KH:
       "Here are two changes for 6.9-rc5 that deal with "driver core" stuff,
        that do the following:
      
         - sysfs reference leak fix
      
         - embargoed-hardware-issues.rst update for Power
      
        Both of these have been in linux-next for over a week with no reported
        issues"
      
      * tag 'driver-core-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
        Documentation: embargoed-hardware-issues.rst: Add myself for Power
        fs: sysfs: Fix reference leak in sysfs_break_active_protection()
      4e90ba75
    • Linus Torvalds's avatar
      Merge tag 'tty-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · c0c6b5c0
      Linus Torvalds authored
      Pull tty/serial driver fixes from Greg KH:
       "Here are some small tty and serial driver fixes for 6.9-rc5 that
        resolve a bunch of reported problems. Included in here are:
      
         - MAINTAINERS and .mailmap update for Richard Genoud
      
         - serial core regression fixes from 6.9-rc1 changes
      
         - pci id cleanups
      
         - serial core crash fix
      
         - stm32 driver fixes
      
         - 8250 driver fixes
      
        All of these have been in linux-next for a while with no reported
        problems"
      
      * tag 'tty-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
        serial: stm32: Reset .throttled state in .startup()
        serial: stm32: Return IRQ_NONE in the ISR if no handling happend
        serial: core: Fix missing shutdown and startup for serial base port
        serial: core: Clearing the circular buffer before NULLifying it
        MAINTAINERS: mailmap: update Richard Genoud's email address
        serial/pmac_zilog: Remove flawed mitigation for rx irq flood
        serial: 8250_pci: Remove redundant PCI IDs
        serial: core: Fix regression when runtime PM is not enabled
        serial: mxs-auart: add spinlock around changing cts state
        serial: 8250_dw: Revert: Do not reclock if already at correct rate
        serial: 8250_lpc18xx: disable clks on error in probe()
      c0c6b5c0
    • Linus Torvalds's avatar
      Merge tag 'usb-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 5fa0ab45
      Linus Torvalds authored
      Pull USB / Thunderbolt driver fixes from Greg KH:
       "Here are some small USB and Thunderbolt driver fixes for 6.9-rc5.
        Included in here are:
      
         - MAINTAINER file update for invalid email address
      
         - usb-serial device id updates
      
         - typec driver fixes
      
         - thunderbolt / usb4 driver fixes
      
         - usb core shutdown fixes
      
         - cdc-wdm driver revert for reported problem in -rc1
      
         - usb gadget driver fixes
      
         - xhci driver fixes
      
        All of these have been in linux-next for a while with no reported
        problems"
      
      * tag 'usb-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (25 commits)
        USB: serial: option: add Telit FN920C04 rmnet compositions
        usb: dwc3: ep0: Don't reset resource alloc flag
        Revert "usb: cdc-wdm: close race between read and workqueue"
        USB: serial: option: add Rolling RW101-GL and RW135-GL support
        USB: serial: option: add Lonsung U8300/U9300 product
        USB: serial: option: add support for Fibocom FM650/FG650
        USB: serial: option: support Quectel EM060K sub-models
        USB: serial: option: add Fibocom FM135-GL variants
        usb: misc: onboard_usb_hub: Disable the USB hub clock on failure
        thunderbolt: Avoid notify PM core about runtime PM resume
        thunderbolt: Fix wake configurations after device unplug
        usb: dwc2: host: Fix dereference issue in DDMA completion flow.
        usb: typec: mux: it5205: Fix ChipID value typo
        MAINTAINERS: Drop Li Yang as their email address stopped working
        usb: gadget: fsl: Initialize udc before using it
        usb: Disable USB3 LPM at shutdown
        usb: gadget: f_ncm: Fix UAF ncm object at re-bind after usb ep transport error
        usb: typec: tcpm: Correct the PDO counting in pd_set
        usb: gadget: functionfs: Wait for fences before enqueueing DMABUF
        usb: gadget: functionfs: Fix inverted DMA fence direction
        ...
      5fa0ab45
    • Linus Torvalds's avatar
      Merge tag 'sched_urgent_for_v6.9_rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3b680865
      Linus Torvalds authored
      Pull scheduler fix from Borislav Petkov:
      
       - Add a missing memory barrier in the concurrency ID mm switching
      
      * tag 'sched_urgent_for_v6.9_rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched: Add missing memory barrier in switch_mm_cid
      3b680865
    • Linus Torvalds's avatar
      Merge tag 'x86_urgent_for_v6.9_rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d07a0b86
      Linus Torvalds authored
      Pull x86 fixes from Borislav Petkov:
      
       - Fix CPU feature dependencies of GFNI, VAES, and VPCLMULQDQ
      
       - Print the correct error code when FRED reports a bad event type
      
       - Add a FRED-specific INT80 handler without the special dances that
         need to happen in the current one
      
       - Enable the using-the-default-return-thunk-but-you-should-not warning
         only on configs which actually enable those special return thunks
      
       - Check the proper feature flags when selecting BHI retpoline
         mitigation
      
      * tag 'x86_urgent_for_v6.9_rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/cpufeatures: Fix dependencies for GFNI, VAES, and VPCLMULQDQ
        x86/fred: Fix incorrect error code printout in fred_bad_type()
        x86/fred: Fix INT80 emulation for FRED
        x86/retpolines: Enable the default thunk warning only on relevant configs
        x86/bugs: Fix BHI retpoline check
      d07a0b86
  5. 20 Apr, 2024 6 commits
    • Linus Torvalds's avatar
      Merge tag 'block-6.9-20240420' of git://git.kernel.dk/linux · 977b1ef5
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
       "Just two minor fixes that should go into the 6.9 kernel release, one
        fixing a regression with partition scanning errors, and one fixing a
        WARN_ON() that can get triggered if we race with a timer"
      
      * tag 'block-6.9-20240420' of git://git.kernel.dk/linux:
        blk-iocost: do not WARN if iocg was already offlined
        block: propagate partition scanning errors to the BLKRRPART ioctl
      977b1ef5
    • Linus Torvalds's avatar
      Merge tag 'email' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 39316e5f
      Linus Torvalds authored
      Pull email address update from James Bottomley:
       "My IBM email has stopped working, so update to a working email
        address"
      
      * tag 'email' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        MAINTAINERS: update to working email address
      39316e5f
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 81777226
      Linus Torvalds authored
      Pull kvm fixes from Paolo Bonzini:
       "This is a bit on the large side, mostly due to two changes:
      
         - Changes to disable some broken PMU virtualization (see below for
           details under "x86 PMU")
      
         - Clean up SVM's enter/exit assembly code so that it can be compiled
           without OBJECT_FILES_NON_STANDARD. This fixes a warning "Unpatched
           return thunk in use. This should not happen!" when running KVM
           selftests.
      
        Everything else is small bugfixes and selftest changes:
      
         - Fix a mostly benign bug in the gfn_to_pfn_cache infrastructure
           where KVM would allow userspace to refresh the cache with a bogus
           GPA. The bug has existed for quite some time, but was exposed by a
           new sanity check added in 6.9 (to ensure a cache is either
           GPA-based or HVA-based).
      
         - Drop an unused param from gfn_to_pfn_cache_invalidate_start() that
           got left behind during a 6.9 cleanup.
      
         - Fix a math goof in x86's hugepage logic for
           KVM_SET_MEMORY_ATTRIBUTES that results in an array overflow
           (detected by KASAN).
      
         - Fix a bug where KVM incorrectly clears root_role.direct when
           userspace sets guest CPUID.
      
         - Fix a dirty logging bug in the where KVM fails to write-protect
           SPTEs used by a nested guest, if KVM is using Page-Modification
           Logging and the nested hypervisor is NOT using EPT.
      
        x86 PMU:
      
         - Drop support for virtualizing adaptive PEBS, as KVM's
           implementation is architecturally broken without an obvious/easy
           path forward, and because exposing adaptive PEBS can leak host LBRs
           to the guest, i.e. can leak host kernel addresses to the guest.
      
         - Set the enable bits for general purpose counters in
           PERF_GLOBAL_CTRL at RESET time, as done by both Intel and AMD
           processors.
      
         - Disable LBR virtualization on CPUs that don't support LBR
           callstacks, as KVM unconditionally uses
           PERF_SAMPLE_BRANCH_CALL_STACK when creating the perf event, and
           would fail on such CPUs.
      
        Tests:
      
         - Fix a flaw in the max_guest_memory selftest that results in it
           exhausting the supply of ucall structures when run with more than
           256 vCPUs.
      
         - Mark KVM_MEM_READONLY as supported for RISC-V in
           set_memory_region_test"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (30 commits)
        KVM: Drop unused @may_block param from gfn_to_pfn_cache_invalidate_start()
        KVM: selftests: Add coverage of EPT-disabled to vmx_dirty_log_test
        KVM: x86/mmu: Fix and clarify comments about clearing D-bit vs. write-protecting
        KVM: x86/mmu: Remove function comments above clear_dirty_{gfn_range,pt_masked}()
        KVM: x86/mmu: Write-protect L2 SPTEs in TDP MMU when clearing dirty status
        KVM: x86/mmu: Precisely invalidate MMU root_role during CPUID update
        KVM: VMX: Disable LBR virtualization if the CPU doesn't support LBR callstacks
        perf/x86/intel: Expose existence of callback support to KVM
        KVM: VMX: Snapshot LBR capabilities during module initialization
        KVM: x86/pmu: Do not mask LVTPC when handling a PMI on AMD platforms
        KVM: x86: Snapshot if a vCPU's vendor model is AMD vs. Intel compatible
        KVM: x86: Stop compiling vmenter.S with OBJECT_FILES_NON_STANDARD
        KVM: SVM: Create a stack frame in __svm_sev_es_vcpu_run()
        KVM: SVM: Save/restore args across SEV-ES VMRUN via host save area
        KVM: SVM: Save/restore non-volatile GPRs in SEV-ES VMRUN via host save area
        KVM: SVM: Clobber RAX instead of RBX when discarding spec_ctrl_intercepted
        KVM: SVM: Drop 32-bit "support" from __svm_sev_es_vcpu_run()
        KVM: SVM: Wrap __svm_sev_es_vcpu_run() with #ifdef CONFIG_KVM_AMD_SEV
        KVM: SVM: Create a stack frame in __svm_vcpu_run() for unwinding
        KVM: SVM: Remove a useless zeroing of allocated memory
        ...
      81777226
    • Linus Torvalds's avatar
      Merge tag 'powerpc-6.9-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · e43afae4
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
      
       - Fix wireguard loading failure on pre-Power10 due to Power10 crypto
         routines
      
       - Fix papr-vpd selftest failure due to missing variable initialization
      
       - Avoid unnecessary get/put in spapr_tce_platform_iommu_attach_dev()
      
      Thanks to Geetika Moolchandani, Jason Gunthorpe, Michal Suchánek, Nathan
      Lynch, and Shivaprasad G Bhat.
      
      * tag 'powerpc-6.9-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        selftests/powerpc/papr-vpd: Fix missing variable initialization
        powerpc/crypto/chacha-p10: Fix failure on non Power10
        powerpc/iommu: Refactor spapr_tce_platform_iommu_attach_dev()
      e43afae4
    • Linus Torvalds's avatar
      Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux · 560d4e77
      Linus Torvalds authored
      Pull clk fixes from Stephen Boyd:
       "A couple clk driver fixes, a build fix, and a deadlock fix:
      
         - Mediatek mt7988 has broken PCIe because the wrong parent is used
      
         - Mediatek clk drivers may deadlock when registering their clks
           because the clk provider device is repeatedly runtime PM resumed
           and suspended during probe and clk registration.
      
           Resuming the clk provider device deadlocks with an ABBA deadlock
           due to genpd_lock and the clk prepare_lock. The fix is to keep the
           device runtime resumed while registering clks.
      
         - Another runtime PM related deadlock, this time with disabling
           unused clks during late init.
      
           We get an ABBA deadlock where a device is runtime PM resuming (or
           suspending) while the disabling of unused clks is happening in
           parallel. That runtime PM action calls into the clk framework and
           tries to grab the clk prepare_lock while the disabling of unused
           clks holds the prepare_lock and is waiting for that runtime PM
           action to complete.
      
           The fix is to runtime resume all the clk provider devices before
           grabbing the clk prepare_lock during disable unused.
      
         - A build fix to provide an empty devm_clk_rate_exclusive_get()
           function when CONFIG_COMMON_CLK=n"
      
      * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
        clk: mediatek: mt7988-infracfg: fix clocks for 2nd PCIe port
        clk: mediatek: Do a runtime PM get on controllers during probe
        clk: Get runtime PM before walking tree for clk_summary
        clk: Get runtime PM before walking tree during disable_unused
        clk: Initialize struct clk_core kref earlier
        clk: Don't hold prepare_lock when calling kref_put()
        clk: Remove prepare_lock hold assertion in __clk_release()
        clk: Provide !COMMON_CLK dummy for devm_clk_rate_exclusive_get()
      560d4e77
    • James Bottomley's avatar
      MAINTAINERS: update to working email address · 366c5cec
      James Bottomley authored
      jejb@linux.ibm.com no longer works.
      Signed-off-by: default avatarJames Bottomley <James.Bottomley@HansenPartnership.com>
      366c5cec
  6. 19 Apr, 2024 11 commits
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-fixes-for-v6.9-2024-04-19' of... · 13a2e429
      Linus Torvalds authored
      Merge tag 'perf-tools-fixes-for-v6.9-2024-04-19' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools
      
      Pull perf tools fixes from Namhyung Kim:
       "A random set of small bug fixes:
      
         - Fix perf annotate TUI when used with data type profiling
      
         - Work around BPF verifier about sighand lock checking
      
        And a set of kernel header synchronization"
      
      * tag 'perf-tools-fixes-for-v6.9-2024-04-19' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools:
        tools/include: Sync arm64 asm/cputype.h with the kernel sources
        tools/include: Sync asm-generic/bitops/fls.h with the kernel sources
        tools/include: Sync x86 asm/msr-index.h with the kernel sources
        tools/include: Sync x86 asm/irq_vectors.h with the kernel sources
        tools/include: Sync x86 CPU feature headers with the kernel sources
        tools/include: Sync uapi/sound/asound.h with the kernel sources
        tools/include: Sync uapi/linux/kvm.h and asm/kvm.h with the kernel sources
        tools/include: Sync uapi/linux/fs.h with the kernel sources
        tools/include: Sync uapi/drm/i915_drm.h with the kernel sources
        perf lock contention: Add a missing NULL check
        perf annotate: Make sure to call symbol__annotate2() in TUI
      13a2e429
    • Linus Torvalds's avatar
      Merge tag 'hardening-v6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 2d412262
      Linus Torvalds authored
      Pull hardening fixes from Kees Cook:
      
       - Correctly disable UBSAN configs in configs/hardening (Nathan
         Chancellor)
      
       - Add missing signed integer overflow trap types to arm64 handler
      
      * tag 'hardening-v6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        ubsan: Add awareness of signed integer overflow traps
        configs/hardening: Disable CONFIG_UBSAN_SIGNED_WRAP
        configs/hardening: Fix disabling UBSAN configurations
      2d412262
    • Linus Torvalds's avatar
      Merge tag 'for-linus-iommufd' of git://git.kernel.org/pub/scm/linux/kernel/git/jgg/iommufd · 50a1317f
      Linus Torvalds authored
      Pull iommufd fixes from Jason Gunthorpe:
       "Two fixes for the selftests:
      
         - CONFIG_IOMMUFD_TEST needs CONFIG_IOMMUFD_DRIVER to work
      
         - The kconfig fragment sshould include fault injection so the fault
           injection test can work"
      
      * tag 'for-linus-iommufd' of git://git.kernel.org/pub/scm/linux/kernel/git/jgg/iommufd:
        iommufd: Add config needed for iommufd_fail_nth
        iommufd: Add missing IOMMUFD_DRIVER kconfig for the selftest
      50a1317f
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · 2bf5dd7c
      Linus Torvalds authored
      Pull rdma fixes from Jason Gunthorpe:
      
       - Add a missing mutex_destroy() in rxe
      
       - Enhance the debugging print for cm_destroy failures to help debug
         these
      
       - Fix mlx5 MAD processing in cases where multiport devices are running
         in switchedev mode
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma:
        RDMA/mlx5: Fix port number for counter query in multi-port configuration
        RDMA/cm: Print the old state when cm_destroy_id gets timeout
        RDMA/rxe: Fix the problem "mutex_destroy missing"
      2bf5dd7c
    • Linus Torvalds's avatar
      Merge tag '9p-fixes-for-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs · 46b28503
      Linus Torvalds authored
      Pull fs/9p fixes from Eric Van Hensbergen:
       "This contains a reversion of one of the original 6.9 patches which
        seems to have been the cause of most of the instability. It also
        incorporates several fixes to legacy support and cache fixes.
      
        There are few additional changes to improve stability, but I want
        another week of testing before sending them upstream"
      
      * tag '9p-fixes-for-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:
        fs/9p: drop inodes immediately on non-.L too
        fs/9p: Revert "fs/9p: fix dups even in uncached mode"
        fs/9p: remove erroneous nlink init from legacy stat2inode
        9p: explicitly deny setlease attempts
        fs/9p: fix the cache always being enabled on files with qid flags
        fs/9p: translate O_TRUNC into OTRUNC
        fs/9p: only translate RWX permissions for plain 9P2000
      46b28503
    • Linus Torvalds's avatar
      Merge tag 'fuse-fixes-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse · daa75776
      Linus Torvalds authored
      Pull fuse fixes from Miklos Szeredi:
      
       - Fix two bugs in the new passthrough mode
      
       - Fix a statx bug introduced in v6.6
      
       - Fix code documentation
      
      * tag 'fuse-fixes-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:
        cuse: add kernel-doc comments to cuse_process_init_reply()
        fuse: fix leaked ENOSYS error on first statx call
        fuse: fix parallel dio write on file open in passthrough mode
        fuse: fix wrong ff->iomode state changes from parallel dio write
      daa75776
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 25ec51ec
      Linus Torvalds authored
      Pull arm64 fixes from Catalin Marinas:
      
       - Fix a kernel fault during page table walking in huge_pte_alloc() with
         PTABLE_LEVELS=5 due to using p4d_offset() instead of p4d_alloc()
      
       - head.S fix and cleanup to disable the MMU before toggling the
         HCR_EL2.E2H bit when entering the kernel with the MMU on from the EFI
         stub. Changing this bit (currently from VHE to nVHE) causes some
         system registers as well as page table descriptors to be interpreted
         differently, potentially resulting in spurious MMU faults
      
       - Fix translation fault in swsusp_save() accessing MEMBLOCK_NOMAP
         memory ranges due to kernel_page_present() returning true in most
         configurations other than rodata_full == true,
         CONFIG_DEBUG_PAGEALLOC=y or CONFIG_KFENCE=y
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: hibernate: Fix level3 translation fault in swsusp_save()
        arm64/head: Disable MMU at EL2 before clearing HCR_EL2.E2H
        arm64/head: Drop unnecessary pre-disable-MMU workaround
        arm64/hugetlb: Fix page table walk in huge_pte_alloc()
      25ec51ec
    • Linus Torvalds's avatar
      Merge tag 's390-6.9-4' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 3cdb4559
      Linus Torvalds authored
      Pull s390 updates from Alexander Gordeev:
      
       - Fix NULL pointer dereference in program check handler
      
       - Fake IRBs are important events relevant for problem analysis. Add
         traces when queueing and delivering
      
       - Fix a race condition in ccw_device_set_online() that can cause the
         online process to fail
      
       - Deferred condition code 1 response indicates that I/O was not started
         and should be retried. The current QDIO implementation handles a cc1
         response as an error, resulting in a failed QDIO setup. Fix that by
         retrying the setup when a cc1 response is received
      
      * tag 's390-6.9-4' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390/mm: Fix NULL pointer dereference
        s390/cio: log fake IRB events
        s390/cio: fix race condition during online processing
        s390/qdio: handle deferred cc1
      3cdb4559
    • Linus Torvalds's avatar
      Merge tag 'bootconfig-fixes-v6.9-rc4' of... · 9c6e84e4
      Linus Torvalds authored
      Merge tag 'bootconfig-fixes-v6.9-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace
      
      Pull bootconfig fixes from Masami Hiramatsu:
      
       - Fix potential static_command_line buffer overrun.
      
         Currently we allocate the memory for static_command_line based on
         "boot_command_line", but it will copy "command_line" into it. So we
         use the length of "command_line" instead of "boot_command_line" (as
         we previously did)
      
       - Use memblock_free_late() in xbc_exit() instead of memblock_free()
         after the buddy system is initialized
      
       - Fix a kerneldoc warning
      
      * tag 'bootconfig-fixes-v6.9-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        bootconfig: Fix the kerneldoc of _xbc_exit()
        bootconfig: use memblock_free_late to free xbc memory to buddy
        init/main.c: Fix potential static_command_line memory overflow
      9c6e84e4
    • Linus Torvalds's avatar
      Merge tag 'thermal-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · dbe0a7be
      Linus Torvalds authored
      Pull thermal control fix from Rafael Wysocki:
       "This prevents the thermal debug code from attempting to divide by zero
        and corrects trip point statistics (Rafael Wysocki)"
      
      * tag 'thermal-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        thermal/debugfs: Add missing count increment to thermal_debug_tz_trip_up()
      dbe0a7be
    • Linus Torvalds's avatar
      Merge tag 'sound-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 3c08ab6d
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "Things look calm and normal, we got handful HD-audio-related small
        fixes and a fix for MIDI 2.0 UMP handling"
      
      * tag 'sound-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: seq: ump: Fix conversion from MIDI2 to MIDI1 UMP messages
        ALSA: hda/realtek - Enable audio jacks of Haier Boyue G42 with ALC269VC
        ALSA: hda/realtek: Add quirks for Huawei Matebook D14 NBLB-WAX9N
        ALSA: hda/realtek: Fix volumn control of ThinkBook 16P Gen4
        ALSA: hda/realtek: Fixes for Asus GU605M and GA403U sound
        ALSA: hda/tas2781: Add new vendor_id and subsystem_id to support ThinkPad ICE-1
        ALSA: hda/tas2781: correct the register for pow calibrated data
        ALSA: hda/realtek: Add quirk for HP SnowWhite laptops
      3c08ab6d