Linux 5.15.154
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.15.154 kernel.
All users of the 5.15 kernel series must upgrade.
The updated 5.15.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.15.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
------------
Documentation/ABI/testing/sysfs-devices-system-cpu | 1 Documentation/admin-guide/filesystem-monitoring.rst | 74 Documentation/admin-guide/hw-vuln/index.rst | 1 Documentation/admin-guide/hw-vuln/reg-file-data-sampling.rst | 104 Documentation/admin-guide/hw-vuln/spectre.rst | 66 Documentation/admin-guide/index.rst | 1 Documentation/admin-guide/kernel-parameters.txt | 39 Documentation/core-api/dma-api.rst | 14 Documentation/filesystems/locking.rst | 10 Documentation/filesystems/nfs/exporting.rst | 33 Documentation/x86/mds.rst | 38 MAINTAINERS | 7 Makefile | 6 arch/Kconfig | 24 arch/arm/boot/dts/mmp2-brownstone.dts | 2 arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi | 2 arch/arm64/include/asm/kvm_pgtable.h | 18 arch/arm64/include/asm/stage2_pgtable.h | 20 arch/arm64/kvm/mmu.c | 9 arch/hexagon/kernel/vmlinux.lds.S | 1 arch/ia64/Kconfig | 1 arch/ia64/Makefile | 2 arch/openrisc/kernel/dma.c | 16 arch/parisc/include/asm/assembly.h | 18 arch/parisc/include/asm/checksum.h | 10 arch/powerpc/include/asm/reg_fsl_emb.h | 11 arch/powerpc/lib/Makefile | 2 arch/riscv/include/asm/uaccess.h | 4 arch/riscv/kernel/process.c | 3 arch/s390/kernel/entry.S | 1 arch/sparc/kernel/nmi.c | 2 arch/sparc/vdso/vma.c | 7 arch/x86/Kconfig | 38 arch/x86/boot/compressed/head_64.S | 8 arch/x86/entry/common.c | 6 arch/x86/entry/entry.S | 23 arch/x86/entry/entry_32.S | 3 arch/x86/entry/entry_64.S | 72 arch/x86/entry/entry_64_compat.S | 4 arch/x86/entry/syscall_32.c | 21 arch/x86/entry/syscall_64.c | 19 arch/x86/entry/syscall_x32.c | 10 arch/x86/include/asm/asm-prototypes.h | 1 arch/x86/include/asm/asm.h | 5 arch/x86/include/asm/cpufeature.h | 8 arch/x86/include/asm/cpufeatures.h | 18 arch/x86/include/asm/disabled-features.h | 3 arch/x86/include/asm/entry-common.h | 1 arch/x86/include/asm/linkage.h | 12 arch/x86/include/asm/msr-index.h | 19 arch/x86/include/asm/nospec-branch.h | 64 arch/x86/include/asm/required-features.h | 3 arch/x86/include/asm/suspend_32.h | 10 arch/x86/include/asm/syscall.h | 10 arch/x86/include/asm/text-patching.h | 31 arch/x86/kernel/alternative.c | 56 arch/x86/kernel/cpu/amd.c | 10 arch/x86/kernel/cpu/bugs.c | 360 ++- arch/x86/kernel/cpu/common.c | 77 arch/x86/kernel/cpu/mce/core.c | 4 arch/x86/kernel/cpu/scattered.c | 1 arch/x86/kernel/kprobes/core.c | 38 arch/x86/kernel/nmi.c | 3 arch/x86/kernel/static_call.c | 50 arch/x86/kvm/cpuid.c | 29 arch/x86/kvm/reverse_cpuid.h | 47 arch/x86/kvm/svm/sev.c | 16 arch/x86/kvm/vmx/run_flags.h | 7 arch/x86/kvm/vmx/vmenter.S | 11 arch/x86/kvm/vmx/vmx.c | 12 arch/x86/kvm/x86.c | 17 arch/x86/lib/retpoline.S | 5 arch/x86/mm/ident_map.c | 23 block/blk-settings.c | 4 crypto/algboss.c | 4 drivers/accessibility/speakup/synth.c | 4 drivers/acpi/acpica/dbnames.c | 8 drivers/acpi/cppc_acpi.c | 27 drivers/ata/ahci.c | 5 drivers/ata/sata_mv.c | 63 drivers/ata/sata_sx4.c | 6 drivers/base/core.c | 26 drivers/base/cpu.c | 8 drivers/base/power/wakeirq.c | 4 drivers/clk/qcom/gcc-ipq6018.c | 2 drivers/clk/qcom/gcc-ipq8074.c | 2 drivers/clk/qcom/gcc-sdm845.c | 1 drivers/clk/qcom/mmcc-apq8084.c | 2 drivers/clk/qcom/mmcc-msm8974.c | 2 drivers/clocksource/arm_global_timer.c | 2 drivers/cpufreq/brcmstb-avs-cpufreq.c | 5 drivers/cpufreq/cpufreq-dt.c | 2 drivers/crypto/qat/qat_common/adf_aer.c | 23 drivers/firmware/efi/vars.c | 17 drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | 4 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 1 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 8 drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.c | 12 drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c | 3 drivers/gpu/drm/drm_panel.c | 17 drivers/gpu/drm/etnaviv/etnaviv_drv.c | 2 drivers/gpu/drm/etnaviv/etnaviv_hwdb.c | 9 drivers/gpu/drm/exynos/exynos_drm_vidi.c | 4 drivers/gpu/drm/exynos/exynos_hdmi.c | 4 drivers/gpu/drm/i915/gem/i915_gem_userptr.c | 3 drivers/gpu/drm/i915/gt/intel_engine_pm.c | 3 drivers/gpu/drm/i915/gt/intel_execlists_submission.c | 3 drivers/gpu/drm/imx/parallel-display.c | 4 drivers/gpu/drm/vc4/vc4_hdmi.c | 2 drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 14 drivers/hid/uhid.c | 20 drivers/hwmon/amc6821.c | 11 drivers/i2c/busses/i2c-i801.c | 4 drivers/infiniband/core/cm_trace.h | 2 drivers/infiniband/core/cma_trace.h | 2 drivers/iommu/dma-iommu.c | 15 drivers/iommu/iova.c | 5 drivers/md/dm-integrity.c | 2 drivers/md/dm-raid.c | 2 drivers/md/dm-snap.c | 4 drivers/media/tuners/xc4000.c | 4 drivers/misc/mei/hw-me-regs.h | 2 drivers/misc/mei/pci-me.c | 2 drivers/mmc/core/block.c | 14 drivers/mmc/host/tmio_mmc_core.c | 2 drivers/mtd/nand/raw/meson_nand.c | 2 drivers/mtd/ubi/fastmap.c | 7 drivers/mtd/ubi/vtbl.c | 6 drivers/net/ethernet/freescale/fec_main.c | 11 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_trace.h | 8 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_trace.h | 8 drivers/net/ethernet/intel/i40e/i40e.h | 6 drivers/net/ethernet/intel/i40e/i40e_main.c | 14 drivers/net/ethernet/intel/i40e/i40e_ptp.c | 6 drivers/net/ethernet/intel/i40e/i40e_register.h | 3 drivers/net/ethernet/intel/i40e/i40e_txrx.c | 82 drivers/net/ethernet/intel/i40e/i40e_txrx.h | 5 drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 34 drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c | 16 drivers/net/ethernet/marvell/octeontx2/af/cgx.c | 5 drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c | 2 drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c | 2 drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c | 31 drivers/net/ethernet/realtek/r8169_main.c | 11 drivers/net/ethernet/renesas/ravb_main.c | 8 drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c | 40 drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c | 38 drivers/net/ethernet/xilinx/ll_temac_main.c | 2 drivers/net/usb/asix.h | 3 drivers/net/usb/asix_devices.c | 20 drivers/net/wireguard/netlink.c | 10 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 4 drivers/net/wireless/intel/iwlwifi/mvm/rfi.c | 12 drivers/net/xen-netfront.c | 1 drivers/nvme/host/core.c | 6 drivers/nvmem/meson-efuse.c | 25 drivers/of/dynamic.c | 12 drivers/pci/controller/dwc/pcie-designware-ep.c | 7 drivers/pci/pci-driver.c | 23 drivers/pci/pcie/dpc.c | 15 drivers/pci/pcie/err.c | 20 drivers/pci/quirks.c | 100 drivers/pci/setup-res.c | 8 drivers/phy/tegra/xusb.c | 13 drivers/s390/crypto/zcrypt_api.c | 2 drivers/s390/net/qeth_core_main.c | 38 drivers/scsi/hosts.c | 7 drivers/scsi/lpfc/lpfc_nvmet.c | 2 drivers/scsi/myrb.c | 20 drivers/scsi/myrs.c | 24 drivers/scsi/qla2xxx/qla_attr.c | 14 drivers/scsi/qla2xxx/qla_def.h | 2 drivers/scsi/qla2xxx/qla_gbl.h | 2 drivers/scsi/qla2xxx/qla_gs.c | 2 drivers/scsi/qla2xxx/qla_init.c | 128 - drivers/scsi/qla2xxx/qla_iocb.c | 68 drivers/scsi/qla2xxx/qla_mbx.c | 2 drivers/scsi/qla2xxx/qla_os.c | 2 drivers/scsi/qla2xxx/qla_target.c | 10 drivers/slimbus/core.c | 4 drivers/soc/fsl/qbman/qman.c | 98 drivers/staging/media/ipu3/ipu3-v4l2.c | 16 drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c | 5 drivers/tee/optee/device.c | 3 drivers/thermal/devfreq_cooling.c | 2 drivers/tty/serial/8250/8250_port.c | 6 drivers/tty/serial/fsl_lpuart.c | 7 drivers/tty/serial/imx.c | 22 drivers/tty/serial/sc16is7xx.c | 15 drivers/tty/serial/serial_core.c | 12 drivers/tty/vt/vt.c | 2 drivers/usb/class/cdc-wdm.c | 6 drivers/usb/core/hub.c | 23 drivers/usb/core/hub.h | 2 drivers/usb/core/port.c | 5 drivers/usb/core/sysfs.c | 16 drivers/usb/dwc2/core.h | 14 drivers/usb/dwc2/core_intr.c | 72 drivers/usb/dwc2/gadget.c | 10 drivers/usb/dwc2/hcd.c | 49 drivers/usb/dwc2/hcd_ddma.c | 17 drivers/usb/dwc2/hw.h | 2 drivers/usb/dwc2/platform.c | 2 drivers/usb/gadget/function/f_ncm.c | 2 drivers/usb/gadget/udc/core.c | 4 drivers/usb/gadget/udc/tegra-xudc.c | 39 drivers/usb/host/xhci.c | 2 drivers/usb/phy/phy-generic.c | 7 drivers/usb/serial/cp210x.c | 4 drivers/usb/serial/ftdi_sio.c | 2 drivers/usb/serial/ftdi_sio_ids.h | 6 drivers/usb/serial/option.c | 6 drivers/usb/storage/isd200.c | 23 drivers/usb/storage/scsiglue.c | 1 drivers/usb/storage/uas.c | 81 drivers/usb/storage/usb.c | 4 drivers/usb/typec/ucsi/ucsi.c | 42 drivers/usb/typec/ucsi/ucsi.h | 4 drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c | 7 drivers/vfio/pci/vfio_pci_intrs.c | 176 - drivers/vfio/platform/vfio_platform_irq.c | 106 drivers/vfio/virqfd.c | 21 drivers/xen/events/events_base.c | 5 fs/Kconfig | 2 fs/aio.c | 8 fs/btrfs/scrub.c | 12 fs/btrfs/volumes.c | 2 fs/cifs/connect.c | 2 fs/exec.c | 1 fs/exportfs/expfs.c | 8 fs/ext4/mballoc.c | 17 fs/ext4/resize.c | 3 fs/ext4/super.c | 10 fs/fat/nfs.c | 6 fs/fuse/dir.c | 4 fs/fuse/fuse_i.h | 1 fs/fuse/inode.c | 7 fs/ksmbd/smb2pdu.c | 10 fs/lockd/host.c | 2 fs/lockd/svc.c | 217 -- fs/lockd/svc4proc.c | 29 fs/lockd/svclock.c | 31 fs/lockd/svcproc.c | 30 fs/lockd/svcsubs.c | 4 fs/lockd/xdr.c | 152 - fs/lockd/xdr4.c | 153 - fs/locks.c | 85 fs/nfs/callback.c | 96 fs/nfs/callback_xdr.c | 5 fs/nfs/direct.c | 11 fs/nfs/export.c | 9 fs/nfs/nfs4state.c | 2 fs/nfs/nfs4trace.h | 477 ---- fs/nfs/nfstrace.h | 269 -- fs/nfs/pnfs.h | 4 fs/nfs/write.c | 2 fs/nfsd/Kconfig | 27 fs/nfsd/Makefile | 8 fs/nfsd/acl.h | 6 fs/nfsd/blocklayout.c | 1 fs/nfsd/blocklayoutxdr.c | 1 fs/nfsd/cache.h | 2 fs/nfsd/export.h | 1 fs/nfsd/filecache.c | 1168 ++++++----- fs/nfsd/filecache.h | 19 fs/nfsd/flexfilelayout.c | 3 fs/nfsd/lockd.c | 2 fs/nfsd/netns.h | 34 fs/nfsd/nfs2acl.c | 55 fs/nfsd/nfs3acl.c | 85 fs/nfsd/nfs3proc.c | 212 + fs/nfsd/nfs3xdr.c | 444 +--- fs/nfsd/nfs4acl.c | 46 fs/nfsd/nfs4callback.c | 125 - fs/nfsd/nfs4idmap.c | 9 fs/nfsd/nfs4layouts.c | 4 fs/nfsd/nfs4proc.c | 986 +++++---- fs/nfsd/nfs4recover.c | 12 fs/nfsd/nfs4state.c | 1041 +++++++-- fs/nfsd/nfs4xdr.c | 1115 +++++----- fs/nfsd/nfscache.c | 63 fs/nfsd/nfsctl.c | 146 - fs/nfsd/nfsd.h | 35 fs/nfsd/nfsfh.c | 270 +- fs/nfsd/nfsfh.h | 145 - fs/nfsd/nfsproc.c | 121 - fs/nfsd/nfssvc.c | 263 +- fs/nfsd/nfsxdr.c | 178 - fs/nfsd/state.h | 59 fs/nfsd/stats.c | 16 fs/nfsd/stats.h | 4 fs/nfsd/trace.h | 692 +++++- fs/nfsd/vfs.c | 820 +++---- fs/nfsd/vfs.h | 56 fs/nfsd/xdr.h | 35 fs/nfsd/xdr3.h | 61 fs/nfsd/xdr4.h | 81 fs/nfsd/xdr4cb.h | 6 fs/nilfs2/btree.c | 9 fs/nilfs2/direct.c | 9 fs/nilfs2/inode.c | 2 fs/notify/dnotify/dnotify.c | 15 fs/notify/fanotify/fanotify.c | 361 ++- fs/notify/fanotify/fanotify.h | 212 + fs/notify/fanotify/fanotify_user.c | 441 +++- fs/notify/fdinfo.c | 16 fs/notify/fsnotify.c | 177 - fs/notify/fsnotify.h | 4 fs/notify/group.c | 36 fs/notify/inotify/inotify.h | 11 fs/notify/inotify/inotify_fsnotify.c | 7 fs/notify/inotify/inotify_user.c | 53 fs/notify/mark.c | 137 - fs/notify/notification.c | 14 fs/open.c | 42 fs/pipe.c | 17 fs/ubifs/file.c | 13 fs/vboxsf/super.c | 3 include/asm-generic/vmlinux.lds.h | 4 include/linux/cpu.h | 2 include/linux/device.h | 1 include/linux/dma-map-ops.h | 1 include/linux/dma-mapping.h | 5 include/linux/dnotify.h | 2 include/linux/exportfs.h | 17 include/linux/fanotify.h | 31 include/linux/fs.h | 26 include/linux/fsnotify.h | 70 include/linux/fsnotify_backend.h | 356 ++- include/linux/gfp.h | 9 include/linux/hyperv.h | 22 include/linux/iova.h | 2 include/linux/kthread.h | 1 include/linux/linkage.h | 4 include/linux/lockd/lockd.h | 10 include/linux/lockd/xdr.h | 27 include/linux/lockd/xdr4.h | 29 include/linux/minmax.h | 17 include/linux/module.h | 6 include/linux/nfs.h | 8 include/linux/nfs4.h | 17 include/linux/nfs_fs.h | 1 include/linux/nfs_ssc.h | 4 include/linux/pci.h | 1 include/linux/phy/tegra/xusb.h | 1 include/linux/ring_buffer.h | 1 include/linux/secretmem.h | 4 include/linux/sunrpc/svc.h | 93 include/linux/sunrpc/svc_xprt.h | 11 include/linux/sunrpc/svcsock.h | 7 include/linux/sunrpc/xdr.h | 2 include/linux/timer.h | 18 include/linux/udp.h | 28 include/linux/vfio.h | 2 include/net/cfg802154.h | 1 include/net/inet_connection_sock.h | 1 include/net/sock.h | 7 include/soc/fsl/qman.h | 9 include/trace/events/rdma.h | 168 - include/trace/events/rpcgss.h | 18 include/trace/events/rpcrdma.h | 44 include/trace/events/sunrpc.h | 74 include/trace/misc/fs.h | 122 + include/trace/misc/nfs.h | 387 +++ include/trace/misc/rdma.h | 168 + include/trace/misc/sunrpc.h | 18 include/uapi/linux/fanotify.h | 29 include/uapi/linux/nfsd/nfsfh.h | 115 - init/initramfs.c | 2 io_uring/io_uring.c | 2 kernel/audit_fsnotify.c | 8 kernel/audit_tree.c | 2 kernel/audit_watch.c | 5 kernel/bounds.c | 2 kernel/bpf/verifier.c | 5 kernel/dma/mapping.c | 12 kernel/dma/swiotlb.c | 11 kernel/entry/common.c | 8 kernel/events/core.c | 9 kernel/kthread.c | 23 kernel/locking/rwsem.c | 14 kernel/module.c | 8 kernel/power/suspend.c | 1 kernel/printk/printk.c | 63 kernel/time/timer.c | 164 - kernel/trace/ring_buffer.c | 233 +- kernel/trace/trace.c | 21 lib/Kconfig.debug | 1 lib/pci_iomap.c | 2 lib/test_kasan.c | 21 mm/compaction.c | 7 mm/memtest.c | 4 mm/migrate.c | 6 mm/page_alloc.c | 10 mm/swapfile.c | 25 mm/vmscan.c | 5 net/bluetooth/bnep/core.c | 2 net/bluetooth/cmtp/core.c | 2 net/bluetooth/hci_debugfs.c | 48 net/bluetooth/hci_event.c | 25 net/bluetooth/hidp/core.c | 2 net/bridge/netfilter/ebtables.c | 6 net/core/skbuff.c | 6 net/core/sock_map.c | 6 net/ipv4/inet_connection_sock.c | 14 net/ipv4/ip_gre.c | 5 net/ipv4/netfilter/arp_tables.c | 4 net/ipv4/netfilter/ip_tables.c | 4 net/ipv4/tcp.c | 2 net/ipv4/udp.c | 7 net/ipv4/udp_offload.c | 20 net/ipv6/ip6_fib.c | 14 net/ipv6/ip6_gre.c | 3 net/ipv6/netfilter/ip6_tables.c | 4 net/ipv6/udp.c | 2 net/ipv6/udp_offload.c | 8 net/mac80211/cfg.c | 5 net/mac802154/llsec.c | 18 net/mptcp/protocol.c | 3 net/mptcp/subflow.c | 3 net/netfilter/nf_tables_api.c | 20 net/nfc/nci/core.c | 5 net/rds/rdma.c | 2 net/sched/act_skbmod.c | 10 net/sunrpc/svc.c | 227 -- net/sunrpc/svc_xprt.c | 68 net/sunrpc/svcsock.c | 24 net/sunrpc/xdr.c | 22 net/sunrpc/xprtrdma/svc_rdma_backchannel.c | 2 net/xfrm/xfrm_user.c | 3 scripts/Makefile.extrawarn | 2 security/landlock/syscalls.c | 18 security/smack/smack_lsm.c | 12 sound/pci/hda/patch_realtek.c | 9 sound/sh/aica.c | 17 sound/soc/codecs/rt5682-sdw.c | 4 sound/soc/codecs/rt711-sdca-sdw.c | 4 sound/soc/codecs/rt711-sdw.c | 4 sound/soc/soc-ops.c | 2 tools/objtool/check.c | 3 tools/testing/selftests/mqueue/setting | 1 tools/testing/selftests/net/mptcp/diag.sh | 6 tools/testing/selftests/net/mptcp/mptcp_connect.sh | 7 tools/testing/selftests/net/reuseaddr_conflict.c | 2 tools/testing/selftests/net/udpgro_fwd.sh | 10 virt/kvm/async_pf.c | 31 446 files changed, 12088 insertions(+), 7026 deletions(-)
Al Viro (2):
nfsd_splice_actor(): handle compound pages
fs/notify: constify path
Alan Stern (3):
USB: usb-storage: Prevent divide-by-0 error in isd200_ata_command
USB: core: Add hub_get() and hub_put() routines
USB: core: Fix deadlock in usb_deauthorize_interface()
Aleksandr Loktionov (2):
i40e: fix i40e_count_filters() to count only active/new filters
i40e: fix vf may be used uninitialized in this function warning
Alex Williamson (7):
vfio/platform: Disable virqfds on cleanup vfio/pci: Disable auto-enable of exclusive INTx IRQ vfio/pci: Lock external INTx masking ops
vfio: Introduce interface to flush virqfd inject workqueue vfio/pci: Create persistent INTx handler vfio/platform: Create persistent IRQ handlers vfio/fsl-mc: Block calling interrupt handler without trigger
Alexander Aring (1):
lockd: introduce safe async lock op
Alexander Stein (1):
Revert "usb: phy: generic: Get the vbus supply"
Alexander Usyskin (2):
mei: me: add arrow lake point S DID
mei: me: add arrow lake point H DID
Alexandra Winter (1):
s390/qeth: handle deferred cc1
Amir Goldstein (37):
fsnotify: pass data_type to fsnotify_name()
fsnotify: pass dentry instead of inode data
fsnotify: clarify contract for create event hooks
fsnotify: clarify object type argument
fsnotify: separate mark iterator type from object type enum
fanotify: introduce group flag FAN_REPORT_TARGET_FID
fsnotify: generate FS_RENAME event with rich information
fanotify: use macros to get the offset to fanotify_info buffer
fanotify: use helpers to parcel fanotify_info buffer
fanotify: support secondary dir fh and name in fanotify_info
fanotify: record old and new parent and name in FAN_RENAME event
fanotify: record either old name new name or both for FAN_RENAME
fanotify: report old and/or new parent+name in FAN_RENAME event
fanotify: wire up FAN_RENAME event
fsnotify: invalidate dcache before IN_DELETE event
fsnotify: fix merge with parent's ignored mask
fsnotify: optimize FS_MODIFY events with no ignored masks
fanotify: do not allow setting dirent events in mask of non-dir
inotify: move control flags from mask to mark flags
fsnotify: pass flags argument to fsnotify_alloc_group()
fsnotify: make allow_dups a property of the group
fsnotify: create helpers for group mark_mutex lock
inotify: use fsnotify group lock helpers
nfsd: use fsnotify group lock helpers
dnotify: use fsnotify group lock helpers
fsnotify: allow adding an inode mark without pinning inode
fanotify: create helper fanotify_mark_user_flags()
fanotify: factor out helper fanotify_mark_update_flags()
fanotify: implement "evictable" inode marks
fanotify: use fsnotify group lock helpers
fanotify: enable "evictable" inode marks
fsnotify: introduce mark type iterator
fsnotify: consistent behavior for parent not watching children
fanotify: refine the validation checks on non-dir inode mask
fanotify: prepare for setting event flags in ignore mask
fanotify: cleanups for fanotify_mark() input validations
fanotify: introduce FAN_MARK_IGNORE
Amit Pundir (1):
clk: qcom: gcc-sdm845: Add soft dependency on rpmhpd
Andrei Matei (1):
bpf: Protect against int overflow for stack access size
Andrey Jr. Melnikov (1):
ahci: asm1064: correct count of reported ports
André Rösti (1):
entry: Respect changes to system call number by trace_sys_enter()
Anna Schumaker (1):
NFSD: Simplify READ_PLUS
Antoine Tenart (5):
selftests: net: gro fwd: update vxlan GRO test expectations
udp: do not accept non-tunnel GSO skbs landing in a tunnel
udp: do not transition UDP GRO fraglist partial checksums to unnecessary
udp: prevent local UDP tunnel packets from being GROed
gro: fix ownership transfer
Anton Altaparmakov (1):
x86/pm: Work around false positive kmemleak report in msr_build_context()
Arnd Bergmann (6):
kasan/test: avoid gcc warning for intentional overflow
staging: vc04_services: changen strncpy() to strscpy_pad() dm integrity: fix out-of-range warning
ata: sata_sx4: fix pdc20621_get_from_dimm() on 64-bit
scsi: mylex: Fix sysfs buffer lengths
ata: sata_mv: Fix PCI device ID table declaration compilation warning
Arseniy Krasnov (1):
mtd: rawnand: meson: fix scrambling mode value in command macro
Aurélien Jacobs (1):
USB: serial: option: add MeiG Smart SLM320 product
Bang Li (1):
fsnotify: remove redundant parameter judgment
Baokun Li (1):
ext4: correct best extent lstart adjustment logic
Bart Van Assche (3):
fs/aio: Check IOCB_AIO_RW before the struct aio_kiocb conversion
scsi: usb: Call scsi_done() directly
scsi: usb: Stop using the SCSI pointer
Bastien Nocera (1):
Bluetooth: Fix TOCTOU in HCI debugfs implementation
Benjamin Coddington (1):
NLM: Defend against file_lock changes after vfs_test_lock()
Bikash Hazarika (2):
scsi: qla2xxx: Update manufacturer details
scsi: qla2xxx: Update manufacturer detail
Bixuan Cui (1):
iwlwifi: mvm: rfi: use kmemdup() to replace kzalloc + memcpy
Bjorn Helgaas (1):
PCI: Work around Intel I210 ROM BAR overlap defect
Borislav Petkov (1):
x86/bugs: Use sysfs_emit()
Borislav Petkov (AMD) (4):
x86/CPU/AMD: Update the Zenbleed microcode revisions
x86/mce: Make sure to grab mce_sysfs_mutex in set_bank() x86/bugs: Fix the SRSO mitigation on Zen3/4
x86/retpoline: Do the necessary fixup to the Zen3/4 srso return thunk for !SRSO
Cameron Williams (1):
USB: serial: add device ID for VeriFone adapter
Changcheng Deng (1):
NFSD:fix boolreturn.cocci warning
ChenXiaoSong (5):
nfsd: use DEFINE_PROC_SHOW_ATTRIBUTE to define nfsd_proc_ops
nfsd: use DEFINE_SHOW_ATTRIBUTE to define export_features_fops and supported_enctypes_fops
nfsd: use DEFINE_SHOW_ATTRIBUTE to define client_info_fops
nfsd: use DEFINE_SHOW_ATTRIBUTE to define nfsd_reply_cache_stats_fops
nfsd: use DEFINE_SHOW_ATTRIBUTE to define nfsd_file_cache_stats_fops
Chris Wilson (1):
drm/i915/gt: Reset queue_priority_hint on parking
Christian A. Ehrhardt (2):
usb: typec: ucsi: Ack unsupported commands
usb: typec: ucsi: Clear UCSI_CCI_RESET_COMPLETE before reset
Christian Gmeiner (1):
drm/etnaviv: Restore some id values
Christian Häggström (1):
USB: serial: cp210x: add ID for MGP Instruments PDS100
Christophe JAILLET (4):
slimbus: core: Remove usage of the deprecated ida_simple_xx() API
nfsd: Avoid some useless tests
nfsd: Propagate some error code returned by memdup_user()
vboxsf: Avoid an spurious warning if load_nls_xxx() fails
Chuck Lever (155):
NFS: Remove unnecessary TRACE_DEFINE_ENUM()s
SUNRPC: Tracepoints should display tk_pid and cl_clid as a fixed-size field
NFS: Move generic FS show macros to global header
NFS: Move NFS protocol display macros to global header
NFSD: Optimize DRC bucket pruning
SUNRPC: Replace the "__be32 *p" parameter to .pc_decode
SUNRPC: Change return value type of .pc_decode
NFSD: Save location of NFSv4 COMPOUND status
SUNRPC: Replace the "__be32 *p" parameter to .pc_encode
SUNRPC: Change return value type of .pc_encode
NFSD: Remove be32_to_cpu() from DRC hash function
NFSD: Combine XDR error tracepoints
NFSD: De-duplicate nfsd4_decode_bitmap4()
NFSD: Clean up nfsd_vfs_write()
NFSD: De-duplicate net_generic(SVC_NET(rqstp), nfsd_net_id)
NFSD: Write verifier might go backwards
NFSD: Clean up the nfsd_net::nfssvc_boot field
NFSD: Rename boot verifier functions
NFSD: Trace boot verifier resets
NFSD: Move fill_pre_wcc() and fill_post_wcc()
NFSD: Deprecate NFS_OFFSET_MAX
orDate: Thu Sep 30 19:19:57 2021 -0400
NFSD: Skip extra computation for RC_NOCACHE case
NFSD: Streamline the rare "found" case
NFSD: Remove NFSD_PROC_ARGS_* macros
SUNRPC: Remove the .svo_enqueue_xprt method
SUNRPC: Merge svc_do_enqueue_xprt() into svc_enqueue_xprt()
SUNRPC: Remove svo_shutdown method
SUNRPC: Rename svc_create_xprt()
SUNRPC: Rename svc_close_xprt()
SUNRPC: Remove svc_shutdown_net()
NFSD: Remove svc_serv_ops::svo_module
NFSD: Move svc_serv_ops::svo_function into struct svc_serv
NFSD: Remove CONFIG_NFSD_V3
NFSD: Clean up _lm_ operation names
NFSD: Clean up nfsd_splice_actor()
NFSD: Clean up nfsd3_proc_create()
NFSD: Avoid calling fh_drop_write() twice in do_nfsd_create()
NFSD: Refactor nfsd_create_setattr()
NFSD: Refactor NFSv3 CREATE
NFSD: Refactor NFSv4 OPEN(CREATE)
NFSD: Remove do_nfsd_create()
NFSD: Clean up nfsd_open_verified()
NFSD: Instantiate a struct file when creating a regular NFSv4 file
NFSD: Remove dprintk call sites from tail of nfsd4_open()
NFSD: Fix whitespace
NFSD: Move documenting comment for nfsd4_process_open2()
NFSD: Trace filecache opens
SUNRPC: Use RMW bitops in single-threaded hot paths
NFSD: Modernize nfsd4_release_lockowner()
NFSD: Add documenting comment for nfsd4_release_lockowner()
NFSD: nfsd_file_put() can sleep
NFSD: Fix potential use-after-free in nfsd_file_put()
NFSD: Decode NFSv4 birth time attribute
NFSD: Instrument fh_verify()
NFSD: Demote a WARN to a pr_warn()
NFSD: Report filecache LRU size
NFSD: Report count of calls to nfsd_file_acquire()
NFSD: Report count of freed filecache items
NFSD: Report average age of filecache items
NFSD: Add nfsd_file_lru_dispose_list() helper
NFSD: Refactor nfsd_file_gc()
NFSD: Refactor nfsd_file_lru_scan()
NFSD: Report the number of items evicted by the LRU walk
NFSD: Record number of flush calls
NFSD: Zero counters when the filecache is re-initialized
NFSD: Hook up the filecache stat file
NFSD: WARN when freeing an item still linked via nf_lru
NFSD: Trace filecache LRU activity
NFSD: Leave open files out of the filecache LRU
NFSD: Fix the filecache LRU shrinker
NFSD: Never call nfsd_file_gc() in foreground paths
NFSD: No longer record nf_hashval in the trace log
NFSD: Remove lockdep assertion from unhash_and_release_locked()
NFSD: nfsd_file_unhash can compute hashval from nf->nf_inode
NFSD: Refactor __nfsd_file_close_inode()
NFSD: nfsd_file_hash_remove can compute hashval
NFSD: Remove nfsd_file::nf_hashval
NFSD: Replace the "init once" mechanism
NFSD: Set up an rhashtable for the filecache
NFSD: Convert the filecache to use rhashtable
NFSD: Clean up unused code after rhashtable conversion
NFSD: Separate tracepoints for acquire and create
NFSD: Move nfsd_file_trace_alloc() tracepoint
NFSD: NFSv4 CLOSE should release an nfsd_file immediately
NFSD: Ensure nf_inode is never dereferenced
NFSD: Optimize nfsd4_encode_operation()
NFSD: Optimize nfsd4_encode_fattr()
NFSD: Clean up SPLICE_OK in nfsd4_encode_read()
NFSD: Add an nfsd4_read::rd_eof field
NFSD: Optimize nfsd4_encode_readv()
NFSD: Simplify starting_len
NFSD: Use xdr_pad_size()
NFSD: Clean up nfsd4_encode_readlink()
NFSD: Fix strncpy() fortify warning
NFSD: nfserrno(-ENOMEM) is nfserr_jukebox
NFSD: Shrink size of struct nfsd4_copy_notify
NFSD: Shrink size of struct nfsd4_copy
NFSD: Reorder the fields in struct nfsd4_op
NFSD: Make nfs4_put_copy() static
NFSD: Replace boolean fields in struct nfsd4_copy
NFSD: Refactor nfsd4_cleanup_inter_ssc() (1/2)
NFSD: Refactor nfsd4_cleanup_inter_ssc() (2/2)
NFSD: Refactor nfsd4_do_copy()
NFSD: Remove kmalloc from nfsd4_do_async_copy()
NFSD: Add nfsd4_send_cb_offload()
NFSD: Move copy offload callback arguments into a separate structure
NFSD: Increase NFSD_MAX_OPS_PER_COMPOUND
NFSD: Replace dprintk() call site in fh_verify()
NFSD: Trace NFSv4 COMPOUND tags
NFSD: Add tracepoints to report NFSv4 callback completions
NFSD: Add a mechanism to wait for a DELEGRETURN
NFSD: Refactor nfsd_setattr()
NFSD: Make nfsd4_setattr() wait before returning NFS4ERR_DELAY
NFSD: Make nfsd4_rename() wait before returning NFS4ERR_DELAY
NFSD: Make nfsd4_remove() wait before returning NFS4ERR_DELAY
SUNRPC: Parametrize how much of argsize should be zeroed
NFSD: Reduce amount of struct nfsd4_compoundargs that needs clearing
NFSD: Refactor common code out of dirlist helpers
NFSD: Use xdr_inline_decode() to decode NFSv3 symlinks
NFSD: Clean up WRITE arg decoders
NFSD: Clean up nfs4svc_encode_compoundres()
NFSD: Remove "inline" directives on op_rsize_bop helpers
NFSD: Remove unused nfsd4_compoundargs::cachetype field
NFSD: Pack struct nfsd4_compoundres
NFSD: Rename the fields in copy_stateid_t
NFSD: Cap rsize_bop result based on send buffer size
NFSD: Fix trace_nfsd_fh_verify_err() crasher
NFSD: Fix reads with a non-zero offset that don't end on a page boundary
NFSD: Finish converting the NFSv3 GETACL result encoder
NFSD: Pass the target nfsd_file to nfsd_commit()
NFSD: Revert "NFSD: NFSv4 CLOSE should release an nfsd_file immediately"
NFSD: Add an NFSD_FILE_GC flag to enable nfsd_file garbage collection
NFSD: Flesh out a documenting comment for filecache.c
NFSD: Clean up nfs4_preprocess_stateid_op() call sites
NFSD: Trace stateids returned via DELEGRETURN
NFSD: Trace delegation revocations
NFSD: Use const pointers as parameters to fh_ helpers
NFSD: Update file_hashtbl() helpers
NFSD: Clean up nfsd4_init_file()
NFSD: Add a nfsd4_file_hash_remove() helper
NFSD: Clean up find_or_add_file()
NFSD: Refactor find_file()
NFSD: Use rhashtable for managing nfs4_file objects
NFSD: Fix licensing header in filecache.c
NFSD: Add an nfsd_file_fsync tracepoint
trace: Relocate event helper files
NFSD: Use only RQ_DROPME to signal the need to drop a reply Revert "SUNRPC: Use RMW bitops in single-threaded hot paths"
NFSD: Use set_bit(RQ_DROPME)
NFSD: copy the whole verifier in nfsd_copy_write_verifier
NFSD: Protect against filesystem freezing
NFSD: Convert filecache to rhltable
NFSD: Add an nfsd4_encode_nfstime4() helper
Documentation: Add missing documentation for EXPORT_OP flags
Claus Hansen Ries (1):
net: ll_temac: platform_get_resource replaced by wrong function
Colin Ian King (3):
NFSD: Initialize pointer ni with NULL and not plain integer 0
nfsd: remove redundant assignment to variable len
NFSD: Remove redundant assignment to variable host_err
Conrad Kostecki (1):
ahci: asm1064: asm1166: don't limit reported ports
Dai Ngo (23):
fs/lock: documentation cleanup. Replace inode->i_lock with flc_lock.
NFSD: add courteous server support for thread with only delegation
NFSD: add support for share reservation conflict to courteous server
NFSD: move create/destroy of laundry_wq to init_nfsd and exit_nfsd fs/lock: add helper locks_owner_has_blockers to check for blockers fs/lock: add 2 callbacks to lock_manager_operations to resolve conflict
NFSD: add support for lock conflict to courteous server
NFSD: Show state of courtesy client in client info
NFSD: refactoring v4 specific code to a helper in nfs4state.c
NFSD: keep track of the number of v4 clients in the system
NFSD: limit the number of v4 clients to 1024 per 1GB of system memory
NFSD: keep track of the number of courtesy clients in the system
NFSD: add shrinker to reap courtesy clients on low memory condition
NFSD: refactoring courtesy_client_reaper to a generic low memory shrinker
NFSD: add support for sending CB_RECALL_ANY
NFSD: add delegation reaper to react to low memory condition
NFSD: add CB_RECALL_ANY tracepoints
NFSD: register/unregister of nfsd-client shrinker at nfsd startup/shutdown time
NFSD: replace delayed_work with work_struct for nfsd_client_shrinker
NFSD: enhance inter-server copy cleanup
NFSD: fix leaked reference count of nfsd4_ssc_umount_item
NFSD: fix problems with cleanup on errors in nfsd4_copy
NFSD: Fix problem of COMMIT and NFS4ERR_DELAY in infinite loop
Damian Muszynski (1):
crypto: qat - resolve race condition during AER recovery
Damien Le Moal (1):
block: Clear zone limits for a non-zoned stacked queue
Dan Carpenter (2):
nfsd: fix double fget() bug in __write_ports_addfd()
staging: vc04_services: fix information leak in create_component()
Daniel Sneddon (2):
x86/bhi: Define SPEC_CTRL_BHI_DIS_S
KVM: x86: Add BHI_NO
Daniel Vogelbacher (1):
USB: serial: ftdi_sio: add support for GMC Z216C Adapter IR-USB
David Disseldorp (1):
exportfs: use pr_debug for unreachable debug statements
David Hildenbrand (1):
mm/secretmem: fix GUP-fast succeeding on secretmem folios
David Laight (1):
minmax: add umin(a, b) and umax(a, b)
David Thompson (3):
mlxbf_gige: stop PHY during open() error paths
mlxbf_gige: call request_irq() after NAPI initialized
mlxbf_gige: stop interface during shutdown
Davide Caratti (1):
mptcp: don't account accept() of non-MPC client as fallback to TCP
Denis Kirjanov (1):
drivers: net: convert to boolean for the mac_managed_pm flag
Dominique Martinet (1):
mmc: core: Fix switch on gp3 partition
Duje Mihanović (1):
arm: dts: marvell: Fix maxium->maxim typo in brownstone dts
Duoming Zhou (1):
ALSA: sh: aica: reorder cleanup operations to avoid UAF bugs
Eric Dumazet (4):
tcp: properly terminate timers for kernel sockets
netfilter: validate user input for expected length net/sched: act_skbmod: prevent kernel-infoleak
erspan: make sure erspan_base_hdr is present in skb->head
Eric W. Biederman (2):
exit: Implement kthread_exit
exit: Rename module_put_and_exit to module_put_and_kthread_exit
Fedor Pchelkin (1):
mac802154: fix llsec key resources release in mac802154_llsec_key_del
Felix Fietkau (1):
wifi: mac80211: check/clear fast rx for non-4addr sta VLAN changes
Filipe Manana (1):
btrfs: fix off-by-one chunk length calculation at contains_pending_extent()
Gabor Juhos (4):
clk: qcom: gcc-ipq6018: fix terminating of frequency table arrays
clk: qcom: gcc-ipq8074: fix terminating of frequency table arrays
clk: qcom: mmcc-apq8084: fix terminating of frequency table arrays
clk: qcom: mmcc-msm8974: fix terminating of frequency table arrays
Gabriel Krisman Bertazi (27):
fsnotify: Don't insert unmergeable events in hashtable
fanotify: Fold event size calculation to its own function
fanotify: Split fsid check from other fid mode checks
inotify: Don't force FS_IN_IGNORED
fsnotify: Add helper to detect overflow_event
fsnotify: Add wrapper around fsnotify_add_event
fsnotify: Retrieve super block from the data field
fsnotify: Protect fsnotify_handle_inode_event from no-inode events
fsnotify: Pass group argument to free_event
fanotify: Support null inode event in fanotify_dfid_inode
fanotify: Allow file handle encoding for unhashed events
fanotify: Encode empty file handle when no inode is provided
fanotify: Require fid_mode for any non-fd event
fsnotify: Support FS_ERROR event type
fanotify: Reserve UAPI bits for FAN_FS_ERROR
fanotify: Pre-allocate pool of error events
fanotify: Support enqueueing of error events
fanotify: Support merging of error events
fanotify: Wrap object_fh inline space in a creator macro
fanotify: Add helpers to decide whether to report FID/DFID
fanotify: WARN_ON against too large file handles
fanotify: Report fid info for file related file system errors
fanotify: Emit generic error info for error event
fanotify: Allow users to request FAN_FS_ERROR events
ext4: Send notifications on error
docs: Document the FAN_FS_ERROR event
ext4: fix error code saved on super block during file system abort
Gaosheng Cui (3):
nfsd: remove nfsd4_prepare_cb_recall() declaration
fsnotify: remove unused declaration
fanotify: Remove obsoleted fanotify_event_has_path()
Geert Uytterhoeven (1):
net: ravb: Add R-Car Gen4 support
Geliang Tang (1):
selftests: mptcp: diag: return KSFT_FAIL not test_cnt
Gokul krishna Krishnakumar (1):
locking/rwsem: Disable preemption while trying for rwsem lock
Greg Kroah-Hartman (3):
cpufreq: brcmstb-avs-cpufreq: fix up "add check for cpufreq_cpu_get's return value"
x86: set SPECTRE_BHI_ON as default
Linux 5.15.154
Guenter Roeck (4):
parisc: Fix ip_fast_csum
parisc: Fix csum_ipv6_magic on 32-bit systems
parisc: Fix csum_ipv6_magic on 64-bit systems
parisc: Strip upper 32 bit of sum in csum_ipv6_magic for 64-bit builds
Gui-Dong Han (1):
media: xc4000: Fix atomicity violation in xc4000_get_frequency
Guilherme G. Piccoli (1):
scsi: core: Fix unremoved procfs host directory regression
H. Peter Anvin (Intel) (1):
x86/asm: Add _ASM_RIP() macro for x86-64 (%rip) suffix
Harald Freudenberger (1):
s390/zcrypt: fix reference counting on zcrypt card objects
Hariprasad Kelam (2):
Octeontx2-af: fix pause frame configuration in GMP mode
octeontx2-af: Fix issue with loading coalesced KPU profiles
Heiner Kallweit (2):
i2c: i801: Avoid potential double call to gpiod_remove_lookup_table
r8169: fix issue caused by buggy BIOS on certain boards with RTL8168d
Herve Codina (2):
driver core: Introduce device_link_wait_removal()
of: dynamic: Synchronize of_changeset_destroy() with the devlink removals
Hidenori Kobayashi (1):
media: staging: ipu3-imgu: Set fields before media_entity_pads_init()
Huang Ying (1):
swap: comments get_swap_device() with usage rule
Hugo Villeneuve (1):
serial: sc16is7xx: convert from _raw_ to _noinc_ regmap functions for FIFO
Hui Wang (1):
Bluetooth: hci_event: set the conn encrypted before conn establishes
I Gede Agastya Darma Laksana (1):
ALSA: hda/realtek: Update Panasonic CF-SZ6 quirk to support headset with microphone
Ingo Molnar (1):
Revert "x86/mm/ident_map: Use gbpages only where full GB page should be mapped."
Ivan Vecera (2):
i40e: Remove _t suffix from enum type names
i40e: Enforce software interrupt during busy-poll exit
J. Bruce Fields (4):
nfsd: update create verifier comment
nfsd4: remove obselete comment
nfsd: improve stateid access bitmask documentation
nfs: block notification on fs with its own ->lock
Jakob Koschel (1):
nfsd: fix using the correct variable for sizeof()
Jakub Kicinski (1):
selftests: reuseaddr_conflict: add missing new line at the end of the output
Jakub Sitnicki (1):
bpf, sockmap: Prevent lock inversion deadlock in map delete elem
Jameson Thies (1):
usb: typec: ucsi: Clean up UCSI_CABLE_PROP macros
Jan Kara (1):
fat: fix uninitialized field in nostale filehandles
Jani Nikula (4):
drm/panel: do not return negative error codes from drm_panel_get_modes() drm/exynos: do not return negative values from .get_modes() drm/imx/ipuv3: do not return negative values from .get_modes() drm/vc4: hdmi: do not return negative values from .get_modes()
Jann Horn (3):
HID: uhid: Use READ_ONCE()/WRITE_ONCE() for ->running
openrisc: Fix pagewalk usage in arch_dma_{clear, set}_uncached fs/pipe: Fix lockdep false-positive in watchqueue pipe_write()
Jarred White (1):
ACPI: CPPC: Use access_width over bit_width for system memory accesses
Jason A. Donenfeld (2):
wireguard: netlink: check for dangling peer via is_dead instead of empty list
wireguard: netlink: access device through ctx instead of peer
Jeff Layton (52):
nfsd: Add errno mapping for EREMOTEIO
nfsd: Retry once in nfsd_open on an -EOPENSTALE return
nfsd: silence extraneous printk on nfsd.ko insertion
NFSD: drop fh argument from alloc_init_deleg
NFSD: verify the opened dentry after setting a delegation
nfsd: clean up mounted_on_fileid handling
nfsd: only fill out return pointer on success in nfsd4_lookup_stateid
nfsd: fix comments about spinlock handling with delegations
nfsd: make nfsd4_run_cb a bool return function
nfsd: extra checks when freeing delegation stateids
nfsd: fix nfsd_file_unhash_and_dispose
nfsd: rework hashtable handling in nfsd_do_file_acquire
nfsd: ensure we always call fh_verify_error tracepoint
nfsd: fix net-namespace logic in __nfsd_file_cache_purge
nfsd: fix use-after-free in nfsd_file_do_acquire tracepoint
nfsd: put the export reference in nfsd4_verify_deleg_dentry
lockd: use locks_inode_context helper
nfsd: use locks_inode_context helper
nfsd: ignore requests to disable unsupported versions
nfsd: move nfserrno() to vfs.c
nfsd: allow disabling NFSv2 at compile time
nfsd: remove the pages_flushed statistic from filecache
nfsd: reorganize filecache.c
filelock: add a new locks_inode_context accessor function
nfsd: fix up the filecache laundrette scheduling
nfsd: return error if nfs4_setacl fails
lockd: set missing fl_flags field when retrieving args
lockd: ensure we use the correct file descriptor when unlocking
lockd: fix file selection in nlmsvc_cancel_blocked
nfsd: rework refcounting in filecache
nfsd: fix handling of cached open files in nfsd4_open codepath
nfsd: don't free files unconditionally in __nfsd_file_cache_purge
nfsd: don't destroy global nfs4_file table in per-net shutdown
nfsd: allow nfsd_file_get to sanely handle a NULL pointer
nfsd: clean up potential nfsd_file refcount leaks in COPY codepath
nfsd: don't hand out delegation on setuid files being opened for write
nfsd: fix courtesy client with deny mode handling in nfs4_upgrade_open
nfsd: don't fsync nfsd_files on last close
nfsd: don't replace page in rq_pages if it's a continuation of last page
nfsd: call op_release, even when op_func returns an error
nfsd: don't open-code clear_and_wake_up_bit
nfsd: NFSD_FILE_KEY_INODE only needs to find GC'ed entries
nfsd: simplify test_bit return in NFSD_FILE_KEY_FULL comparator
nfsd: don't kill nfsd_files because of lease break error
nfsd: add some comments to nfsd_file_do_acquire
nfsd: don't take/put an extra reference when putting a file
nfsd: update comment over __nfsd_file_cache_purge
nfsd: allow reaping files still under writeback
nfsd: simplify the delayed disposal list code
nfsd: make a copy of struct iattr before calling notify_change
nfsd: drop the nfsd_put helper
nfsd: hold a lighter-weight client reference over CB_RECALL_ANY
Jens Axboe (1):
io_uring: ensure '0' is returned on file registration success
Jerome Brunet (1):
nvmem: meson-efuse: fix function pointer type mismatch
Jesper Dangaard Brouer (1):
xen-netfront: Add missing skb_mark_for_recycle
Jiapeng Chong (1):
NFSD: Fix inconsistent indenting
Jim Mattson (2):
KVM: x86: Advertise CPUID.(EAX=7,ECX=2):EDX[5:0] to userspace
KVM: x86: Use a switch statement and macros in __feature_translate()
Jinpeng Cui (1):
NFSD: remove redundant variable status
Joe Damato (1):
i40e: Store the irq number in i40e_q_vector
Johan Hovold (1):
arm64: dts: qcom: sc7180-trogdor: mark bluetooth address as broken
Johannes Berg (1):
wifi: iwlwifi: mvm: rfi: fix potential response leaks
Johannes Thumshirn (1):
btrfs: zoned: use zone aware sb location for scrub
John David Anglin (1):
parisc: Avoid clobbering the C/B bits in the PSW with tophys and tovirt macros
John Garry (2):
dma-mapping: add dma_opt_mapping_size()
dma-iommu: add iommu_dma_opt_mapping_size()
John Ogness (1):
printk: Update @console_may_schedule in console_trylock_spinning()
John Sperbeck (1):
init: open /initrd.image with O_LARGEFILE
Josef Bacik (1):
nfs: fix UAF in direct writes
Josh Poimboeuf (1):
x86/bugs: Change commas to semicolons in 'spectre_v2' sysfs file
Josua Mayer (1):
hwmon: (amc6821) add of_match table
Kailang Yang (1):
ALSA: hda/realtek - Fix headset Mic no show at resume back for Lenovo ALC897 platform
Kees Cook (1):
NFSD: Avoid clashing function prototypes
Kim Phillips (2):
x86/cpu: Support AMD Automatic IBRS
x86/cpu: Enable STIBP on AMD if Automatic IBRS is enabled
Krishna Kurapati (1):
usb: gadget: ncm: Fix handling of zero block length packets
Kuniyuki Iwashima (1):
ipv6: Fix infinite recursion in fib6_dump_done().
Leo Ma (1):
drm/amd/display: Fix noise issue on HDMI AV mute
Lin Yujun (1):
Documentation/hw-vuln: Update spectre doc
Linus Torvalds (1):
x86/syscall: Don't force use of indirect calls for system calls
Mahmoud Adam (1):
net/rds: fix possible cp null dereference
Marek Szyprowski (1):
cpufreq: dt: always allocate zeroed cpumask
Marios Makassikis (1):
ksmbd: retrieve number of blocks using vfs_getattr in set_file_allocation_info
Martin Blumenstingl (1):
clocksource/drivers/arm_global_timer: Fix maximum prescaler value
Mathias Nyman (1):
usb: port: Don't try to peer unused USB ports based on location
Matthew Wilcox (Oracle) (2):
bounds: support non-power-of-two CONFIG_NR_CPUS
ubifs: Set page uptodate in the correct place
Maulik Shah (1):
PM: suspend: Set mem_sleep_current during kernel command line setup
Max Filippov (1):
exec: Fix NOMMU linux_binprm::exec in transfer_args_to_stack()
Maximilian Heyne (2):
ext4: fix corruption during on-line resize xen/events: close evtchn after mapping cleanup
Michael Ellerman (1):
powerpc/fsl: Fix mfpmr build errors with newer binutils
Michael Kelley (1):
Drivers: hv: vmbus: Calculate ring buffer size for more efficient use of memory
Mickaël Salaün (1):
landlock: Warn once if a Landlock action is requested while disabled
Mika Westerberg (3):
PCI/ASPM: Make Intel DG2 L1 acceptable latency unlimited PCI/DPC: Quirk PIO log size for certain Intel Root Ports PCI/DPC: Quirk PIO log size for Intel Ice Lake Root Ports
Mikko Rapeli (2):
mmc: core: Initialize mmc_blk_ioc_data
mmc: core: Avoid negative index with array access
Miklos Szeredi (2):
fuse: fix root lookup with nonzero generation
fuse: don't unhash root
Mikulas Patocka (1):
dm snapshot: fix lockup in dm_exception_table_exit
Minas Harutyunyan (5):
usb: dwc2: host: Fix remote wakeup from hibernation
usb: dwc2: host: Fix hibernation flow
usb: dwc2: host: Fix ISOC flow in DDMA mode
usb: dwc2: gadget: Fix exiting from clock gating
usb: dwc2: gadget: LPM flow fix
Muhammad Usama Anjum (1):
scsi: lpfc: Correct size for wqe for memset()
Nathan Chancellor (4):
kbuild: Move -Wenum-{compare-conditional,enum-conversion} into W=1
xfrm: Avoid clang fortify warning in copy_to_user_tmpl()
powerpc: xor_vmx: Add '-mhard-float' to CFLAGS
hexagon: vmlinux.lds.S: handle attributes section
NeilBrown (46):
NFSD: move filehandle format declarations out of "uapi".
NFSD: drop support for ancient filehandles
NFSD: simplify struct nfsfh
NFSD: handle errors better in write_ports_addfd()
SUNRPC: change svc_get() to return the svc.
SUNRPC/NFSD: clean up get/put functions.
SUNRPC: stop using ->sv_nrthreads as a refcount
nfsd: make nfsd_stats.th_cnt atomic_t
SUNRPC: use sv_lock to protect updates to sv_nrthreads.
NFSD: narrow nfsd_mutex protection in nfsd thread
NFSD: Make it possible to use svc_set_num_threads_sync
SUNRPC: discard svo_setup and rename svc_set_num_threads_sync()
NFSD: simplify locking for network notifier.
lockd: introduce nlmsvc_serv
lockd: simplify management of network status notifiers
lockd: move lockd_start_svc() call into lockd_create_svc()
lockd: move svc_exit_thread() into the thread
lockd: introduce lockd_put()
lockd: rename lockd_create_svc() to lockd_get()
SUNRPC: move the pool_map definitions (back) into svc.c
SUNRPC: always treat sv_nrpools==1 as "not pooled"
lockd: use svc_set_num_threads() for thread start and stop
NFS: switch the callback service back to non-pooled.
NFSD: simplify per-net file cache management
NFS: restore module put when manager exits.
NFSD: introduce struct nfsd_attrs
NFSD: set attributes when creating symlinks
NFSD: add security label to struct nfsd_attrs
NFSD: add posix ACLs to struct nfsd_attrs
NFSD: change nfsd_create()/nfsd_symlink() to unlock directory before returning.
NFSD: always drop directory lock in nfsd_unlink()
NFSD: only call fh_unlock() once in nfsd_link()
NFSD: reduce locking in nfsd_lookup()
NFSD: use explicit lock/unlock for directory ops
NFSD: use (un)lock_inode instead of fh_(un)lock for file operations
NFSD: discard fh_locked flag and fh_lock/fh_unlock
NFSD: fix regression with setting ACLs.
NFSD: drop fname and flen args from nfsd_create_locked()
lockd: drop inappropriate svc_get() from locked_get()
nfsd: Simplify code around svc_exit_thread() call in nfsd()
nfsd: separate nfsd_last_thread() from nfsd_put()
NFSD: fix possible oops when nfsd/pool_stats is closed.
nfsd: call nfsd_last_thread() before final nfsd_put()
nfsd: fix RELEASE_LOCKOWNER
nfsd: don't take fi_lock in nfsd_break_deleg_cb()
nfsd: don't call locks_release_private() twice concurrently
Nicolas Pitre (1):
vt: fix unicode buffer corruption when deleting characters
Nicolin Chen (1):
iommu/dma: Force swiotlb_max_mapping_size on an untrusted device
Nikita Kiryushin (1):
ACPICA: debugger: check status of acpi_evaluate_object() in acpi_db_walk_for_fields()
Niklas Cassel (1):
PCI: dwc: endpoint: Fix advertised resizable BAR size
Nirmoy Das (1):
drm/i915: Check before removing mm notifier
Oleksij Rempel (1):
net: usb: asix: suspend embedded PHY if external is used
Olga Kornievskaia (1):
NFSD enforce filehandle check for source file in COPY
Oliver Ford (1):
fs: inotify: Fix typo in inotify comment
Oliver Neukum (1):
usb: cdc-wdm: close race between read and workqueue
Oliver Upton (2):
KVM: arm64: Work out supported block level at compile time
KVM: arm64: Limit stage2_apply_range() batch size to largest block
Ondrej Valousek (1):
nfsd: Add support for the birth time attribute
Pablo Neira Ayuso (5):
netfilter: nf_tables: mark set as dead when unbinding anonymous set with timeout
netfilter: nf_tables: disallow anonymous set with timeout flag
netfilter: nf_tables: reject constant set with timeout
netfilter: nf_tables: reject new basechain after table flag update
netfilter: nf_tables: flush pending destroy work before exit_net release
Paul Barker (1):
net: ravb: Always process TX descriptor ring
Paul Menzel (1):
PCI/DPC: Quirk PIO log size for Intel Raptor Lake Root Ports
Pawan Gupta (13):
x86/bugs: Add asm helpers for executing VERW
x86/entry_64: Add VERW just before userspace transition x86/entry_32: Add VERW just before userspace transition x86/bugs: Use ALTERNATIVE() instead of mds_user_clear static key KVM/VMX: Move VERW closer to VMentry for MDS mitigation x86/mmio: Disable KVM mitigation when X86_FEATURE_CLEAR_CPU_BUF is set Documentation/hw-vuln: Add documentation for RFDS x86/rfds: Mitigate Register File Data Sampling (RFDS) KVM/x86: Export RFDS_NO and RFDS_CLEAR to guests
x86/bhi: Add support for clearing branch history at syscall entry x86/bhi: Enumerate Branch History Injection (BHI) bug x86/bhi: Add BHI mitigation knob
x86/bhi: Mitigate KVM by default
Peng Tao (1):
nfsd: map EBADF
Peter Collingbourne (2):
kasan: test: add memcpy test that avoids out-of-bounds write
serial: Lock console when calling into driver before registration
Peter Zijlstra (4):
arch: Introduce CONFIG_FUNCTION_ALIGNMENT x86/alternatives: Introduce int3_emulate_jcc() x86/alternatives: Teach text_poke_bp() to patch Jcc.d32 instructions x86/static_call: Add support for Jcc tail-calls
Petr Mladek (1):
printk/console: Split out code that enables default console
Philip Yang (1):
drm/amdgpu: amdgpu_ttm_gart_bind set gtt bound flag
Philipp Stanner (1):
pci_iounmap(): Fix MMIO mapping leak
Pierre-Louis Bossart (3):
ASoC: rt5682-sdw: fix locking sequence
ASoC: rt711-sdca: fix locking sequence
ASoC: rt711-sdw: fix locking sequence
Piotr Wejman (1):
net: stmmac: fix rx queue priority assignment
Prashanth K (1):
usb: xhci: Add error handling in xhci_map_urb_for_dma
Przemek Kitszel (1):
ixgbe: avoid sleeping allocation in ixgbe_ipsec_vf_add_sa()
Qiang Zhang (1):
memtest: use {READ,WRITE}_ONCE in memory scanning
Qingliang Li (1):
PM: sleep: wakeirq: fix wake irq warning in system suspend
Quinn Tran (6):
scsi: qla2xxx: Prevent command send on chip reset
scsi: qla2xxx: Fix N2N stuck connection
scsi: qla2xxx: Split FCE|EFT trace control
scsi: qla2xxx: NVME|FCP prefer flag not being honored
scsi: qla2xxx: Fix command flush on cable pull
scsi: qla2xxx: Delay I/O Abort on PCI error
Rafael J. Wysocki (1):
PCI/PM: Drain runtime-idle callbacks before driver removal
Randy Dunlap (2):
sparc64: NMI watchdog: fix return value of __setup handler
sparc: vDSO: fix return value of __setup handler
Richard Weinberger (1):
ubi: Check for too small LEB size in VTBL code
Rickard x Andersson (1):
tty: serial: imx: Fix broken RS485
Roberto Sassu (2):
smack: Set SMACK64TRANSMUTE only for dirs in smack_inode_setxattr()
smack: Handle SMACK64TRANSMUTE in smack_inode_setsecurity()
Rodrigo Siqueira (1):
drm/amd/display: Return the correct HDCP error code
Ryan Roberts (1):
mm: swap: fix race between free_swap_and_cache() and swapoff()
Ryosuke Yasuoka (1):
nfc: nci: Fix uninit-value in nci_dev_up and nci_ntf_packet
Ryusuke Konishi (2):
nilfs2: fix failure to detect DAT corruption in btree and direct mappings
nilfs2: prevent kernel bug at submit_bh_wbc()
Samuel Holland (1):
riscv: Fix spurious errors from __get/put_kernel_nofault
Samuel Thibault (1):
speakup: Fix 8bit characters from direct synth
Sandipan Das (1):
x86/cpufeatures: Add new word for scattered features
Saurav Kashyap (2):
scsi: qla2xxx: Fix double free of fcport
scsi: qla2xxx: Change debug message during driver unload
Sean Anderson (4):
soc: fsl: qbman: Always disable interrupts when taking cgr_lock
soc: fsl: qbman: Add helper for sanity checking cgr ops
soc: fsl: qbman: Add CGR update function
soc: fsl: qbman: Use raw spinlock for cgr_lock
Sean Christopherson (7):
KVM: x86: Update KVM-only leaf handling to allow for 100% KVM-only leafs
KVM: Always flush async #PF workqueue when vCPU is being destroyed
KVM: SVM: Flush pages under kvm->lock to fix UAF in svm_register_enc_region() KVM/VMX: Use BT+JNC, i.e. EFLAGS.CF to select VMRESUME vs. VMLAUNCH x86/cpufeatures: Add CPUID_LNX_5 to track recently added Linux-defined word
KVM: x86: Bail to userspace if emulation of atomic user access faults
KVM: x86: Mark target gfn of emulated atomic instruction as dirty
SeongJae Park (1):
selftests/mqueue: Set timeout to 180 seconds
Sherry Sun (1):
tty: serial: fsl_lpuart: avoid idle preamble pending if CTS is enabled
Stanislaw Gruszka (1):
PCI/AER: Block runtime suspend when handling errors
Stefan O'Rear (1):
riscv: process: Fix kernel gp leakage
Stephen Lee (1):
ASoC: ops: Fix wraparound for mask in snd_soc_get_volsw
Steven Rostedt (Google) (8):
ring-buffer: Fix waking up ring buffer readers
ring-buffer: Do not set shortest_full when full target is hit
ring-buffer: Fix resetting of shortest_full
ring-buffer: Fix full_waiters_pending in poll
ring-buffer: Use wait_event_interruptible() in ring_buffer_wait()
NFSD: Fix nfsd_clid_class use of __string_len() macro
net: hns3: tracing: fix hclgevf trace event strings
tracing: Use .flush() call to wake up readers
Su Hui (1):
octeontx2-pf: check negative error code in otx2_open()
Sumanth Korikkar (1):
s390/entry: align system call table on 8 bytes
Sumit Garg (1):
tee: optee: Fix kernel panic caused by incorrect error handling
Svyatoslav Pankratov (1):
crypto: qat - fix double free during reset
Tavian Barnes (1):
nfsd: Fix creation time serialization order
Tetsuo Handa (1):
NFSD: unregister shrinker when nfsd_init_net() fails
Thomas Gleixner (4):
timers: Update kernel-doc for various functions
timers: Use del_timer_sync() even on UP
timers: Rename del_timer_sync() to timer_delete_sync() x86/asm: Differentiate between code and function alignment
Tim Schumacher (1):
efivarfs: Request at most 512 bytes for variable names
Tom Chung (1):
drm/amd/display: Preserve original aspect ratio in create stream
Toru Katagiri (1):
USB: serial: cp210x: add pid/vid for TDK NC0110013M and MM0110113M
Trond Myklebust (4):
nfsd: Add a tracepoint for errors in nfsd4_clone_file_range()
nfsd: Fix a write performance regression
nfsd: Clean up nfsd_file_put()
nfsd: Fix a regression in nfsd_setattr()
Uwe Kleine-König (1):
PCI: Drop pci_device_remove() test of pci_dev->driver
Vasily Averin (2):
nfsd4: add refcount for nfsd4_blocked_lock
fanotify: fix incorrect fmode_t casts
Ville Syrjälä (1):
drm/amdgpu: Use drm_mode_copy()
Vlastimil Babka (1):
mm, vmscan: prevent infinite loop for costly GFP_NOIO | __GFP_RETRY_MAYFAIL allocations
Wayne Chang (2):
phy: tegra: xusb: Add API to retrieve the port number of phy
usb: gadget: tegra-xudc: Fix USB3 PHY retrieval logic
Wei Fang (1):
net: fec: Set mac_managed_pm during probe
Weitao Wang (1):
USB: UAS: return ENODEV when submit urbs fail with device not attached
Will Deacon (1):
swiotlb: Fix alignment checks when both allocation and DMA masks are present
Wolfram Sang (3):
mmc: tmio: avoid concurrent runs of mmc_request_done()
NFSD: move from strlcpy with unused retval to strscpy
lockd: move from strlcpy with unused retval to strscpy
Xin Gao (1):
fsnotify: Fix comment typo
Xiu Jianfeng (1):
NFSD: Use struct_size() helper in alloc_session()
Yang Jihong (1):
perf/core: Fix reentry problem in perf_output_read_group()
Ye Zhang (1):
thermal: devfreq_cooling: Fix perf state when calculate dfc res_util
Yu Kuai (1):
dm-raid: fix lockdep waring in "pers->hot_add_disk"
Zack Rusin (1):
drm/vmwgfx: Fix possible null pointer derefence with invalid contexts
Zhang Jiaming (1):
NFSD: Fix space and spelling mistake
Zhang Xiaoxu (2):
nfsd: Unregister the cld notifier when laundry_wq create failed
nfsd: Fix null-ptr-deref in nfsd_fill_super()
Zhang Yi (1):
ubi: correct the calculation of fastmap size
Zheng Wang (1):
wifi: brcmfmac: Fix use-after-free bug in brcmf_cfg80211_detach
Zi Yan (1):
mm/migrate: set swap entry values of THP tail pages properly.
Ziyang Xuan (1):
netfilter: nf_tables: Fix potential data-race in __nft_flowtable_type_get()
min15.li (1):
nvme: fix miss command type check
yuan linyu (1):
usb: udc: remove warning when queue disabled ep
Greg Kroah-Hartman
maintainerDocumentation/ABI/testing/sysfs-devices-system-cpu +1 -0
@@ -517,6 +517,7 @@ What: /sys/devices/system/cpu/vulnerabilities /sys/devices/system/cpu/vulnerabilities/mds /sys/devices/system/cpu/vulnerabilities/meltdown /sys/devices/system/cpu/vulnerabilities/mmio_stale_data + /sys/devices/system/cpu/vulnerabilities/reg_file_data_sampling /sys/devices/system/cpu/vulnerabilities/retbleed /sys/devices/system/cpu/vulnerabilities/spec_store_bypass /sys/devices/system/cpu/vulnerabilities/spectre_v1
Documentation/admin-guide/filesystem-monitoring.rst new file +74 -0
74 lines not on this page · raw message
Documentation/admin-guide/hw-vuln/index.rst +1 -0
@@ -21,3 +21,4 @@ are configurable at compile, boot or run time. cross-thread-rsb.rst gather_data_sampling.rst srso + reg-file-data-sampling
Documentation/admin-guide/hw-vuln/reg-file-data-sampling.rst new file +104 -0
104 lines not on this page · raw message
Documentation/admin-guide/hw-vuln/spectre.rst +54 -12
97 lines not on this page · raw message
Documentation/admin-guide/index.rst +1 -0
@@ -82,6 +82,7 @@ configure specific aspects of kernel behavior to your liking. edid efi-stub ext4 + filesystem-monitoring nfs/index gpio/index highuid
Documentation/admin-guide/kernel-parameters.txt +36 -3
@@ -1037,6 +1037,26 @@ The filter can be disabled or changed to another driver later using sysfs. + reg_file_data_sampling= + [X86] Controls mitigation for Register File Data + Sampling (RFDS) vulnerability. RFDS is a CPU + vulnerability which may allow userspace to infer + kernel data values previously stored in floating point + registers, vector registers, or integer registers. + RFDS only affects Intel Atom processors. + + on: Turns ON the mitigation. + off: Turns OFF the mitigation. + + This parameter overrides the compile time default set + by CONFIG_MITIGATION_RFDS. Mitigation cannot be + disabled when other VERW based mitigations (like MDS) + are enabled. In order to disable RFDS mitigation all + VERW based mitigations need to be disabled. + + For details see: + Documentation/admin-guide/hw-vuln/reg-file-data-sampling.rst + driver_async_probe= [KNL] List of driver names to be probed asynchronously. Format: <driver_name1>,<driver_name2>...
@@ -3070,6 +3090,7 @@ nopti [X86,PPC] nospectre_v1 [X86,PPC] nospectre_v2 [X86,PPC,S390,ARM64] + reg_file_data_sampling=off [X86] retbleed=off [X86] spec_store_bypass_disable=off [X86,PPC] spectre_v2_user=off [X86]
@@ -5383,6 +5404,18 @@ sonypi.*= [HW] Sony Programmable I/O Control Device driver See Documentation/admin-guide/laptops/sonypi.rst + spectre_bhi= [X86] Control mitigation of Branch History Injection + (BHI) vulnerability. Syscalls are hardened against BHI + reglardless of this setting. This setting affects the + deployment of the HW BHI control and the SW BHB + clearing sequence. + + on - unconditionally enable. + off - unconditionally disable. + auto - (default) enable hardware mitigation + (BHI_DIS_S) if available, otherwise enable + alternate mitigation in KVM. + spectre_v2= [X86] Control mitigation of Spectre variant 2 (indirect branch speculation) vulnerability. The default operation protects the kernel from
@@ -5413,9 +5446,9 @@ retpoline,generic - Retpolines retpoline,lfence - LFENCE; indirect branch retpoline,amd - alias for retpoline,lfence - eibrs - enhanced IBRS - eibrs,retpoline - enhanced IBRS + Retpolines - eibrs,lfence - enhanced IBRS + LFENCE + eibrs - Enhanced/Auto IBRS + eibrs,retpoline - Enhanced/Auto IBRS + Retpolines + eibrs,lfence - Enhanced/Auto IBRS + LFENCE ibrs - use IBRS to protect kernel Not specifying this option is equivalent to
Documentation/core-api/dma-api.rst +14 -0
@@ -204,6 +204,20 @@ Returns the maximum size of a mapping for the device. The size parameter of the mapping functions like dma_map_single(), dma_map_page() and others should not be larger than the returned value. +:: + + size_t + dma_opt_mapping_size(struct device *dev); + +Returns the maximum optimal size of a mapping for the device. + +Mapping larger buffers may take much longer in certain scenarios. In +addition, for high-rate short-lived streaming mappings, the upfront time +spent on the mapping may account for an appreciable part of the total +request lifetime. As such, if splitting larger requests incurs no +significant performance penalty, then device drivers are advised to +limit total DMA streaming mappings length to the returned value. + :: bool
Documentation/filesystems/locking.rst +7 -3
@@ -442,17 +442,21 @@ prototypes:: void (*lm_break)(struct file_lock *); /* break_lease callback */ int (*lm_change)(struct file_lock **, int); bool (*lm_breaker_owns_lease)(struct file_lock *); + bool (*lm_lock_expirable)(struct file_lock *); + void (*lm_expire_lock)(void); locking rules: ====================== ============= ================= ========= -ops inode->i_lock blocked_lock_lock may block +ops flc_lock blocked_lock_lock may block ====================== ============= ================= ========= -lm_notify: yes yes no +lm_notify: no yes no lm_grant: no no no lm_break: yes no no lm_change yes no no -lm_breaker_owns_lease: no no no +lm_breaker_owns_lease: yes no no +lm_lock_expirable yes no no +lm_expire_lock no no yes ====================== ============= ================= ========= buffer_head
Documentation/filesystems/nfs/exporting.rst +33 -0
@@ -215,3 +215,36 @@ following flags are defined: This flag causes nfsd to close any open files for this inode _before_ calling into the vfs to do an unlink or a rename that would replace an existing file. + + EXPORT_OP_REMOTE_FS - Backing storage for this filesystem is remote + PF_LOCAL_THROTTLE exists for loopback NFSD, where a thread needs to + write to one bdi (the final bdi) in order to free up writes queued + to another bdi (the client bdi). Such threads get a private balance + of dirty pages so that dirty pages for the client bdi do not imact + the daemon writing to the final bdi. For filesystems whose durable + storage is not local (such as exported NFS filesystems), this + constraint has negative consequences. EXPORT_OP_REMOTE_FS enables + an export to disable writeback throttling. + + EXPORT_OP_NOATOMIC_ATTR - Filesystem does not update attributes atomically + EXPORT_OP_NOATOMIC_ATTR indicates that the exported filesystem + cannot provide the semantics required by the "atomic" boolean in + NFSv4's change_info4. This boolean indicates to a client whether the + returned before and after change attributes were obtained atomically + with the respect to the requested metadata operation (UNLINK, + OPEN/CREATE, MKDIR, etc). + + EXPORT_OP_FLUSH_ON_CLOSE - Filesystem flushes file data on close(2) + On most filesystems, inodes can remain under writeback after the + file is closed. NFSD relies on client activity or local flusher + threads to handle writeback. Certain filesystems, such as NFS, flush + all of an inode's dirty data on last close. Exports that behave this + way should set EXPORT_OP_FLUSH_ON_CLOSE so that NFSD knows to skip + waiting for writeback when closing such files. + + EXPORT_OP_ASYNC_LOCK - Indicates a capable filesystem to do async lock + requests from lockd. Only set EXPORT_OP_ASYNC_LOCK if the filesystem has + it's own ->lock() functionality as core posix_lock_file() implementation + has no async lock request handling yet. For more information about how to + indicate an async lock request from a ->lock() file_operations struct, see + fs/locks.c and comment for the function vfs_lock_file().
Documentation/x86/mds.rst +27 -11
@@ -95,6 +95,9 @@ The kernel provides a function to invoke the buffer clearing: mds_clear_cpu_buffers() +Also macro CLEAR_CPU_BUFFERS can be used in ASM late in exit-to-user path. +Other than CFLAGS.ZF, this macro doesn't clobber any registers. + The mitigation is invoked on kernel/userspace, hypervisor/guest and C-state (idle) transitions.
@@ -138,17 +141,30 @@ Mitigation points When transitioning from kernel to user space the CPU buffers are flushed on affected CPUs when the mitigation is not disabled on the kernel - command line. The migitation is enabled through the static key - mds_user_clear. - - The mitigation is invoked in prepare_exit_to_usermode() which covers - all but one of the kernel to user space transitions. The exception - is when we return from a Non Maskable Interrupt (NMI), which is - handled directly in do_nmi(). - - (The reason that NMI is special is that prepare_exit_to_usermode() can - enable IRQs. In NMI context, NMIs are blocked, and we don't want to - enable IRQs with NMIs blocked.) + command line. The mitigation is enabled through the feature flag + X86_FEATURE_CLEAR_CPU_BUF. + + The mitigation is invoked just before transitioning to userspace after + user registers are restored. This is done to minimize the window in + which kernel data could be accessed after VERW e.g. via an NMI after + VERW. + + **Corner case not handled** + Interrupts returning to kernel don't clear CPUs buffers since the + exit-to-user path is expected to do that anyways. But, there could be + a case when an NMI is generated in kernel after the exit-to-user path + has cleared the buffers. This case is not handled and NMI returning to + kernel don't clear CPU buffers because: + + 1. It is rare to get an NMI after VERW, but before returning to userspace. + 2. For an unprivileged user, there is no known way to make that NMI + less rare or target it. + 3. It would take a large number of these precisely-timed NMIs to mount + an actual attack. There's presumably not enough bandwidth. + 4. The NMI in question occurs after a VERW, i.e. when user state is + restored and most interesting data is already scrubbed. Whats left + is only the data that NMI touches, and that may or may not be of + any interest. 2. C-State transition
MAINTAINERS +7 -0
@@ -9200,6 +9200,7 @@ F: drivers/infiniband/ F: include/rdma/ F: include/trace/events/ib_mad.h F: include/trace/events/ib_umad.h +F: include/trace/misc/rdma.h F: include/uapi/linux/if_infiniband.h F: include/uapi/rdma/ F: samples/bpf/ibumad_kern.c
@@ -10181,6 +10182,12 @@ F: fs/nfs_common/ F: fs/nfsd/ F: include/linux/lockd/ F: include/linux/sunrpc/ +F: include/trace/events/rpcgss.h +F: include/trace/events/rpcrdma.h +F: include/trace/events/sunrpc.h +F: include/trace/misc/fs.h +F: include/trace/misc/nfs.h +F: include/trace/misc/sunrpc.h F: include/uapi/linux/nfsd/ F: include/uapi/linux/sunrpc/ F: net/sunrpc/
Makefile +3 -3
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 15 -SUBLEVEL = 153 +SUBLEVEL = 154 EXTRAVERSION = NAME = Trick or Treat
@@ -1000,8 +1000,8 @@ KBUILD_CFLAGS += $(CC_FLAGS_CFI) export CC_FLAGS_CFI endif -ifdef CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_64B -KBUILD_CFLAGS += -falign-functions=64 +ifneq ($(CONFIG_FUNCTION_ALIGNMENT),0) +KBUILD_CFLAGS += -falign-functions=$(CONFIG_FUNCTION_ALIGNMENT) endif # arch Makefile may override CC so keep this after arch Makefile is included
arch/Kconfig +24 -0
@@ -1303,4 +1303,28 @@ source "kernel/gcov/Kconfig" source "scripts/gcc-plugins/Kconfig" +config FUNCTION_ALIGNMENT_4B + bool + +config FUNCTION_ALIGNMENT_8B + bool + +config FUNCTION_ALIGNMENT_16B + bool + +config FUNCTION_ALIGNMENT_32B + bool + +config FUNCTION_ALIGNMENT_64B + bool + +config FUNCTION_ALIGNMENT + int + default 64 if FUNCTION_ALIGNMENT_64B + default 32 if FUNCTION_ALIGNMENT_32B + default 16 if FUNCTION_ALIGNMENT_16B + default 8 if FUNCTION_ALIGNMENT_8B + default 4 if FUNCTION_ALIGNMENT_4B + default 0 + endmenu
arch/arm/boot/dts/mmp2-brownstone.dts +1 -1
@@ -28,7 +28,7 @@ &uart3 { &twsi1 { status = "okay"; pmic: max8925@3c { - compatible = "maxium,max8925"; + compatible = "maxim,max8925"; reg = <0x3c>; interrupts = <1>; interrupt-parent = <&intcmux4>;
arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi +2 -0
@@ -911,6 +911,8 @@ bluetooth: bluetooth { vddrf-supply = <&pp1300_l2c>; vddch0-supply = <&pp3300_l10c>; max-speed = <3200000>; + + qcom,local-bd-address-broken; }; };
arch/arm64/include/asm/kvm_pgtable.h +13 -5
@@ -13,6 +13,18 @@#define KVM_PGTABLE_MAX_LEVELS 4U +/* +* The largest supported block sizes for KVM (no 52-bit PA support): +* - 4K (level 1): 1GB +* - 16K (level 2): 32MB +* - 64K (level 2): 512MB +*/ +#ifdef CONFIG_ARM64_4K_PAGES +#define KVM_PGTABLE_MIN_BLOCK_LEVEL 1U +#else +#define KVM_PGTABLE_MIN_BLOCK_LEVEL 2U +#endif +static inline u64 kvm_get_parange (u64 mmfr0) { u64 parange = cpuid_feature_extract_unsigned_field(mmfr0,
@@ -58,11 +70,7 @@ static inline u64 kvm_granule_size(u32 level)static inline bool kvm_level_supports_block_mapping (u32 level) { -/* -* Reject invalid block mappings and don't bother with 4TB mappings for -* 52-bit PAs. -*/ -return !(level ==0 || (PAGE_SIZE !=SZ_4K && level ==1 )); +return level >=KVM_PGTABLE_MIN_BLOCK_LEVEL ; }/**
arch/arm64/include/asm/stage2_pgtable.h +0 -20
@@ -10,13 +10,6 @@#include <linux/pgtable.h> -/* -* PGDIR_SHIFT determines the size a top-level page table entry can map -* and depends on the number of levels in the page table. Compute the -* PGDIR_SHIFT for a given number of levels. -*/ -#define pt_levels_pgdir_shift (lvls) ARM64_HW_PGTABLE_LEVEL_SHIFT(4 - (lvls)) -/* * The hardware supports concatenation of up to 16 tables at stage2 entry * level and we use the feature whenever possible, which means we resolve 4
@@ -30,11 +23,6 @@#define stage2_pgtable_levels (ipa) ARM64_HW_PGTABLE_LEVELS((ipa) - 4)#define kvm_stage2_levels (kvm) VTCR_EL2_LVLS(kvm->arch.vtcr) -/* stage2_pgdir_shift() is the size mapped by top-level stage2 entry for the VM */ -#define stage2_pgdir_shift (kvm) pt_levels_pgdir_shift(kvm_stage2_levels(kvm)) -#define stage2_pgdir_size (kvm) (1ULL << stage2_pgdir_shift(kvm)) -#define stage2_pgdir_mask (kvm) ~(stage2_pgdir_size(kvm) - 1) -/* * kvm_mmmu_cache_min_pages() is the number of pages required to install * a stage-2 translation. We pre-allocate the entry level page table at
@@ -42,12 +30,4 @@*/ #define kvm_mmu_cache_min_pages (kvm) (kvm_stage2_levels(kvm) - 1) -static inline phys_addr_t -stage2_pgd_addr_end (struct kvm *kvm,phys_addr_t addr,phys_addr_t end) -{ -phys_addr_t boundary = (addr +stage2_pgdir_size (kvm)) &stage2_pgdir_mask (kvm); - -return (boundary -1 < end -1 ) ? boundary : end; -} -#endif /* __ARM64_S2_PGTABLE_H_ */
arch/arm64/kvm/mmu.c +8 -1
@@ -31,6 +31,13 @@ static phys_addr_t hyp_idmap_vector;static unsigned long io_map_base; +static phys_addr_t stage2_range_addr_end (phys_addr_t addr,phys_addr_t end) +{ +phys_addr_t size =kvm_granule_size (KVM_PGTABLE_MIN_BLOCK_LEVEL ); +phys_addr_t boundary =ALIGN_DOWN (addr + size, size); + +return (boundary -1 < end -1 ) ? boundary : end; +}/* * Release kvm_mmu_lock periodically if the memory region is large. Otherwise,
@@ -52,7 +59,7 @@ static int stage2_apply_range(struct kvm *kvm, phys_addr_t addr,if (!pgt)return -EINVAL ; - next =stage2_pgd_addr_end (kvm, addr, end); + next =stage2_range_addr_end (addr, end); ret =fn (pgt, addr, next - addr);if (ret)break ;
arch/hexagon/kernel/vmlinux.lds.S +1 -0
@@ -64,6 +64,7 @@ SECTIONS STABS_DEBUG DWARF_DEBUG ELF_DETAILS + .hexagon.attributes 0 : { *(.hexagon.attributes) } DISCARDS }
arch/ia64/Kconfig +1 -0
@@ -63,6 +63,7 @@ config IA64 select PCI_MSI_ARCH_FALLBACKS if PCI_MSI select SET_FS select ZONE_DMA32 + select FUNCTION_ALIGNMENT_32B default y help The Itanium Processor Family is Intel's 64-bit successor to
arch/ia64/Makefile +1 -1
@@ -23,7 +23,7 @@ KBUILD_AFLAGS_KERNEL := -mconstant-gp EXTRA := cflags-y := -pipe $(EXTRA) -ffixed-r13 -mfixed-range=f12-f15,f32-f127 \ - -falign-functions=32 -frename-registers -fno-optimize-sibling-calls + -frename-registers -fno-optimize-sibling-calls KBUILD_CFLAGS_KERNEL := -mconstant-gp GAS_STATUS = $(shell $(srctree)/arch/ia64/scripts/check-gas "$(CC)" "$(OBJDUMP)")
arch/openrisc/kernel/dma.c +8 -8
@@ -74,10 +74,10 @@ void *arch_dma_set_uncached(void *cpu_addr, size_t size)* We need to iterate through the pages, clearing the dcache for * them and setting the cache-inhibit bit. */ -mmap_read_lock (&init_mm); - error =walk_page_range (&init_mm, va, va + size, &set_nocache_walk_ops, -NULL ); -mmap_read_unlock (&init_mm); +mmap_write_lock (&init_mm); + error =walk_page_range_novma (&init_mm, va, va + size, + &set_nocache_walk_ops,NULL ,NULL ); +mmap_write_unlock (&init_mm);if (error)return ERR_PTR (error);
@@ -88,11 +88,11 @@ void arch_dma_clear_uncached(void *cpu_addr, size_t size) {unsigned long va = (unsigned long )cpu_addr; -mmap_read_lock (&init_mm); +mmap_write_lock (&init_mm);/* walk_page_range shouldn't be able to fail here */ -WARN_ON (walk_page_range (&init_mm, va, va + size, - &clear_nocache_walk_ops,NULL )); -mmap_read_unlock (&init_mm); +WARN_ON (walk_page_range_novma (&init_mm, va, va + size, + &clear_nocache_walk_ops,NULL ,NULL )); +mmap_write_unlock (&init_mm); } void arch_sync_dma_for_device(phys_addr_t addr, size_t size,
arch/parisc/include/asm/assembly.h +10 -8
@@ -79,26 +79,28 @@* version takes two arguments: a src and destination register. * However, the source and destination registers can not be * the same register. +* +* We use add,l to avoid clobbering the C/B bits in the PSW. */ .macro tophys grvirt, grphys - ldil L%(__PAGE_OFFSET), \grphys - sub \grvirt, \grphys, \grphys + ldil L%(-__PAGE_OFFSET), \grphys + addl \grvirt, \grphys, \grphys .endm - + .macro tovirt grphys, grvirt ldil L%(__PAGE_OFFSET), \grvirt - add \grphys, \grvirt, \grvirt + addl \grphys, \grvirt, \grvirt .endm .macro tophys_r1 gr - ldil L%(__PAGE_OFFSET), %r1 - sub \gr, %r1, \gr + ldil L%(-__PAGE_OFFSET), %r1 + addl \gr, %r1, \gr .endm - + .macro tovirt_r1 gr ldil L%(__PAGE_OFFSET), %r1 - add \gr, %r1, \gr + addl \gr, %r1, \gr .endm .macro delay value
arch/parisc/include/asm/checksum.h +6 -4
@@ -40,7 +40,7 @@ static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl)" addc %0, %5, %0\n" " addc %0, %3, %0\n" "1: ldws,ma 4(%1), %3\n" -" addib,< 0, %2, 1b\n" +" addib,> -1, %2, 1b\n" " addc %0, %3, %0\n" "\n" " extru %0, 31, 16, %4\n"
@@ -126,6 +126,7 @@ static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr,** Try to keep 4 registers with "live" values ahead of the ALU. */ +" depdi 0, 31, 32, %0\n" /* clear upper half of incoming checksum */ " ldd,ma 8(%1), %4\n" /* get 1st saddr word */ " ldd,ma 8(%2), %5\n" /* get 1st daddr word */ " add %4, %0, %0\n"
@@ -137,8 +138,8 @@ static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr," add,dc %3, %0, %0\n" /* fold in proto+len | carry bit */ " extrd,u %0, 31, 32, %4\n" /* copy upper half down */ " depdi 0, 31, 32, %0\n" /* clear upper half */ -" add %4, %0, %0\n" /* fold into 32-bits */ -" addc 0, %0, %0\n" /* add carry */ +" add,dc %4, %0, %0\n" /* fold into 32-bits, plus carry */ +" addc 0, %0, %0\n" /* add final carry */ #else
@@ -163,7 +164,8 @@ static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr," ldw,ma 4(%2), %7\n" /* 4th daddr */ " addc %6, %0, %0\n" " addc %7, %0, %0\n" -" addc %3, %0, %0\n" /* fold in proto+len, catch carry */ +" addc %3, %0, %0\n" /* fold in proto+len */ +" addc 0, %0, %0\n" /* add carry */ #endif : "=r" (sum), "=r" (saddr), "=r" (daddr), "=r" (len),
arch/powerpc/include/asm/reg_fsl_emb.h +9 -2
@@ -12,9 +12,16 @@#ifndef __ASSEMBLY__/* Performance Monitor Registers */ #define mfpmr (rn) ({unsigned int rval; \ - asm volatile("mfpmr %0," __stringify(rn) \ + asm volatile(".machine push; " \ + ".machine e300; " \ + "mfpmr %0," __stringify(rn) ";" \ + ".machine pop; " \ : "=r" (rval)); rval;}) -#define mtpmr (rn, v) asm volatile("mtpmr " __stringify(rn) ",%0" : : "r" (v)) +#define mtpmr (rn, v) asm volatile(".machine push; " \ + ".machine e300; " \ + "mtpmr " __stringify(rn) ",%0; " \ + ".machine pop; " \ + : : "r" (v))#endif /* __ASSEMBLY__ */ /* Freescale Book E Performance Monitor APU Registers */
arch/powerpc/lib/Makefile +1 -1
@@ -67,6 +67,6 @@ obj-$(CONFIG_PPC_LIB_RHEAP) += rheap.o obj-$(CONFIG_FTR_FIXUP_SELFTEST) += feature-fixups-test.o obj-$(CONFIG_ALTIVEC) += xor_vmx.o xor_vmx_glue.o -CFLAGS_xor_vmx.o += -maltivec $(call cc-option,-mabi=altivec) +CFLAGS_xor_vmx.o += -mhard-float -maltivec $(call cc-option,-mabi=altivec) obj-$(CONFIG_PPC64) += $(obj64-y)
arch/riscv/include/asm/uaccess.h +2 -2
@@ -467,7 +467,7 @@ unsigned long __must_check clear_user(void __user *to, unsigned long n)#define __get_kernel_nofault (dst, src, type, err_label) \ do { \ - long __kr_err; \ + long __kr_err = 0; \ \ __get_user_nocheck(*((type *)(dst)), (type *)(src), __kr_err); \ if (unlikely(__kr_err)) \
@@ -476,7 +476,7 @@ do { \#define __put_kernel_nofault (dst, src, type, err_label) \ do { \ - long __kr_err; \ + long __kr_err = 0; \ \ __put_user_nocheck(*((type *)(src)), (type *)(dst), __kr_err); \ if (unlikely(__kr_err)) \
arch/riscv/kernel/process.c +0 -3
@@ -24,8 +24,6 @@#include <asm/switch_to.h> #include <asm/thread_info.h> -registerunsigned long gp_in_global __asm__("gp" ); -#if defined(CONFIG_STACKPROTECTOR ) && !defined(CONFIG_STACKPROTECTOR_PER_TASK )#include <linux/stackprotector.h> unsigned long __stack_chk_guard__read_mostly ;
@@ -130,7 +128,6 @@ int copy_thread(unsigned long clone_flags, unsigned long usp, unsigned long arg,if (unlikely (p->flags & (PF_KTHREAD |PF_IO_WORKER ))) {/* Kernel thread */ memset (childregs,0 ,sizeof (struct pt_regs )); - childregs->gp = gp_in_global;/* Supervisor/Machine, irqs on: */ childregs->status =SR_PP |SR_PIE ;
arch/s390/kernel/entry.S +1 -0
@@ -685,6 +685,7 @@ ENDPROC(stack_overflow) .Lthis_cpu: .short 0 .Lstosm_tmp: .byte 0 .section .rodata, "a" + .balign 8 #define SYSCALL(esame,emu) .quad __s390x_ ## esame .globl sys_call_table sys_call_table:
arch/sparc/kernel/nmi.c +1 -1
@@ -274,7 +274,7 @@ static int __init setup_nmi_watchdog(char *str)if (!strncmp (str,"panic" ,5 )) panic_on_timeout =1 ; -return 0 ; +return 1 ; }__setup ("nmi_watchdog=" , setup_nmi_watchdog);
arch/sparc/vdso/vma.c +3 -4
@@ -449,9 +449,8 @@ static __init int vdso_setup(char *s)unsigned long val; err =kstrtoul (s,10 , &val); -if (err) -return err; - vdso_enabled = val; -return 0 ; +if (!err) + vdso_enabled = val; +return 1 ; }__setup ("vdso=" , vdso_setup);
arch/x86/Kconfig +38 -0
@@ -267,6 +267,8 @@ config X86 select HAVE_ARCH_KCSAN if X86_64 select X86_FEATURE_NAMES if PROC_FS select PROC_PID_ARCH_STATUS if PROC_FS + select FUNCTION_ALIGNMENT_16B if X86_64 || X86_ALIGNMENT_16 + select FUNCTION_ALIGNMENT_4B imply IMA_SECURE_AND_OR_TRUSTED_BOOT if EFI config INSTRUCTION_DECODER
@@ -2492,6 +2494,42 @@ config GDS_FORCE_MITIGATION If in doubt, say N. +config MITIGATION_RFDS + bool "RFDS Mitigation" + depends on CPU_SUP_INTEL + default y + help + Enable mitigation for Register File Data Sampling (RFDS) by default. + RFDS is a hardware vulnerability which affects Intel Atom CPUs. It + allows unprivileged speculative access to stale data previously + stored in floating point, vector and integer registers. + See also <file:Documentation/admin-guide/hw-vuln/reg-file-data-sampling.rst> + +choice + prompt "Clear branch history" + depends on CPU_SUP_INTEL + default SPECTRE_BHI_ON + help + Enable BHI mitigations. BHI attacks are a form of Spectre V2 attacks + where the branch history buffer is poisoned to speculatively steer + indirect branches. + See <file:Documentation/admin-guide/hw-vuln/spectre.rst> + +config SPECTRE_BHI_ON + bool "on" + help + Equivalent to setting spectre_bhi=on command line parameter. +config SPECTRE_BHI_OFF + bool "off" + help + Equivalent to setting spectre_bhi=off command line parameter. +config SPECTRE_BHI_AUTO + bool "auto" + help + Equivalent to setting spectre_bhi=auto command line parameter. + +endchoice + endif config ARCH_HAS_ADD_PAGES
arch/x86/boot/compressed/head_64.S +8 -0
@@ -37,6 +37,14 @@ #include <asm/trapnr.h> #include "pgtable.h" +/* + * Fix alignment at 16 bytes. Following CONFIG_FUNCTION_ALIGNMENT will result + * in assembly errors due to trying to move .org backward due to the excessive + * alignment. + */ +#undef __ALIGN +#define __ALIGN .balign 16, 0x90 + /* * Locally defined symbols should be marked hidden: */
arch/x86/entry/common.c +3 -3
@@ -47,7 +47,7 @@ static __always_inline bool do_syscall_x64(struct pt_regs *regs, int nr)if (likely (unr < NR_syscalls)) { unr =array_index_nospec (unr, NR_syscalls); - regs->ax = sys_call_table[unr](regs); + regs->ax =x64_sys_call (regs, unr);return true; }return false;
@@ -64,7 +64,7 @@ static __always_inline bool do_syscall_x32(struct pt_regs *regs, int nr)if (IS_ENABLED (CONFIG_X86_X32_ABI ) &&likely (xnr < X32_NR_syscalls)) { xnr =array_index_nospec (xnr, X32_NR_syscalls); - regs->ax = x32_sys_call_table[xnr](regs); + regs->ax =x32_sys_call (regs, xnr);return true; }return false;
@@ -109,7 +109,7 @@ static __always_inline void do_syscall_32_irqs_on(struct pt_regs *regs, int nr)if (likely (unr < IA32_NR_syscalls)) { unr =array_index_nospec (unr, IA32_NR_syscalls); - regs->ax = ia32_sys_call_table[unr](regs); + regs->ax =ia32_sys_call (regs, unr); }else if (nr !=-1 ) { regs->ax =__ia32_sys_ni_syscall (regs); }
arch/x86/entry/entry.S +23 -0
@@ -6,6 +6,9 @@ #include <linux/linkage.h> #include <asm/export.h> #include <asm/msr-index.h> +#include <asm/unwind_hints.h> +#include <asm/segment.h> +#include <asm/cache.h> .pushsection .noinstr.text, "ax"
@@ -20,3 +23,23 @@ SYM_FUNC_END(entry_ibpb) EXPORT_SYMBOL_GPL(entry_ibpb); .popsection + +/* + * Define the VERW operand that is disguised as entry code so that + * it can be referenced with KPTI enabled. This ensure VERW can be + * used late in exit-to-user path after page tables are switched. + */ +.pushsection .entry.text, "ax" + +.align L1_CACHE_BYTES, 0xcc +SYM_CODE_START_NOALIGN(mds_verw_sel) + UNWIND_HINT_EMPTY + ANNOTATE_NOENDBR + .word __KERNEL_DS +.align L1_CACHE_BYTES, 0xcc +SYM_CODE_END(mds_verw_sel); +/* For KVM */ +EXPORT_SYMBOL_GPL(mds_verw_sel); + +.popsection +
arch/x86/entry/entry_32.S +3 -0
@@ -912,6 +912,7 @@ SYM_FUNC_START(entry_SYSENTER_32) BUG_IF_WRONG_CR3 no_user_check=1 popfl popl %eax + CLEAR_CPU_BUFFERS /* * Return back to the vDSO, which will pop ecx and edx.
@@ -981,6 +982,7 @@ restore_all_switch_stack: /* Restore user state */ RESTORE_REGS pop=4 # skip orig_eax/error_code + CLEAR_CPU_BUFFERS .Lirq_return: /* * ARCH_HAS_MEMBARRIER_SYNC_CORE rely on IRET core serialization
@@ -1173,6 +1175,7 @@ SYM_CODE_START(asm_exc_nmi) /* Not on SYSENTER stack. */ call exc_nmi + CLEAR_CPU_BUFFERS jmp .Lnmi_return .Lnmi_from_sysenter_stack:
arch/x86/entry/entry_64.S +72 -0
111 lines not on this page · raw message
arch/x86/entry/entry_64_compat.S +4 -0
@@ -116,6 +116,7 @@ SYM_INNER_LABEL(entry_SYSENTER_compat_after_hwframe, SYM_L_GLOBAL) IBRS_ENTER UNTRAIN_RET + CLEAR_BRANCH_HISTORY /* * SYSENTER doesn't filter flags, so we need to clear NT and AC
@@ -259,6 +260,7 @@ SYM_INNER_LABEL(entry_SYSCALL_compat_after_hwframe, SYM_L_GLOBAL) IBRS_ENTER UNTRAIN_RET + CLEAR_BRANCH_HISTORY movq %rsp, %rdi call do_fast_syscall_32
@@ -319,6 +321,7 @@ sysret32_from_system_call: xorl %r9d, %r9d xorl %r10d, %r10d swapgs + CLEAR_CPU_BUFFERS sysretl SYM_CODE_END(entry_SYSCALL_compat)
@@ -421,6 +424,7 @@ SYM_CODE_START(entry_INT80_compat) IBRS_ENTER UNTRAIN_RET + CLEAR_BRANCH_HISTORY movq %rsp, %rdi call do_int80_syscall_32
arch/x86/entry/syscall_32.c +19 -2
@@ -18,8 +18,25 @@#include <asm/syscalls_32.h> #undef __SYSCALL +/* +* The sys_call_table[] is no longer used for system calls, but +* kernel/trace/trace_syscalls.c still wants to know the system +* call address. +*/ +#ifdef CONFIG_X86_32 #define __SYSCALL (nr, sym) __ia32_##sym, - -__visible const sys_call_ptr_t ia32_sys_call_table[] = { +const sys_call_ptr_t sys_call_table[] = { #include <asm/syscalls_32.h> }; +#undef __SYSCALL +#endif + +#define __SYSCALL (nr, sym) case nr: return __ia32_##sym(regs); + +long ia32_sys_call (const struct pt_regs *regs,unsigned int nr) +{ +switch (nr) { +#include <asm/syscalls_32.h> +default :return __ia32_sys_ni_syscall (regs); + } +};
arch/x86/entry/syscall_64.c +17 -2
@@ -11,8 +11,23 @@#include <asm/syscalls_64.h> #undef __SYSCALL +/* +* The sys_call_table[] is no longer used for system calls, but +* kernel/trace/trace_syscalls.c still wants to know the system +* call address. +*/ #define __SYSCALL (nr, sym) __x64_##sym, - -asmlinkage const sys_call_ptr_t sys_call_table[] = { +const sys_call_ptr_t sys_call_table[] = {#include <asm/syscalls_64.h> }; +#undef __SYSCALL + +#define __SYSCALL (nr, sym) case nr: return __x64_##sym(regs); + +long x64_sys_call (const struct pt_regs *regs,unsigned int nr) +{ +switch (nr) { +#include <asm/syscalls_64.h> +default :return __x64_sys_ni_syscall (regs); + } +};
arch/x86/entry/syscall_x32.c +7 -3
@@ -11,8 +11,12 @@#include <asm/syscalls_x32.h> #undef __SYSCALL -#define __SYSCALL (nr, sym) __x64_##sym, +#define __SYSCALL (nr, sym) case nr: return __x64_##sym(regs); -asmlinkage const sys_call_ptr_t x32_sys_call_table[] = { -#include <asm/syscalls_x32.h> +long x32_sys_call (const struct pt_regs *regs,unsigned int nr) +{ +switch (nr) { +#include <asm/syscalls_x32.h> +default :return __x64_sys_ni_syscall (regs); + } };
arch/x86/include/asm/asm-prototypes.h +1 -0
@@ -12,6 +12,7 @@#include <asm/special_insns.h> #include <asm/preempt.h> #include <asm/asm.h> +#include <asm/nospec-branch.h> #ifndef CONFIG_X86_CMPXCHG64 extern void cmpxchg8b_emu (void );
arch/x86/include/asm/asm.h +5 -0
@@ -6,11 +6,13 @@# define __ASM_FORM (x, ...) x,## __VA_ARGS__# define __ASM_FORM_RAW (x, ...) x,## __VA_ARGS__# define __ASM_FORM_COMMA (x, ...) x,## __VA_ARGS__, +# define __ASM_REGPFX %#else #include <linux/stringify.h> # define __ASM_FORM (x, ...) " " __stringify(x,##__VA_ARGS__) " "# define __ASM_FORM_RAW (x, ...) __stringify(x,##__VA_ARGS__)# define __ASM_FORM_COMMA (x, ...) " " __stringify(x,##__VA_ARGS__) "," +# define __ASM_REGPFX %%#endif #define _ASM_BYTES (x, ...) __ASM_FORM(.byte x,##__VA_ARGS__ ;)
@@ -49,6 +51,9 @@#define _ASM_SI __ASM_REG(si)#define _ASM_DI __ASM_REG(di) +/* Adds a (%rip) suffix on 64 bits only; for immediate memory references */ +#define _ASM_RIP (x) __ASM_SEL_RAW(x, x (__ASM_REGPFX rip)) +#ifndef __x86_64__/* 32 bit */
arch/x86/include/asm/cpufeature.h +6 -2
@@ -33,6 +33,8 @@ enum cpuid_leafsCPUID_7_EDX ,CPUID_8000_001F_EAX ,CPUID_8000_0021_EAX , +CPUID_LNX_5 , + NR_CPUID_WORDS, };#ifdef CONFIG_X86_FEATURE_NAMES
@@ -93,8 +95,9 @@ extern const char * const x86_bug_flags[NBUGINTS*32]; CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 18, feature_bit) || \ CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 19, feature_bit) || \ CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 20, feature_bit) || \ + CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 21, feature_bit) || \ REQUIRED_MASK_CHECK || \ - BUILD_BUG_ON_ZERO(NCAPINTS != 21)) + BUILD_BUG_ON_ZERO(NCAPINTS != 22))#define DISABLED_MASK_BIT_SET (feature_bit) \ ( CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 0, feature_bit) || \
@@ -118,8 +121,9 @@ extern const char * const x86_bug_flags[NBUGINTS*32]; CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 18, feature_bit) || \ CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 19, feature_bit) || \ CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 20, feature_bit) || \ + CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 21, feature_bit) || \ DISABLED_MASK_CHECK || \ - BUILD_BUG_ON_ZERO(NCAPINTS != 21)) + BUILD_BUG_ON_ZERO(NCAPINTS != 22))#define cpu_has (c, bit) \ (__builtin_constant_p(bit) && REQUIRED_MASK_BIT_SET(bit) ? 1 : \
arch/x86/include/asm/cpufeatures.h +16 -2
@@ -13,7 +13,7 @@/* * Defines x86 CPU feature bits */ -#define NCAPINTS 21/* N 32-bit words worth of info */ +#define NCAPINTS 22/* N 32-bit words worth of info */ #define NBUGINTS 2/* N 32-bit bug flags */ /*
@@ -302,7 +302,7 @@#define X86_FEATURE_UNRET (11*32+15)/* "" AMD BTB untrain return */ #define X86_FEATURE_USE_IBPB_FW (11*32+16)/* "" Use IBPB during runtime firmware calls */ #define X86_FEATURE_RSB_VMEXIT_LITE (11*32+17)/* "" Fill RSB on VM exit when EIBRS is enabled */ - +#define X86_FEATURE_CLEAR_CPU_BUF (11*32+18)/* "" Clear CPU buffers using VERW */ #define X86_FEATURE_MSR_TSX_CTRL (11*32+20)/* "" MSR IA32_TSX_CTRL (Intel) implemented */
@@ -416,10 +416,22 @@#define X86_FEATURE_SEV_ES (19*32+ 3)/* AMD Secure Encrypted Virtualization - Encrypted State */ #define X86_FEATURE_SME_COHERENT (19*32+10)/* "" AMD hardware-enforced cache coherency */ +#define X86_FEATURE_AUTOIBRS (20*32+ 8)/* "" Automatic IBRS */ #define X86_FEATURE_SBPB (20*32+27)/* "" Selective Branch Prediction Barrier */ #define X86_FEATURE_IBPB_BRTYPE (20*32+28)/* "" MSR_PRED_CMD[IBPB] flushes all branch type predictions */ #define X86_FEATURE_SRSO_NO (20*32+29)/* "" CPU is not affected by SRSO */ +/* +* Extended auxiliary flags: Linux defined - for features scattered in various +* CPUID levels like 0x80000022, etc and Linux defined features. +* +* Reuse free bits when adding new feature flags! +*/ +#define X86_FEATURE_CLEAR_BHB_LOOP (21*32+ 1)/* "" Clear branch history at syscall entry using SW loop */ +#define X86_FEATURE_BHI_CTRL (21*32+ 2)/* "" BHI_DIS_S HW control available */ +#define X86_FEATURE_CLEAR_BHB_HW (21*32+ 3)/* "" BHI_DIS_S HW control enabled */ +#define X86_FEATURE_CLEAR_BHB_LOOP_ON_VMEXIT (21*32+ 4)/* "" Clear branch history at vmexit using SW loop */ +/* * BUG word(s) */
@@ -466,4 +478,6 @@/* BUG word 2 */ #define X86_BUG_SRSO X86_BUG(1*32 + 0)/* AMD SRSO bug */ #define X86_BUG_DIV0 X86_BUG(1*32 + 1)/* AMD DIV0 speculation bug */ +#define X86_BUG_RFDS X86_BUG(1*32 + 2)/* CPU is vulnerable to Register File Data Sampling */ +#define X86_BUG_BHI X86_BUG(1*32 + 3)/* CPU is affected by Branch History Injection */ #endif /* _ASM_X86_CPUFEATURES_H */
arch/x86/include/asm/disabled-features.h +2 -1
@@ -109,6 +109,7 @@#define DISABLED_MASK18 0#define DISABLED_MASK19 0#define DISABLED_MASK20 0 -#define DISABLED_MASK_CHECK BUILD_BUG_ON_ZERO(NCAPINTS != 21) +#define DISABLED_MASK21 0 +#define DISABLED_MASK_CHECK BUILD_BUG_ON_ZERO(NCAPINTS != 22)#endif /* _ASM_X86_DISABLED_FEATURES_H */
arch/x86/include/asm/entry-common.h +0 -1
@@ -91,7 +91,6 @@ static inline void arch_exit_to_user_mode_prepare(struct pt_regs *regs, static __always_inline void arch_exit_to_user_mode(void) { -mds_user_clear_cpu_buffers ();amd_clear_divider (); }#define arch_exit_to_user_mode arch_exit_to_user_mode
arch/x86/include/asm/linkage.h +7 -5
@@ -11,12 +11,14 @@#define asmlinkage CPP_ASMLINKAGE __attribute__((regparm(0)))#endif /* CONFIG_X86_32 */ -#ifdef __ASSEMBLY__ - -#if defined(CONFIG_X86_64 ) || defined(CONFIG_X86_ALIGNMENT_16 ) -#define __ALIGN .p2align 4, 0x90 +#define __ALIGN .balign CONFIG_FUNCTION_ALIGNMENT, 0x90;#define __ALIGN_STR __stringify(__ALIGN) -#endif + +#define ASM_FUNC_ALIGN __ALIGN_STR +#define __FUNC_ALIGN __ALIGN +#define SYM_F_ALIGN __FUNC_ALIGN + +#ifdef __ASSEMBLY__#if defined(CONFIG_RETHUNK ) && !defined(__DISABLE_EXPORTS) && !defined(BUILD_VDSO )#define RET jmp __x86_return_thunk
arch/x86/include/asm/msr-index.h +18 -1
@@ -30,6 +30,7 @@#define _EFER_SVME 12/* Enable virtualization */ #define _EFER_LMSLE 13/* Long Mode Segment Limit Enable */ #define _EFER_FFXSR 14/* Enable Fast FXSAVE/FXRSTOR */ +#define _EFER_AUTOIBRS 21/* Enable Automatic IBRS */ #define EFER_SCE (1<<_EFER_SCE)#define EFER_LME (1<<_EFER_LME)
@@ -38,6 +39,7 @@#define EFER_SVME (1<<_EFER_SVME)#define EFER_LMSLE (1<<_EFER_LMSLE)#define EFER_FFXSR (1<<_EFER_FFXSR) +#define EFER_AUTOIBRS (1<<_EFER_AUTOIBRS)/* Intel MSRs. Some also available on other CPUs */
@@ -53,10 +55,13 @@#define SPEC_CTRL_SSBD BIT(SPEC_CTRL_SSBD_SHIFT)/* Speculative Store Bypass Disable */ #define SPEC_CTRL_RRSBA_DIS_S_SHIFT 6/* Disable RRSBA behavior */ #define SPEC_CTRL_RRSBA_DIS_S BIT(SPEC_CTRL_RRSBA_DIS_S_SHIFT) +#define SPEC_CTRL_BHI_DIS_S_SHIFT 10/* Disable Branch History Injection behavior */ +#define SPEC_CTRL_BHI_DIS_S BIT(SPEC_CTRL_BHI_DIS_S_SHIFT)/* A mask for bits which the kernel toggles when controlling mitigations */ #define SPEC_CTRL_MITIGATIONS_MASK (SPEC_CTRL_IBRS | SPEC_CTRL_STIBP | SPEC_CTRL_SSBD \ - | SPEC_CTRL_RRSBA_DIS_S) + | SPEC_CTRL_RRSBA_DIS_S \ + | SPEC_CTRL_BHI_DIS_S)#define MSR_IA32_PRED_CMD 0x00000049/* Prediction Command */ #define PRED_CMD_IBPB BIT(0)/* Indirect Branch Prediction Barrier */
@@ -153,6 +158,10 @@* are restricted to targets in * kernel. */ +#define ARCH_CAP_BHI_NO BIT(20)/* +* CPU is not affected by Branch +* History Injection. +*/ #define ARCH_CAP_PBRSB_NO BIT(24)/* * Not susceptible to Post-Barrier * Return Stack Buffer Predictions.
@@ -166,6 +175,14 @@* CPU is not vulnerable to Gather * Data Sampling (GDS). */ +#define ARCH_CAP_RFDS_NO BIT(27)/* +* Not susceptible to Register +* File Data Sampling. +*/ +#define ARCH_CAP_RFDS_CLEAR BIT(28)/* +* VERW clears CPU Register +* File. +*/ #define MSR_IA32_FLUSH_CMD 0x0000010b#define L1D_FLUSH BIT(0)/*
arch/x86/include/asm/nospec-branch.h +46 -18
105 lines not on this page · raw message
arch/x86/include/asm/required-features.h +2 -1
@@ -103,6 +103,7 @@#define REQUIRED_MASK18 0#define REQUIRED_MASK19 0#define REQUIRED_MASK20 0 -#define REQUIRED_MASK_CHECK BUILD_BUG_ON_ZERO(NCAPINTS != 21) +#define REQUIRED_MASK21 0 +#define REQUIRED_MASK_CHECK BUILD_BUG_ON_ZERO(NCAPINTS != 22)#endif /* _ASM_X86_REQUIRED_FEATURES_H */
arch/x86/include/asm/suspend_32.h +5 -5
@@ -12,11 +12,6 @@/* image of the saved processor state */ struct saved_context { -/* -* On x86_32, all segment registers except gs are saved at kernel -* entry in pt_regs. -*/ -u16 gs;unsigned long cr0, cr2, cr3, cr4;u64 misc_enable;struct saved_msrs saved_msrs;
@@ -27,6 +22,11 @@ struct saved_context {unsigned long tr;unsigned long safety;unsigned long return_address; +/* +* On x86_32, all segment registers except gs are saved at kernel +* entry in pt_regs. +*/ +u16 gs;bool misc_enable_saved; } __attribute__((packed));
arch/x86/include/asm/syscall.h +4 -6
@@ -16,19 +16,17 @@#include <asm/thread_info.h> /* for TS_COMPAT */ #include <asm/unistd.h> +/* This is used purely for kernel/trace/trace_syscalls.c */ typedef long (*sys_call_ptr_t )(const struct pt_regs *);extern const sys_call_ptr_t sys_call_table[]; -#if defined(CONFIG_X86_32 ) -#define ia32_sys_call_table sys_call_table -#else /* * These may not exist, but still put the prototypes in so we * can use IS_ENABLED(). */ -extern const sys_call_ptr_t ia32_sys_call_table[]; -extern const sys_call_ptr_t x32_sys_call_table[]; -#endif +extern long ia32_sys_call (const struct pt_regs *,unsigned int nr); +extern long x32_sys_call (const struct pt_regs *,unsigned int nr); +extern long x64_sys_call (const struct pt_regs *,unsigned int nr);/* * Only the low 32 bits of orig_ax are meaningful, so we return int.
arch/x86/include/asm/text-patching.h +31 -0
@@ -181,6 +181,37 @@ void int3_emulate_ret(struct pt_regs *regs)unsigned long ip =int3_emulate_pop (regs);int3_emulate_jmp (regs, ip); } + +static __always_inline +void int3_emulate_jcc(struct pt_regs *regs, u8 cc, unsigned long ip, unsigned long disp) +{ +static const unsigned long jcc_mask[6 ] = { + [0 ] =X86_EFLAGS_OF , + [1 ] =X86_EFLAGS_CF , + [2 ] =X86_EFLAGS_ZF , + [3 ] =X86_EFLAGS_CF |X86_EFLAGS_ZF , + [4 ] =X86_EFLAGS_SF , + [5 ] =X86_EFLAGS_PF , + }; + +bool invert = cc &1 ; +bool match; + +if (cc <0xc ) { + match = regs->flags & jcc_mask[cc >>1 ]; + }else { + match = ((regs->flags &X86_EFLAGS_SF ) >>X86_EFLAGS_SF_BIT ) ^ + ((regs->flags &X86_EFLAGS_OF ) >>X86_EFLAGS_OF_BIT ); +if (cc >=0xe ) + match = match || (regs->flags &X86_EFLAGS_ZF ); + } + +if ((match && !invert) || (!match && invert)) + ip += disp; + +int3_emulate_jmp (regs, ip); +} +#endif /* !CONFIG_UML_X86 */ #endif /* _ASM_X86_TEXT_PATCHING_H */
arch/x86/kernel/alternative.c +47 -9
127 lines not on this page · raw message
arch/x86/kernel/cpu/amd.c +5 -5
@@ -1021,11 +1021,11 @@ static bool cpu_has_zenbleed_microcode(void)u32 good_rev =0 ;switch (boot_cpu_data.x86_model) { - case 0x30 ... 0x3f: good_rev = 0x0830107a; break; - case 0x60 ... 0x67: good_rev = 0x0860010b; break; - case 0x68 ... 0x6f: good_rev = 0x08608105; break; - case 0x70 ... 0x7f: good_rev = 0x08701032; break; - case 0xa0 ... 0xaf: good_rev = 0x08a00008; break; + case 0x30 ... 0x3f: good_rev = 0x0830107b; break; + case 0x60 ... 0x67: good_rev = 0x0860010c; break; + case 0x68 ... 0x6f: good_rev = 0x08608107; break; + case 0x70 ... 0x7f: good_rev = 0x08701033; break; + case 0xa0 ... 0xaf: good_rev = 0x08a00009; break;default :return false;
arch/x86/kernel/cpu/bugs.c +270 -90
614 lines not on this page · raw message
arch/x86/kernel/cpu/common.c +60 -17
130 lines not on this page · raw message
arch/x86/kernel/cpu/mce/core.c +3 -1
@@ -2382,12 +2382,14 @@ static ssize_t set_bank(struct device *s, struct device_attribute *attr,return -EINVAL ; b = &per_cpu (mce_banks_array, s->id)[bank]; -if (!b->init)return -ENODEV ; b->ctl = new; + +mutex_lock (&mce_sysfs_mutex);mce_restart (); +mutex_unlock (&mce_sysfs_mutex);return size; }
arch/x86/kernel/cpu/scattered.c +1 -0
@@ -27,6 +27,7 @@ static const struct cpuid_bit cpuid_bits[] = { { X86_FEATURE_APERFMPERF, CPUID_ECX, 0, 0x00000006, 0 }, { X86_FEATURE_EPB, CPUID_ECX, 3, 0x00000006, 0 }, { X86_FEATURE_RRSBA_CTRL, CPUID_EDX, 2, 0x00000007, 2 }, + { X86_FEATURE_BHI_CTRL, CPUID_EDX, 4, 0x00000007, 2 }, { X86_FEATURE_CQM_LLC, CPUID_EDX, 1, 0x0000000f, 0 }, { X86_FEATURE_CQM_OCCUP_LLC, CPUID_EDX, 0, 0x0000000f, 1 }, { X86_FEATURE_CQM_MBM_TOTAL, CPUID_EDX, 1, 0x0000000f, 1 },
arch/x86/kernel/kprobes/core.c +8 -30
@@ -463,50 +463,26 @@ static void kprobe_emulate_call(struct kprobe *p, struct pt_regs *regs) }NOKPROBE_SYMBOL (kprobe_emulate_call); -static nokprobe_inline -void __kprobe_emulate_jmp(struct kprobe *p, struct pt_regs *regs, bool cond) +static void kprobe_emulate_jmp (struct kprobe *p,struct pt_regs *regs) {unsigned long ip = regs->ip -INT3_INSN_SIZE + p->ainsn.size; -if (cond) - ip += p->ainsn.rel32; + ip += p->ainsn.rel32;int3_emulate_jmp (regs, ip); } - -static void kprobe_emulate_jmp (struct kprobe *p,struct pt_regs *regs) -{ -__kprobe_emulate_jmp (p, regs, true); -}NOKPROBE_SYMBOL (kprobe_emulate_jmp); -static const unsigned long jcc_mask[6 ] = { - [0 ] =X86_EFLAGS_OF , - [1 ] =X86_EFLAGS_CF , - [2 ] =X86_EFLAGS_ZF , - [3 ] =X86_EFLAGS_CF |X86_EFLAGS_ZF , - [4 ] =X86_EFLAGS_SF , - [5 ] =X86_EFLAGS_PF , -}; -static void kprobe_emulate_jcc (struct kprobe *p,struct pt_regs *regs) { -bool invert = p->ainsn.jcc.type &1 ; -bool match; +unsigned long ip = regs->ip -INT3_INSN_SIZE + p->ainsn.size; -if (p->ainsn.jcc.type <0xc ) { - match = regs->flags & jcc_mask[p->ainsn.jcc.type >>1 ]; - }else { - match = ((regs->flags &X86_EFLAGS_SF ) >>X86_EFLAGS_SF_BIT ) ^ - ((regs->flags &X86_EFLAGS_OF ) >>X86_EFLAGS_OF_BIT ); -if (p->ainsn.jcc.type >=0xe ) - match = match || (regs->flags &X86_EFLAGS_ZF ); - } -__kprobe_emulate_jmp (p, regs, (match && !invert) || (!match && invert)); +int3_emulate_jcc (regs, p->ainsn.jcc.type, ip, p->ainsn.rel32); }NOKPROBE_SYMBOL (kprobe_emulate_jcc);static void kprobe_emulate_loop (struct kprobe *p,struct pt_regs *regs) { +unsigned long ip = regs->ip -INT3_INSN_SIZE + p->ainsn.size;bool match;if (p->ainsn.loop.type !=3 ) {/* LOOP* */
@@ -534,7 +510,9 @@ static void kprobe_emulate_loop(struct kprobe *p, struct pt_regs *regs)else if (p->ainsn.loop.type ==1 )/* LOOPE */ match = match && (regs->flags &X86_EFLAGS_ZF ); -__kprobe_emulate_jmp (p, regs, match); +if (match) + ip += p->ainsn.rel32; +int3_emulate_jmp (regs, ip); }NOKPROBE_SYMBOL (kprobe_emulate_loop);
arch/x86/kernel/nmi.c +0 -3
@@ -519,9 +519,6 @@ DEFINE_IDTENTRY_RAW(exc_nmi)write_cr2 (this_cpu_read (nmi_cr2));if (this_cpu_dec_return (nmi_state)) goto nmi_restart; - -if (user_mode (regs)) -mds_user_clear_cpu_buffers (); }#if defined(CONFIG_X86_64 ) &&IS_ENABLED (CONFIG_KVM_INTEL )
arch/x86/kernel/static_call.c +47 -3
84 lines not on this page · raw message
arch/x86/kvm/cpuid.c +22 -7
@@ -355,9 +355,9 @@ static __always_inline void __kvm_cpu_cap_mask(unsigned int leaf) }static __always_inline -void kvm_cpu_cap_init_scattered(enum kvm_only_cpuid_leafs leaf, u32 mask) +void kvm_cpu_cap_init_kvm_defined(enum kvm_only_cpuid_leafs leaf, u32 mask) { -/* Use kvm_cpu_cap_mask for non-scattered leafs. */ +/* Use kvm_cpu_cap_mask for leafs that aren't KVM-only. */ BUILD_BUG_ON (leaf <NCAPINTS ); kvm_cpu_caps[leaf] = mask;
@@ -367,7 +367,7 @@ void kvm_cpu_cap_init_scattered(enum kvm_only_cpuid_leafs leaf, u32 mask) static __always_inline void kvm_cpu_cap_mask(enum cpuid_leafs leaf, u32 mask) { -/* Use kvm_cpu_cap_init_scattered for scattered leafs. */ +/* Use kvm_cpu_cap_init_kvm_defined for KVM-only leafs. */ BUILD_BUG_ON (leaf >=NCAPINTS ); kvm_cpu_caps[leaf] &= mask;
@@ -469,11 +469,16 @@ void kvm_set_cpu_caps(void)F (AVX_VNNI ) |F (AVX512_BF16 ) ); +kvm_cpu_cap_init_kvm_defined (CPUID_7_2_EDX , +F (INTEL_PSFD ) |F (IPRED_CTRL ) |F (RRSBA_CTRL ) |F (DDPD_U ) | +F (BHI_CTRL ) |F (MCDT_NO ) + ); +kvm_cpu_cap_mask (CPUID_D_1_EAX ,F (XSAVEOPT ) |F (XSAVEC ) |F (XGETBV1 ) |F (XSAVES ) ); -kvm_cpu_cap_init_scattered (CPUID_12_EAX , +kvm_cpu_cap_init_kvm_defined (CPUID_12_EAX ,SF (SGX1 ) |SF (SGX2 ) );
@@ -710,13 +715,13 @@ static inline int __do_cpuid_func(struct kvm_cpuid_array *array, u32 function)break ;/* function 7 has additional index. */ case 7 : - entry->eax =min (entry->eax,1u ); + max_idx = entry->eax =min (entry->eax,2u );cpuid_entry_override (entry,CPUID_7_0_EBX );cpuid_entry_override (entry,CPUID_7_ECX );cpuid_entry_override (entry,CPUID_7_EDX ); -/* KVM only supports 0x7.0 and 0x7.1, capped above via min(). */ -if (entry->eax ==1 ) { +/* KVM only supports up to 0x7.2, capped above via min(). */ +if (max_idx >=1 ) { entry =do_host_cpuid (array, function,1 );if (!entry) goto out;
@@ -726,6 +731,16 @@ static inline int __do_cpuid_func(struct kvm_cpuid_array *array, u32 function) entry->ecx =0 ; entry->edx =0 ; } +if (max_idx >=2 ) { + entry =do_host_cpuid (array, function,2 ); +if (!entry) + goto out; + +cpuid_entry_override (entry,CPUID_7_2_EDX ); + entry->ecx =0 ; + entry->ebx =0 ; + entry->eax =0 ; + }break ;case 0xa : {/* Architectural Performance Monitoring */ struct x86_pmu_capability cap;
arch/x86/kvm/reverse_cpuid.h +38 -9
89 lines not on this page · raw message
arch/x86/kvm/svm/sev.c +9 -7
@@ -1662,20 +1662,22 @@ int svm_register_enc_region(struct kvm *kvm, goto e_free; } - region->uaddr = range->addr; - region->size = range->size; - -list_add_tail (®ion->list, &sev->regions_list); -mutex_unlock (&kvm->lock); -/* * The guest may change the memory encryption attribute from C=0 -> C=1 * or vice versa for this memory range. Lets make sure caches are * flushed to ensure that guest data gets written into memory with -* correct C-bit. +* correct C-bit. Note, this must be done before dropping kvm->lock, +* as region and its array of pages can be freed by a different task +* once kvm->lock is released. */ sev_clflush_pages (region->pages, region->npages); + region->uaddr = range->addr; + region->size = range->size; + +list_add_tail (®ion->list, &sev->regions_list); +mutex_unlock (&kvm->lock); +return ret; e_free:
arch/x86/kvm/vmx/run_flags.h +5 -2
@@ -2,7 +2,10 @@#ifndef __KVM_X86_VMX_RUN_FLAGS_H#define __KVM_X86_VMX_RUN_FLAGS_H -#define VMX_RUN_VMRESUME (1 << 0) -#define VMX_RUN_SAVE_SPEC_CTRL (1 << 1) +#define VMX_RUN_VMRESUME_SHIFT 0 +#define VMX_RUN_SAVE_SPEC_CTRL_SHIFT 1 + +#define VMX_RUN_VMRESUME BIT(VMX_RUN_VMRESUME_SHIFT) +#define VMX_RUN_SAVE_SPEC_CTRL BIT(VMX_RUN_SAVE_SPEC_CTRL_SHIFT)#endif /* __KVM_X86_VMX_RUN_FLAGS_H */
arch/x86/kvm/vmx/vmenter.S +8 -3
@@ -77,7 +77,7 @@ SYM_FUNC_START(__vmx_vcpu_run) mov (%_ASM_SP), %_ASM_AX /* Check if vmlaunch or vmresume is needed */ - testb $VMX_RUN_VMRESUME, %bl + bt $VMX_RUN_VMRESUME_SHIFT, %bx /* Load guest registers. Don't clobber flags. */ mov VCPU_RCX(%_ASM_AX), %_ASM_CX
@@ -99,8 +99,11 @@ SYM_FUNC_START(__vmx_vcpu_run) /* Load guest RAX. This kills the @regs pointer! */ mov VCPU_RAX(%_ASM_AX), %_ASM_AX - /* Check EFLAGS.ZF from 'testb' above */ - jz .Lvmlaunch + /* Clobbers EFLAGS.ZF */ + CLEAR_CPU_BUFFERS + + /* Check EFLAGS.CF from the VMX_RUN_VMRESUME bit test above. */ + jnc .Lvmlaunch /* * After a successful VMRESUME/VMLAUNCH, control flow "magically"
@@ -210,6 +213,8 @@ SYM_INNER_LABEL(vmx_vmexit, SYM_L_GLOBAL) call vmx_spec_ctrl_restore_host + CLEAR_BRANCH_HISTORY_VMEXIT + /* Put return value in AX */ mov %_ASM_BX, %_ASM_AX
arch/x86/kvm/vmx/vmx.c +8 -4
@@ -398,7 +398,8 @@ static __always_inline void vmx_enable_fb_clear(struct vcpu_vmx *vmx)static void vmx_update_fb_clear_dis (struct kvm_vcpu *vcpu,struct vcpu_vmx *vmx) { - vmx->disable_fb_clear = vmx_fb_clear_ctrl_available; + vmx->disable_fb_clear = !cpu_feature_enabled (X86_FEATURE_CLEAR_CPU_BUF ) && + vmx_fb_clear_ctrl_available;/* * If guest will not execute VERW, there is no need to set FB_CLEAR_DIS
@@ -6747,11 +6748,14 @@ static noinstr void vmx_vcpu_enter_exit(struct kvm_vcpu *vcpu, {kvm_guest_enter_irqoff (); -/* L1D Flush includes CPU buffer clear to mitigate MDS */ +/* +* L1D Flush includes CPU buffer clear to mitigate MDS, but VERW +* mitigation for MDS is done late in VMentry and is still +* executed in spite of L1D Flush. This is because an extra VERW +* should not matter much after the big hammer L1D Flush. +*/ if (static_branch_unlikely (&vmx_l1d_should_flush))vmx_l1d_flush (vcpu); -else if (static_branch_unlikely (&mds_user_clear)) -mds_clear_cpu_buffers ();else if (static_branch_unlikely (&mmio_stale_data_clear) &&kvm_arch_has_assigned_device (vcpu->kvm))mds_clear_cpu_buffers ();
arch/x86/kvm/x86.c +15 -2
@@ -1498,7 +1498,8 @@ static unsigned int num_msr_based_features; ARCH_CAP_SKIP_VMENTRY_L1DFLUSH | ARCH_CAP_SSB_NO | ARCH_CAP_MDS_NO | \ ARCH_CAP_PSCHANGE_MC_NO | ARCH_CAP_TSX_CTRL_MSR | ARCH_CAP_TAA_NO | \ ARCH_CAP_SBDR_SSDP_NO | ARCH_CAP_FBSDP_NO | ARCH_CAP_PSDP_NO | \ - ARCH_CAP_FB_CLEAR | ARCH_CAP_RRSBA | ARCH_CAP_PBRSB_NO | ARCH_CAP_GDS_NO) + ARCH_CAP_FB_CLEAR | ARCH_CAP_RRSBA | ARCH_CAP_PBRSB_NO | ARCH_CAP_GDS_NO | \ + ARCH_CAP_RFDS_NO | ARCH_CAP_RFDS_CLEAR | ARCH_CAP_BHI_NO)static u64 kvm_get_arch_capabilities (void ) {
@@ -1535,6 +1536,8 @@ static u64 kvm_get_arch_capabilities(void) data |=ARCH_CAP_SSB_NO ;if (!boot_cpu_has_bug (X86_BUG_MDS )) data |=ARCH_CAP_MDS_NO ; +if (!boot_cpu_has_bug (X86_BUG_RFDS )) + data |=ARCH_CAP_RFDS_NO ;if (!boot_cpu_has (X86_FEATURE_RTM )) {/*
@@ -7105,7 +7108,17 @@ static int emulator_cmpxchg_emulated(struct x86_emulate_ctxt *ctxt, }if (r <0 ) - goto emul_write; +return X86EMUL_UNHANDLEABLE ; + +/* +* Mark the page dirty _before_ checking whether or not the CMPXCHG was +* successful, as the old value is written back on failure. Note, for +* live migration, this is unnecessarily conservative as CMPXCHG writes +* back the original value and the access is atomic, but KVM's ABI is +* that all writes are dirty logged, regardless of the value written. +*/ +kvm_vcpu_mark_page_dirty (vcpu,gpa_to_gfn (gpa)); +if (r)return X86EMUL_CMPXCHG_FAILED ;
arch/x86/lib/retpoline.S +2 -3
@@ -108,6 +108,7 @@ SYM_START(srso_alias_untrain_ret, SYM_L_GLOBAL, SYM_A_NONE) ret int3 SYM_FUNC_END(srso_alias_untrain_ret) +__EXPORT_THUNK(srso_alias_untrain_ret) #endif SYM_START(srso_alias_safe_ret, SYM_L_GLOBAL, SYM_A_NONE)
@@ -249,9 +250,7 @@ SYM_CODE_START(srso_return_thunk) SYM_CODE_END(srso_return_thunk) SYM_FUNC_START(entry_untrain_ret) - ALTERNATIVE_2 "jmp retbleed_untrain_ret", \ - "jmp srso_untrain_ret", X86_FEATURE_SRSO, \ - "jmp srso_alias_untrain_ret", X86_FEATURE_SRSO_ALIAS + ALTERNATIVE "jmp retbleed_untrain_ret", "jmp srso_untrain_ret", X86_FEATURE_SRSO SYM_FUNC_END(entry_untrain_ret) __EXPORT_THUNK(entry_untrain_ret)
arch/x86/mm/ident_map.c +5 -18
@@ -26,31 +26,18 @@ static int ident_pud_init(struct x86_mapping_info *info, pud_t *pud_page,for (; addr < end; addr = next) {pud_t *pud = pud_page +pud_index (addr);pmd_t *pmd; -bool use_gbpage; next = (addr &PUD_MASK ) +PUD_SIZE ;if (next > end) next = end; -/* if this is already a gbpage, this portion is already mapped */ -if (pud_large (*pud)) -continue ; - -/* Is using a gbpage allowed? */ - use_gbpage = info->direct_gbpages; - -/* Don't use gbpage if it maps more than the requested region. */ -/* at the begining: */ - use_gbpage &= ((addr & ~PUD_MASK ) ==0 ); -/* ... or at the end: */ - use_gbpage &= ((next & ~PUD_MASK ) ==0 ); - -/* Never overwrite existing mappings */ - use_gbpage &= !pud_present (*pud); - -if (use_gbpage) { +if (info->direct_gbpages) {pud_t pudval; +if (pud_present (*pud)) +continue ; + + addr &=PUD_MASK ; pudval =__pud ((addr - info->offset) | info->page_flag);set_pud (pud, pudval);continue ;
block/blk-settings.c +4 -0
@@ -647,6 +647,10 @@ int blk_stack_limits(struct queue_limits *t, struct queue_limits *b, t->zone_write_granularity =max (t->zone_write_granularity, b->zone_write_granularity); t->zoned =max (t->zoned, b->zoned); +if (!t->zoned) { + t->zone_write_granularity =0 ;
Lines of this file are not shown. View the raw message.
drivers/ata/sata_mv.c +31 -32
63 lines not on this page · raw message
drivers/crypto/qat/qat_common/adf_aer.c +17 -6
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +5 -3
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.c +11 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/exynos/exynos_drm_vidi.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/gem/i915_gem_userptr.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/gt/intel_engine_pm.c +0 -3
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/gt/intel_execlists_submission.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c +11 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/fec_main.c +9 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_trace.h +4 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_trace.h +4 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/i40e/i40e_main.c +12 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/i40e/i40e_ptp.c +3 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/i40e/i40e_register.h +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/i40e/i40e_txrx.c +61 -21
82 lines not on this page · raw message
drivers/net/ethernet/intel/i40e/i40e_txrx.h +3 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c +16 -18
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c +8 -8
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/cgx.c +5 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c +22 -9
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/realtek/r8169_main.c +10 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/renesas/ravb_main.c +6 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c +31 -9
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c +31 -7
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/xilinx/ll_temac_main.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/rfi.c +7 -5
Lines of this file are not shown. View the raw message.
drivers/pci/controller/dwc/pcie-designware-ep.c +6 -1
Lines of this file are not shown. View the raw message.
drivers/pci/quirks.c +100 -0
100 lines not on this page · raw message
drivers/scsi/qla2xxx/qla_init.c +65 -63
128 lines not on this page · raw message
drivers/scsi/qla2xxx/qla_iocb.c +44 -24
68 lines not on this page · raw message
drivers/soc/fsl/qbman/qman.c +79 -19
98 lines not on this page · raw message
drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c +3 -2
Lines of this file are not shown. View the raw message.
drivers/usb/dwc2/core_intr.c +48 -24
72 lines not on this page · raw message
drivers/usb/dwc2/hcd.c +40 -9
49 lines not on this page · raw message
drivers/usb/storage/uas.c +37 -44
81 lines not on this page · raw message
drivers/usb/typec/ucsi/ucsi.c +40 -2
42 lines not on this page · raw message
drivers/vfio/pci/vfio_pci_intrs.c +106 -70
176 lines not on this page · raw message
drivers/vfio/platform/vfio_platform_irq.c +72 -34
106 lines not on this page · raw message
fs/lockd/svc.c +64 -153
217 lines not on this page · raw message
fs/lockd/xdr.c +71 -81
152 lines not on this page · raw message
fs/lockd/xdr4.c +72 -81
153 lines not on this page · raw message
fs/locks.c +70 -15
85 lines not on this page · raw message
fs/nfs/callback.c +28 -68
96 lines not on this page · raw message
fs/nfs/nfs4trace.h +57 -420
477 lines not on this page · raw message
fs/nfs/nfstrace.h +37 -232
269 lines not on this page · raw message
fs/nfsd/filecache.c +666 -502
1,168 lines not on this page · raw message
fs/nfsd/nfs2acl.c +30 -25
55 lines not on this page · raw message
fs/nfsd/nfs3acl.c +35 -50
85 lines not on this page · raw message
fs/nfsd/nfs3proc.c +175 -37
212 lines not on this page · raw message
fs/nfsd/nfs3xdr.c +175 -269
444 lines not on this page · raw message
fs/nfsd/nfs4acl.c +7 -39
46 lines not on this page · raw message
fs/nfsd/nfs4callback.c +103 -22
125 lines not on this page · raw message
fs/nfsd/nfs4proc.c +569 -417
986 lines not on this page · raw message
fs/nfsd/nfs4state.c +813 -228
1,041 lines not on this page · raw message
fs/nfsd/nfs4xdr.c +604 -511
1,115 lines not on this page · raw message
fs/nfsd/nfscache.c +30 -33
63 lines not on this page · raw message
fs/nfsd/nfsctl.c +64 -82
146 lines not on this page · raw message
fs/nfsd/nfsfh.c +140 -130
270 lines not on this page · raw message
fs/nfsd/nfsfh.h +69 -76
145 lines not on this page · raw message
fs/nfsd/nfsproc.c +41 -80
121 lines not on this page · raw message
fs/nfsd/nfssvc.c +125 -138
263 lines not on this page · raw message
fs/nfsd/nfsxdr.c +80 -98
178 lines not on this page · raw message
fs/nfsd/state.h +48 -11
59 lines not on this page · raw message
fs/nfsd/trace.h +607 -85
692 lines not on this page · raw message
fs/nfsd/vfs.c +400 -420
820 lines not on this page · raw message
fs/nfsd/vfs.h +33 -23
56 lines not on this page · raw message
fs/nfsd/xdr3.h +31 -30
61 lines not on this page · raw message
fs/nfsd/xdr4.h +58 -23
81 lines not on this page · raw message
fs/notify/fanotify/fanotify.c +278 -83
361 lines not on this page · raw message
fs/notify/fanotify/fanotify.h +193 -19
212 lines not on this page · raw message
fs/notify/fanotify/fanotify_user.c +354 -87
441 lines not on this page · raw message
fs/notify/fsnotify.c +103 -74
177 lines not on this page · raw message
fs/notify/inotify/inotify_user.c +32 -21
53 lines not on this page · raw message
fs/notify/mark.c +87 -50
137 lines not on this page · raw message
fs/open.c +42 -0
42 lines not on this page · raw message
include/linux/fsnotify.h +50 -20
70 lines not on this page · raw message
include/linux/fsnotify_backend.h +298 -58
356 lines not on this page · raw message
include/linux/sunrpc/svc.h +32 -61
93 lines not on this page · raw message
include/trace/events/rdma.h deleted +0 -168
168 lines not on this page · raw message
include/trace/events/rpcrdma.h +25 -19
44 lines not on this page · raw message
include/trace/events/sunrpc.h +45 -29
74 lines not on this page · raw message
include/trace/misc/fs.h new file +122 -0
122 lines not on this page · raw message
include/trace/misc/nfs.h new file +387 -0
387 lines not on this page · raw message
include/trace/misc/rdma.h new file +168 -0
168 lines not on this page · raw message
include/uapi/linux/nfsd/nfsfh.h deleted +0 -115
115 lines not on this page · raw message
kernel/printk/printk.c +46 -17
63 lines not on this page · raw message
kernel/time/timer.c +97 -67
164 lines not on this page · raw message
kernel/trace/ring_buffer.c +140 -93
233 lines not on this page · raw message
net/bluetooth/hci_debugfs.c +32 -16
48 lines not on this page · raw message
net/sunrpc/svc.c +102 -125
227 lines not on this page · raw message
net/sunrpc/svc_xprt.c +43 -25
68 lines not on this page · raw message
net/sunrpc/xprtrdma/svc_rdma_backchannel.c +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/mqueue/setting new file +1 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/mptcp/diag.sh +3 -3
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/mptcp/mptcp_connect.sh +7 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/reuseaddr_conflict.c +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/udpgro_fwd.sh +2 -8
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.