Skip to contentSkip to conversation

Linux 6.12.19

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Mar 13, 2025 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 6.12.19 kernel.

All users of the 6.12 kernel series must upgrade.

The updated 6.12.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.12.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary

thanks,

greg k-h

------------

 .clippy.toml                                                 |    9 
 .gitignore                                                   |    1 
 Documentation/admin-guide/sysctl/kernel.rst                  |   11 
 Documentation/rust/coding-guidelines.rst                     |  146 +
 MAINTAINERS                                                  |    8 
 Makefile                                                     |   22 
 arch/arm64/include/asm/hugetlb.h                             |    4 
 arch/arm64/mm/hugetlbpage.c                                  |   61 
 arch/loongarch/include/asm/bug.h                             |   13 
 arch/loongarch/include/asm/hugetlb.h                         |    6 
 arch/loongarch/kernel/machine_kexec.c                        |    4 
 arch/loongarch/kernel/setup.c                                |    3 
 arch/loongarch/kernel/smp.c                                  |   47 
 arch/loongarch/kvm/exit.c                                    |    6 
 arch/loongarch/kvm/main.c                                    |    7 
 arch/loongarch/kvm/vcpu.c                                    |    2 
 arch/loongarch/kvm/vm.c                                      |    6 
 arch/mips/include/asm/hugetlb.h                              |    6 
 arch/parisc/include/asm/hugetlb.h                            |    2 
 arch/parisc/mm/hugetlbpage.c                                 |    2 
 arch/powerpc/include/asm/hugetlb.h                           |    6 
 arch/powerpc/kvm/e500_mmu_host.c                             |   19 
 arch/riscv/include/asm/hugetlb.h                             |    3 
 arch/riscv/mm/hugetlbpage.c                                  |    2 
 arch/s390/include/asm/hugetlb.h                              |   17 
 arch/s390/kernel/traps.c                                     |    6 
 arch/s390/mm/hugetlbpage.c                                   |    4 
 arch/sparc/include/asm/hugetlb.h                             |    2 
 arch/sparc/mm/hugetlbpage.c                                  |    2 
 arch/x86/boot/compressed/pgtable_64.c                        |    2 
 arch/x86/include/asm/kvm_host.h                              |    1 
 arch/x86/kernel/amd_nb.c                                     |    9 
 arch/x86/kernel/cpu/cacheinfo.c                              |    2 
 arch/x86/kernel/cpu/intel.c                                  |   52 
 arch/x86/kernel/cpu/microcode/amd.c                          |    6 
 arch/x86/kernel/cpu/sgx/ioctl.c                              |    7 
 arch/x86/kvm/cpuid.c                                         |    2 
 arch/x86/kvm/svm/sev.c                                       |   13 
 arch/x86/kvm/svm/svm.c                                       |   49 
 arch/x86/kvm/svm/svm.h                                       |    2 
 arch/x86/kvm/svm/vmenter.S                                   |   10 
 arch/x86/kvm/vmx/vmx.c                                       |    8 
 arch/x86/kvm/vmx/vmx.h                                       |    2 
 arch/x86/kvm/x86.c                                           |    2 
 arch/x86/mm/init.c                                           |   23 
 block/partitions/efi.c                                       |    2 
 drivers/base/core.c                                          |    1 
 drivers/block/rnull.rs                                       |    4 
 drivers/block/ublk_drv.c                                     |    7 
 drivers/bluetooth/btusb.c                                    |    1 
 drivers/bus/mhi/host/pci_generic.c                           |    5 
 drivers/cdx/cdx.c                                            |    6 
 drivers/char/misc.c                                          |    2 
 drivers/gpio/gpio-aggregator.c                               |   20 
 drivers/gpio/gpio-rcar.c                                     |   31 
 drivers/gpio/gpio-vf610.c                                    |   11 
 drivers/gpu/drm/Kconfig                                      |   12 
 drivers/gpu/drm/Makefile                                     |    6 
 drivers/gpu/drm/amd/amdkfd/kfd_queue.c                       |    4 
 drivers/gpu/drm/amd/display/dc/core/dc_resource.c            |    3 
 drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0.c               |   12 
 drivers/gpu/drm/drm_client_setup.c                           |   66 
 drivers/gpu/drm/drm_fb_helper.c                              |   85 -
 drivers/gpu/drm/drm_fbdev_client.c                           |  141 +
 drivers/gpu/drm/drm_fbdev_ttm.c                              |  142 -
 drivers/gpu/drm/drm_fourcc.c                                 |   30 
 drivers/gpu/drm/drm_panic_qr.rs                              |   25 
 drivers/gpu/drm/i915/display/i9xx_plane.c                    |   22 
 drivers/gpu/drm/i915/display/icl_dsi.c                       |  448 ++---
 drivers/gpu/drm/i915/display/icl_dsi.h                       |    4 
 drivers/gpu/drm/i915/display/intel_atomic_plane.c            |   49 
 drivers/gpu/drm/i915/display/intel_atomic_plane.h            |   19 
 drivers/gpu/drm/i915/display/intel_color.c                   |   17 
 drivers/gpu/drm/i915/display/intel_color.h                   |    1 
 drivers/gpu/drm/i915/display/intel_cursor.c                  |  101 -
 drivers/gpu/drm/i915/display/intel_ddi.c                     |    2 
 drivers/gpu/drm/i915/display/intel_de.h                      |   11 
 drivers/gpu/drm/i915/display/intel_display.c                 |   58 
 drivers/gpu/drm/i915/display/intel_display_types.h           |   16 
 drivers/gpu/drm/i915/display/intel_sprite.c                  |   27 
 drivers/gpu/drm/i915/display/skl_universal_plane.c           |  307 ++-
 drivers/gpu/drm/imagination/pvr_fw_meta.c                    |    6 
 drivers/gpu/drm/imagination/pvr_fw_trace.c                   |    4 
 drivers/gpu/drm/imagination/pvr_queue.c                      |   18 
 drivers/gpu/drm/imagination/pvr_queue.h                      |    4 
 drivers/gpu/drm/imagination/pvr_vm.c                         |  134 +
 drivers/gpu/drm/imagination/pvr_vm.h                         |    3 
 drivers/gpu/drm/nouveau/Kconfig                              |    2 
 drivers/gpu/drm/nouveau/nouveau_drm.c                        |   10 
 drivers/gpu/drm/radeon/r300.c                                |    3 
 drivers/gpu/drm/radeon/radeon_asic.h                         |    1 
 drivers/gpu/drm/radeon/rs400.c                               |   18 
 drivers/gpu/drm/scheduler/gpu_scheduler_trace.h              |    4 
 drivers/gpu/drm/xe/display/xe_plane_initial.c                |   10 
 drivers/gpu/drm/xe/xe_gt.c                                   |    4 
 drivers/gpu/drm/xe/xe_hmm.c                                  |  188 +-
 drivers/gpu/drm/xe/xe_hmm.h                                  |    7 
 drivers/gpu/drm/xe/xe_pt.c                                   |   96 -
 drivers/gpu/drm/xe/xe_pt_walk.c                              |    3 
 drivers/gpu/drm/xe/xe_pt_walk.h                              |    4 
 drivers/gpu/drm/xe/xe_vm.c                                   |  100 -
 drivers/gpu/drm/xe/xe_vm.h                                   |   10 
 drivers/gpu/drm/xe/xe_vm_types.h                             |    8 
 drivers/hid/hid-appleir.c                                    |    2 
 drivers/hid/hid-google-hammer.c                              |    2 
 drivers/hid/hid-steam.c                                      |    2 
 drivers/hid/intel-ish-hid/ishtp-hid-client.c                 |    2 
 drivers/hid/intel-ish-hid/ishtp-hid.c                        |    4 
 drivers/hwmon/ad7314.c                                       |   10 
 drivers/hwmon/ntc_thermistor.c                               |   66 
 drivers/hwmon/peci/dimmtemp.c                                |   10 
 drivers/hwmon/pmbus/pmbus.c                                  |    2 
 drivers/hwmon/xgene-hwmon.c                                  |    2 
 drivers/hwtracing/intel_th/pci.c                             |   15 
 drivers/iio/adc/ad7192.c                                     |    2 
 drivers/iio/adc/at91-sama5d2_adc.c                           |   68 
 drivers/iio/dac/ad3552r.c                                    |    6 
 drivers/iio/filter/admv8818.c                                |   14 
 drivers/iio/light/apds9306.c                                 |    4 
 drivers/misc/cardreader/rtsx_usb.c                           |   15 
 drivers/misc/eeprom/digsy_mtc_eeprom.c                       |    2 
 drivers/misc/mei/hw-me-regs.h                                |    2 
 drivers/misc/mei/pci-me.c                                    |    2 
 drivers/misc/mei/vsc-tp.c                                    |    2 
 drivers/net/caif/caif_virtio.c                               |    2 
 drivers/net/dsa/mt7530.c                                     |    8 
 drivers/net/ethernet/emulex/benet/be.h                       |    2 
 drivers/net/ethernet/emulex/benet/be_cmds.c                  |  197 +-
 drivers/net/ethernet/emulex/benet/be_main.c                  |    2 
 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_ptp.c       |    2 
 drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c         |    6 
 drivers/net/ipa/data/ipa_data-v4.7.c                         |   18 
 drivers/net/mctp/mctp-i3c.c                                  |    3 
 drivers/net/phy/phy.c                                        |   43 
 drivers/net/phy/phy_device.c                                 |    2 
 drivers/net/ppp/ppp_generic.c                                |   28 
 drivers/net/wireless/intel/iwlwifi/iwl-drv.c                 |    2 
 drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c             |    7 
 drivers/net/wireless/intel/iwlwifi/mvm/time-event.c          |    2 
 drivers/net/wireless/intel/iwlwifi/pcie/internal.h           |    5 
 drivers/net/wireless/intel/iwlwifi/pcie/tx-gen2.c            |    6 
 drivers/net/wireless/intel/iwlwifi/pcie/tx.c                 |   23 
 drivers/nvme/host/ioctl.c                                    |   20 
 drivers/nvme/host/nvme.h                                     |    7 
 drivers/nvme/host/pci.c                                      |  147 +
 drivers/nvme/host/tcp.c                                      |   81 
 drivers/nvme/target/tcp.c                                    |   15 
 drivers/of/of_reserved_mem.c                                 |    4 
 drivers/platform/x86/thinkpad_acpi.c                         |    1 
 drivers/rapidio/devices/rio_mport_cdev.c                     |    3 
 drivers/rapidio/rio-scan.c                                   |    5 
 drivers/slimbus/messaging.c                                  |    5 
 drivers/usb/atm/cxacru.c                                     |   13 
 drivers/usb/core/hub.c                                       |   33 
 drivers/usb/core/quirks.c                                    |    4 
 drivers/usb/dwc3/core.c                                      |   85 -
 drivers/usb/dwc3/core.h                                      |    2 
 drivers/usb/dwc3/drd.c                                       |    4 
 drivers/usb/dwc3/gadget.c                                    |   10 
 drivers/usb/gadget/composite.c                               |   17 
 drivers/usb/gadget/function/u_ether.c                        |    4 
 drivers/usb/host/xhci-hub.c                                  |    8 
 drivers/usb/host/xhci-mem.c                                  |    3 
 drivers/usb/host/xhci-pci.c                                  |   18 
 drivers/usb/host/xhci.h                                      |    2 
 drivers/usb/renesas_usbhs/common.c                           |    6 
 drivers/usb/renesas_usbhs/mod_gadget.c                       |    2 
 drivers/usb/typec/tcpm/tcpci_rt1711h.c                       |   11 
 drivers/usb/typec/ucsi/ucsi.c                                |   25 
 drivers/usb/typec/ucsi/ucsi.h                                |    2 
 drivers/usb/typec/ucsi/ucsi_acpi.c                           |   21 
 drivers/usb/typec/ucsi/ucsi_ccg.c                            |    1 
 drivers/usb/typec/ucsi/ucsi_glink.c                          |    1 
 drivers/usb/typec/ucsi/ucsi_stm32g0.c                        |    1 
 drivers/usb/typec/ucsi/ucsi_yoga_c630.c                      |    1 
 drivers/virt/acrn/hsm.c                                      |    6 
 fs/btrfs/file.c                                              |    9 
 fs/btrfs/volumes.c                                           |    1 
 fs/coredump.c                                                |   15 
 fs/exfat/balloc.c                                            |   10 
 fs/exfat/exfat_fs.h                                          |    2 
 fs/exfat/fatent.c                                            |   11 
 fs/exfat/file.c                                              |    2 
 fs/exfat/namei.c                                             |    2 
 fs/netfs/read_collect.c                                      |   21 
 fs/netfs/read_pgpriv2.c                                      |    5 
 fs/nfs/file.c                                                |    3 
 fs/smb/client/cifsglob.h                                     |    6 
 fs/smb/client/inode.c                                        |    2 
 fs/smb/client/reparse.h                                      |   28 
 fs/smb/client/smb1ops.c                                      |    4 
 fs/smb/client/smb2inode.c                                    |    4 
 fs/smb/client/smb2ops.c                                      |    3 
 fs/smb/server/smb2pdu.c                                      |    8 
 fs/smb/server/smbacl.c                                       |   16 
 fs/smb/server/transport_ipc.c                                |    1 
 include/asm-generic/hugetlb.h                                |    2 
 include/drm/drm_client_setup.h                               |   26 
 include/drm/drm_drv.h                                        |   18 
 include/drm/drm_fbdev_client.h                               |   19 
 include/drm/drm_fbdev_ttm.h                                  |   13 
 include/drm/drm_fourcc.h                                     |    1 
 include/linux/compaction.h                                   |    5 
 include/linux/ethtool.h                                      |   23 
 include/linux/hugetlb.h                                      |    4 
 include/linux/nvme-tcp.h                                     |    2 
 include/linux/nvme.h                                         |    1 
 include/linux/phy.h                                          |   36 
 include/linux/phylib_stubs.h                                 |   42 
 include/linux/sched.h                                        |    2 
 kernel/events/core.c                                         |    4 
 kernel/events/uprobes.c                                      |    2 
 kernel/sched/fair.c                                          |    6 
 kernel/trace/trace_fprobe.c                                  |   15 
 kernel/trace/trace_probe.h                                   |    2 
 mm/compaction.c                                              |    3 
 mm/hugetlb.c                                                 |    4 
 mm/internal.h                                                |    5 
 mm/kasan/kasan_test_rust.rs                                  |    3 
 mm/kmsan/hooks.c                                             |    1 
 mm/memory-failure.c                                          |   63 
 mm/memory.c                                                  |   21 
 mm/memory_hotplug.c                                          |   26 
 mm/page_alloc.c                                              |    4 
 mm/userfaultfd.c                                             |   17 
 mm/vma.c                                                     |   12 
 mm/vmalloc.c                                                 |    4 
 net/8021q/vlan.c                                             |    3 
 net/bluetooth/mgmt.c                                         |    5 
 net/ethtool/cabletest.c                                      |    8 
 net/ethtool/linkstate.c                                      |   26 
 net/ethtool/netlink.c                                        |    6 
 net/ethtool/netlink.h                                        |    5 
 net/ethtool/phy.c                                            |    2 
 net/ethtool/plca.c                                           |    6 
 net/ethtool/pse-pd.c                                         |    4 
 net/ethtool/stats.c                                          |   18 
 net/ethtool/strset.c                                         |    2 
 net/ipv4/tcp_offload.c                                       |   11 
 net/ipv4/udp_offload.c                                       |    8 
 net/ipv6/ila/ila_lwt.c                                       |    4 
 net/llc/llc_s_ac.c                                           |   49 
 net/mac80211/ieee80211_i.h                                   |    2 
 net/mac80211/mlme.c                                          |    1 
 net/mac80211/parse.c                                         |  164 +
 net/mptcp/pm_netlink.c                                       |   18 
 net/wireless/nl80211.c                                       |    5 
 net/wireless/reg.c                                           |    3 
 rust/Makefile                                                |   92 -
 rust/bindgen_parameters                                      |    5 
 rust/bindings/bindings_helper.h                              |    1 
 rust/bindings/lib.rs                                         |    6 
 rust/exports.c                                               |    1 
 rust/ffi.rs                                                  |   48 
 rust/helpers/helpers.c                                       |    1 
 rust/helpers/slab.c                                          |    6 
 rust/helpers/vmalloc.c                                       |    9 
 rust/kernel/alloc.rs                                         |  150 +
 rust/kernel/alloc/allocator.rs                               |  208 +-
 rust/kernel/alloc/allocator_test.rs                          |   95 +
 rust/kernel/alloc/box_ext.rs                                 |   89 -
 rust/kernel/alloc/kbox.rs                                    |  456 +++++
 rust/kernel/alloc/kvec.rs                                    |  913 +++++++++++
 rust/kernel/alloc/layout.rs                                  |   91 +
 rust/kernel/alloc/vec_ext.rs                                 |  185 --
 rust/kernel/block/mq/gen_disk.rs                             |    6 
 rust/kernel/block/mq/operations.rs                           |   18 
 rust/kernel/block/mq/raw_writer.rs                           |    2 
 rust/kernel/block/mq/tag_set.rs                              |    2 
 rust/kernel/error.rs                                         |   82 
 rust/kernel/firmware.rs                                      |    2 
 rust/kernel/init.rs                                          |  127 -
 rust/kernel/init/__internal.rs                               |   13 
 rust/kernel/init/macros.rs                                   |   18 
 rust/kernel/ioctl.rs                                         |    2 
 rust/kernel/lib.rs                                           |    5 
 rust/kernel/list.rs                                          |    1 
 rust/kernel/list/arc_field.rs                                |    2 
 rust/kernel/net/phy.rs                                       |   16 
 rust/kernel/prelude.rs                                       |    5 
 rust/kernel/print.rs                                         |    5 
 rust/kernel/rbtree.rs                                        |   49 
 rust/kernel/std_vendor.rs                                    |   12 
 rust/kernel/str.rs                                           |   46 
 rust/kernel/sync/arc.rs                                      |   25 
 rust/kernel/sync/arc/std_vendor.rs                           |    2 
 rust/kernel/sync/condvar.rs                                  |    7 
 rust/kernel/sync/lock.rs                                     |    8 
 rust/kernel/sync/lock/mutex.rs                               |    4 
 rust/kernel/sync/lock/spinlock.rs                            |    4 
 rust/kernel/sync/locked_by.rs                                |    2 
 rust/kernel/task.rs                                          |    8 
 rust/kernel/time.rs                                          |    4 
 rust/kernel/types.rs                                         |  140 -
 rust/kernel/uaccess.rs                                       |   48 
 rust/kernel/workqueue.rs                                     |   29 
 rust/macros/lib.rs                                           |   14 
 rust/macros/module.rs                                        |    8 
 rust/uapi/lib.rs                                             |    6 
 samples/rust/rust_minimal.rs                                 |    4 
 samples/rust/rust_print.rs                                   |    1 
 scripts/Makefile.build                                       |    4 
 scripts/generate_rust_analyzer.py                            |   11 
 sound/core/seq/seq_clientmgr.c                               |   46 
 sound/pci/hda/Kconfig                                        |    1 
 sound/pci/hda/hda_intel.c                                    |    2 
 sound/pci/hda/patch_realtek.c                                |  107 +
 sound/usb/usx2y/usbusx2y.c                                   |   11 
 sound/usb/usx2y/usbusx2y.h                                   |   26 
 sound/usb/usx2y/usbusx2yaudio.c                              |   27 
 tools/testing/selftests/bpf/benchs/bench_trigger.c           |    3 
 tools/testing/selftests/bpf/bpf_util.h                       |    9 
 tools/testing/selftests/bpf/map_tests/task_storage_map.c     |    3 
 tools/testing/selftests/bpf/prog_tests/bpf_cookie.c          |    2 
 tools/testing/selftests/bpf/prog_tests/bpf_iter.c            |    6 
 tools/testing/selftests/bpf/prog_tests/cgrp_local_storage.c  |   10 
 tools/testing/selftests/bpf/prog_tests/core_reloc.c          |    2 
 tools/testing/selftests/bpf/prog_tests/linked_funcs.c        |    2 
 tools/testing/selftests/bpf/prog_tests/ns_current_pid_tgid.c |    2 
 tools/testing/selftests/bpf/prog_tests/rcu_read_lock.c       |    4 
 tools/testing/selftests/bpf/prog_tests/task_local_storage.c  |    8 
 tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c   |    2 
 tools/testing/selftests/damon/damon_nr_regions.py            |    2 
 tools/testing/selftests/damon/damos_quota.py                 |    9 
 tools/testing/selftests/damon/damos_quota_goal.py            |    3 
 tools/testing/selftests/mm/hugepage-mremap.c                 |    2 
 tools/testing/selftests/mm/ksm_functional_tests.c            |    8 
 tools/testing/selftests/mm/memfd_secret.c                    |   14 
 tools/testing/selftests/mm/mkdirty.c                         |    8 
 tools/testing/selftests/mm/mlock2.h                          |    1 
 tools/testing/selftests/mm/protection_keys.c                 |    2 
 tools/testing/selftests/mm/uffd-common.c                     |    4 
 tools/testing/selftests/mm/uffd-stress.c                     |   15 
 tools/testing/selftests/mm/uffd-unit-tests.c                 |   14 
 usr/include/Makefile                                         |    2 
 335 files changed, 6008 insertions(+), 2448 deletions(-)

Ahmed S. Darwish (3):

      x86/cacheinfo: Validate CPUID leaf 0x2 EDX output
      x86/cpu: Validate CPUID leaf 0x2 EDX output
      x86/cpu: Properly parse CPUID leaf 0x2 TLB descriptor 0x63

Alessio Belle (1):
drm/imagination: Fix timestamps in firmware traces

Alexander Shishkin (2):
intel_th: pci: Add Panther Lake-H support
intel_th: pci: Add Panther Lake-P/U support

Alexander Usyskin (1):
mei: me: add panther lake P DID

Andrei Kuchynski (1):
usb: typec: ucsi: Fix NULL pointer access

Andrew Cooper (1):
x86/amd_nb: Use rdmsr_safe() in amd_get_mmconfig_range()

Andrew Martin (1):
drm/amdkfd: Fix NULL Pointer Dereference in KFD queue

Andy Shevchenko (2):
xhci: pci: Fix indentation in the PCI device ID definitions
eeprom: digsy_mtc: Make GPIO lookup table match the device

Angelo Dureghello (1):
iio: dac: ad3552r: clear reset status flag

AngeloGioacchino Del Regno (1):
usb: typec: tcpci_rt1711h: Unmask alert interrupts to fix functionality

Antheas Kapenekakis (1):
ALSA: hda/realtek: Remove (revert) duplicate Ally X config

Antoine Tenart (1):
net: gso: fix ownership in __udp_gso_segment

Ard Biesheuvel (1):
x86/boot: Sanitize boot params before parsing command line

Arnd Bergmann (2):
kbuild: hdrcheck: fix cross build with clang
ALSA: hda: realtek: fix incorrect IS_REACHABLE() usage

Asahi Lina (1):
rust: alloc: Fix ArrayLayout allocations

Badhri Jagan Sridharan (1):
usb: dwc3: gadget: Prevent irq storm when TH re-executes

Bartosz Golaszewski (1):
gpio: vf610: use generic device_get_match_data()

Benno Lossin (1):
rust: alloc: introduce ArrayLayout

Bibo Mao (4):
LoongArch: Set max_pfn with the PFN of the last page
LoongArch: KVM: Add interrupt checking for AVEC
LoongArch: KVM: Reload guest CSR registers after sleep
LoongArch: KVM: Fix GPA size issue about VM

Borislav Petkov (AMD) (1):
x86/microcode/AMD: Add some forgotten models to the SHA check

Brendan King (3):
drm/imagination: avoid deadlock on fence release drm/imagination: Hold drm_gem_gpuva lock for unmap drm/imagination: only init job done fences once

Brian Geffon (1):
mm: fix finish_fault() handling for large folios

Christian A. Ehrhardt (1):

      acpi: typec: ucsi: Introduce a ->poll_cci method

Christian Heusel (1):
Revert "drivers/card_reader/rtsx_usb: Restore interrupt based detection"

Claudiu Beznea (3):
usb: renesas_usbhs: Call clk_put()
usb: renesas_usbhs: Use devm_usb_get_phy()
usb: renesas_usbhs: Flush the notify_hotplug_work

Dan Carpenter (1):
nvme-tcp: fix signedness bug in nvme_tcp_init_connection()

Daniil Dulov (1):
HID: appleir: Fix potential NULL dereference at raw event handle

Danilo Krummrich (28):
rust: alloc: add Allocator trait
rust: alloc: separate aligned_size from krealloc_aligned
rust: alloc: rename KernelAllocator to Kmalloc
rust: alloc: implement ReallocFunc
rust: alloc: make allocator module public
rust: alloc: implement Allocator for Kmalloc
rust: alloc: add module allocator_test
rust: alloc: implement Vmalloc allocator
rust: alloc: implement KVmalloc allocator
rust: alloc: add __GFP_NOWARN to Flags
rust: alloc: implement kernel Box
rust: treewide: switch to our kernel Box type
rust: alloc: remove extension of std's Box
rust: alloc: add Box to prelude
rust: alloc: implement kernel Vec type
rust: alloc: implement IntoIterator for Vec
rust: alloc: implement collect for IntoIter
rust: treewide: switch to the kernel Vec type
rust: alloc: remove VecExt extension
rust: alloc: add Vec to prelude
rust: error: use core::alloc::LayoutError
rust: error: check for config test in Error::name
rust: alloc: implement contains for Flags
rust: alloc: implement Cmalloc in module allocator_test
rust: str: test: replace alloc::format
rust: alloc: update module comment of alloc.rs
kbuild: rust: remove the alloc crate and GlobalAlloc
MAINTAINERS: add entry for the Rust alloc module

Dave Airlie (1):
drm/nouveau: select FW caching

Emmanuel Grumbach (1):
wifi: iwlwifi: mvm: don't try to talk to a dead firmware

Eric Dumazet (1):
llc: do not use skb_get() before dev_queue_xmit()

Eric Sandeen (1):
exfat: short-circuit zero-byte writes in exfat_file_write_iter

Erik Schumacher (1):
hwmon: (ad7314) Validate leading zero bits and return error

Ethan D. Twardy (1):
rust: kbuild: expand rusttest target for macros

Fabrizio Castro (1):
gpio: rcar: Fix missing of_node_put() call

Fedor Pchelkin (1):
usb: typec: ucsi: increase timeout for PPM reset operations

Filipe Xavier (2):
rust: error: make conversion functions public
rust: error: optimize error type to use nonzero

Gabriel Krisman Bertazi (1):

      Revert "mm/page_alloc.c: don't show protection in zone's ->lowmem_reserve[] for empty zone"

Gary Guo (4):
rust: fix size_t in bindgen prototypes of C builtins
rust: map __kernel_size_t and friends also to usize/isize
rust: use custom FFI integer types
rust: map long to isize and char to u8

Greg Kroah-Hartman (5):
Revert "KVM: e500: always restore irqs"
Revert "KVM: PPC: e500: Use __kvm_faultin_pfn() to handle page faults" Revert "KVM: PPC: e500: Mark "struct page" pfn accessed before dropping mmu_lock" Revert "KVM: PPC: e500: Mark "struct page" dirty in kvmppc_e500_shadow_map()" Linux 6.12.19

Hans de Goede (1):
mei: vsc: Use "wakeuphostint" when getting the host wakeup GPIO

Hao Zhang (1):
mm/page_alloc: fix uninitialized variable

Haoxiang Li (5):
btrfs: fix a leaked chunk map issue in read_one_chunk()
Bluetooth: Add check for mgmt_alloc_skb() in mgmt_remote_name()
Bluetooth: Add check for mgmt_alloc_skb() in mgmt_device_connected()
rapidio: add check for rio_add_net() in rio_scan_alloc_net()
rapidio: fix an API misues when rio_add_net() fails

Haoyu Li (1):
drivers: virt: acrn: hsm: Use kzalloc to avoid info leak in pmcmd_ioctl

Heiko Carstens (1):
s390/traps: Fix test_monitor_call() inline assembly

Hoku Ishibe (1):
ALSA: hda: intel: Add Dell ALC3271 to power_save denylist

Huacai Chen (1):
LoongArch: Use polling play_dead() when resuming from hibernation

Ilan Peer (4):
wifi: iwlwifi: Free pages allocated when failing to build A-MSDU
wifi: iwlwifi: Fix A-MSDU TSO preparation
wifi: mac80211: Support parsing EPCS ML element
wifi: iwlwifi: pcie: Fix TSO preparation

Imre Deak (1):
drm/i915/dsi: Use TRANS_DDI_FUNC_CTL's own port width macro

Jakub Kicinski (1):
net: ethtool: plumb PHY stats to PHY drivers

Jani Nikula (1):
drm/i915/dsi: convert to struct intel_display

Jarkko Sakkinen (1):
x86/sgx: Fix size overflows in sgx_encl_create()

Jason Xing (1):
net-timestamp: support TCP GSO case for a few missing flags

Javier Carrasco (1):
iio: light: apds9306: fix max_scale_nano values

Jiayuan Chen (1):
ppp: Fix KMSAN uninit-value warning with bpf

Jiri Olsa (1):
uprobes: Fix race in uprobe_free_utask

Johan Korsnes (1):
gpio: vf610: add locking to gpio direction functions

Johannes Berg (4):
wifi: iwlwifi: mvm: clean up ROC on failure
wifi: iwlwifi: limit printed string from FW file
wifi: mac80211: fix MLE non-inheritance parsing
wifi: mac80211: fix vendor-specific inheritance

John Hubbard (1):
Revert "selftests/mm: remove local __NR_* definitions"

Justin Iurman (2):
net: ipv6: fix dst ref loop in ila lwtunnel
net: ipv6: fix missing dst ref drop in ila lwtunnel

Kailang Yang (2):
ALSA: hda/realtek - add supported Mic Mute LED for Lenovo platform
ALSA: hda/realtek: update ALC222 depop optimize

Kees Cook (1):
coredump: Only sort VMAs when core_sort_vma sysctl is set

Keith Busch (3):
nvme-pci: add support for sgl metadata
nvme-pci: use sgls for all user requests if possible
nvme-ioctl: fix leaked requests on mapping error

Kenneth Feng (1):
drm/amd/pm: always allow ih interrupt from fw

Koichiro Den (1):
gpio: aggregator: protect driver attr handlers against module unload

Krister Johansen (1):
mptcp: fix 'scheduling while atomic' in mptcp_pm_nl_append_new_local_addr

Kumar Kartikeya Dwivedi (1):
selftests/bpf: Clean up open-coded gettid syscall invocations

Lorenzo Bianconi (1):
net: dsa: mt7530: Fix traffic flooding for MMIO devices

Lorenzo Stoakes (1):
mm: abort vma_modify() on merge out of memory failure

Luca Ceresoli (1):
drivers: core: fix device leak in __fw_devlink_relax_cycles()

Luca Weiss (3):
net: ipa: Fix v4.7 resource group names
net: ipa: Fix QSB data for v4.7
net: ipa: Enable checksum for IPA_ENDPOINT_AP_MODEM_{RX,TX} for v4.7

Ma Ke (1):

      drm/amd/display: Fix null check for pipe_ctx->plane_state in resource_build_scaling_params

Ma Wupeng (3):
mm: memory-failure: update ttu flag inside unmap_poisoned_folio hwpoison, memory_hotplug: lock folio before unmap hwpoisoned folio
mm: memory-hotplug: check folio ref count first in do_migrate_range

Maarten Lankhorst (1):
drm/xe: Remove double pageflip

Manivannan Sadhasivam (1):
bus: mhi: host: pci_generic: Use pci_try_reset_function() to avoid deadlock

Marc Zyngier (1):
xhci: Restrict USB4 tunnel detection for USB3 devices to Intel hosts

Marek Szyprowski (1):
usb: gadget: Fix setting self-powered state on suspend

Markus Burri (1):
iio: adc: ad7192: fix channel select

Masami Hiramatsu (Google) (3):
tracing: tprobe-events: Fix a memory leak when tprobe with $retval
tracing: tprobe-events: Reject invalid tracepoint name
tracing: probe-events: Remove unused MAX_ARG_BUF_LEN macro

Matt Johnston (1):
mctp i3c: handle NULL header address

Matthew Auld (1):
drm/xe/userptr: properly setup pfn_flags_mask

Matthew Brost (1):
drm/xe: Add staging tree for VM binds

Maud Spierings (1):
hwmon: (ntc_thermistor) Fix the ncpXXxh103 sensor table

Maurizio Lombardi (3):
nvme-tcp: add basic support for the C2HTermReq PDU
nvme-tcp: fix potential memory corruption in nvme_tcp_recv_pdu()
nvme-tcp: Fix a C2HTermReq error message

Max Kellermann (2):
fs/netfs/read_pgpriv2: skip folio queues without marks3 fs/netfs/read_collect: fix crash due to uninitialized prev variable

Maxime Chevallier (1):
net: ethtool: netlink: Allow NULL nlattrs when getting a phy_device

Meir Elisha (1):
nvmet-tcp: Fix a possible sporadic response drops in weakly ordered arch

Miao Li (1):
usb: quirks: Add DELAY_INIT and NO_LPM for Prolific Mass Storage Card Reader

Michal Pecio (1):
usb: xhci: Enable the TRB overfetch quirk on VIA VL805

Miguel Ojeda (19):
rust: workqueue: remove unneeded ``#[allow(clippy::new_ret_no_self)]`
rust: sort global Rust flags
rust: types: avoid repetition in {As,From}Bytes impls
rust: enable clippy::undocumented_unsafe_blocks lint
rust: enable clippy::unnecessary_safety_comment lint
rust: enable clippy::unnecessary_safety_doc lint
rust: enable clippy::ignored_unit_patterns lint
rust: enable rustdoc::unescaped_backticks lint
rust: init: remove unneeded #[allow(clippy::disallowed_names)]
rust: sync: remove unneeded #[allow(clippy::non_send_fields_in_send_ty)]
rust: introduce .clippy.toml
rust: replace clippy::dbg_macro with disallowed_macros
rust: provide proper code documentation titles
rust: enable Clippy's check-private-items
Documentation: rust: add coding guidelines on lints
rust: start using the #[expect(...)] attribute
Documentation: rust: discuss #[expect(...)] in the guidelines
rust: finish using custom FFI integer types
docs: rust: remove spurious item in expect list

Mike Snitzer (1):
NFS: fix nfs_release_folio() to not deadlock via kcompactd writeback

Mingcong Bai (1):
platform/x86: thinkpad_acpi: Add battery quirk for ThinkPad X131e

Murad Masimov (1):
ALSA: usx2y: validate nrpacks module parameter on probe

Namjae Jeon (5):
ksmbd: fix type confusion via race condition when using ipc_msg_send_request
ksmbd: fix out-of-bounds in parse_sec_desc()
ksmbd: fix use-after-free in smb2_lock
ksmbd: fix bug on trap in smb2_lock
exfat: fix soft lockup in exfat_clear_bitmap

Nayab Sayed (1):
iio: adc: at91-sama5d2_adc: fix sama7g5 realbits value

Nikita Zhandarovich (2):
wifi: cfg80211: regulatory: improve invalid hints checking
usb: atm: cxacru: fix a flaw in existing endpoint checks

Niklas Söderlund (1):
gpio: rcar: Use raw_spinlock to protect register access

Nikolay Aleksandrov (1):
be2net: fix sleeping while atomic bugs in be_ndo_bridge_getlink

Oleksij Rempel (1):
ethtool: linkstate: migrate linkstate functions to support multi-PHY setups

Olivier Gayot (1):
block: fix conversion of GPT partition name to 7-bit

Oscar Maes (1):
vlan: enforce underlying device type

Pali Rohár (1):
cifs: Remove symlink member from cifs_open_info_data union

Paolo Bonzini (1):
KVM: e500: always restore irqs

Paul Fertser (1):
hwmon: (peci/dimmtemp) Do not provide fake thresholds data

Pawel Chmielewski (1):
intel_th: pci: Add Arrow Lake support

Pawel Laszczak (1):
usb: hub: lack of clearing xHC resources

Peiyang Wang (1):
net: hns3: make sure ptp clock is unregister and freed if hclge_ptp_get_cycle returns an error

Peter Zijlstra (2):
loongarch: Use ASM_REACHABLE
perf/core: Fix pmus_lock vs. pmus_srcu ordering

Philipp Stanner (2):
stmmac: loongson: Pass correct arg to PCI function drm/sched: Fix preprocessor guard

Prashanth K (3):
usb: gadget: u_ether: Set is_suspend flag if remote wakeup fails
usb: gadget: Set self-powered based on MaxPower and bmAttributes
usb: gadget: Check bmAttributes only if configuration is valid

Qiu-ji Chen (1):
cdx: Fix possible UAF error in driver_override_show()

Qu Wenruo (1):
btrfs: fix data overwriting bug during buffered write when block size < page size

Richard Thier (1):
drm/radeon: Fix rs400_gpu_init for ATI mobility radeon Xpress 200M

Rob Herring (Arm) (1):
Revert "of: reserved-memory: Fix using wrong number of cells to get property 'alignment'"

Ryan Roberts (3):
mm: don't skip arch_sync_kernel_mappings() in error paths
mm: hugetlb: Add huge page size param to huge_ptep_get_and_clear()
arm64: hugetlb: Fix huge_ptep_get_and_clear() for non-present ptes

Salah Triki (1):
bluetooth: btusb: Initialize .owner field of force_poll_sync_fops

Sam Winchenbach (1):
iio: filter: admv8818: Force initialization of SDO

Sean Christopherson (7):
KVM: SVM: Set RFLAGS.IF=1 in C code, to get VMRUN out of the STI shadow
KVM: SVM: Save host DR masks on CPUs with DebugSwap
KVM: SVM: Drop DEBUGCTL[5:2] from guest's effective value
KVM: SVM: Suppress DEBUGCTL.BTF on AMD
KVM: x86: Snapshot the host's DEBUGCTL in common x86
KVM: SVM: Manually context switch DEBUGCTL if LBR virtualization is disabled
KVM: x86: Snapshot the host's DEBUGCTL after disabling IRQs

Sebastian Andrzej Siewior (1):
dma: kmsan: export kmsan_handle_dma() for modules

SeongJae Park (4):
selftests/damon/damos_quota_goal: handle minimum quota that cannot be further reduced selftests/damon/damos_quota: make real expectation of quota exceeds selftests/damon/damon_nr_regions: set ops update for merge results check to 100ms selftests/damon/damon_nr_regions: sort collected regiosn before checking with min/max boundaries

Steve French (1):
smb311: failure to open files of length 1040 when mounting with SMB3.1.1 POSIX extensions

Suren Baghdasaryan (1):
userfaultfd: do not block on locking a large folio with raised refcount

Takashi Iwai (1):
ALSA: seq: Avoid module auto-load handling at event delivery

Thadeu Lima de Souza Cascardo (1):
char: misc: deallocate static minor in error path

Thinh Nguyen (1):
usb: dwc3: Set SUSPENDENABLE soon after phy init

Thomas Böhler (7):
drm/panic: avoid reimplementing Iterator::find drm/panic: remove unnecessary borrow in alignment_pattern drm/panic: prefer eliding lifetimes
drm/panic: remove redundant field when assigning value drm/panic: correctly indent continuation of line in list item drm/panic: allow verbose boolean for clarity drm/panic: allow verbose version check

Thomas Hellström (6):
drm/xe/hmm: Style- and include fixes
drm/xe/hmm: Don't dereference struct page pointers without notifier lock drm/xe/vm: Fix a misplaced #endif
drm/xe/vm: Validate userptr during gpu vma prefetching drm/xe: Fix fault mode invalidation with unbind drm/xe/userptr: Unmap userptrs in the mmu notifier

Thomas Weißschuh (1):
kbuild: userprogs: use correct lld when linking through clang

Thomas Zimmermann (5):
drm/fbdev-helper: Move color-mode lookup into 4CC format helper drm/fbdev: Add memory-agnostic fbdev client
drm: Add client-agnostic setup helper
drm/fbdev-ttm: Support struct drm_driver.fbdev_probe drm/nouveau: Run DRM default client setup

Tiezhu Yang (1):
LoongArch: Convert unreachable() to BUG()

Titus Rwantare (1):
hwmon: (pmbus) Initialise page count in pmbus_identify()

Tvrtko Ursulin (1):
drm/xe: Fix GT "for each engine" workarounds

Uday Shankar (1):
ublk: set_params: properly check if parameters can be applied

Vicki Pfau (1):
HID: hid-steam: Fix use-after-free when detaching device

Ville Syrjälä (2):
drm/i915/color: Extract intel_color_modeset() drm/i915: Plumb 'dsb' all way to the plane hooks

Visweswara Tanuku (1):
slimbus: messaging: Free transaction ID in delayed interrupt scenario

Vitaliy Shevtsov (2):
wifi: nl80211: reject cooked mode if it is set along with other flags
caif_virtio: fix wrong pointer check in cfv_probe()

Xi Ruoyao (1):
x86/mm: Don't disable PCID when INVLPG has been fixed by microcode

Xiaoyao Li (1):
KVM: x86: Explicitly zero EAX and EBX when PERFMON_V2 isn't supported by KVM

Xinghuo Chen (1):
hwmon: fix a NULL vs IS_ERR_OR_NULL() check in xgene_hwmon_probe()

Yu-Chun Lin (1):
HID: google: fix unused variable warning under !CONFIG_ACPI

Yuezhang Mo (1):
exfat: fix just enough dentries but allocate a new cluster to dir

Yutaro Ohno (1):
rust: block: fix formatting in GenDisk doc

Zecheng Li (1):
sched/fair: Fix potential memory corruption in child_cfs_rq_on_list

Zhang Lixu (2):
HID: intel-ish-hid: Fix use-after-free issue in hid_ishtp_cl_remove()
HID: intel-ish-hid: Fix use-after-free issue in ishtp_hid_remove()

author maintainer
#1 lore raw
.clippy.toml new file +9 -0
new file mode 100644
index 000000000000..e4c4eef10b28
@@ -0,0 +1,9 @@
+# SPDX-License-Identifier: GPL-2.0
+
+check-private-items = true
+
+disallowed-macros = [
+    # The `clippy::dbg_macro` lint only works with `std::dbg!`, thus we simulate
+    # it here, see: https://github.com/rust-lang/rust-clippy/issues/11303.
+    { path = "kernel::dbg", reason = "the `dbg!` macro is intended as a debugging tool" },
+]
.gitignore +1 -0
index 56972adb5031..a61e4778d011 100644
@@ -103,6 +103,7 @@ modules.order
 # We don't want to ignore the following even if they are dot-files
 #
 !.clang-format
+!.clippy.toml
 !.cocciconfig
 !.editorconfig
 !.get_maintainer.ignore
Documentation/admin-guide/sysctl/kernel.rst +11 -0
index f8bc1630eba0..fa21cdd610b2 100644
@@ -212,6 +212,17 @@ pid>/``).
 This value defaults to 0.
 
 
+core_sort_vma
+=============
+
+The default coredump writes VMAs in address order. By setting
+``core_sort_vma`` to 1, VMAs will be written from smallest size
+to largest size. This is known to break at least elfutils, but
+can be handy when dealing with very large (and truncated)
+coredumps where the more useful debugging details are included
+in the smaller VMAs.
+
+
 core_uses_pid
 =============
 
Documentation/rust/coding-guidelines.rst +146 -0

149 lines not on this page · raw message

MAINTAINERS +8 -0
index 6bb4ec0c162a..de04c7ba8571 100644
@@ -20175,6 +20175,7 @@ B:	https://github.com/Rust-for-Linux/linux/issues
 C:	zulip://rust-for-linux.zulipchat.com
 P:	https://rust-for-linux.com/contributing
 T:	git https://github.com/Rust-for-Linux/linux.git rust-next
+F:	.clippy.toml
 F:	Documentation/rust/
 F:	rust/
 F:	samples/rust/
@@ -20182,6 +20183,13 @@ F:	scripts/*rust*
 F:	tools/testing/selftests/rust/
 K:	\b(?i:rust)\b
 
+RUST [ALLOC]
+M:	Danilo Krummrich <[email protected]>
+L:	[email protected]
+S:	Maintained
+F:	rust/kernel/alloc.rs
+F:	rust/kernel/alloc/
+
 RXRPC SOCKETS (AF_RXRPC)
 M:	David Howells <[email protected]>
 M:	Marc Dionne <[email protected]>
Makefile +17 -5
index 17dfe0a8ca8f..343c9f25433c 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 6
 PATCHLEVEL = 12
-SUBLEVEL = 18
+SUBLEVEL = 19
 EXTRAVERSION =
 NAME = Baby Opossum Posse
 
@@ -446,19 +446,23 @@ KBUILD_USERLDFLAGS := $(USERLDFLAGS)
 export rust_common_flags := --edition=2021 \
 			    -Zbinary_dep_depinfo=y \
 			    -Astable_features \
-			    -Dunsafe_op_in_unsafe_fn \
 			    -Dnon_ascii_idents \
+			    -Dunsafe_op_in_unsafe_fn \
+			    -Wmissing_docs \
 			    -Wrust_2018_idioms \
 			    -Wunreachable_pub \
-			    -Wmissing_docs \
-			    -Wrustdoc::missing_crate_level_docs \
 			    -Wclippy::all \
+			    -Wclippy::ignored_unit_patterns \
 			    -Wclippy::mut_mut \
 			    -Wclippy::needless_bitwise_bool \
 			    -Wclippy::needless_continue \
 			    -Aclippy::needless_lifetimes \
 			    -Wclippy::no_mangle_with_rust_abi \
-			    -Wclippy::dbg_macro
+			    -Wclippy::undocumented_unsafe_blocks \
+			    -Wclippy::unnecessary_safety_comment \
+			    -Wclippy::unnecessary_safety_doc \
+			    -Wrustdoc::missing_crate_level_docs \
+			    -Wrustdoc::unescaped_backticks
 
 KBUILD_HOSTCFLAGS   := $(KBUILD_USERHOSTCFLAGS) $(HOST_LFS_CFLAGS) \
 		       $(HOSTCFLAGS) -I $(srctree)/scripts/include
@@ -583,6 +587,9 @@ endif
 # Allows the usage of unstable features in stable compilers.
 export RUSTC_BOOTSTRAP := 1
 
+# Allows finding `.clippy.toml` in out-of-srctree builds.
+export CLIPPY_CONF_DIR := $(srctree)
+
 export ARCH SRCARCH CONFIG_SHELL BASH HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE LD CC HOSTPKG_CONFIG
 export RUSTC RUSTDOC RUSTFMT RUSTC_OR_CLIPPY_QUIET RUSTC_OR_CLIPPY BINDGEN
 export HOSTRUSTC KBUILD_HOSTRUSTFLAGS
@@ -1060,6 +1067,11 @@ endif
 KBUILD_USERCFLAGS  += $(filter -m32 -m64 --target=%, $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS))
 KBUILD_USERLDFLAGS += $(filter -m32 -m64 --target=%, $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS))
 
+# userspace programs are linked via the compiler, use the correct linker
+ifeq ($(CONFIG_CC_IS_CLANG)$(CONFIG_LD_IS_LLD),yy)
+KBUILD_USERLDFLAGS += --ld-path=$(LD)
+endif
+
 # make the checker run with the right architecture
 CHECKFLAGS += --arch=$(ARCH)
 
arch/arm64/include/asm/hugetlb.h +2 -2
index 293f880865e8..f0304273eb35 100644
@@ -34,8 +34,8 @@ extern int huge_ptep_set_access_flags(struct vm_area_struct *vma,
 				      unsigned long addr, pte_t *ptep,
 				      pte_t pte, int dirty);
 #define __HAVE_ARCH_HUGE_PTEP_GET_AND_CLEAR
-extern pte_t huge_ptep_get_and_clear(struct mm_struct *mm,
-				     unsigned long addr, pte_t *ptep);
+extern pte_t huge_ptep_get_and_clear(struct mm_struct *mm, unsigned long addr,
+				     pte_t *ptep, unsigned long sz);
 #define __HAVE_ARCH_HUGE_PTEP_SET_WRPROTECT
 extern void huge_ptep_set_wrprotect(struct mm_struct *mm,
 				    unsigned long addr, pte_t *ptep);
arch/arm64/mm/hugetlbpage.c +25 -36

106 lines not on this page · raw message

arch/loongarch/include/asm/bug.h +7 -6
index 08388876ade4..561ac1bf79e2 100644
@@ -4,6 +4,7 @@
 
 #include <asm/break.h>
 #include <linux/stringify.h>
+#include <linux/objtool.h>
 
 #ifndef CONFIG_DEBUG_BUGVERBOSE
 #define _BUGVERBOSE_LOCATION(file, line)
@@ -33,25 +34,25 @@
 
 #define ASM_BUG_FLAGS(flags)					\
 	__BUG_ENTRY(flags)					\
-	break		BRK_BUG
+	break		BRK_BUG;
 
 #define ASM_BUG()	ASM_BUG_FLAGS(0)
 
-#define __BUG_FLAGS(flags)					\
-	asm_inline volatile (__stringify(ASM_BUG_FLAGS(flags)));
+#define __BUG_FLAGS(flags, extra)					\
+	asm_inline volatile (__stringify(ASM_BUG_FLAGS(flags))		\
+			     extra);
 
 #define __WARN_FLAGS(flags)					\
 do {								\
 	instrumentation_begin();				\
-	__BUG_FLAGS(BUGFLAG_WARNING|(flags));			\
-	annotate_reachable();					\
+	__BUG_FLAGS(BUGFLAG_WARNING|(flags), ASM_REACHABLE);	\
 	instrumentation_end();					\
 } while (0)
 
 #define BUG()							\
 do {								\
 	instrumentation_begin();				\
-	__BUG_FLAGS(0);						\
+	__BUG_FLAGS(0, "");					\
 	unreachable();						\
 } while (0)
 
arch/loongarch/include/asm/hugetlb.h +4 -2
index 376c0708e297..6302e60fbaee 100644
@@ -41,7 +41,8 @@ static inline void huge_pte_clear(struct mm_struct *mm, unsigned long addr,
 
 #define __HAVE_ARCH_HUGE_PTEP_GET_AND_CLEAR
 static inline pte_t huge_ptep_get_and_clear(struct mm_struct *mm,
-					    unsigned long addr, pte_t *ptep)
+					    unsigned long addr, pte_t *ptep,
+					    unsigned long sz)
 {
 	pte_t clear;
 	pte_t pte = ptep_get(ptep);
@@ -56,8 +57,9 @@ static inline pte_t huge_ptep_clear_flush(struct vm_area_struct *vma,
 					  unsigned long addr, pte_t *ptep)
 {
 	pte_t pte;
+	unsigned long sz = huge_page_size(hstate_vma(vma));
 
-	pte = huge_ptep_get_and_clear(vma->vm_mm, addr, ptep);
+	pte = huge_ptep_get_and_clear(vma->vm_mm, addr, ptep, sz);
 	flush_tlb_page(vma, addr);
 	return pte;
 }
arch/loongarch/kernel/machine_kexec.c +2 -2
index 8ae641dc53bb..f9381800e291 100644
@@ -126,14 +126,14 @@ void kexec_reboot(void)
 	/* All secondary cpus go to kexec_smp_wait */
 	if (smp_processor_id() > 0) {
 		relocated_kexec_smp_wait(NULL);
-		unreachable();
+		BUG();
 	}
 #endif
 
 	do_kexec = (void *)reboot_code_buffer;
 	do_kexec(efi_boot, cmdline_ptr, systable_ptr, start_addr, first_ind_entry);
 
-	unreachable();
+	BUG();
 }
 
 
arch/loongarch/kernel/setup.c +3 -0
index 56934fe58170..1fa6a604734e 100644
@@ -387,6 +387,9 @@ static void __init check_kernel_sections_mem(void)
  */
 static void __init arch_mem_init(char **cmdline_p)
 {
+	/* Recalculate max_low_pfn for "mem=xxx" */
+	max_pfn = max_low_pfn = PHYS_PFN(memblock_end_of_DRAM());
+
 	if (usermem)
 		pr_info("User-defined physical RAM map overwrite\n");
 
arch/loongarch/kernel/smp.c +46 -1

65 lines not on this page · raw message

arch/loongarch/kvm/exit.c +6 -0
index 90894f70ff4a..add52e927f15 100644
@@ -624,6 +624,12 @@ static int kvm_handle_rdwr_fault(struct kvm_vcpu *vcpu, bool write)
 	struct kvm_run *run = vcpu->run;
 	unsigned long badv = vcpu->arch.badv;
 
+	/* Inject ADE exception if exceed max GPA size */
+	if (unlikely(badv >= vcpu->kvm->arch.gpa_size)) {
+		kvm_queue_exception(vcpu, EXCCODE_ADE, EXSUBCODE_ADEM);
+		return RESUME_GUEST;
+	}
+
 	ret = kvm_handle_mm_fault(vcpu, badv, write);
 	if (ret) {
 		/* Treat as MMIO */
arch/loongarch/kvm/main.c +7 -0
index 7e8f5d6829ef..34fad2c29ee6 100644
@@ -297,6 +297,13 @@ int kvm_arch_enable_virtualization_cpu(void)
 	kvm_debug("GCFG:%lx GSTAT:%lx GINTC:%lx GTLBC:%lx",
 		  read_csr_gcfg(), read_csr_gstat(), read_csr_gintc(), read_csr_gtlbc());
 
+	/*
+	 * HW Guest CSR registers are lost after CPU suspend and resume.
+	 * Clear last_vcpu so that Guest CSR registers forced to reload
+	 * from vCPU SW state.
+	 */
+	this_cpu_ptr(vmcs)->last_vcpu = NULL;
+
 	return 0;
 }
 
arch/loongarch/kvm/vcpu.c +1 -1
index 9d53eca66fcc..e7a084de64f7 100644
@@ -311,7 +311,7 @@ static int kvm_handle_exit(struct kvm_run *run, struct kvm_vcpu *vcpu)
 {
 	int ret = RESUME_GUEST;
 	unsigned long estat = vcpu->arch.host_estat;
-	u32 intr = estat & 0x1fff; /* Ignore NMI */
+	u32 intr = estat & CSR_ESTAT_IS;
 	u32 ecode = (estat & CSR_ESTAT_EXC) >> CSR_ESTAT_EXC_SHIFT;
 
 	vcpu->mode = OUTSIDE_GUEST_MODE;
arch/loongarch/kvm/vm.c +5 -1
index 4ba734aaef87..fe9e973912d4 100644
@@ -46,7 +46,11 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
 	if (kvm_pvtime_supported())
 		kvm->arch.pv_features |= BIT(KVM_FEATURE_STEAL_TIME);
 
-	kvm->arch.gpa_size = BIT(cpu_vabits - 1);
+	/*
+	 * cpu_vabits means user address space only (a half of total).
+	 * GPA size of VM is the same with the size of user address space.
+	 */
+	kvm->arch.gpa_size = BIT(cpu_vabits);
 	kvm->arch.root_level = CONFIG_PGTABLE_LEVELS - 1;
 	kvm->arch.invalid_ptes[0] = 0;
 	kvm->arch.invalid_ptes[1] = (unsigned long)invalid_pte_table;
arch/mips/include/asm/hugetlb.h +4 -2
index fd69c8808554..00ee3c036630 100644
@@ -32,7 +32,8 @@ static inline int prepare_hugepage_range(struct file *file,
 
 #define __HAVE_ARCH_HUGE_PTEP_GET_AND_CLEAR
 static inline pte_t huge_ptep_get_and_clear(struct mm_struct *mm,
-					    unsigned long addr, pte_t *ptep)
+					    unsigned long addr, pte_t *ptep,
+					    unsigned long sz)
 {
 	pte_t clear;
 	pte_t pte = *ptep;
@@ -47,13 +48,14 @@ static inline pte_t huge_ptep_clear_flush(struct vm_area_struct *vma,
 					  unsigned long addr, pte_t *ptep)
 {
 	pte_t pte;
+	unsigned long sz = huge_page_size(hstate_vma(vma));
 
 	/*
 	 * clear the huge pte entry firstly, so that the other smp threads will
 	 * not get old pte entry after finishing flush_tlb_page and before
 	 * setting new huge pte entry
 	 */
-	pte = huge_ptep_get_and_clear(vma->vm_mm, addr, ptep);
+	pte = huge_ptep_get_and_clear(vma->vm_mm, addr, ptep, sz);
 	flush_tlb_page(vma, addr);
 	return pte;
 }
arch/parisc/include/asm/hugetlb.h +1 -1
index 72daacc472a0..f7a91411dcc9 100644
@@ -10,7 +10,7 @@ void set_huge_pte_at(struct mm_struct *mm, unsigned long addr,
 
 #define __HAVE_ARCH_HUGE_PTEP_GET_AND_CLEAR
 pte_t huge_ptep_get_and_clear(struct mm_struct *mm, unsigned long addr,
-			      pte_t *ptep);
+			      pte_t *ptep, unsigned long sz);
 
 /*
  * If the arch doesn't supply something else, assume that hugepage
arch/parisc/mm/hugetlbpage.c +1 -1
index aa664f7ddb63..cec2b9a581dd 100644
@@ -147,7 +147,7 @@ void set_huge_pte_at(struct mm_struct *mm, unsigned long addr,
 
 
 pte_t huge_ptep_get_and_clear(struct mm_struct *mm, unsigned long addr,
-			      pte_t *ptep)
+			      pte_t *ptep, unsigned long sz)
 {
 	pte_t entry;
 
arch/powerpc/include/asm/hugetlb.h +4 -2
index dad2e7980f24..86326587e58d 100644
@@ -45,7 +45,8 @@ void set_huge_pte_at(struct mm_struct *mm, unsigned long addr, pte_t *ptep,
 
 #define __HAVE_ARCH_HUGE_PTEP_GET_AND_CLEAR
 static inline pte_t huge_ptep_get_and_clear(struct mm_struct *mm,
-					    unsigned long addr, pte_t *ptep)
+					    unsigned long addr, pte_t *ptep,
+					    unsigned long sz)
 {
 	return __pte(pte_update(mm, addr, ptep, ~0UL, 0, 1));
 }
@@ -55,8 +56,9 @@ static inline pte_t huge_ptep_clear_flush(struct vm_area_struct *vma,
 					  unsigned long addr, pte_t *ptep)
 {
 	pte_t pte;
+	unsigned long sz = huge_page_size(hstate_vma(vma));
 
-	pte = huge_ptep_get_and_clear(vma->vm_mm, addr, ptep);
+	pte = huge_ptep_get_and_clear(vma->vm_mm, addr, ptep, sz);
 	flush_hugetlb_page(vma, addr);
 	return pte;
 }
arch/powerpc/kvm/e500_mmu_host.c +12 -7
index 6824e8139801..3708fa48bee9 100644
@@ -242,7 +242,7 @@ static inline int tlbe_is_writable(struct kvm_book3e_206_tlb_entry *tlbe)
 	return tlbe->mas7_3 & (MAS3_SW|MAS3_UW);
 }
 
-static inline bool kvmppc_e500_ref_setup(struct tlbe_ref *ref,
+static inline void kvmppc_e500_ref_setup(struct tlbe_ref *ref,
 					 struct kvm_book3e_206_tlb_entry *gtlbe,
 					 kvm_pfn_t pfn, unsigned int wimg)
 {
@@ -252,7 +252,11 @@ static inline bool kvmppc_e500_ref_setup(struct tlbe_ref *ref,
 	/* Use guest supplied MAS2_G and MAS2_E */
 	ref->flags |= (gtlbe->mas2 & MAS2_ATTRIB_MASK) | wimg;
 
-	return tlbe_is_writable(gtlbe);
+	/* Mark the page accessed */
+	kvm_set_pfn_accessed(pfn);
+
+	if (tlbe_is_writable(gtlbe))
+		kvm_set_pfn_dirty(pfn);
 }
 
 static inline void kvmppc_e500_ref_release(struct tlbe_ref *ref)
@@ -322,7 +326,6 @@ static inline int kvmppc_e500_shadow_map(struct kvmppc_vcpu_e500 *vcpu_e500,
 {
 	struct kvm_memory_slot *slot;
 	unsigned long pfn = 0; /* silence GCC warning */
-	struct page *page = NULL;
 	unsigned long hva;
 	int pfnmap = 0;
 	int tsize = BOOK3E_PAGESZ_4K;
@@ -334,7 +337,6 @@ static inline int kvmppc_e500_shadow_map(struct kvmppc_vcpu_e500 *vcpu_e500,
 	unsigned int wimg = 0;
 	pgd_t *pgdir;
 	unsigned long flags;
-	bool writable = false;
 
 	/* used to check for invalidations in progress */
 	mmu_seq = kvm->mmu_invalidate_seq;
@@ -444,7 +446,7 @@ static inline int kvmppc_e500_shadow_map(struct kvmppc_vcpu_e500 *vcpu_e500,
 
 	if (likely(!pfnmap)) {
 		tsize_pages = 1UL << (tsize + 10 - PAGE_SHIFT);
-		pfn = __kvm_faultin_pfn(slot, gfn, FOLL_WRITE, NULL, &page);
+		pfn = gfn_to_pfn_memslot(slot, gfn);
 		if (is_error_noslot_pfn(pfn)) {
 			if (printk_ratelimit())
 				pr_err("%s: real page not found for gfn %lx\n",
@@ -489,7 +491,7 @@ static inline int kvmppc_e500_shadow_map(struct kvmppc_vcpu_e500 *vcpu_e500,
 	}
 	local_irq_restore(flags);
 
-	writable = kvmppc_e500_ref_setup(ref, gtlbe, pfn, wimg);
+	kvmppc_e500_ref_setup(ref, gtlbe, pfn, wimg);
 	kvmppc_e500_setup_stlbe(&vcpu_e500->vcpu, gtlbe, tsize,
 				ref, gvaddr, stlbe);
 
@@ -497,8 +499,11 @@ static inline int kvmppc_e500_shadow_map(struct kvmppc_vcpu_e500 *vcpu_e500,
 	kvmppc_mmu_flush_icache(pfn);
 
 out:
-	kvm_release_faultin_page(kvm, page, !!ret, writable);
 	spin_unlock(&kvm->mmu_lock);
+
+	/* Drop refcount on page, so that mmu notifiers can clear it */
+	kvm_release_pfn_clean(pfn);
+
 	return ret;
 }
 
arch/riscv/include/asm/hugetlb.h +2 -1
index faf3624d8057..446126497768 100644
@@ -28,7 +28,8 @@ void set_huge_pte_at(struct mm_struct *mm,
 
 #define __HAVE_ARCH_HUGE_PTEP_GET_AND_CLEAR
 pte_t huge_ptep_get_and_clear(struct mm_struct *mm,
-			      unsigned long addr, pte_t *ptep);
+			      unsigned long addr, pte_t *ptep,
+			      unsigned long sz);
 
 #define __HAVE_ARCH_HUGE_PTEP_CLEAR_FLUSH
 pte_t huge_ptep_clear_flush(struct vm_area_struct *vma,
arch/riscv/mm/hugetlbpage.c +1 -1
index 42314f093922..b4a78a4b35cf 100644
@@ -293,7 +293,7 @@ int huge_ptep_set_access_flags(struct vm_area_struct *vma,
 
 pte_t huge_ptep_get_and_clear(struct mm_struct *mm,
 			      unsigned long addr,
-			      pte_t *ptep)
+			      pte_t *ptep, unsigned long sz)
 {
 	pte_t orig_pte = ptep_get(ptep);
 	int pte_num;
arch/s390/include/asm/hugetlb.h +12 -5
index cf1b5d6fb1a6..4731a51241ba 100644
@@ -20,8 +20,15 @@ void set_huge_pte_at(struct mm_struct *mm, unsigned long addr,
 void __set_huge_pte_at(struct mm_struct *mm, unsigned long addr,
 		     pte_t *ptep, pte_t pte);
 pte_t huge_ptep_get(struct mm_struct *mm, unsigned long addr, pte_t *ptep);
-pte_t huge_ptep_get_and_clear(struct mm_struct *mm,
-			      unsigned long addr, pte_t *ptep);
+pte_t __huge_ptep_get_and_clear(struct mm_struct *mm, unsigned long addr,
+				pte_t *ptep);
+
+static inline pte_t huge_ptep_get_and_clear(struct mm_struct *mm,
+					    unsigned long addr, pte_t *ptep,
+					    unsigned long sz)
+{
+	return __huge_ptep_get_and_clear(mm, addr, ptep);
+}
 
 /*
  * If the arch doesn't supply something else, assume that hugepage
@@ -57,7 +64,7 @@ static inline void huge_pte_clear(struct mm_struct *mm, unsigned long addr,
 static inline pte_t huge_ptep_clear_flush(struct vm_area_struct *vma,
 					  unsigned long address, pte_t *ptep)
 {
-	return huge_ptep_get_and_clear(vma->vm_mm, address, ptep);
+	return __huge_ptep_get_and_clear(vma->vm_mm, address, ptep);
 }
 
 static inline int huge_ptep_set_access_flags(struct vm_area_struct *vma,
@@ -66,7 +73,7 @@ static inline int huge_ptep_set_access_flags(struct vm_area_struct *vma,
 {
 	int changed = !pte_same(huge_ptep_get(vma->vm_mm, addr, ptep), pte);
 	if (changed) {
-		huge_ptep_get_and_clear(vma->vm_mm, addr, ptep);
+		__huge_ptep_get_and_clear(vma->vm_mm, addr, ptep);
 		__set_huge_pte_at(vma->vm_mm, addr, ptep, pte);
 	}
 	return changed;
@@ -75,7 +82,7 @@ static inline int huge_ptep_set_access_flags(struct vm_area_struct *vma,
 static inline void huge_ptep_set_wrprotect(struct mm_struct *mm,
 					   unsigned long addr, pte_t *ptep)
 {
-	pte_t pte = huge_ptep_get_and_clear(mm, addr, ptep);
+	pte_t pte = __huge_ptep_get_and_clear(mm, addr, ptep);
 	__set_huge_pte_at(mm, addr, ptep, pte_wrprotect(pte));
 }
 
arch/s390/kernel/traps.c +3 -3
index 160b2acba8db..908bae849843 100644
@@ -284,10 +284,10 @@ static void __init test_monitor_call(void)
 		return;
 	asm volatile(
 		"	mc	0,0\n"
-		"0:	xgr	%0,%0\n"
+		"0:	lhi	%[val],0\n"
 		"1:\n"
-		EX_TABLE(0b,1b)
-		: "+d" (val));
+		EX_TABLE(0b, 1b)
+		: [val] "+d" (val));
 	if (!val)
 		panic("Monitor call doesn't work!\n");
 }
arch/s390/mm/hugetlbpage.c +2 -2
index ded0eff58a19..9c1ba8c0cac6 100644
@@ -174,8 +174,8 @@ pte_t huge_ptep_get(struct mm_struct *mm, unsigned long addr, pte_t *ptep)
 	return __rste_to_pte(pte_val(*ptep));
 }
 
-pte_t huge_ptep_get_and_clear(struct mm_struct *mm,
-			      unsigned long addr, pte_t *ptep)
+pte_t __huge_ptep_get_and_clear(struct mm_struct *mm,
+				unsigned long addr, pte_t *ptep)
 {
 	pte_t pte = huge_ptep_get(mm, addr, ptep);
 	pmd_t *pmdp = (pmd_t *) ptep;
arch/sparc/include/asm/hugetlb.h +1 -1
index c714ca6a05aa..e7a9cdd498dc 100644
@@ -20,7 +20,7 @@ void __set_huge_pte_at(struct mm_struct *mm, unsigned long addr,
 
 #define __HAVE_ARCH_HUGE_PTEP_GET_AND_CLEAR
 pte_t huge_ptep_get_and_clear(struct mm_struct *mm, unsigned long addr,
-			      pte_t *ptep);
+			      pte_t *ptep, unsigned long sz);
 
 #define __HAVE_ARCH_HUGE_PTEP_CLEAR_FLUSH
 static inline pte_t huge_ptep_clear_flush(struct vm_area_struct *vma,
arch/sparc/mm/hugetlbpage.c +1 -1
index cc91ca7a1e18..c276d70a7479 100644
@@ -368,7 +368,7 @@ void set_huge_pte_at(struct mm_struct *mm, unsigned long addr,
 }
 
 pte_t huge_ptep_get_and_clear(struct mm_struct *mm, unsigned long addr,
-			      pte_t *ptep)
+			      pte_t *ptep, unsigned long sz)
 {
 	unsigned int i, nptes, orig_shift, shift;
 	unsigned long size;
arch/x86/boot/compressed/pgtable_64.c +2 -0
index c882e1f67af0..d8c5de40669d 100644
@@ -1,6 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0
 #include "misc.h"
 #include <asm/bootparam.h>
+#include <asm/bootparam_utils.h>
 #include <asm/e820/types.h>
 #include <asm/processor.h>
 #include "pgtable.h"
@@ -107,6 +108,7 @@ asmlinkage void configure_5level_paging(struct boot_params *bp, void *pgtable)
 	bool l5_required = false;
 
 	/* Initialize boot_params. Required for cmdline_find_option_bool(). */
+	sanitize_boot_params(bp);
 	boot_params_ptr = bp;
 
 	/*
arch/x86/include/asm/kvm_host.h +1 -0
index 8499b9cb9c82..e4dd840e0bec 100644
@@ -761,6 +761,7 @@ struct kvm_vcpu_arch {
 	u32 pkru;
 	u32 hflags;
 	u64 efer;
+	u64 host_debugctl;
 	u64 apic_base;
 	struct kvm_lapic *apic;    /* kernel irqchip context */
 	bool load_eoi_exitmap_pending;
arch/x86/kernel/amd_nb.c +3 -6
index 37b8244899d8..04712fd0c964 100644
@@ -405,7 +405,6 @@ bool __init early_is_amd_nb(u32 device)
 
 struct resource *amd_get_mmconfig_range(struct resource *res)
 {
-	u32 address;
 	u64 base, msr;
 	unsigned int segn_busn_bits;
 
@@ -413,13 +412,11 @@ struct resource *amd_get_mmconfig_range(struct resource *res)
 	    boot_cpu_data.x86_vendor != X86_VENDOR_HYGON)
 		return NULL;
 
-	/* assume all cpus from fam10h have mmconfig */
-	if (boot_cpu_data.x86 < 0x10)
+	/* Assume CPUs from Fam10h have mmconfig, although not all VMs do */
+	if (boot_cpu_data.x86 < 0x10 ||
+	    rdmsrl_safe(MSR_FAM10H_MMIO_CONF_BASE, &msr))
 		return NULL;
 
-	address = MSR_FAM10H_MMIO_CONF_BASE;
-	rdmsrl(address, msr);
-
 	/* mmconfig is not enabled */
 	if (!(msr & FAM10H_MMIO_CONF_ENABLE))
 		return NULL;
arch/x86/kernel/cpu/cacheinfo.c +1 -1
index e6fa03ed9172..a6c6bccfa8b8 100644
@@ -808,7 +808,7 @@ void init_intel_cacheinfo(struct cpuinfo_x86 *c)
 			cpuid(2, &regs[0], &regs[1], &regs[2], &regs[3]);
 
 			/* If bit 31 is set, this is an unknown format */
-			for (j = 0 ; j < 3 ; j++)
+			for (j = 0 ; j < 4 ; j++)
 				if (regs[j] & (1 << 31))
 					regs[j] = 0;
 
arch/x86/kernel/cpu/intel.c +35 -17

81 lines not on this page · raw message

arch/x86/kernel/cpu/microcode/amd.c +6 -0
index f5365b32582a..def6a2854a4b 100644
@@ -175,23 +175,29 @@ static bool need_sha_check(u32 cur_rev)
 {
 	switch (cur_rev >> 8) {
 	case 0x80012: return cur_rev <= 0x800126f; break;
+	case 0x80082: return cur_rev <= 0x800820f; break;
 	case 0x83010: return cur_rev <= 0x830107c; break;
 	case 0x86001: return cur_rev <= 0x860010e; break;
 	case 0x86081: return cur_rev <= 0x8608108; break;
 	case 0x87010: return cur_rev <= 0x8701034; break;
 	case 0x8a000: return cur_rev <= 0x8a0000a; break;
+	case 0xa0010: return cur_rev <= 0xa00107a; break;
 	case 0xa0011: return cur_rev <= 0xa0011da; break;
 	case 0xa0012: return cur_rev <= 0xa001243; break;
+	case 0xa0082: return cur_rev <= 0xa00820e; break;
 	case 0xa1011: return cur_rev <= 0xa101153; break;
 	case 0xa1012: return cur_rev <= 0xa10124e; break;
 	case 0xa1081: return cur_rev <= 0xa108109; break;
 	case 0xa2010: return cur_rev <= 0xa20102f; break;
 	case 0xa2012: return cur_rev <= 0xa201212; break;
+	case 0xa4041: return cur_rev <= 0xa404109; break;
+	case 0xa5000: return cur_rev <= 0xa500013; break;
 	case 0xa6012: return cur_rev <= 0xa60120a; break;
 	case 0xa7041: return cur_rev <= 0xa704109; break;
 	case 0xa7052: return cur_rev <= 0xa705208; break;
 	case 0xa7080: return cur_rev <= 0xa708009; break;
 	case 0xa70c0: return cur_rev <= 0xa70C009; break;
+	case 0xaa001: return cur_rev <= 0xaa00116; break;
 	case 0xaa002: return cur_rev <= 0xaa00218; break;
 	default: break;
 	}
arch/x86/kernel/cpu/sgx/ioctl.c +7 -0
index b65ab214bdf5..776a20172867 100644
@@ -64,6 +64,13 @@ static int sgx_encl_create(struct sgx_encl *encl, struct sgx_secs *secs)
 	struct file *backing;
 	long ret;
 
+	/*
+	 * ECREATE would detect this too, but checking here also ensures
+	 * that the 'encl_size' calculations below can never overflow.
+	 */
+	if (!is_power_of_2(secs->size))
+		return -EINVAL;
+
 	va_page = sgx_encl_grow(encl, true);
 	if (IS_ERR(va_page))
 		return PTR_ERR(va_page);
arch/x86/kvm/cpuid.c +1 -1
index 83bfecd1a6e4..9157b4485ded 100644
@@ -1387,7 +1387,7 @@ static inline int __do_cpuid_func(struct kvm_cpuid_array *array, u32 function)
 
 		entry->ecx = entry->edx = 0;
 		if (!enable_pmu || !kvm_cpu_cap_has(X86_FEATURE_PERFMON_V2)) {
-			entry->eax = entry->ebx;
+			entry->eax = entry->ebx = 0;
 			break;
 		}
 
arch/x86/kvm/svm/sev.c +10 -3
index e9af87b12814..3ec56bf76ef1 100644
@@ -4579,6 +4579,8 @@ void sev_es_vcpu_reset(struct vcpu_svm *svm)
 
 void sev_es_prepare_switch_to_guest(struct vcpu_svm *svm, struct sev_es_save_area *hostsa)
 {
+	struct kvm *kvm = svm->vcpu.kvm;
+
 	/*
 	 * All host state for SEV-ES guests is categorized into three swap types
 	 * based on how it is handled by hardware during a world switch:
@@ -4602,10 +4604,15 @@ void sev_es_prepare_switch_to_guest(struct vcpu_svm *svm, struct sev_es_save_are
 
 	/*
 	 * If DebugSwap is enabled, debug registers are loaded but NOT saved by
-	 * the CPU (Type-B). If DebugSwap is disabled/unsupported, the CPU both
-	 * saves and loads debug registers (Type-A).
+	 * the CPU (Type-B). If DebugSwap is disabled/unsupported, the CPU does
+	 * not save or load debug registers.  Sadly, on CPUs without
+	 * ALLOWED_SEV_FEATURES, KVM can't prevent SNP guests from enabling
+	 * DebugSwap on secondary vCPUs without KVM's knowledge via "AP Create".
+	 * Save all registers if DebugSwap is supported to prevent host state
+	 * from being clobbered by a misbehaving guest.
 	 */
-	if (sev_vcpu_has_debug_swap(svm)) {
+	if (sev_vcpu_has_debug_swap(svm) ||
+	    (sev_snp_guest(kvm) && cpu_feature_enabled(X86_FEATURE_DEBUG_SWAP))) {
 		hostsa->dr0 = native_get_debugreg(0);
 		hostsa->dr1 = native_get_debugreg(1);
 		hostsa->dr2 = native_get_debugreg(2);
arch/x86/kvm/svm/svm.c +49 -0

79 lines not on this page · raw message

arch/x86/kvm/svm/svm.h +1 -1
index 43fa6a16eb19..d114efac7af7 100644
@@ -591,7 +591,7 @@ static inline bool is_vnmi_enabled(struct vcpu_svm *svm)
 /* svm.c */
 #define MSR_INVALID				0xffffffffU
 
-#define DEBUGCTL_RESERVED_BITS (~(0x3fULL))
+#define DEBUGCTL_RESERVED_BITS (~DEBUGCTLMSR_LBR)
 
 extern bool dump_invalid_vmcb;
 
arch/x86/kvm/svm/vmenter.S +1 -9
index 2ed80aea3bb1..0c61153b275f 100644
@@ -170,12 +170,8 @@ SYM_FUNC_START(__svm_vcpu_run)
 	mov VCPU_RDI(%_ASM_DI), %_ASM_DI
 
 	/* Enter guest mode */
-	sti
-
 3:	vmrun %_ASM_AX
 4:
-	cli
-
 	/* Pop @svm to RAX while it's the only available register. */
 	pop %_ASM_AX
 
@@ -340,12 +336,8 @@ SYM_FUNC_START(__svm_sev_es_vcpu_run)
 	mov KVM_VMCB_pa(%rax), %rax
 
 	/* Enter guest mode */
-	sti
-
 1:	vmrun %rax
-
-2:	cli
-
+2:
 	/* IMPORTANT: Stuff the RSB immediately after VM-Exit, before RET! */
 	FILL_RETURN_BUFFER %rax, RSB_CLEAR_LOOPS, X86_FEATURE_RSB_VMEXIT
 
arch/x86/kvm/vmx/vmx.c +2 -6
index 1af30e3472cd..a3d45b01dbad 100644
@@ -1515,16 +1515,12 @@ void vmx_vcpu_load_vmcs(struct kvm_vcpu *vcpu, int cpu,
  */
 void vmx_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
 {
-	struct vcpu_vmx *vmx = to_vmx(vcpu);
-
 	if (vcpu->scheduled_out && !kvm_pause_in_guest(vcpu->kvm))
 		shrink_ple_window(vcpu);
 
 	vmx_vcpu_load_vmcs(vcpu, cpu, NULL);
 
 	vmx_vcpu_pi_load(vcpu, cpu);
-
-	vmx->host_debugctlmsr = get_debugctlmsr();
 }
 
 void vmx_vcpu_put(struct kvm_vcpu *vcpu)
@@ -7454,8 +7450,8 @@ fastpath_t vmx_vcpu_run(struct kvm_vcpu *vcpu, bool force_immediate_exit)
 	}
 
 	/* MSR_IA32_DEBUGCTLMSR is zeroed on vmexit. Restore it if needed */
-	if (vmx->host_debugctlmsr)
-		update_debugctlmsr(vmx->host_debugctlmsr);
+	if (vcpu->arch.host_debugctl)
+		update_debugctlmsr(vcpu->arch.host_debugctl);
 
 #ifndef CONFIG_X86_64
 	/*
arch/x86/kvm/vmx/vmx.h +0 -2
index 41bf59bbc642..cf57fbf12104 100644
@@ -339,8 +339,6 @@ struct vcpu_vmx {
 	/* apic deadline value in host tsc */
 	u64 hv_deadline_tsc;
 
-	unsigned long host_debugctlmsr;
-
 	/*
 	 * Only bits masked by msr_ia32_feature_control_valid_bits can be set in
 	 * msr_ia32_feature_control. FEAT_CTL_LOCKED is always included
arch/x86/kvm/x86.c +2 -0
index b67a2f46e40b..8794c0a8a2e4 100644
@@ -10964,6 +10964,8 @@ static int vcpu_enter_guest(struct kvm_vcpu *vcpu)
 		set_debugreg(0, 7);
 	}
 
+	vcpu->arch.host_debugctl = get_debugctlmsr();
+
 	guest_timing_enter_irqoff();
 
 	for (;;) {
arch/x86/mm/init.c +14 -9
index eb503f53c319..101725c149c4 100644
@@ -263,28 +263,33 @@ static void __init probe_page_size_mask(void)
 }
 
 /*
- * INVLPG may not properly flush Global entries
- * on these CPUs when PCIDs are enabled.
+ * INVLPG may not properly flush Global entries on
+ * these CPUs.  New microcode fixes the issue.
  */
 static const struct x86_cpu_id invlpg_miss_ids[] = {
-	X86_MATCH_VFM(INTEL_ALDERLAKE,	    0),
-	X86_MATCH_VFM(INTEL_ALDERLAKE_L,    0),
-	X86_MATCH_VFM(INTEL_ATOM_GRACEMONT, 0),
-	X86_MATCH_VFM(INTEL_RAPTORLAKE,	    0),
-	X86_MATCH_VFM(INTEL_RAPTORLAKE_P,   0),
-	X86_MATCH_VFM(INTEL_RAPTORLAKE_S,   0),
+	X86_MATCH_VFM(INTEL_ALDERLAKE,	    0x2e),
+	X86_MATCH_VFM(INTEL_ALDERLAKE_L,    0x42c),
+	X86_MATCH_VFM(INTEL_ATOM_GRACEMONT, 0x11),
+	X86_MATCH_VFM(INTEL_RAPTORLAKE,	    0x118),
+	X86_MATCH_VFM(INTEL_RAPTORLAKE_P,   0x4117),
+	X86_MATCH_VFM(INTEL_RAPTORLAKE_S,   0x2e),
 	{}
 };
 
 static void setup_pcid(void)
 {
+	const struct x86_cpu_id *invlpg_miss_match;
+
 	if (!IS_ENABLED(CONFIG_X86_64))
 		return;
 
 	if (!boot_cpu_has(X86_FEATURE_PCID))
 		return;
 
-	if (x86_match_cpu(invlpg_miss_ids)) {
+	invlpg_miss_match = x86_match_cpu(invlpg_miss_ids);
+
+	if (invlpg_miss_match &&
+	    boot_cpu_data.microcode < invlpg_miss_match->driver_data) {
 		pr_info("Incomplete global flushes, disabling PCID");
 		setup_clear_cpu_cap(X86_FEATURE_PCID);
 		return;
block/partitions/efi.c +1 -1
index 5e9be13a56a8..7acba66eed48 100644
@@ -682,7 +682,7 @@ static void utf16_le_to_7bit(const __le16 *in, unsigned int size, u8 *out)
 	out[size] = 0;
 
 	while (i < size) {
-		u8 c = le16_to_cpu(in[i]) & 0xff;
+		u8 c = le16_to_cpu(in[i]) & 0x7f;
 
 		if (c && !isprint(c))
 			c = '!';
drivers/base/core.c +1 -0
index d922cefc1e66..ec0ef6a0de94 100644
@@ -2079,6 +2079,7 @@ static bool __fw_devlink_relax_cycles(struct fwnode_handle *con_handle,
 out:
 	sup_handle->flags &= ~FWNODE_FLAG_VISITED;
 	put_device(sup_dev);
+	put_device(con_dev);
 	put_device(par_dev);
 	return ret;
 }
drivers/block/rnull.rs +2 -2
index b0227cf9ddd3..5de7223beb4d 100644
@@ -32,7 +32,7 @@
 }
 
 struct NullBlkModule {
-    _disk: Pin<Box<Mutex<GenDisk<NullBlkDevice>>>>,
+    _disk: Pin<KBox<Mutex<GenDisk<NullBlkDevice>>>>,
 }
 
 impl kernel::Module for NullBlkModule {
@@ -47,7 +47,7 @@ fn init(_module: &'static ThisModule) -> Result<Self> {
             .rotational(false)
             .build(format_args!("rnullb{}", 0), tagset)?;
 
-        let disk = Box::pin_init(new_mutex!(disk, "nullb:disk"), flags::GFP_KERNEL)?;
+        let disk = KBox::pin_init(new_mutex!(disk, "nullb:disk"), flags::GFP_KERNEL)?;
 
         Ok(Self { _disk: disk })
     }
drivers/block/ublk_drv.c +5 -2
index 458ac54e7b20..c7d728d686e5 100644
@@ -2665,9 +2665,12 @@ static int ublk_ctrl_set_params(struct ublk_device *ub,
 	if (ph.len > sizeof(struct ublk_params))
 		ph.len = sizeof(struct ublk_params);
 
-	/* parameters can only be changed when device isn't live */
 	mutex_lock(&ub->mutex);
-	if (ub->dev_info.state == UBLK_S_DEV_LIVE) {
+	if (test_bit(UB_STATE_USED, &ub->state)) {
+		/*
+		 * Parameters can only be changed when device hasn't
+		 * been started yet
+		 */
 		ret = -EACCES;
 	} else if (copy_from_user(&ub->params, argp, ph.len)) {
 		ret = -EFAULT;
drivers/bluetooth/btusb.c +1 -0
index 6bc6dd417adf..3a0b9dc98707 100644
@@ -3644,6 +3644,7 @@ static ssize_t force_poll_sync_write(struct file *file,
 }
 
 static const struct file_operations force_poll_sync_fops = {
+	.owner		= THIS_MODULE,
 	.open		= simple_open,
 	.read		= force_poll_sync_read,
 	.write		= force_poll_sync_write,
drivers/bus/mhi/host/pci_generic.c +3 -2
index 9938bb034c1c..acfd673834ed 100644
@@ -1040,8 +1040,9 @@ static void mhi_pci_recovery_work(struct work_struct *work)
 err_unprepare:
 	mhi_unprepare_after_power_down(mhi_cntrl);
 err_try_reset:
-	if (pci_reset_function(pdev))
-		dev_err(&pdev->dev, "Recovery failed\n");
+	err = pci_try_reset_function(pdev);
+	if (err)
+		dev_err(&pdev->dev, "Recovery failed: %d\n", err);
 }
 
 static void health_check(struct timer_list *t)
drivers/cdx/cdx.c +5 -1
index 07371cb653d3..4af1901c9d52 100644
@@ -470,8 +470,12 @@ static ssize_t driver_override_show(struct device *dev,
 				    struct device_attribute *attr, char *buf)
 {
 	struct cdx_device *cdx_dev = to_cdx_device(dev);
+	ssize_t len;
 
-	return sysfs_emit(buf, "%s\n", cdx_dev->driver_override);
+	device_lock(dev);
+	len = sysfs_emit(buf, "%s\n", cdx_dev->driver_override);
+	device_unlock(dev);
+	return len;
 }
 static DEVICE_ATTR_RW(driver_override);
 
drivers/char/misc.c +1 -1
index 2cf595d2e10b..f7dd455dd0dd 100644
@@ -264,8 +264,8 @@ int misc_register(struct miscdevice *misc)
 		device_create_with_groups(&misc_class, misc->parent, dev,
 					  misc, misc->groups, "%s", misc->name);
 	if (IS_ERR(misc->this_device)) {
+		misc_minor_free(misc->minor);
 		if (is_dynamic) {
-			misc_minor_free(misc->minor);
 			misc->minor = MISC_DYNAMIC_MINOR;
 		}
 		err = PTR_ERR(misc->this_device);
drivers/gpio/gpio-aggregator.c +17 -3
index 38e0fff9afe7..cc6ee4334602 100644
@@ -121,10 +121,15 @@ static ssize_t new_device_store(struct device_driver *driver, const char *buf,
 	struct platform_device *pdev;
 	int res, id;
 
+	if (!try_module_get(THIS_MODULE))
+		return -ENOENT;
+
 	/* kernfs guarantees string termination, so count + 1 is safe */
 	aggr = kzalloc(sizeof(*aggr) + count + 1, GFP_KERNEL);
-	if (!aggr)
-		return -ENOMEM;
+	if (!aggr) {
+		res = -ENOMEM;
+		goto put_module;
+	}
 
 	memcpy(aggr->args, buf, count + 1);
 
@@ -163,6 +168,7 @@ static ssize_t new_device_store(struct device_driver *driver, const char *buf,
 	}
 
 	aggr->pdev = pdev;
+	module_put(THIS_MODULE);
 	return count;
 
 remove_table:
@@ -177,6 +183,8 @@ static ssize_t new_device_store(struct device_driver *driver, const char *buf,
 	kfree(aggr->lookups);
 free_ga:
 	kfree(aggr);
+put_module:
+	module_put(THIS_MODULE);
 	return res;
 }
 
@@ -205,13 +213,19 @@ static ssize_t delete_device_store(struct device_driver *driver,
 	if (error)
 		return error;
 
+	if (!try_module_get(THIS_MODULE))
+		return -ENOENT;
+
 	mutex_lock(&gpio_aggregator_lock);
 	aggr = idr_remove(&gpio_aggregator_idr, id);
 	mutex_unlock(&gpio_aggregator_lock);
-	if (!aggr)
+	if (!aggr) {
+		module_put(THIS_MODULE);
 		return -ENOENT;
+	}
 
 	gpio_aggregator_free(aggr);
+	module_put(THIS_MODULE);
 	return count;
 }
 static DRIVER_ATTR_WO(delete_device);
drivers/gpio/gpio-rcar.c +18 -13
index 6159fda38d5d..6641ed5cd8e1 100644
@@ -40,7 +40,7 @@ struct gpio_rcar_info {
 
 struct gpio_rcar_priv {
 	void __iomem *base;
-	spinlock_t lock;
+	raw_spinlock_t lock;
 	struct device *dev;
 	struct gpio_chip gpio_chip;
 	unsigned int irq_parent;
@@ -123,7 +123,7 @@ static void gpio_rcar_config_interrupt_input_mode(struct gpio_rcar_priv *p,
 	 * "Setting Level-Sensitive Interrupt Input Mode"
 	 */
 
-	spin_lock_irqsave(&p->lock, flags);
+	raw_spin_lock_irqsave(&p->lock, flags);
 
 	/* Configure positive or negative logic in POSNEG */
 	gpio_rcar_modify_bit(p, POSNEG, hwirq, !active_high_rising_edge);
@@ -142,7 +142,7 @@ static void gpio_rcar_config_interrupt_input_mode(struct gpio_rcar_priv *p,
 	if (!level_trigger)
 		gpio_rcar_write(p, INTCLR, BIT(hwirq));
 
-	spin_unlock_irqrestore(&p->lock, flags);
+	raw_spin_unlock_irqrestore(&p->lock, flags);
 }
 
 static int gpio_rcar_irq_set_type(struct irq_data *d, unsigned int type)
@@ -246,7 +246,7 @@ static void gpio_rcar_config_general_input_output_mode(struct gpio_chip *chip,
 	 * "Setting General Input Mode"
 	 */
 
-	spin_lock_irqsave(&p->lock, flags);
+	raw_spin_lock_irqsave(&p->lock, flags);
 
 	/* Configure positive logic in POSNEG */
 	gpio_rcar_modify_bit(p, POSNEG, gpio, false);
@@ -261,7 +261,7 @@ static void gpio_rcar_config_general_input_output_mode(struct gpio_chip *chip,
 	if (p->info.has_outdtsel && output)
 		gpio_rcar_modify_bit(p, OUTDTSEL, gpio, false);
 
-	spin_unlock_irqrestore(&p->lock, flags);
+	raw_spin_unlock_irqrestore(&p->lock, flags);
 }
 
 static int gpio_rcar_request(struct gpio_chip *chip, unsigned offset)
@@ -347,7 +347,7 @@ static int gpio_rcar_get_multiple(struct gpio_chip *chip, unsigned long *mask,
 		return 0;
 	}
 
-	spin_lock_irqsave(&p->lock, flags);
+	raw_spin_lock_irqsave(&p->lock, flags);
 	outputs = gpio_rcar_read(p, INOUTSEL);
 	m = outputs & bankmask;
 	if (m)
@@ -356,7 +356,7 @@ static int gpio_rcar_get_multiple(struct gpio_chip *chip, unsigned long *mask,
 	m = ~outputs & bankmask;
 	if (m)
 		val |= gpio_rcar_read(p, INDT) & m;
-	spin_unlock_irqrestore(&p->lock, flags);
+	raw_spin_unlock_irqrestore(&p->lock, flags);
 
 	bits[0] = val;
 	return 0;
@@ -367,9 +367,9 @@ static void gpio_rcar_set(struct gpio_chip *chip, unsigned offset, int value)
 	struct gpio_rcar_priv *p = gpiochip_get_data(chip);
 	unsigned long flags;
 
-	spin_lock_irqsave(&p->lock, flags);
+	raw_spin_lock_irqsave(&p->lock, flags);
 	gpio_rcar_modify_bit(p, OUTDT, offset, value);
-	spin_unlock_irqrestore(&p->lock, flags);
+	raw_spin_unlock_irqrestore(&p->lock, flags);
 }
 
 static void gpio_rcar_set_multiple(struct gpio_chip *chip, unsigned long *mask,
@@ -386,12 +386,12 @@ static void gpio_rcar_set_multiple(struct gpio_chip *chip, unsigned long *mask,
 	if (!bankmask)
 		return;
 
-	spin_lock_irqsave(&p->lock, flags);
+	raw_spin_lock_irqsave(&p->lock, flags);
 	val = gpio_rcar_read(p, OUTDT);
 	val &= ~bankmask;
 	val |= (bankmask & bits[0]);
 	gpio_rcar_write(p, OUTDT, val);
-	spin_unlock_irqrestore(&p->lock, flags);
+	raw_spin_unlock_irqrestore(&p->lock, flags);
 }
 
 static int gpio_rcar_direction_output(struct gpio_chip *chip, unsigned offset,
@@ -468,7 +468,12 @@ static int gpio_rcar_parse_dt(struct gpio_rcar_priv *p, unsigned int *npins)
 	p->info = *info;
 
 	ret = of_parse_phandle_with_fixed_args(np, "gpio-ranges", 3, 0, &args);
-	*npins = ret == 0 ? args.args[2] : RCAR_MAX_GPIO_PER_BANK;
+	if (ret) {
+		*npins = RCAR_MAX_GPIO_PER_BANK;
+	} else {
+		*npins = args.args[2];
+		of_node_put(args.np);
+	}
 
 	if (*npins == 0 || *npins > RCAR_MAX_GPIO_PER_BANK) {
 		dev_warn(p->dev, "Invalid number of gpio lines %u, using %u\n",
@@ -505,7 +510,7 @@ static int gpio_rcar_probe(struct platform_device *pdev)
 		return -ENOMEM;
 
 	p->dev = dev;
-	spin_lock_init(&p->lock);
+	raw_spin_lock_init(&p->lock);
 
 	/* Get device configuration from DT node */
 	ret = gpio_rcar_parse_dt(p, &npins);
drivers/gpio/gpio-vf610.c +7 -4
index 27eff741fe9a..c36a9dbccd4d 100644
@@ -15,10 +15,9 @@
 #include <linux/io.h>
 #include <linux/ioport.h>
 #include <linux/irq.h>
-#include <linux/platform_device.h>
-#include <linux/of.h>
-#include <linux/of_irq.h>
 #include <linux/pinctrl/consumer.h>
+#include <linux/platform_device.h>
+#include <linux/property.h>
 
 #define VF610_GPIO_PER_PORT		32
 
@@ -37,6 +36,7 @@ struct vf610_gpio_port {
 	struct clk *clk_port;
 	struct clk *clk_gpio;
 	int irq;
+	spinlock_t lock; /* protect gpio direction registers */
 };
 
 #define GPIO_PDOR		0x00
@@ -125,6 +125,7 @@ static int vf610_gpio_direction_input(struct gpio_chip *chip, unsigned int gpio)
 	u32 val;
 
 	if (port->sdata->have_paddr) {
+		guard(spinlock_irqsave)(&port->lock);
 		val = vf610_gpio_readl(port->gpio_base + GPIO_PDDR);
 		val &= ~mask;
 		vf610_gpio_writel(val, port->gpio_base + GPIO_PDDR);
@@ -143,6 +144,7 @@ static int vf610_gpio_direction_output(struct gpio_chip *chip, unsigned int gpio
 	vf610_gpio_set(chip, gpio, value);
 
 	if (port->sdata->have_paddr) {
+		guard(spinlock_irqsave)(&port->lock);
 		val = vf610_gpio_readl(port->gpio_base + GPIO_PDDR);
 		val |= mask;
 		vf610_gpio_writel(val, port->gpio_base + GPIO_PDDR);
@@ -297,7 +299,8 @@ static int vf610_gpio_probe(struct platform_device *pdev)
 	if (!port)
 		return -ENOMEM;
 
-	port->sdata = of_device_get_match_data(dev);
+	port->sdata = device_get_match_data(dev);
+	spin_lock_init(&port->lock);
 
 	dual_base = port->sdata->have_dual_base;
 
drivers/gpu/drm/Kconfig +12 -0
index 7408ea8caacc..ae53f26da945 100644
@@ -211,6 +211,18 @@ config DRM_DEBUG_MODESET_LOCK
 
 	  If in doubt, say "N".
 
+config DRM_CLIENT_SELECTION
+	bool
+	depends on DRM
+	select DRM_CLIENT_SETUP if DRM_FBDEV_EMULATION
+	help
+	  Drivers that support in-kernel DRM clients have to select this
+	  option.
+
+config DRM_CLIENT_SETUP
+	bool
+	depends on DRM_CLIENT_SELECTION
+
 config DRM_FBDEV_EMULATION
 	bool "Enable legacy fbdev support for your modesetting driver"
 	depends on DRM
drivers/gpu/drm/Makefile +5 -1
index 84746054c721..1ec44529447a 100644
@@ -144,8 +144,12 @@ drm_kms_helper-y := \
 	drm_rect.o \
 	drm_self_refresh_helper.o \
 	drm_simple_kms_helper.o
+drm_kms_helper-$(CONFIG_DRM_CLIENT_SETUP) += \
+	drm_client_setup.o
 drm_kms_helper-$(CONFIG_DRM_PANEL_BRIDGE) += bridge/panel.o
-drm_kms_helper-$(CONFIG_DRM_FBDEV_EMULATION) += drm_fb_helper.o
+drm_kms_helper-$(CONFIG_DRM_FBDEV_EMULATION) += \
+	drm_fbdev_client.o \
+	drm_fb_helper.o
 obj-$(CONFIG_DRM_KMS_HELPER) += drm_kms_helper.o
 
 #
drivers/gpu/drm/amd/amdkfd/kfd_queue.c +2 -2
index ad29634f8b44..80c85b6cc478 100644
@@ -266,8 +266,8 @@ int kfd_queue_acquire_buffers(struct kfd_process_device *pdd, struct queue_prope
 	/* EOP buffer is not required for all ASICs */
 	if (properties->eop_ring_buffer_address) {
 		if (properties->eop_ring_buffer_size != topo_dev->node_props.eop_buffer_size) {
-			pr_debug("queue eop bo size 0x%lx not equal to node eop buf size 0x%x\n",
-				properties->eop_buf_bo->tbo.base.size,
+			pr_debug("queue eop bo size 0x%x not equal to node eop buf size 0x%x\n",
+				properties->eop_ring_buffer_size,
 				topo_dev->node_props.eop_buffer_size);
 			err = -EINVAL;
 			goto out_err_unreserve;
drivers/gpu/drm/amd/display/dc/core/dc_resource.c +2 -1
index d915020a4295..f0eda0ba0156 100644
@@ -1455,7 +1455,8 @@ bool resource_build_scaling_params(struct pipe_ctx *pipe_ctx)
 	DC_LOGGER_INIT(pipe_ctx->stream->ctx->logger);
 
 	/* Invalid input */
-	if (!plane_state->dst_rect.width ||
+	if (!plane_state ||
+			!plane_state->dst_rect.width ||
 			!plane_state->dst_rect.height ||
 			!plane_state->src_rect.width ||
 			!plane_state->src_rect.height) {
drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0.c +1 -11
index 452589adaf04..e5f619c979d8 100644
@@ -1883,16 +1883,6 @@ static int smu_v14_0_allow_ih_interrupt(struct smu_context *smu)
 				    NULL);
 }
 
-static int smu_v14_0_process_pending_interrupt(struct smu_context *smu)
-{
-	int ret = 0;
-
-	if (smu_cmn_feature_is_enabled(smu, SMU_FEATURE_ACDC_BIT))
-		ret = smu_v14_0_allow_ih_interrupt(smu);
-
-	return ret;
-}
-
 int smu_v14_0_enable_thermal_alert(struct smu_context *smu)
 {
 	int ret = 0;
@@ -1904,7 +1894,7 @@ int smu_v14_0_enable_thermal_alert(struct smu_context *smu)
 	if (ret)
 		return ret;
 
-	return smu_v14_0_process_pending_interrupt(smu);
+	return smu_v14_0_allow_ih_interrupt(smu);
 }
 
 int smu_v14_0_disable_thermal_alert(struct smu_context *smu)
drivers/gpu/drm/drm_client_setup.c new file +66 -0

66 lines not on this page · raw message

drivers/gpu/drm/drm_fb_helper.c +24 -61

147 lines not on this page · raw message

drivers/gpu/drm/drm_fbdev_client.c new file +141 -0

141 lines not on this page · raw message

drivers/gpu/drm/drm_fbdev_ttm.c +77 -65

154 lines not on this page · raw message

drivers/gpu/drm/drm_fourcc.c +29 -1
index 193cf8ed7912..3a94ca211f9c 100644
@@ -36,7 +36,6 @@
  * @depth: bit depth per pixel
  *
  * Computes a drm fourcc pixel format code for the given @bpp/@depth values.
- * Useful in fbdev emulation code, since that deals in those values.
  */
 uint32_t drm_mode_legacy_fb_format(uint32_t bpp, uint32_t depth)
 {
@@ -140,6 +139,35 @@ uint32_t drm_driver_legacy_fb_format(struct drm_device *dev,
 }
 EXPORT_SYMBOL(drm_driver_legacy_fb_format);
 
+/**
+ * drm_driver_color_mode_format - Compute DRM 4CC code from color mode
+ * @dev: DRM device
+ * @color_mode: command-line color mode
+ *
+ * Computes a DRM 4CC pixel format code for the given color mode using
+ * drm_driver_color_mode(). The color mode is in the format used and the
+ * kernel command line. It specifies the number of bits per pixel
+ * and color depth in a single value.
+ *
+ * Useful in fbdev emulation code, since that deals in those values. The
+ * helper does not consider YUV or other complicated formats. This means
+ * only legacy formats are supported (fmt->depth is a legacy field), but
+ * the framebuffer emulation can only deal with such formats, specifically
+ * RGB/BGA formats.
+ */
+uint32_t drm_driver_color_mode_format(struct drm_device *dev, unsigned int color_mode)
+{
+	switch (color_mode) {
+	case 15:
+		return drm_driver_legacy_fb_format(dev, 16, 15);
+	case 32:
+		return drm_driver_legacy_fb_format(dev, 32, 24);
+	default:
+		return drm_driver_legacy_fb_format(dev, color_mode, color_mode);
+	}
+}
+EXPORT_SYMBOL(drm_driver_color_mode_format);
+
 /*
  * Internal function to query information for a given format. See
  * drm_format_info() for the public API.
drivers/gpu/drm/drm_panic_qr.rs +13 -12
index 447740d79d3d..bcf248f69252 100644
@@ -209,12 +209,9 @@
 impl Version {
     /// Returns the smallest QR version than can hold these segments.
     fn from_segments(segments: &[&Segment<'_>]) -> Option<Version> {
-        for v in (1..=40).map(|k| Version(k)) {
-            if v.max_data() * 8 >= segments.iter().map(|s| s.total_size_bits(v)).sum() {
-                return Some(v);
-            }
-        }
-        None
+        (1..=40)
+            .map(Version)
+            .find(|&v| v.max_data() * 8 >= segments.iter().map(|s| s.total_size_bits(v)).sum())
     }
 
     fn width(&self) -> u8 {
@@ -242,7 +239,7 @@ fn g1_blk_size(&self) -> usize {
     }
 
     fn alignment_pattern(&self) -> &'static [u8] {
-        &ALIGNMENT_PATTERNS[self.0 - 1]
+        ALIGNMENT_PATTERNS[self.0 - 1]
     }
 
     fn poly(&self) -> &'static [u8] {
@@ -479,7 +476,7 @@ struct EncodedMsg<'a> {
 /// Data to be put in the QR code, with correct segment encoding, padding, and
 /// Error Code Correction.
 impl EncodedMsg<'_> {
-    fn new<'a, 'b>(segments: &[&Segment<'b>], data: &'a mut [u8]) -> Option<EncodedMsg<'a>> {
+    fn new<'a>(segments: &[&Segment<'_>], data: &'a mut [u8]) -> Option<EncodedMsg<'a>> {
         let version = Version::from_segments(segments)?;
         let ec_size = version.ec_size();
         let g1_blocks = version.g1_blocks();
@@ -492,7 +489,7 @@ fn new<'a, 'b>(segments: &[&Segment<'b>], data: &'a mut [u8]) -> Option<EncodedM
         data.fill(0);
 
         let mut em = EncodedMsg {
-            data: data,
+            data,
             ec_size,
             g1_blocks,
             g2_blocks,
@@ -722,7 +719,10 @@ fn draw_finders(&mut self) {
 
     fn is_finder(&self, x: u8, y: u8) -> bool {
         let end = self.width - 8;
-        (x < 8 && y < 8) || (x < 8 && y >= end) || (x >= end && y < 8)
+        #[expect(clippy::nonminimal_bool)]
+        {
+            (x < 8 && y < 8) || (x < 8 && y >= end) || (x >= end && y < 8)
+        }
     }
 
     // Alignment pattern: 5x5 squares in a grid.
@@ -931,7 +931,7 @@ fn draw_all(&mut self, data: impl Iterator<Item = u8>) {
 /// They must remain valid for the duration of the function call.
 #[no_mangle]
 pub unsafe extern "C" fn drm_panic_qr_generate(
-    url: *const i8,
+    url: *const kernel::ffi::c_char,
     data: *mut u8,
     data_len: usize,
     data_size: usize,
@@ -978,10 +978,11 @@ fn draw_all(&mut self, data: impl Iterator<Item = u8>) {
 /// * `url_len`: Length of the URL.
 ///
 /// * If `url_len` > 0, remove the 2 segments header/length and also count the
-/// conversion to numeric segments.
+///   conversion to numeric segments.
 /// * If `url_len` = 0, only removes 3 bytes for 1 binary segment.
 #[no_mangle]
 pub extern "C" fn drm_panic_qr_max_data_size(version: u8, url_len: usize) -> usize {
+    #[expect(clippy::manual_range_contains)]
     if version < 1 || version > 40 {
         return 0;
     }
drivers/gpu/drm/i915/display/i9xx_plane.c +14 -8
index 9447f7229b60..17a1e3801a85 100644
@@ -416,7 +416,8 @@ static int i9xx_plane_min_cdclk(const struct intel_crtc_state *crtc_state,
 	return DIV_ROUND_UP(pixel_rate * num, den);
 }
 
-static void i9xx_plane_update_noarm(struct intel_plane *plane,
+static void i9xx_plane_update_noarm(struct intel_dsb *dsb,
+				    struct intel_plane *plane,
 				    const struct intel_crtc_state *crtc_state,
 				    const struct intel_plane_state *plane_state)
 {
@@ -444,7 +445,8 @@ static void i9xx_plane_update_noarm(struct intel_plane *plane,
 	}
 }
 
-static void i9xx_plane_update_arm(struct intel_plane *plane,
+static void i9xx_plane_update_arm(struct intel_dsb *dsb,
+				  struct intel_plane *plane,
 				  const struct intel_crtc_state *crtc_state,
 				  const struct intel_plane_state *plane_state)
 {
@@ -507,7 +509,8 @@ static void i9xx_plane_update_arm(struct intel_plane *plane,
 				  intel_plane_ggtt_offset(plane_state) + dspaddr_offset);
 }
 
-static void i830_plane_update_arm(struct intel_plane *plane,
+static void i830_plane_update_arm(struct intel_dsb *dsb,
+				  struct intel_plane *plane,
 				  const struct intel_crtc_state *crtc_state,
 				  const struct intel_plane_state *plane_state)
 {
@@ -517,11 +520,12 @@ static void i830_plane_update_arm(struct intel_plane *plane,
 	 * Additional breakage on i830 causes register reads to return
 	 * the last latched value instead of the last written value [ALM026].
 	 */
-	i9xx_plane_update_noarm(plane, crtc_state, plane_state);
-	i9xx_plane_update_arm(plane, crtc_state, plane_state);
+	i9xx_plane_update_noarm(dsb, plane, crtc_state, plane_state);
+	i9xx_plane_update_arm(dsb, plane, crtc_state, plane_state);
 }
 
-static void i9xx_plane_disable_arm(struct intel_plane *plane,
+static void i9xx_plane_disable_arm(struct intel_dsb *dsb,
+				   struct intel_plane *plane,
 				   const struct intel_crtc_state *crtc_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
@@ -549,7 +553,8 @@ static void i9xx_plane_disable_arm(struct intel_plane *plane,
 }
 
 static void
-g4x_primary_async_flip(struct intel_plane *plane,
+g4x_primary_async_flip(struct intel_dsb *dsb,
+		       struct intel_plane *plane,
 		       const struct intel_crtc_state *crtc_state,
 		       const struct intel_plane_state *plane_state,
 		       bool async_flip)
@@ -569,7 +574,8 @@ g4x_primary_async_flip(struct intel_plane *plane,
 }
 
 static void
-vlv_primary_async_flip(struct intel_plane *plane,
+vlv_primary_async_flip(struct intel_dsb *dsb,
+		       struct intel_plane *plane,
 		       const struct intel_crtc_state *crtc_state,
 		       const struct intel_plane_state *plane_state,
 		       bool async_flip)
drivers/gpu/drm/i915/display/icl_dsi.c +226 -222

777 lines not on this page · raw message

drivers/gpu/drm/i915/display/icl_dsi.h +2 -2
index 43fa7d72eeb1..099fc50e35b4 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/i915/display/intel_atomic_plane.c +29 -20

49 lines not on this page · raw message

drivers/gpu/drm/i915/display/intel_atomic_plane.h +13 -6
index 6c4fe3596465..0f982f452ff3 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/i915/display/intel_color.c +17 -0
index ec55cb651d44..1fbe3cd452c1 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/i915/display/intel_color.h +1 -0
index 79f230a1709a..ab3aaec06a2a 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/i915/display/intel_cursor.c +54 -47

101 lines not on this page · raw message

drivers/gpu/drm/i915/display/intel_ddi.c +1 -1
index 2f1d9ce87ceb..34dee523f0b6 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/i915/display/intel_de.h +11 -0
index e881bfeafb47..e017cd4a8168 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/i915/display/intel_display.c +18 -40

58 lines not on this page · raw message

drivers/gpu/drm/i915/display/intel_display_types.h +12 -4
index f29e5dc3db91..3e24d2e90d3c 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/i915/display/intel_sprite.c +18 -9
index e657b09ede99..e6fadcef58e0 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/i915/display/skl_universal_plane.c +167 -140

307 lines not on this page · raw message

drivers/gpu/drm/imagination/pvr_fw_meta.c +4 -2
index c39beb70c317..6d13864851fc 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/imagination/pvr_fw_trace.c +2 -2
index 73707daa4e52..5dbb636d7d4f 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/imagination/pvr_queue.c +14 -4
index 20cb46012082..87780cc7c0c3 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/imagination/pvr_queue.h +4 -0
index e06ced69302f..93fe9ac9f58c 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/imagination/pvr_vm.c +108 -26

134 lines not on this page · raw message

drivers/gpu/drm/imagination/pvr_vm.h +3 -0
index 79406243617c..b0528dffa7f1 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/nouveau/Kconfig +2 -0
index ceef470c9fbf..1050a4617fc1 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/nouveau/nouveau_drm.c +8 -2
index 34985771b2a2..6e5adab03471 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/radeon/r300.c +2 -1
index 05c13102a8cb..d22889fbfa9c 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/radeon/radeon_asic.h +1 -0
index 1e00f6b99f94..8f5e07834fcc 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/radeon/rs400.c +16 -2
index d6c18fd740ec..13cd0a688a65 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/scheduler/gpu_scheduler_trace.h +2 -2
index c75302ca3427..f56e77e7f6d0 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/xe/display/xe_plane_initial.c +0 -10
index a50ab9eae40a..f99d38cc5d8e 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/xe/xe_gt.c +2 -2
index b940688c3613..98fe8573e054 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/xe/xe_hmm.c +140 -48

188 lines not on this page · raw message

drivers/gpu/drm/xe/xe_hmm.h +7 -0
index 909dc2bdcd97..0ea98d8e7bbc 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/xe/xe_pt.c +49 -47

96 lines not on this page · raw message

drivers/gpu/drm/xe/xe_pt_walk.c +2 -1
index b8b3d2aea492..be602a763ff3 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/xe/xe_pt_walk.h +4 -0
index 5ecc4d2f0f65..5c02c244f7de 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/xe/xe_vm.c +70 -30

100 lines not on this page · raw message

drivers/gpu/drm/xe/xe_vm.h +9 -1
index c864dba35e1d..d2406532fcc5 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/xe/xe_vm_types.h +6 -2
index 7f9a303e51d8..a4b4091cfd0d 100644

Lines of this file are not shown. View the raw message.

drivers/hid/hid-appleir.c +1 -1
index 8deded185725..c45e5aa569d2 100644

Lines of this file are not shown. View the raw message.

drivers/hid/hid-google-hammer.c +2 -0
index 22683ec819aa..646ba5b92e0b 100644

Lines of this file are not shown. View the raw message.

drivers/hid/hid-steam.c +1 -1
index 7b3596689878..19b7bb0c3d7f 100644

Lines of this file are not shown. View the raw message.

drivers/hid/intel-ish-hid/ishtp-hid-client.c +1 -1
index fbd4f8ea1951..af6a5afc1a93 100644

Lines of this file are not shown. View the raw message.

drivers/hid/intel-ish-hid/ishtp-hid.c +3 -1
index 00c6f0ebf356..be2c62fc8251 100644

Lines of this file are not shown. View the raw message.

drivers/hwmon/ad7314.c +10 -0
index 7802bbf5f958..59424103f634 100644

Lines of this file are not shown. View the raw message.

drivers/hwmon/ntc_thermistor.c +33 -33

66 lines not on this page · raw message

drivers/hwmon/peci/dimmtemp.c +4 -6
index 4a72e9712408..b7b09780c7b0 100644

Lines of this file are not shown. View the raw message.

drivers/hwmon/pmbus/pmbus.c +2 -0
index ec40c5c59954..59424dc518c8 100644

Lines of this file are not shown. View the raw message.

drivers/hwmon/xgene-hwmon.c +1 -1
index 5e0759a70f6d..92d82faf237f 100644

Lines of this file are not shown. View the raw message.

drivers/hwtracing/intel_th/pci.c +15 -0
index 0d7b9839e5b6..6bb6af0f96fa 100644

Lines of this file are not shown. View the raw message.

drivers/iio/adc/ad7192.c +1 -1
index 955e9eff0099..6fe32f866765 100644

Lines of this file are not shown. View the raw message.

drivers/iio/adc/at91-sama5d2_adc.c +40 -28

68 lines not on this page · raw message

drivers/iio/dac/ad3552r.c +6 -0
index 7d61b2fe6624..390d3fab2147 100644

Lines of this file are not shown. View the raw message.

drivers/iio/filter/admv8818.c +4 -10
index 848baa6e3bbf..d85b7d3de866 100644

Lines of this file are not shown. View the raw message.

drivers/iio/light/apds9306.c +2 -2
index 079e02be1005..7f9d6cac8adb 100644

Lines of this file are not shown. View the raw message.

drivers/misc/cardreader/rtsx_usb.c +0 -15
index 285a748748d7..f150d8769f19 100644

Lines of this file are not shown. View the raw message.

drivers/misc/eeprom/digsy_mtc_eeprom.c +1 -1
index 88888485e6f8..ee58f7ce5bfa 100644

Lines of this file are not shown. View the raw message.

drivers/misc/mei/hw-me-regs.h +2 -0
index c3a6657dcd4a..a5f88ec97df7 100644

Lines of this file are not shown. View the raw message.

drivers/misc/mei/pci-me.c +2 -0
index 6589635f8ba3..d6ff9d82ae94 100644

Lines of this file are not shown. View the raw message.

drivers/misc/mei/vsc-tp.c +1 -1
index 1618cca9a731..ef0a9f423c8f 100644

Lines of this file are not shown. View the raw message.

drivers/net/caif/caif_virtio.c +1 -1
index 7fea00c7ca8a..c60386bf2d1a 100644

Lines of this file are not shown. View the raw message.

drivers/net/dsa/mt7530.c +2 -6
index d84ee1b419a6..abc979fbb45d 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/emulex/benet/be.h +1 -1
index e48b861e4ce1..270ff9aab335 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/emulex/benet/be_cmds.c +98 -99

197 lines not on this page · raw message

drivers/net/ethernet/emulex/benet/be_main.c +1 -1
index 875fe379eea2..3d2e21592119 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_ptp.c +1 -1
index bab16c2191b2..181af419b878 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c +4 -2
index f5acfb7d4ff6..ab7c2750c104 100644

Lines of this file are not shown. View the raw message.

drivers/net/ipa/data/ipa_data-v4.7.c +9 -9
index c8c23d9be961..41f212209993 100644

Lines of this file are not shown. View the raw message.

drivers/net/mctp/mctp-i3c.c +3 -0
index ee9d562f0817..a2b15cddf46e 100644

Lines of this file are not shown. View the raw message.

drivers/net/phy/phy.c +43 -0

43 lines not on this page · raw message

drivers/net/phy/phy_device.c +2 -0
index 499797646580..119dfa2d6643 100644

Lines of this file are not shown. View the raw message.

drivers/net/ppp/ppp_generic.c +19 -9
index 4583e15ad03a..1420c4efa48e 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/intel/iwlwifi/iwl-drv.c +1 -1
index c620911a1193..754e01688900 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c +7 -0
index 91ca830a7b60..f4276fdee6be 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/intel/iwlwifi/mvm/time-event.c +2 -0
index 72fa7ac86516..17b8ccc27569 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/intel/iwlwifi/pcie/internal.h +3 -2
index 27a7e0b5b3d5..ebe9b25cc53a 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/intel/iwlwifi/pcie/tx-gen2.c +4 -2
index b1846abb99b7..477a05cd1288 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/intel/iwlwifi/pcie/tx.c +14 -9
index 9fe050f0ddc1..9fcdd06e126a 100644

Lines of this file are not shown. View the raw message.

drivers/nvme/host/ioctl.c +16 -4
index 61af1583356c..e4daac9c2440 100644

Lines of this file are not shown. View the raw message.

drivers/nvme/host/nvme.h +7 -0
index 61bba5513de0..dcdce7d12e44 100644

Lines of this file are not shown. View the raw message.

drivers/nvme/host/pci.c +131 -16

147 lines not on this page · raw message

drivers/nvme/host/tcp.c +75 -6

81 lines not on this page · raw message

drivers/nvme/target/tcp.c +11 -4
index 7c51c2a8c109..4f9cac8a5abe 100644

Lines of this file are not shown. View the raw message.

drivers/of/of_reserved_mem.c +2 -2
index e45d6d3a8dc6..45445a1600a9 100644

Lines of this file are not shown. View the raw message.

drivers/platform/x86/thinkpad_acpi.c +1 -0
index 2cfb2ac3f465..84dcd7da7319 100644

Lines of this file are not shown. View the raw message.

drivers/rapidio/devices/rio_mport_cdev.c +2 -1
index 27afbb9d544b..cbf531d0ba68 100644

Lines of this file are not shown. View the raw message.

drivers/rapidio/rio-scan.c +4 -1
index fdcf742b2adb..c12941f71e2c 100644

Lines of this file are not shown. View the raw message.

drivers/slimbus/messaging.c +3 -2
index 242570a5e565..455c1fd1490f 100644

Lines of this file are not shown. View the raw message.

drivers/usb/atm/cxacru.c +7 -6
index 0dd85d2635b9..47d06af33747 100644

Lines of this file are not shown. View the raw message.

drivers/usb/core/hub.c +33 -0
index 906daf423cb0..145787c424e0 100644

Lines of this file are not shown. View the raw message.

drivers/usb/core/quirks.c +4 -0
index 027479179f09..6926bd639ec6 100644

Lines of this file are not shown. View the raw message.

drivers/usb/dwc3/core.c +48 -37

85 lines not on this page · raw message

drivers/usb/dwc3/core.h +1 -1
index 0e91a227507f..f288d88cd105 100644

Lines of this file are not shown. View the raw message.

drivers/usb/dwc3/drd.c +2 -2
index d76ae676783c..7977860932b1 100644

Lines of this file are not shown. View the raw message.

drivers/usb/dwc3/gadget.c +7 -3
index 8c80bb4a467b..309a871453bf 100644

Lines of this file are not shown. View the raw message.

drivers/usb/gadget/composite.c +12 -5
index cec86c0c6369..8402a86176f4 100644

Lines of this file are not shown. View the raw message.

drivers/usb/gadget/function/u_ether.c +2 -2
index 09e2838917e2..f58590bf5e02 100644

Lines of this file are not shown. View the raw message.

drivers/usb/host/xhci-hub.c +8 -0
index 8d774f19271e..2fe3a92978fa 100644

Lines of this file are not shown. View the raw message.

drivers/usb/host/xhci-mem.c +2 -1
index d2900197a49e..32c8693b438b 100644

Lines of this file are not shown. View the raw message.

drivers/usb/host/xhci-pci.c +11 -7
index deb3c98c9bea..1b033c8ce188 100644

Lines of this file are not shown. View the raw message.

drivers/usb/host/xhci.h +1 -1
index 673179047eb8..439767d242fa 100644

Lines of this file are not shown. View the raw message.

drivers/usb/renesas_usbhs/common.c +5 -1
index edc43f169d49..7324de52d950 100644

Lines of this file are not shown. View the raw message.

drivers/usb/renesas_usbhs/mod_gadget.c +1 -1
index 105132ae87ac..e8e5723f5412 100644

Lines of this file are not shown. View the raw message.

drivers/usb/typec/tcpm/tcpci_rt1711h.c +11 -0
index 64f6dd0dc660..88c50b984e8a 100644

Lines of this file are not shown. View the raw message.

drivers/usb/typec/ucsi/ucsi.c +13 -12
index 7a3f0f5af38f..3f2bc13efa48 100644

Lines of this file are not shown. View the raw message.

drivers/usb/typec/ucsi/ucsi.h +2 -0
index 1cf5aad4c23a..a333006d3496 100644

Lines of this file are not shown. View the raw message.

drivers/usb/typec/ucsi/ucsi_acpi.c +14 -7
index accf15ff1306..8de2961718cd 100644

Lines of this file are not shown. View the raw message.

drivers/usb/typec/ucsi/ucsi_ccg.c +1 -0
index 740171f24ef9..4b1668733a4b 100644

Lines of this file are not shown. View the raw message.

drivers/usb/typec/ucsi/ucsi_glink.c +1 -0
index 9b6cb76e6328..75c0e54c37fa 100644

Lines of this file are not shown. View the raw message.

drivers/usb/typec/ucsi/ucsi_stm32g0.c +1 -0
index 6923fad31d79..57ef7d83a412 100644

Lines of this file are not shown. View the raw message.

drivers/usb/typec/ucsi/ucsi_yoga_c630.c +1 -0
index f3a5e24ea84d..40e5da4fd2a4 100644

Lines of this file are not shown. View the raw message.

drivers/virt/acrn/hsm.c +3 -3
index c24036c4e51e..e4e196abdaac 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/file.c +8 -1
index 848cb2c3d9dd..78c4a3765002 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/volumes.c +1 -0
index 395b8b880ce7..587ac07cd194 100644

Lines of this file are not shown. View the raw message.

fs/coredump.c +13 -2
index 45737b43dda5..2b8c36c9660c 100644

Lines of this file are not shown. View the raw message.

fs/exfat/balloc.c +8 -2
index ce9be95c9172..9ff825f1502d 100644

Lines of this file are not shown. View the raw message.

fs/exfat/exfat_fs.h +1 -1
index 3cdc1de362a9..d2ba8e2d0c39 100644

Lines of this file are not shown. View the raw message.

fs/exfat/fatent.c +7 -4
index 9e5492ac409b..6f3651c6ca91 100644

Lines of this file are not shown. View the raw message.

fs/exfat/file.c +1 -1
index 05b51e721783..807349d8ea05 100644

Lines of this file are not shown. View the raw message.

fs/exfat/namei.c +1 -1
index 337197ece599..e47a5ddfc79b 100644

Lines of this file are not shown. View the raw message.

fs/netfs/read_collect.c +11 -10
index a44132c98653..3b9461f5e712 100644

Lines of this file are not shown. View the raw message.

fs/netfs/read_pgpriv2.c +3 -2
index 54d5004fec18..e72f5e674834 100644

Lines of this file are not shown. View the raw message.

fs/nfs/file.c +2 -1
index 6800ee92d742..153d25d4b810 100644

Lines of this file are not shown. View the raw message.

fs/smb/client/cifsglob.h +2 -4
index 05274121e46f..b630beb757a4 100644

Lines of this file are not shown. View the raw message.

fs/smb/client/inode.c +1 -1
index e11e67af760f..a3f0835e12be 100644

Lines of this file are not shown. View the raw message.

fs/smb/client/reparse.h +22 -6
index ff05b0e75c92..f080f92cb1e7 100644

Lines of this file are not shown. View the raw message.

fs/smb/client/smb1ops.c +2 -2
index c70f4961c4eb..bd791aa54681 100644

Lines of this file are not shown. View the raw message.

fs/smb/client/smb2inode.c +4 -0
index 7dfd3eb3847b..6048b3fed3e7 100644

Lines of this file are not shown. View the raw message.

fs/smb/client/smb2ops.c +2 -1
index e8da63d29a28..516be8c0b2a9 100644

Lines of this file are not shown. View the raw message.

fs/smb/server/smb2pdu.c +4 -4
index c763a2f7df66..8464261d7638 100644

Lines of this file are not shown. View the raw message.

fs/smb/server/smbacl.c +16 -0
index 1c9775f1efa5..da8ed72f335d 100644

Lines of this file are not shown. View the raw message.

fs/smb/server/transport_ipc.c +1 -0
index 69bac122adbe..87af57cf35a1 100644

Lines of this file are not shown. View the raw message.

include/asm-generic/hugetlb.h +1 -1
index 594d5905f615..215bf9f317cb 100644

Lines of this file are not shown. View the raw message.

include/drm/drm_client_setup.h new file +26 -0
new file mode 100644
index 000000000000..46aab3fb46be

Lines of this file are not shown. View the raw message.

include/drm/drm_drv.h +18 -0
index 02ea4e3248fd..36a606af4ba1 100644

Lines of this file are not shown. View the raw message.

include/drm/drm_fbdev_client.h new file +19 -0
new file mode 100644
index 000000000000..e11a5614f127

Lines of this file are not shown. View the raw message.

include/drm/drm_fbdev_ttm.h +13 -0
index 9e6c3bdf3537..243685d02eb1 100644

Lines of this file are not shown. View the raw message.

include/drm/drm_fourcc.h +1 -0
index ccf91daa4307..c3f4405d6662 100644

Lines of this file are not shown. View the raw message.

include/linux/compaction.h +5 -0
index e94776496049..7bf0c521db63 100644

Lines of this file are not shown. View the raw message.

include/linux/ethtool.h +23 -0
index b8b935b52603..b0ed740ca749 100644

Lines of this file are not shown. View the raw message.

include/linux/hugetlb.h +3 -1
index e4697539b665..25a7b13574c2 100644

Lines of this file are not shown. View the raw message.

include/linux/nvme-tcp.h +2 -0
index e07e8978d691..e435250fcb4d 100644

Lines of this file are not shown. View the raw message.

include/linux/nvme.h +1 -0
index b58d9405d65e..1c101f6fad2f 100644

Lines of this file are not shown. View the raw message.

include/linux/phy.h +36 -0
index a98bc91a0cde..945264f457d8 100644

Lines of this file are not shown. View the raw message.

include/linux/phylib_stubs.h +42 -0

42 lines not on this page · raw message

include/linux/sched.h +1 -1
index 8982820dae21..0d1d70aded38 100644

Lines of this file are not shown. View the raw message.

kernel/events/core.c +2 -2
index a0e1d2124727..5fff74c73606 100644

Lines of this file are not shown. View the raw message.

kernel/events/uprobes.c +1 -1
index a0e0676f5d8b..4fdc08ca0f3c 100644

Lines of this file are not shown. View the raw message.

kernel/sched/fair.c +4 -2
index ddc096d6b0c2..58ba14ed8fbc 100644

Lines of this file are not shown. View the raw message.

kernel/trace/trace_fprobe.c +15 -0
index c62d1629cffe..99048c330382 100644

Lines of this file are not shown. View the raw message.

kernel/trace/trace_probe.h +1 -1
index 5803e6a41570..8a6797c2278d 100644

Lines of this file are not shown. View the raw message.

mm/compaction.c +3 -0
index 384e4672998e..77dbb9022b47 100644

Lines of this file are not shown. View the raw message.

mm/hugetlb.c +2 -2
index bdee6d3ab0e7..1e9aa6de4e21 100644

Lines of this file are not shown. View the raw message.

mm/internal.h +3 -2
index 9bb098e78f15..398633d6b6c9 100644

Lines of this file are not shown. View the raw message.

mm/kasan/kasan_test_rust.rs +2 -1
index caa7175964ef..5b34edf30e72 100644

Lines of this file are not shown. View the raw message.

mm/kmsan/hooks.c +1 -0
index 3ea50f09311f..3df45c25c1f6 100644

Lines of this file are not shown. View the raw message.

mm/memory-failure.c +31 -32

63 lines not on this page · raw message

mm/memory.c +14 -7
index d322ddfe6791..525f96ad65b8 100644

Lines of this file are not shown. View the raw message.

mm/memory_hotplug.c +12 -14
index 621ae1015106..619445096ef4 100644

Lines of this file are not shown. View the raw message.

mm/page_alloc.c +2 -2
index de65e8b4f75f..e0a77fe1b630 100644

Lines of this file are not shown. View the raw message.

mm/userfaultfd.c +16 -1
index ce13c4062647..66011831d798 100644

Lines of this file are not shown. View the raw message.

mm/vma.c +8 -4
index 7621384d64cf..c9ddc06b672a 100644

Lines of this file are not shown. View the raw message.

mm/vmalloc.c +2 -2
index 3f9255dfacb0..fd70a7cd1c8f 100644

Lines of this file are not shown. View the raw message.

net/8021q/vlan.c +2 -1
index e45187b88220..41be38264493 100644

Lines of this file are not shown. View the raw message.

net/bluetooth/mgmt.c +5 -0
index 90c21b3edcd8..c019f69c5939 100644

Lines of this file are not shown. View the raw message.

net/ethtool/cabletest.c +4 -4
index f22051f33868..84096f6b0236 100644

Lines of this file are not shown. View the raw message.

net/ethtool/linkstate.c +17 -9
index 34d76e87847d..05a5f72c99fa 100644

Lines of this file are not shown. View the raw message.

net/ethtool/netlink.c +3 -3
index 4d18dc29b304..e233dfc8ca4b 100644

Lines of this file are not shown. View the raw message.

net/ethtool/netlink.h +3 -2
index 203b08eb6c6f..5e176938d6d2 100644

Lines of this file are not shown. View the raw message.

net/ethtool/phy.c +1 -1
index ed8f690f6bac..e067cc234419 100644

Lines of this file are not shown. View the raw message.

net/ethtool/plca.c +3 -3
index d95d92f173a6..e1f7820a6158 100644

Lines of this file are not shown. View the raw message.

net/ethtool/pse-pd.c +2 -2
index a0705edca22a..71843de832cc 100644

Lines of this file are not shown. View the raw message.

net/ethtool/stats.c +18 -0
index 912f0c4fff2f..273ae4ff343f 100644

Lines of this file are not shown. View the raw message.

net/ethtool/strset.c +1 -1
index b3382b3cf325..b9400d18f01d 100644

Lines of this file are not shown. View the raw message.

net/ipv4/tcp_offload.c +7 -4
index 2308665b51c5..2dfac79dc78b 100644

Lines of this file are not shown. View the raw message.

net/ipv4/udp_offload.c +6 -2
index a5be6e4ed326..ecfca59f31f1 100644

Lines of this file are not shown. View the raw message.

net/ipv6/ila/ila_lwt.c +3 -1
index ff7e734e335b..7d574f5132e2 100644

Lines of this file are not shown. View the raw message.

net/llc/llc_s_ac.c +27 -22

49 lines not on this page · raw message

net/mac80211/ieee80211_i.h +2 -0
index 7a0242e937d3..bfe0514efca3 100644

Lines of this file are not shown. View the raw message.

net/mac80211/mlme.c +1 -0
index 111066928b96..88751b0eb317 100644

Lines of this file are not shown. View the raw message.

net/mac80211/parse.c +119 -45

164 lines not on this page · raw message

net/mptcp/pm_netlink.c +15 -3
index b4ba2d9f0417..2a085ec5bfd0 100644

Lines of this file are not shown. View the raw message.

net/wireless/nl80211.c +5 -0
index 1e78f575fb56..ecfceddce00f 100644

Lines of this file are not shown. View the raw message.

net/wireless/reg.c +2 -1
index 6489ba943a63..2b626078739c 100644

Lines of this file are not shown. View the raw message.

rust/Makefile +49 -43

92 lines not on this page · raw message

rust/bindgen_parameters +5 -0
index b7c7483123b7..0f96af8b9a7f 100644

Lines of this file are not shown. View the raw message.

rust/bindings/bindings_helper.h +1 -0
index ae82e9c941af..a80783fcbe04 100644

Lines of this file are not shown. View the raw message.

rust/bindings/lib.rs +6 -0
index 93a1a3fc97bc..014af0d1fc70 100644

Lines of this file are not shown. View the raw message.

rust/exports.c +0 -1
index e5695f3b45b7..82a037381798 100644

Lines of this file are not shown. View the raw message.

rust/ffi.rs new file +48 -0

48 lines not on this page · raw message

rust/helpers/helpers.c +1 -0
index 30f40149f3a9..20a0c69d5cc7 100644

Lines of this file are not shown. View the raw message.

rust/helpers/slab.c +6 -0
index f043e087f9d6..a842bfbddcba 100644

Lines of this file are not shown. View the raw message.

rust/helpers/vmalloc.c new file +9 -0
new file mode 100644
index 000000000000..80d34501bbc0

Lines of this file are not shown. View the raw message.

rust/kernel/alloc.rs +143 -7

150 lines not on this page · raw message

rust/kernel/alloc/allocator.rs +161 -47

208 lines not on this page · raw message

rust/kernel/alloc/allocator_test.rs new file +95 -0

95 lines not on this page · raw message

rust/kernel/alloc/box_ext.rs deleted +0 -89

89 lines not on this page · raw message

rust/kernel/alloc/kbox.rs new file +456 -0

456 lines not on this page · raw message

rust/kernel/alloc/kvec.rs new file +913 -0

913 lines not on this page · raw message

rust/kernel/alloc/layout.rs new file +91 -0

91 lines not on this page · raw message

rust/kernel/alloc/vec_ext.rs deleted +0 -185

185 lines not on this page · raw message

rust/kernel/block/mq/gen_disk.rs +3 -3
index 708125dce96a..c6df153ebb88 100644

Lines of this file are not shown. View the raw message.

rust/kernel/block/mq/operations.rs +9 -9
index 9ba7fdfeb4b2..c8646d0d9866 100644

Lines of this file are not shown. View the raw message.

rust/kernel/block/mq/raw_writer.rs +1 -1
index 9222465d670b..7e2159e4f6a6 100644

Lines of this file are not shown. View the raw message.

rust/kernel/block/mq/tag_set.rs +1 -1
index f9a1ca655a35..d7f175a05d99 100644

Lines of this file are not shown. View the raw message.

rust/kernel/error.rs +48 -34

82 lines not on this page · raw message

rust/kernel/firmware.rs +1 -1
index 13a374a5cdb7..c5162fdc95ff 100644

Lines of this file are not shown. View the raw message.

rust/kernel/init.rs +43 -84

127 lines not on this page · raw message

rust/kernel/init/__internal.rs +9 -4
index 13cefd37512f..74329cc3262c 100644

Lines of this file are not shown. View the raw message.

rust/kernel/init/macros.rs +14 -4
index 9a0c4650ef67..1fd146a83241 100644

Lines of this file are not shown. View the raw message.

rust/kernel/ioctl.rs +1 -1
index cfa7d080b531..2fc7662339e5 100644

Lines of this file are not shown. View the raw message.

rust/kernel/lib.rs +4 -1
index e936254531fd..d764cb7ff5d7 100644

Lines of this file are not shown. View the raw message.

rust/kernel/list.rs +1 -0
index 5b4aec29eb67..fb93330f4af4 100644

Lines of this file are not shown. View the raw message.

rust/kernel/list/arc_field.rs +1 -1
index 2330f673427a..c4b9dd503982 100644

Lines of this file are not shown. View the raw message.

rust/kernel/net/phy.rs +8 -8
index 910ce867480a..beb62ec712c3 100644

Lines of this file are not shown. View the raw message.

rust/kernel/prelude.rs +1 -4
index 4571daec0961..8bdab9aa0d16 100644

Lines of this file are not shown. View the raw message.

rust/kernel/print.rs +4 -1
index 508b0221256c..a28077a7cb30 100644

Lines of this file are not shown. View the raw message.

rust/kernel/rbtree.rs +27 -22

49 lines not on this page · raw message

rust/kernel/std_vendor.rs +7 -5
index 67bf9d37ddb5..8b4872b48e97 100644

Lines of this file are not shown. View the raw message.

rust/kernel/str.rs +33 -13

46 lines not on this page · raw message

rust/kernel/sync/arc.rs +12 -13
index 28743a7c74a8..fa4509406ee9 100644

Lines of this file are not shown. View the raw message.

rust/kernel/sync/arc/std_vendor.rs +2 -0
index a66a0c2831b3..11b3f4ecca5f 100644

Lines of this file are not shown. View the raw message.

rust/kernel/sync/condvar.rs +3 -4
index 2b306afbe56d..7df565038d7d 100644

Lines of this file are not shown. View the raw message.

rust/kernel/sync/lock.rs +4 -4
index f6c34ca4d819..528eb6907231 100644

Lines of this file are not shown. View the raw message.

rust/kernel/sync/lock/mutex.rs +2 -2
index 30632070ee67..59a872cbcac6 100644

Lines of this file are not shown. View the raw message.

rust/kernel/sync/lock/spinlock.rs +2 -2
index ea5c5bc1ce12..b77eed1789ad 100644

Lines of this file are not shown. View the raw message.

rust/kernel/sync/locked_by.rs +1 -1
index ce2ee8d87865..a7b244675c2b 100644

Lines of this file are not shown. View the raw message.

rust/kernel/task.rs +2 -6
index 55dff7e088bf..5bce090a3869 100644

Lines of this file are not shown. View the raw message.

rust/kernel/time.rs +2 -2
index e3bb5e89f88d..379c0f5772e5 100644

Lines of this file are not shown. View the raw message.

rust/kernel/types.rs +48 -92

140 lines not on this page · raw message

rust/kernel/uaccess.rs +16 -32

48 lines not on this page · raw message

rust/kernel/workqueue.rs +16 -13
index 553a5cba2adc..4d1d2062f6eb 100644

Lines of this file are not shown. View the raw message.

rust/macros/lib.rs +7 -7
index 90e2202ba4d5..b16402a16acd 100644

Lines of this file are not shown. View the raw message.

rust/macros/module.rs +4 -4
index aef3b132f32b..e7a087b7e884 100644

Lines of this file are not shown. View the raw message.

rust/uapi/lib.rs +6 -0
index 80a00260e3e7..13495910271f 100644

Lines of this file are not shown. View the raw message.

samples/rust/rust_minimal.rs +2 -2
index 2a9eaab62d1c..4aaf117bf8e3 100644

Lines of this file are not shown. View the raw message.

samples/rust/rust_print.rs +1 -0
index 6eabb0d79ea3..ba1606bdbd75 100644

Lines of this file are not shown. View the raw message.

scripts/Makefile.build +2 -2
index 880785b52c04..2bba59e790b8 100644

Lines of this file are not shown. View the raw message.

scripts/generate_rust_analyzer.py +2 -9
index d2bc63cde8c6..09e1d166d8d2 100755

Lines of this file are not shown. View the raw message.

sound/core/seq/seq_clientmgr.c +30 -16

46 lines not on this page · raw message

sound/pci/hda/Kconfig +1 -0
index 68f1eee9e5c9..dbf933c18a82 100644

Lines of this file are not shown. View the raw message.

sound/pci/hda/hda_intel.c +2 -0
index b4540c5cd2a6..ea52bc7370a5 100644

Lines of this file are not shown. View the raw message.

sound/pci/hda/patch_realtek.c +94 -13

107 lines not on this page · raw message

sound/usb/usx2y/usbusx2y.c +11 -0
index 5f81c68fd42b..5756ff3528a2 100644

Lines of this file are not shown. View the raw message.

sound/usb/usx2y/usbusx2y.h +26 -0
index 391fd7b4ed5e..6a76d04bf1c7 100644

Lines of this file are not shown. View the raw message.

sound/usb/usx2y/usbusx2yaudio.c +0 -27
index f540f46a0b14..acca8bead82e 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/bpf/benchs/bench_trigger.c +2 -1
index 2ed0ef6f21ee..32e9f194d449 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/bpf/bpf_util.h +9 -0
index 10587a29b967..feff92219e21 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/bpf/map_tests/task_storage_map.c +2 -1
index 7d050364efca..62971dbf2996 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/bpf/prog_tests/bpf_cookie.c +1 -1
index 070c52c312e5..6befa870434b 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/bpf/prog_tests/bpf_iter.c +3 -3
index 9006549a1294..b8e1224cfd19 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/bpf/prog_tests/cgrp_local_storage.c +5 -5
index 747761572098..9015e2c2ab12 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/bpf/prog_tests/core_reloc.c +1 -1
index 26019313e1fc..1c682550e0e7 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/bpf/prog_tests/linked_funcs.c +1 -1
index cad664546912..fa639b021f7e 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/bpf/prog_tests/ns_current_pid_tgid.c +1 -1
index c29787e092d6..761ce24bce38 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/bpf/prog_tests/rcu_read_lock.c +2 -2
index a1f7e7378a64..ebe0c12b5536 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/bpf/prog_tests/task_local_storage.c +4 -4
index c33c05161a9e..0d42ce00166f 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/bpf/prog_tests/uprobe_multi_test.c +1 -1
index c1ac813ff9ba..02a484b22aa6 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/damon/damon_nr_regions.py +2 -0
index 2e8a74aff543..58f3291fed12 100755

Lines of this file are not shown. View the raw message.

tools/testing/selftests/damon/damos_quota.py +6 -3
index 7d4c6bb2e3cd..57c4937aaed2 100755

Lines of this file are not shown. View the raw message.

tools/testing/selftests/damon/damos_quota_goal.py +3 -0
index 18246f3b62f7..f76e0412b564 100755

Lines of this file are not shown. View the raw message.

tools/testing/selftests/mm/hugepage-mremap.c +1 -1
index ada9156cc497..c463d1c09c9b 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/mm/ksm_functional_tests.c +7 -1
index 66b4e111b5a2..b61803e36d1c 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/mm/memfd_secret.c +13 -1
index 74c911aa3aea..9a0597310a76 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/mm/mkdirty.c +7 -1
index 1db134063c38..b8a7efe9204e 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/mm/mlock2.h +0 -1
index 1e5731bab499..4417eaa5cfb7 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/mm/protection_keys.c +1 -1
index 4990f7ab4cb7..4fcecfb7b189 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/mm/uffd-common.c +4 -0
index 717539eddf98..7ad6ba660c7d 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/mm/uffd-stress.c +14 -1
index a4b83280998a..944d559ade21 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/mm/uffd-unit-tests.c +13 -1
index a2e71b1636e7..3ddbb0a71b9c 100644

Lines of this file are not shown. View the raw message.

usr/include/Makefile +1 -1
index 771e32872b2a..58173cfe5ff1 100644

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

Part of the diff is not shown here. View the raw message.