Skip to contentSkip to conversation

Linux 5.15.87

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Jan 12, 2023 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 5.15.87 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

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

 Makefile                                                       |    2 
 arch/arm/include/asm/thread_info.h                             |   13 
 arch/arm/nwfpe/Makefile                                        |    6 
 arch/arm64/boot/dts/qcom/sdm845-db845c.dts                     |    5 
 arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts           |    6 
 arch/powerpc/kernel/rtas.c                                     |   20 
 arch/riscv/include/asm/mmu.h                                   |    2 
 arch/riscv/include/asm/pgtable.h                               |    2 
 arch/riscv/include/asm/tlbflush.h                              |   18 
 arch/riscv/include/asm/uaccess.h                               |    2 
 arch/riscv/kernel/probes/simulate-insn.h                       |    4 
 arch/riscv/kernel/stacktrace.c                                 |    2 
 arch/riscv/mm/context.c                                        |   10 
 arch/riscv/mm/tlbflush.c                                       |   28 
 arch/x86/events/intel/uncore.h                                 |    1 
 arch/x86/events/intel/uncore_snbep.c                           |   22 
 arch/x86/kernel/cpu/bugs.c                                     |    2 
 arch/x86/kernel/cpu/mce/amd.c                                  |   37 -
 arch/x86/kernel/cpu/mce/core.c                                 |   95 +--
 arch/x86/kernel/cpu/mce/internal.h                             |   12 
 arch/x86/kernel/cpu/microcode/intel.c                          |    8 
 arch/x86/kernel/crash.c                                        |    4 
 arch/x86/kernel/ftrace.c                                       |    2 
 arch/x86/kernel/kprobes/core.c                                 |   10 
 arch/x86/kernel/kprobes/opt.c                                  |   28 
 arch/x86/kvm/vmx/nested.c                                      |   47 +
 arch/x86/kvm/vmx/sgx.c                                         |    4 
 block/bfq-iosched.c                                            |    2 
 block/blk-merge.c                                              |   10 
 block/mq-deadline.c                                            |   84 ++
 drivers/acpi/resource.c                                        |   78 ++
 drivers/acpi/x86/s2idle.c                                      |   10 
 drivers/ata/ahci.c                                             |   32 -
 drivers/base/dd.c                                              |    6 
 drivers/char/ipmi/ipmi_msghandler.c                            |    4 
 drivers/char/ipmi/ipmi_si_intf.c                               |   27 
 drivers/char/tpm/eventlog/acpi.c                               |   12 
 drivers/char/tpm/tpm_crb.c                                     |   29 -
 drivers/char/tpm/tpm_tis.c                                     |    9 
 drivers/cpufreq/cpufreq.c                                      |    2 
 drivers/crypto/ccp/sp-pci.c                                    |   11 
 drivers/crypto/n2_core.c                                       |    6 
 drivers/devfreq/devfreq.c                                      |    6 
 drivers/devfreq/governor_userspace.c                           |   12 
 drivers/firmware/efi/efi.c                                     |    4 
 drivers/firmware/efi/libstub/efistub.h                         |    2 
 drivers/firmware/efi/libstub/random.c                          |   42 +
 drivers/gpio/gpio-sifive.c                                     |    1 
 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c                        |   13 
 drivers/gpu/drm/amd/amdgpu/amdgpu_object.c                     |    3 
 drivers/gpu/drm/drm_connector.c                                |    3 
 drivers/gpu/drm/i915/display/intel_dsi_vbt.c                   |    4 
 drivers/gpu/drm/i915/gt/intel_migrate.c                        |    8 
 drivers/gpu/drm/i915/gvt/debugfs.c                             |   17 
 drivers/gpu/drm/i915/gvt/scheduler.c                           |    1 
 drivers/gpu/drm/imx/ipuv3-plane.c                              |   14 
 drivers/gpu/drm/ingenic/ingenic-drm-drv.c                      |    6 
 drivers/gpu/drm/meson/meson_viu.c                              |    5 
 drivers/gpu/drm/mgag200/mgag200_pll.c                          |    3 
 drivers/gpu/drm/panfrost/panfrost_drv.c                        |   27 
 drivers/gpu/drm/panfrost/panfrost_gem.c                        |   16 
 drivers/gpu/drm/panfrost/panfrost_gem.h                        |    5 
 drivers/gpu/drm/vmwgfx/vmwgfx_kms.c                            |    3 
 drivers/hid/hid-ids.h                                          |    3 
 drivers/hid/hid-multitouch.c                                   |    4 
 drivers/hid/hid-plantronics.c                                  |    9 
 drivers/infiniband/hw/mlx5/counters.c                          |    6 
 drivers/infiniband/hw/mlx5/qp.c                                |   49 +
 drivers/iommu/amd/init.c                                       |    7 
 drivers/md/dm-cache-metadata.c                                 |   54 +
 drivers/md/dm-cache-target.c                                   |   11 
 drivers/md/dm-clone-target.c                                   |    1 
 drivers/md/dm-integrity.c                                      |    2 
 drivers/md/dm-thin-metadata.c                                  |   60 +-
 drivers/md/dm-thin.c                                           |   18 
 drivers/md/md-bitmap.c                                         |   20 
 drivers/md/md.c                                                |    9 
 drivers/media/dvb-core/dmxdev.c                                |    8 
 drivers/media/dvb-core/dvbdev.c                                |    1 
 drivers/media/dvb-frontends/stv0288.c                          |    5 
 drivers/media/platform/s5p-mfc/s5p_mfc_ctrl.c                  |    4 
 drivers/media/platform/s5p-mfc/s5p_mfc_enc.c                   |   12 
 drivers/media/platform/s5p-mfc/s5p_mfc_opr_v6.c                |   14 
 drivers/mfd/mt6360-core.c                                      |   14 
 drivers/mmc/host/sdhci-sprd.c                                  |   16 
 drivers/mmc/host/vub300.c                                      |    2 
 drivers/mtd/spi-nor/core.c                                     |    2 
 drivers/net/bonding/bond_3ad.c                                 |    1 
 drivers/net/dsa/mv88e6xxx/Kconfig                              |    4 
 drivers/net/ethernet/amazon/ena/ena_com.c                      |   29 -
 drivers/net/ethernet/amazon/ena/ena_ethtool.c                  |    6 
 drivers/net/ethernet/amazon/ena/ena_netdev.c                   |   83 ++
 drivers/net/ethernet/amazon/ena/ena_netdev.h                   |   17 
 drivers/net/ethernet/amd/xgbe/xgbe-drv.c                       |    3 
 drivers/net/ethernet/amd/xgbe/xgbe-i2c.c                       |    4 
 drivers/net/ethernet/amd/xgbe/xgbe-mdio.c                      |    4 
 drivers/net/ethernet/hisilicon/hns3/hns3_enet.c                |  178 ++----
 drivers/net/ethernet/hisilicon/hns3/hns3_enet.h                |    7 
 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c        |   75 +-
 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c      |    3 
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c       |   30 -
 drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c      |   11 
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c              |    2 
 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c                |   12 
 drivers/net/ethernet/mellanox/mlx5/core/en_tc.h                |    4 
 drivers/net/ethernet/mellanox/mlx5/core/esw/acl/egress_lgcy.c  |    7 
 drivers/net/ethernet/mellanox/mlx5/core/esw/acl/ingress_lgcy.c |   33 -
 drivers/net/ethernet/mellanox/mlx5/core/eswitch.c              |   30 -
 drivers/net/ethernet/mellanox/mlx5/core/eswitch.h              |    6 
 drivers/net/ethernet/mellanox/mlx5/core/health.c               |    6 
 drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c          |    4 
 drivers/net/ethernet/mellanox/mlx5/core/main.c                 |    2 
 drivers/net/ethernet/microchip/sparx5/sparx5_main.c            |    2 
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c          |    8 
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.h                |   10 
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c               |    8 
 drivers/net/ethernet/renesas/ravb_main.c                       |    2 
 drivers/net/phy/xilinx_gmii2rgmii.c                            |    1 
 drivers/net/usb/rndis_host.c                                   |    3 
 drivers/net/veth.c                                             |    5 
 drivers/net/vmxnet3/vmxnet3_drv.c                              |    8 
 drivers/net/wireless/microchip/wilc1000/sdio.c                 |    1 
 drivers/nvme/host/core.c                                       |   32 -
 drivers/nvme/host/nvme.h                                       |    2 
 drivers/nvme/host/pci.c                                        |   37 -
 drivers/nvme/target/admin-cmd.c                                |   35 -
 drivers/nvme/target/passthru.c                                 |   11 
 drivers/of/kexec.c                                             |   10 
 drivers/parisc/led.c                                           |    3 
 drivers/pci/pci-sysfs.c                                        |   13 
 drivers/pci/pci.c                                              |    2 
 drivers/phy/qualcomm/phy-qcom-qmp.c                            |    8 
 drivers/remoteproc/remoteproc_core.c                           |    9 
 drivers/rtc/rtc-ds1347.c                                       |    2 
 drivers/soc/qcom/Kconfig                                       |    1 
 drivers/soc/ux500/ux500-soc-id.c                               |   10 
 drivers/soundwire/dmi-quirks.c                                 |    8 
 drivers/soundwire/intel.c                                      |    8 
 drivers/soundwire/qcom.c                                       |    8 
 drivers/soundwire/stream.c                                     |    4 
 drivers/staging/media/ipu3/ipu3-v4l2.c                         |   57 +-
 drivers/staging/media/tegra-video/csi.c                        |    4 
 drivers/staging/media/tegra-video/csi.h                        |    2 
 drivers/thermal/intel/int340x_thermal/processor_thermal_rfim.c |    4 
 drivers/usb/dwc3/dwc3-qcom.c                                   |   13 
 drivers/vdpa/vdpa_sim/vdpa_sim.c                               |    3 
 drivers/vdpa/vdpa_sim/vdpa_sim_blk.c                           |    4 
 drivers/vdpa/vdpa_sim/vdpa_sim_net.c                           |    4 
 drivers/vhost/vhost.c                                          |    4 
 drivers/vhost/vringh.c                                         |    5 
 drivers/vhost/vsock.c                                          |    9 
 drivers/video/fbdev/matrox/matroxfb_base.c                     |    4 
 fs/binfmt_elf_fdpic.c                                          |    5 
 fs/btrfs/backref.c                                             |    4 
 fs/btrfs/disk-io.c                                             |   35 -
 fs/btrfs/disk-io.h                                             |    6 
 fs/btrfs/ioctl.c                                               |    9 
 fs/btrfs/rcu-string.h                                          |    6 
 fs/btrfs/super.c                                               |   76 ++
 fs/btrfs/tree-defrag.c                                         |    6 
 fs/btrfs/volumes.c                                             |   43 -
 fs/ceph/caps.c                                                 |    2 
 fs/ceph/locks.c                                                |    4 
 fs/ceph/super.h                                                |    1 
 fs/cifs/cifsfs.c                                               |    8 
 fs/cifs/cifsglob.h                                             |   69 ++
 fs/cifs/cifsproto.h                                            |    4 
 fs/cifs/connect.c                                              |    4 
 fs/cifs/misc.c                                                 |    4 
 fs/cifs/smb2ops.c                                              |  143 ++---
 fs/dlm/lowcomms.c                                              |    9 
 fs/ext4/balloc.c                                               |    2 
 fs/ext4/ext4.h                                                 |    9 
 fs/ext4/ext4_jbd2.c                                            |    3 
 fs/ext4/extents.c                                              |    8 
 fs/ext4/extents_status.c                                       |    3 
 fs/ext4/fast_commit.c                                          |  285 ++++++----
 fs/ext4/fast_commit.h                                          |    7 
 fs/ext4/indirect.c                                             |   13 
 fs/ext4/inode.c                                                |   50 +
 fs/ext4/ioctl.c                                                |   13 
 fs/ext4/namei.c                                                |   47 -
 fs/ext4/orphan.c                                               |   26 
 fs/ext4/resize.c                                               |    6 
 fs/ext4/super.c                                                |   52 +
 fs/ext4/verity.c                                               |    2 
 fs/ext4/xattr.c                                                |   19 
 fs/f2fs/gc.c                                                   |    1 
 fs/f2fs/node.c                                                 |    3 
 fs/hfs/inode.c                                                 |   13 
 fs/hfsplus/hfsplus_fs.h                                        |    2 
 fs/hfsplus/inode.c                                             |   16 
 fs/hfsplus/options.c                                           |    4 
 fs/ksmbd/auth.c                                                |    3 
 fs/ksmbd/connection.c                                          |    7 
 fs/ksmbd/transport_tcp.c                                       |    5 
 fs/locks.c                                                     |   23 
 fs/mbcache.c                                                   |  121 +---
 fs/nfsd/nfs4xdr.c                                              |   11 
 fs/nfsd/nfssvc.c                                               |    2 
 fs/ntfs3/attrib.c                                              |   18 
 fs/ntfs3/attrlist.c                                            |    5 
 fs/ntfs3/bitmap.c                                              |    2 
 fs/ntfs3/file.c                                                |    4 
 fs/ntfs3/frecord.c                                             |   14 
 fs/ntfs3/fslog.c                                               |   35 -
 fs/ntfs3/fsntfs.c                                              |   10 
 fs/ntfs3/index.c                                               |    6 
 fs/ntfs3/inode.c                                               |    9 
 fs/ntfs3/record.c                                              |   10 
 fs/ntfs3/super.c                                               |    9 
 fs/overlayfs/dir.c                                             |   46 +
 fs/pnode.c                                                     |    2 
 fs/pstore/ram.c                                                |    2 
 fs/pstore/zone.c                                               |    2 
 fs/quota/dquot.c                                               |    2 
 fs/udf/inode.c                                                 |    2 
 include/linux/devfreq.h                                        |    7 
 include/linux/efi.h                                            |    2 
 include/linux/fs.h                                             |    6 
 include/linux/mbcache.h                                        |   33 -
 include/linux/mlx5/device.h                                    |    5 
 include/linux/mlx5/mlx5_ifc.h                                  |    3 
 include/linux/netfilter/ipset/ip_set.h                         |    2 
 include/linux/nvme.h                                           |    3 
 include/linux/sunrpc/rpc_pipe_fs.h                             |    5 
 include/net/mptcp.h                                            |   12 
 include/net/netfilter/nf_tables.h                              |   25 
 include/sound/soc-dai.h                                        |   32 -
 include/trace/events/ext4.h                                    |    7 
 include/trace/events/jbd2.h                                    |   44 -
 io_uring/io_uring.c                                            |   13 
 kernel/events/core.c                                           |    6 
 kernel/kcsan/core.c                                            |   50 +
 kernel/rcu/tasks.h                                             |   20 
 kernel/trace/Kconfig                                           |    2 
 kernel/trace/trace.c                                           |   38 -
 kernel/trace/trace.h                                           |   27 
 kernel/trace/trace_eprobe.c                                    |    3 
 kernel/trace/trace_events_hist.c                               |   11 
 kernel/trace/trace_events_synth.c                              |    2 
 kernel/trace/trace_probe.c                                     |    2 
 mm/compaction.c                                                |   18 
 net/caif/cfctrl.c                                              |    6 
 net/core/filter.c                                              |    7 
 net/ipv4/syncookies.c                                          |    7 
 net/mptcp/subflow.c                                            |   76 ++
 net/netfilter/ipset/ip_set_core.c                              |    7 
 net/netfilter/ipset/ip_set_hash_ip.c                           |   14 
 net/netfilter/ipset/ip_set_hash_ipmark.c                       |   13 
 net/netfilter/ipset/ip_set_hash_ipport.c                       |   13 
 net/netfilter/ipset/ip_set_hash_ipportip.c                     |   13 
 net/netfilter/ipset/ip_set_hash_ipportnet.c                    |   13 
 net/netfilter/ipset/ip_set_hash_net.c                          |   17 
 net/netfilter/ipset/ip_set_hash_netiface.c                     |   15 
 net/netfilter/ipset/ip_set_hash_netnet.c                       |   23 
 net/netfilter/ipset/ip_set_hash_netport.c                      |   19 
 net/netfilter/ipset/ip_set_hash_netportnet.c                   |   40 -
 net/netfilter/nf_tables_api.c                                  |  261 ++++++---
 net/nfc/netlink.c                                              |   52 +
 net/packet/af_packet.c                                         |   20 
 net/sched/cls_tcindex.c                                        |   12 
 net/sched/sch_atm.c                                            |    5 
 net/sched/sch_cbq.c                                            |    4 
 net/sunrpc/auth_gss/auth_gss.c                                 |   19 
 net/sunrpc/auth_gss/svcauth_gss.c                              |    9 
 security/device_cgroup.c                                       |   33 +
 security/integrity/ima/ima_template.c                          |    5 
 security/integrity/platform_certs/load_uefi.c                  |    1 
 sound/pci/hda/patch_realtek.c                                  |   50 +
 sound/soc/codecs/hdac_hda.c                                    |   22 
 sound/soc/codecs/max98373-sdw.c                                |    2 
 sound/soc/codecs/rt1308-sdw.c                                  |    2 
 sound/soc/codecs/rt1316-sdw.c                                  |    2 
 sound/soc/codecs/rt5682-sdw.c                                  |    2 
 sound/soc/codecs/rt700.c                                       |    2 
 sound/soc/codecs/rt711-sdca.c                                  |    2 
 sound/soc/codecs/rt711.c                                       |    2 
 sound/soc/codecs/rt715-sdca.c                                  |    2 
 sound/soc/codecs/rt715.c                                       |    2 
 sound/soc/codecs/sdw-mockup.c                                  |    2 
 sound/soc/codecs/wcd938x.c                                     |    2 
 sound/soc/codecs/wsa881x.c                                     |    2 
 sound/soc/intel/boards/bytcr_rt5640.c                          |   15 
 sound/soc/intel/boards/sof_sdw.c                               |    6 
 sound/soc/intel/skylake/skl-pcm.c                              |    7 
 sound/soc/jz4740/jz4740-i2s.c                                  |   39 +
 sound/soc/qcom/sdm845.c                                        |    4 
 sound/soc/qcom/sm8250.c                                        |    4 
 sound/soc/sof/intel/hda-dai.c                                  |    7 
 sound/usb/line6/driver.c                                       |    3 
 sound/usb/line6/midi.c                                         |    6 
 sound/usb/line6/midibuf.c                                      |   25 
 sound/usb/line6/midibuf.h                                      |    5 
 sound/usb/line6/pod.c                                          |    3 
 tools/objtool/check.c                                          |    2 
 tools/perf/util/cgroup.c                                       |   23 
 tools/perf/util/data.c                                         |    2 
 tools/perf/util/dwarf-aux.c                                    |   23 
 tools/testing/ktest/ktest.pl                                   |   23 
 tools/testing/selftests/Makefile                               |   26 
 tools/testing/selftests/bpf/config                             |    4 
 tools/testing/selftests/bpf/prog_tests/bpf_nf.c                |   48 -
 tools/testing/selftests/bpf/progs/test_bpf_nf.c                |  109 ---
 tools/testing/selftests/lib.mk                                 |    5 
 305 files changed, 3238 insertions(+), 1866 deletions(-)

Adam Vodopjan (1):
ata: ahci: Fix PCS quirk application for suspend

Adham Faris (1):
net/mlx5e: Fix hw mtu initializing at XDP SQ allocation

Aditya Garg (2):
hfsplus: fix bug causing custom uid and gid being unable to be assigned with mount
efi: Add iMac Pro 2017 to uefi skip cert quirk

Adrian Freund (1):
ACPI: resource: do IRQ override on Lenovo 14ALC7

Aidan MacDonald (1):
ASoC: jz4740-i2s: Handle independent FIFO flush bits

Alex Deucher (2):
drm/amdgpu: handle polaris10/11 overlap asics (v2) drm/amdgpu: make display pinning more flexible (v2)

Alexander Antonov (2):
perf/x86/intel/uncore: Disable I/O stacks to PMU mapping on ICX-D perf/x86/intel/uncore: Clear attr_update properly

Alexander Aring (2):
fs: dlm: fix sock release if listen fails
fs: dlm: retry accept() until -EAGAIN or error returns

Alexander Potapenko (1):
fs: ext4: initialize fsdata in pagecache_write()

Alexander Sverdlin (1):
mtd: spi-nor: Check for zero erase size in spi_nor_find_best_erase_type()

Ard Biesheuvel (1):
efi: random: combine bootloader provided RNG seed with RNG protocol output

Arnd Bergmann (1):
hfs/hfsplus: use WARN_ON for sanity check

Artem Egorkine (2):
ALSA: line6: correct midi status byte when receiving data from podxt
ALSA: line6: fix stack overflow in line6_midi_transmit

Ashok Raj (1):
x86/microcode/intel: Do not retry microcode reloading on the APs

Baokun Li (8):
ext4: add inode table check in __ext4_get_inode_loc to aovid possible infinite loop
ext4: fix use-after-free in ext4_orphan_cleanup
ext4: add EXT4_IGET_BAD flag to prevent unexpected bad inode
ext4: add helper to check quota inums
ext4: fix bug_on in __es_tree_search caused by bad quota inode
ext4: fix bug_on in __es_tree_search caused by bad boot loader inode
ext4: fix corruption when online resizing a 1K bigalloc fs
ext4: correct inconsistent error msg in nojournal mode

Ben Dooks (1):
riscv: uaccess: fix type of 0 variable on error in get_user()

Biju Das (1):
ravb: Fix "failed to switch device to config mode" message during unbind

Bixuan Cui (1):
jbd2: use the correct print format

Björn Töpel (1):
riscv, kprobes: Stricter c.jr/c.jalr decoding

Boris Burkov (1):
btrfs: fix resolving backrefs for inline extent followed by prealloc

Borislav Petkov (1):
x86/mce: Get rid of msr_ops

Carlo Caione (1):
drm/meson: Reduce the FIFO lines held when AFBC is not used

ChiYuan Huang (1):
mfd: mt6360: Add bounds checking in Regmap read/write call-backs

Chris Chiu (1):
ALSA: hda/realtek: Apply dual codec fixup for Dell Latitude laptops

Chris Mi (1):
net/mlx5e: Always clear dest encap in neigh-update-del

Christian Brauner (1):
pnode: terminate at peers of source

Christoph Hellwig (4):
nvme: fix the NVME_CMD_EFFECTS_CSE_MASK definition
nvmet: don't defer passthrough commands with trivial effects to the workqueue
nvmet: use NVME_CMD_EFFECTS_CSUPP instead of open coding it
nvme: also return I/O command effects from nvme_command_effects

Christophe Leroy (1):
objtool: Fix SEGFAULT

Chuck Lever (1):
SUNRPC: Don't leak netobj memory when gss_read_proxy_verf() fails

Corentin Labbe (1):
crypto: n2 - add missing hash statesize

Damien Le Moal (2):
block: mq-deadline: Do not break sequential write streams to zoned HDDs
block: mq-deadline: Fix dd_finish_request() for zoned devices

Dan Carpenter (3):
fs/ntfs3: Delete duplicate condition in ntfs_read_mft()
ipmi: fix use after free in _ipmi_destroy_user() drm/i915: unpin on error in intel_vgpu_shadow_mm_pin()

Daniil Tatianin (2):
qlcnic: prevent ->dcb use-after-free on qlcnic_dcb_enable() failure drivers/net/bonding/bond_3ad: return when there's no aggregator

David Arinzon (7):
net: ena: Fix toeplitz initial hash value
net: ena: Don't register memory info on XDP exchange
net: ena: Account for the number of processed bytes in XDP
net: ena: Use bitmask to indicate packet redirection
net: ena: Fix rx_copybreak value update
net: ena: Set default value for RX interrupt moderation
net: ena: Update NUMA TPH hint register upon NUMA node update

Deren Wu (1):
mmc: vub300: fix warning - do not call blocking ops when !TASK_RUNNING

Dragos Tatulea (1):
net/mlx5e: IPoIB, Don't allow CQE compression to be turned on by default

Edward Lo (7):
fs/ntfs3: Validate data run offset
fs/ntfs3: Add null pointer check to attr_load_runs_vcn fs/ntfs3: Add null pointer check for inode operations fs/ntfs3: Validate attribute name offset fs/ntfs3: Validate buffer length while parsing index fs/ntfs3: Validate resident attribute name fs/ntfs3: Validate index root when initialize NTFS security

Eric Biggers (12):
ext4: fix leaking uninitialized memory in fast-commit journal
ext4: remove unused enum EXT4_FC_COMMIT_FAILED
ext4: use ext4_debug() instead of jbd_debug()
ext4: introduce EXT4_FC_TAG_BASE_LEN helper
ext4: factor out ext4_fc_get_tl()
ext4: fix potential out of bound read in ext4_fc_replay_scan()
ext4: disable fast-commit of encrypted dir operations
ext4: don't set up encryption key during jbd2 transaction
ext4: add missing validation of fast-commit record lengths
ext4: fix unaligned memory access in ext4_fc_reserve_space()
ext4: fix off-by-one errors in fast-commit block filling
ext4: don't allow journal inode to have encrypt flag

Eric Dumazet (1):
net/af_packet: make sure to pull mac header

Eric Whitney (1):
ext4: fix delayed allocation bug in ext4_clu_mapped for bigalloc + inline

Erik Schumacher (1):
ACPI: resource: do IRQ override on XMG Core 15

Florian Westphal (1):
mptcp: mark ops structures as ro_after_init

Florian-Ewald Mueller (1):
md/bitmap: Fix bitmap chunk size overflow issues

Gaosheng Cui (1):
ext4: fix undefined behavior in bit shift for ext4_check_flag_values

Geetha sowjanya (1):
octeontx2-pf: Fix lmtst ID used in aura free

Greg Kroah-Hartman (1):

      Linux 5.15.87

Guo Ren (1):
riscv: stacktrace: Fixup ftrace_graph_ret_addr retp argument

Hangbin Liu (1):
net/af_packet: add VLAN support for AF_PACKET SOCK_RAW GSO

Hanjun Guo (3):
tpm: acpi: Call acpi_put_table() to fix memory leak
tpm: tpm_crb: Add the missed acpi_put_table() to fix memory leak
tpm: tpm_tis: Add the missed acpi_put_table() to fix memory leak

Hans de Goede (1):
ASoC: Intel: bytcr_rt5640: Add quirk for the Advantech MICA-071 tablet

Hao Chen (1):
net: hns3: refactor hns3_nic_reuse_page()

Harshit Mogalapalli (1):
io_uring: Fix unsigned 'res' comparison with zero in io_fixup_rw_res()

Hawkins Jiawei (2):
fs/ntfs3: Fix slab-out-of-bounds read in run_unpack
net: sched: fix memory leak in tcindex_set_parms

Horatiu Vultur (1):
net: sparx5: Fix reading of the MAC address

Huaxin Lu (1):
ima: Fix a potential NULL pointer access in ima_restore_measurement_list

Ian Abbott (1):
rtc: ds1347: fix value written to century register

Isaac J. Manjarres (1):
driver core: Fix bus_type.match() error handling in __driver_attach()

Jaegeuk Kim (1):
f2fs: allow to read node block after shutdown

Jakub Kicinski (1):
bpf: pull before calling skb_postpull_rcsum()

Jamal Hadi Salim (2):
net: sched: atm: dont intepret cls results when asked to drop
net: sched: cbq: dont intepret cls results when asked to drop

Jan Kara (7):
ext4: avoid BUG_ON when creating xattrs
ext4: initialize quota before expanding inode in setproject ioctl
ext4: avoid unaccounted block allocation when expanding inode
mbcache: automatically delete entries from cache on freeing
ext4: fix deadlock due to mbcache entry corruption
udf: Fix extension of the last extent in the file
mbcache: Avoid nesting of cache->c_list_lock under bit locks

Jason A. Donenfeld (2):
media: stv0288: use explicitly signed char
ARM: ux500: do not directly dereference __iomem

Jason Yan (1):
ext4: goto right label 'failed_mount3a'

Jeff Layton (3):
nfsd: shut down the NFSv4 state objects before the filecache
filelock: new helper: vfs_inode_has_locks
nfsd: fix handling of readdir in v4root vs. mount upcall timeout

Jens Axboe (3):
ARM: renumber bits related to _TIF_WORK_MASK
io_uring: check for valid register opcode earlier
block: don't allow splitting of a REQ_NOWAIT bio

Jian Shen (2):
net: hns3: fix miss L3E checking for rx packet
net: hns3: fix VF promisc mode not update when mac table full

Jie Wang (2):
net: hns3: add interrupts re-initialization while doing VF FLR
net: hns3: fix return value check bug of rx copybreak

Jiguang Xiao (1):
net: amd-xgbe: add missed tasklet_kill

Jiri Pirko (1):
net/mlx5: Add forgotten cleanup calls into mlx5_init_once() error path

Jiri Slaby (SUSE) (1):
ACPI: resource: do IRQ override on LENOVO IdeaPad

Jocelyn Falempe (1):

      drm/mgag200: Fix PLL setup for G200_SE_A rev >=4

Johan Hovold (1):

      phy: qcom-qmp-combo: fix sc8180x reset

Johnny S. Lee (1):
net: dsa: mv88e6xxx: depend on PTP conditionally

José Expósito (1):
HID: multitouch: fix Asus ExpertBook P2 P2451FA trackpoint

Jozsef Kadlecsik (2):
netfilter: ipset: fix hash:net,port,net hang with /0 subnet
netfilter: ipset: Rework long task execution when adding/deleting entries

Kant Fan (1):
PM/devfreq: governor: Add a private governor_data for governor

Keita Suzuki (1):
media: dvb-core: Fix double free in dvb_register_device()

Keith Busch (2):
nvme-pci: fix mempool alloc size
nvme-pci: fix page size checks

Kim Phillips (1):
iommu/amd: Fix ivrs_acpihid cmdline parsing code

Klaus Jensen (1):
nvme-pci: fix doorbell buffer value endianness

Krzysztof Kozlowski (2):
arm64: dts: qcom: sdm845-db845c: correct SPI2 pins drive strength
arm64: dts: qcom: sdm850-lenovo-yoga-c630: correct I2C12 pins drive strength

Linus Torvalds (1):
hfs/hfsplus: avoid WARN_ON() for sanity check, use proper error handling

Luca Ceresoli (2):
staging: media: tegra-video: fix chan->mipi value on error
staging: media: tegra-video: fix device_node use after free

Luca Stefani (1):
pstore: Properly assign mem_type property

Luo Meng (5):
dm thin: resume even if in FAIL mode
dm thin: Fix UAF in run_timer_softirq()
dm integrity: Fix UAF in dm_integrity_dtr()
dm clone: Fix UAF in clone_dtr()
dm cache: Fix UAF in destroy()

Luís Henriques (2):
ext4: remove trailing newline from ext4_msg() message
ext4: fix error code return to user-space in ext4_get_branch()

Manivannan Sadhasivam (1):
soc: qcom: Select REMAP_MMIO for LLCC driver

Maor Gottlieb (1):
RDMA/mlx5: Fix validation of max_rd_atomic caps for DC

Marco Elver (1):
kcsan: Instrument memcpy/memset/memmove with newer Clang

Maria Yu (1):
remoteproc: core: Do pm_relax when in RPROC_OFFLINE state

Mario Limonciello (2):
crypto: ccp - Add support for TEE for PCI ID 0x14CA Revert "ACPI: PM: Add support for upcoming AMD uPEP HID AMDI007"

Masami Hiramatsu (Google) (5):
x86/kprobes: Fix kprobes instruction boudary check with CONFIG_RETHUNK x86/kprobes: Fix optprobe optimization check with CONFIG_RETHUNK
tracing: Fix complicated dependency of CONFIG_TRACER_MAX_TRACE perf probe: Use dwarf_attr_integrate as generic DWARF attr accessor perf probe: Fix to get the DW_AT_decl_file and DW_AT_call_file as unsinged data

Matthew Auld (3):
drm/i915/migrate: don't check the scratch page drm/i915/migrate: fix offset calculation drm/i915/migrate: fix length calculation

Matthieu Baerts (3):
mptcp: remove MPTCP 'ifdef' in TCP SYN cookies
mptcp: dedicated request sock for subflow in v6
mptcp: use proper req destructor for IPv6

Maximilian Luz (1):
ipu3-imgu: Fix NULL pointer dereference in imgu_subdev_set_selection()

Miaoqian Lin (5):
usb: dwc3: qcom: Fix memory leak in dwc3_qcom_interconnect_init
nfc: Fix potential resource leaks
net: phy: xgmiitorgmii: Fix refcount leak in xgmiitorgmii_probe
gpio: sifive: Fix refcount leak in sifive_gpio_probe perf tools: Fix resources leak in perf_data__open_dir()

Michael S. Tsirkin (1):
PCI: Fix pci_device_is_present() for VFs by checking PF

Michael Walle (1):
wifi: wilc1000: sdio: fix module autoloading

Mickaël Salaün (1):
selftests: Use optional USERCFLAGS and USERLDFLAGS

Mike Snitzer (2):
dm cache: Fix ABBA deadlock between shrink_slab and dm_cache_metadata_abort dm cache: set needs_check flag after aborting metadata

Mikko Kovanen (1):
drm/i915/dsi: fix VBT send packet port selection for dual link DSI

Mikulas Patocka (1):
md: fix a crash in mempool_free

Moshe Shemesh (1):
net/mlx5: E-Switch, properly handle ingress tagged packets on VST

Muhammad Usama Anjum (1):
selftests: set the BUILD variable to absolute path

NARIBAYASHI Akira (1):
mm, compaction: fix fast_isolate_around() to stay within boundaries

Namhyung Kim (2):
perf/core: Call LSM hook after copying perf_event_attr
perf stat: Fix handling of --for-each-cgroup with --bpf-counters to match non BPF mode

Namjae Jeon (1):
ksmbd: fix infinite loop in ksmbd_conn_handler_loop()

Nathan Lynch (2):
powerpc/rtas: avoid device tree lookups in rtas_os_term() powerpc/rtas: avoid scheduling in rtas_os_term()

Nick Desaulniers (1):
ARM: 9256/1: NWFPE: avoid compiler-generated __aeabi_uldivmod

Nikolay Borisov (1):
btrfs: move missing device handling in a dedicate function

Pablo Neira Ayuso (4):
netfilter: nf_tables: consolidate set description
netfilter: nf_tables: add function to create set stateful expressions
netfilter: nf_tables: perform type checking for existing sets
netfilter: nf_tables: honor set timeout and garbage collection updates

Paul E. McKenney (1):
rcu-tasks: Simplify trc_read_check_handler() atomic operations

Paul Menzel (1):
fbdev: matroxfb: G200eW: Increase max memory from 1 MB to 16 MB

Paulo Alcantara (2):
cifs: fix oops during encryption
cifs: fix confusing debug message

Pavel Begunkov (1):
io_uring: fix CQ waiting timeout handling

Pavel Machek (1):
f2fs: should put a page when checking the summary info

Peng Li (1):
net: hns3: extract macro to simplify ring stats update code

Philipp Jungkamp (1):
ALSA: patch_realtek: Fix Dell Inspiron Plus 16

Philipp Zabel (1):
drm/imx: ipuv3-plane: Fix overlay plane width

Pierre-Louis Bossart (3):
soundwire: dmi-quirks: add quirk variant for LAPBC710 NUC15
ASoC: Intel/SOF: use set_stream() instead of set_tdm_slots() for HDAudio ASoC/SoundWire: dai: expand 'stream' concept beyond SoundWire

Qiujun Huang (1):
pstore/zone: Use GFP_ATOMIC to allocate zone buffer

Qu Wenruo (2):
btrfs: check superblock to ensure the fs was not modified at thaw time
btrfs: make thaw time super block check to also verify checksum

Rob Herring (1):
of/kexec: Fix reading 32-bit "linux,initrd-{start,end}" values

Rodrigo Branco (1):
x86/bugs: Flush IBP in ib_prctl_set()

Roi Dayan (1):
net/mlx5e: TC, Refactor mlx5e_tc_add_flow_mod_hdr() to get flow attr

Ronak Doshi (1):
vmxnet3: correctly report csum_level for encapsulated packet

Sascha Hauer (1):
PCI/sysfs: Fix double free in error path

Sasha Levin (4):
Revert "selftests/bpf: Add test for unstable CT lookup API"
phy: qcom-qmp-combo: fix out-of-bounds clock access
btrfs: replace strncpy() with strscpy()
btrfs: fix an error handling path in btrfs_defrag_leaves()

Sean Christopherson (3):
KVM: VMX: Resume guest immediately when injecting #GP on ECREATE
KVM: nVMX: Inject #GP, not #UD, if "generic" VMXON CR0/CR4 check fails
KVM: nVMX: Properly expose ENABLE_USR_WAIT_PAUSE control to L1

Sergey Matyukevich (1):
riscv: mm: notify remote harts about mmu cache updates

Shang XiaoJing (1):
parisc: led: Fix potential null-ptr-deref in start_task()

Shawn Bohrer (1):
veth: Fix race with AF_XDP exposing old or uninitialized descriptors

Shay Drory (2):
net/mlx5: Avoid recovery in probe flows RDMA/mlx5: Fix mlx5_ib_get_hw_stats when used for device

Shigeru Yoshida (1):
fs/ntfs3: Fix memory leak on ntfs_fill_super() error path

Simon Ser (1):
drm/connector: send hotplug uevent on connector cleanup

Smitha T Murthy (3):
media: s5p-mfc: Fix to handle reference queue during finishing
media: s5p-mfc: Clear workbit to handle error condition
media: s5p-mfc: Fix in register read and write for H264

Srinivas Pandruvada (1):

      thermal: int340x: Add missing attribute for data rate base

Stefano Garzarella (3):
vringh: fix range used in iotlb_translate()
vhost: fix range used in translate_desc()
vdpa_sim: fix vringh initialization in vdpasim_queue_ready()

Steve French (1):
cifs: fix missing display of three mount options

Steven Price (1):
drm/panfrost: Fix GEM handle creation ref-counting

Steven Rostedt (2):
kest.pl: Fix grub2 menu handling for rebooting ktest.pl minconfig: Unset configs instead of just removing them

Steven Rostedt (Google) (3):
ftrace/x86: Add back ftrace_expected for ftrace bug reports
tracing: Fix race where eprobes can be called before the event tracing/probes: Handle system names with hyphens

Szymon Heidrich (1):
usb: rndis_host: Secure rndis_query check against int overflow

Takashi Iwai (2):
media: dvb-core: Fix UAF due to refcount races at releasing x86/kexec: Fix double-free of elf header buffer

Tamim Khan (1):
ACPI: resource: Skip IRQ override on Asus Vivobook K3402ZA/K3502ZA

Terry Junge (1):
HID: plantronics: Additional PIDs for double volume key presses quirk

Tetsuo Handa (3):
fs/ntfs3: Use __GFP_NOWARN allocation at wnd_init() fs/ntfs3: Use __GFP_NOWARN allocation at ntfs_fill_super() fs/ntfs3: don't hold ni_lock when calling truncate_setsize()

Wang Weiyang (1):
device_cgroup: Roll back to original exceptions after copy failure

Wang Yufen (1):
binfmt: Fix error return code in load_elf_fdpic_binary()

Wenchao Chen (1):
mmc: sdhci-sprd: Disable CLK_AUTO when the clock is less than 400K

William Liu (1):
ksmbd: check nt_len to be at least CIFS_ENCPWD_SIZE in ksmbd_decode_ntlmssp_auth_blob

Xiubo Li (1):
ceph: switch to vfs_inode_has_locks() to fix file lock bug

Yang Jihong (1):
tracing: Fix infinite loop in tracing_read_pipe on overflowed print_trace_line

Yanjun Zhang (1):
nvme: fix multipath crash caused by flush request when blktrace is enabled

Yazen Ghannam (1):
x86/MCE/AMD: Clear DFR errors found in THR handler

Ye Bin (6):
ext4: fix reserved cluster accounting in __es_remove_extent()
ext4: fix uninititialized value in 'ext4_evict_inode'
ext4: init quota for 'old.inode' in 'ext4_rename'
ext4: fix kernel BUG in 'ext4_write_inline_data_end()'
ext4: fix inode leak in ext4_xattr_inode_create() on an error path
ext4: allocate extended attribute value in vmalloc area

Yin Xiujiang (1):
fs/ntfs3: Fix slab-out-of-bounds in r_page

Yongqiang Liu (1):
cpufreq: Init completion before kobject_init_and_add()

Yu Kuai (1):
block, bfq: fix uaf for bfqq in bfq_exit_icq_bfqq

Yuan Can (2):
drm/ingenic: Fix missing platform_driver_unregister() call in ingenic_drm_init() vhost/vsock: Fix error handling in vhost_vsock_init()

Zack Rusin (1):
drm/vmwgfx: Validate the box size for the snooped cursor

Zhang Tianci (1):
ovl: Use ovl mounter's fsuid and fsgid in ovl_link()

Zhang Yi (2):
ext4: silence the warning when evicting inode with dioread_nolock
ext4: check and assert if marking an no_delete evicting inode dirty

Zhang Yuchen (1):
ipmi: fix long wait in unload when IPMI disconnect

Zheng Yejian (3):
tracing/hist: Fix out-of-bound write on 'action_data.var_ref_idx' tracing/hist: Fix wrong return value in parse_action_params()
tracing: Fix issue of missing one synthetic field

Zhengchao Shao (1):
caif: fix memory leak in cfctrl_linkup_request()

Zhenyu Wang (2):
drm/i915/gvt: fix gvt debugfs destroy drm/i915/gvt: fix vgpu debugfs clean in remove

Zhihao Cheng (2):
dm thin: Fix ABBA deadlock between shrink_slab and dm_pool_abort_metadata dm thin: Use last transaction's pmd->root when commit failed

edward lo (2):
fs/ntfs3: Validate BOOT record_size fs/ntfs3: Add overflow check for attribute size

minoura makoto (1):
SUNRPC: ensure the matching upcall is in-flight upon downcall

ruanjinjie (1):
vdpa_sim: fix possible memory leak in vdpasim_net_init() and vdpasim_blk_init()

void0red (1):
btrfs: fix extent map use-after-free when handling missing device in read_one_chunk

author maintainer
#1 lore raw
Makefile +1 -1
index 9f5d2e87150e..6a9589c7b1bc 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 15
-SUBLEVEL = 86
+SUBLEVEL = 87
 EXTRAVERSION =
 NAME = Trick or Treat
 
arch/arm/include/asm/thread_info.h +7 -6
index 9a18da3e10cc..b682189a2b5d 100644
@@ -129,15 +129,16 @@ extern int vfp_restore_user_hwstate(struct user_vfp *,
 #define TIF_NEED_RESCHED	1	/* rescheduling necessary */
 #define TIF_NOTIFY_RESUME	2	/* callback before returning to user */
 #define TIF_UPROBE		3	/* breakpointed or singlestepping */
-#define TIF_SYSCALL_TRACE	4	/* syscall trace active */
-#define TIF_SYSCALL_AUDIT	5	/* syscall auditing active */
-#define TIF_SYSCALL_TRACEPOINT	6	/* syscall tracepoint instrumentation */
-#define TIF_SECCOMP		7	/* seccomp syscall filtering active */
-#define TIF_NOTIFY_SIGNAL	8	/* signal notifications exist */
+#define TIF_NOTIFY_SIGNAL	4	/* signal notifications exist */
 
 #define TIF_USING_IWMMXT	17
 #define TIF_MEMDIE		18	/* is terminating due to OOM killer */
-#define TIF_RESTORE_SIGMASK	20
+#define TIF_RESTORE_SIGMASK	19
+#define TIF_SYSCALL_TRACE	20	/* syscall trace active */
+#define TIF_SYSCALL_AUDIT	21	/* syscall auditing active */
+#define TIF_SYSCALL_TRACEPOINT	22	/* syscall tracepoint instrumentation */
+#define TIF_SECCOMP		23	/* seccomp syscall filtering active */
+
 
 #define _TIF_SIGPENDING		(1 << TIF_SIGPENDING)
 #define _TIF_NEED_RESCHED	(1 << TIF_NEED_RESCHED)
arch/arm/nwfpe/Makefile +6 -0
index 303400fa2cdf..2aec85ab1e8b 100644
@@ -11,3 +11,9 @@ nwfpe-y				+= fpa11.o fpa11_cpdo.o fpa11_cpdt.o \
 				   entry.o
 
 nwfpe-$(CONFIG_FPE_NWFPE_XP)	+= extended_cpdo.o
+
+# Try really hard to avoid generating calls to __aeabi_uldivmod() from
+# float64_rem() due to loop elision.
+ifdef CONFIG_CC_IS_CLANG
+CFLAGS_softfloat.o	+= -mllvm -replexitval=never
+endif
arch/arm64/boot/dts/qcom/sdm845-db845c.dts +4 -1
index 2d5533dd4ec2..146d3cd3f1b3 100644
@@ -1045,7 +1045,10 @@ &wifi {
 
 /* PINCTRL - additions to nodes defined in sdm845.dtsi */
 &qup_spi2_default {
-	drive-strength = <16>;
+	pinconf {
+		pins = "gpio27", "gpio28", "gpio29", "gpio30";
+		drive-strength = <16>;
+	};
 };
 
 &qup_uart3_default{
arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts +4 -2
index 617a634ac905..834fb463f99e 100644
@@ -475,8 +475,10 @@ pinconf {
 };
 
 &qup_i2c12_default {
-	drive-strength = <2>;
-	bias-disable;
+	pinmux {
+		drive-strength = <2>;
+		bias-disable;
+	};
 };
 
 &qup_uart6_default {
arch/powerpc/kernel/rtas.c +16 -4
index 7834ce3aa7f1..2dae702e7a5a 100644
@@ -788,6 +788,7 @@ void __noreturn rtas_halt(void)
 
 /* Must be in the RMO region, so we place it here */
 static char rtas_os_term_buf[2048];
+static s32 ibm_os_term_token = RTAS_UNKNOWN_SERVICE;
 
 void rtas_os_term(char *str)
 {
@@ -799,16 +800,20 @@ void rtas_os_term(char *str)
 	 * this property may terminate the partition which we want to avoid
 	 * since it interferes with panic_timeout.
 	 */
-	if (RTAS_UNKNOWN_SERVICE == rtas_token("ibm,os-term") ||
-	    RTAS_UNKNOWN_SERVICE == rtas_token("ibm,extended-os-term"))
+	if (ibm_os_term_token == RTAS_UNKNOWN_SERVICE)
 		return;
 
 	snprintf(rtas_os_term_buf, 2048, "OS panic: %s", str);
 
+	/*
+	 * Keep calling as long as RTAS returns a "try again" status,
+	 * but don't use rtas_busy_delay(), which potentially
+	 * schedules.
+	 */
 	do {
-		status = rtas_call(rtas_token("ibm,os-term"), 1, 1, NULL,
+		status = rtas_call(ibm_os_term_token, 1, 1, NULL,
 				   __pa(rtas_os_term_buf));
-	} while (rtas_busy_delay(status));
+	} while (rtas_busy_delay_time(status));
 
 	if (status != 0)
 		printk(KERN_EMERG "ibm,os-term call failed %d\n", status);
@@ -1167,6 +1172,13 @@ void __init rtas_initialize(void)
 	no_entry = of_property_read_u32(rtas.dev, "linux,rtas-entry", &entry);
 	rtas.entry = no_entry ? rtas.base : entry;
 
+	/*
+	 * Discover these now to avoid device tree lookups in the
+	 * panic path.
+	 */
+	if (of_property_read_bool(rtas.dev, "ibm,extended-os-term"))
+		ibm_os_term_token = rtas_token("ibm,os-term");
+
 	/* If RTAS was found, allocate the RMO buffer for it and look for
 	 * the stop-self token if any
 	 */
arch/riscv/include/asm/mmu.h +2 -0
index 0099dc116168..5ff1f19fd45c 100644
@@ -19,6 +19,8 @@ typedef struct {
 #ifdef CONFIG_SMP
 	/* A local icache flush is needed before user execution can resume. */
 	cpumask_t icache_stale_mask;
+	/* A local tlb flush is needed before user execution can resume. */
+	cpumask_t tlb_stale_mask;
 #endif
 } mm_context_t;
 
arch/riscv/include/asm/pgtable.h +1 -1
index 39b550310ec6..799c16e06525 100644
@@ -386,7 +386,7 @@ static inline void update_mmu_cache(struct vm_area_struct *vma,
 	 * Relying on flush_tlb_fix_spurious_fault would suffice, but
 	 * the extra traps reduce performance.  So, eagerly SFENCE.VMA.
 	 */
-	local_flush_tlb_page(address);
+	flush_tlb_page(vma, address);
 }
 
 static inline void update_mmu_cache_pmd(struct vm_area_struct *vma,
arch/riscv/include/asm/tlbflush.h +18 -0
index 801019381dea..907b9efd39a8 100644
@@ -22,6 +22,24 @@ static inline void local_flush_tlb_page(unsigned long addr)
 {
 	ALT_FLUSH_TLB_PAGE(__asm__ __volatile__ ("sfence.vma %0" : : "r" (addr) : "memory"));
 }
+
+static inline void local_flush_tlb_all_asid(unsigned long asid)
+{
+	__asm__ __volatile__ ("sfence.vma x0, %0"
+			:
+			: "r" (asid)
+			: "memory");
+}
+
+static inline void local_flush_tlb_page_asid(unsigned long addr,
+		unsigned long asid)
+{
+	__asm__ __volatile__ ("sfence.vma %0, %1"
+			:
+			: "r" (addr), "r" (asid)
+			: "memory");
+}
+
 #else /* CONFIG_MMU */
 #define local_flush_tlb_all()			do { } while (0)
 #define local_flush_tlb_page(addr)		do { } while (0)
arch/riscv/include/asm/uaccess.h +1 -1
index f314ff44c48d..d4d628af21a4 100644
@@ -216,7 +216,7 @@ do {								\
 	might_fault();						\
 	access_ok(__p, sizeof(*__p)) ?		\
 		__get_user((x), __p) :				\
-		((x) = 0, -EFAULT);				\
+		((x) = (__force __typeof__(x))0, -EFAULT);	\
 })
 
 #define __put_user_asm(insn, x, ptr, err)			\
arch/riscv/kernel/probes/simulate-insn.h +2 -2
index cb6ff7dccb92..de8474146a9b 100644
@@ -31,9 +31,9 @@ __RISCV_INSN_FUNCS(fence,	0x7f, 0x0f);
 	} while (0)
 
 __RISCV_INSN_FUNCS(c_j,		0xe003, 0xa001);
-__RISCV_INSN_FUNCS(c_jr,	0xf007, 0x8002);
+__RISCV_INSN_FUNCS(c_jr,	0xf07f, 0x8002);
 __RISCV_INSN_FUNCS(c_jal,	0xe003, 0x2001);
-__RISCV_INSN_FUNCS(c_jalr,	0xf007, 0x9002);
+__RISCV_INSN_FUNCS(c_jalr,	0xf07f, 0x9002);
 __RISCV_INSN_FUNCS(c_beqz,	0xe003, 0xc001);
 __RISCV_INSN_FUNCS(c_bnez,	0xe003, 0xe001);
 __RISCV_INSN_FUNCS(c_ebreak,	0xffff, 0x9002);
arch/riscv/kernel/stacktrace.c +1 -1
index c2601150b91c..811e837a8c4e 100644
@@ -60,7 +60,7 @@ void notrace walk_stackframe(struct task_struct *task, struct pt_regs *regs,
 		} else {
 			fp = frame->fp;
 			pc = ftrace_graph_ret_addr(current, NULL, frame->ra,
-						   (unsigned long *)(fp - 8));
+						   &frame->ra);
 		}
 
 	}
arch/riscv/mm/context.c +10 -0
index ee3459cb6750..cc4a47bda82a 100644
@@ -196,6 +196,16 @@ static void set_mm_asid(struct mm_struct *mm, unsigned int cpu)
 
 	if (need_flush_tlb)
 		local_flush_tlb_all();
+#ifdef CONFIG_SMP
+	else {
+		cpumask_t *mask = &mm->context.tlb_stale_mask;
+
+		if (cpumask_test_cpu(cpu, mask)) {
+			cpumask_clear_cpu(cpu, mask);
+			local_flush_tlb_all_asid(cntx & asid_mask);
+		}
+	}
+#endif
 }
 
 static void set_mm_noasid(struct mm_struct *mm)
arch/riscv/mm/tlbflush.c +11 -17
index 64f8201237c2..efefc3986c48 100644
@@ -5,23 +5,7 @@
 #include <linux/sched.h>
 #include <asm/sbi.h>
 #include <asm/mmu_context.h>
-
-static inline void local_flush_tlb_all_asid(unsigned long asid)
-{
-	__asm__ __volatile__ ("sfence.vma x0, %0"
-			:
-			: "r" (asid)
-			: "memory");
-}
-
-static inline void local_flush_tlb_page_asid(unsigned long addr,
-		unsigned long asid)
-{
-	__asm__ __volatile__ ("sfence.vma %0, %1"
-			:
-			: "r" (addr), "r" (asid)
-			: "memory");
-}
+#include <asm/tlbflush.h>
 
 void flush_tlb_all(void)
 {
@@ -31,6 +15,7 @@ void flush_tlb_all(void)
 static void __sbi_tlb_flush_range(struct mm_struct *mm, unsigned long start,
 				  unsigned long size, unsigned long stride)
 {
+	struct cpumask *pmask = &mm->context.tlb_stale_mask;
 	struct cpumask *cmask = mm_cpumask(mm);
 	struct cpumask hmask;
 	unsigned int cpuid;
@@ -45,6 +30,15 @@ static void __sbi_tlb_flush_range(struct mm_struct *mm, unsigned long start,
 	if (static_branch_unlikely(&use_asid_allocator)) {
 		unsigned long asid = atomic_long_read(&mm->context.id);
 
+		/*
+		 * TLB will be immediately flushed on harts concurrently
+		 * executing this MM context. TLB flush on other harts
+		 * is deferred until this MM context migrates there.
+		 */
+		cpumask_setall(pmask);
+		cpumask_clear_cpu(cpuid, pmask);
+		cpumask_andnot(pmask, pmask, cmask);
+
 		if (broadcast) {
 			riscv_cpuid_to_hartid_mask(cmask, &hmask);
 			sbi_remote_sfence_vma_asid(cpumask_bits(&hmask),
arch/x86/events/intel/uncore.h +1 -0
index b9687980aab6..d6f7c6c1a930 100644
@@ -2,6 +2,7 @@
 #include <linux/slab.h>
 #include <linux/pci.h>
 #include <asm/apicdef.h>
+#include <asm/intel-family.h>
 #include <linux/io-64-nonatomic-lo-hi.h>
 
 #include <linux/perf_event.h>
arch/x86/events/intel/uncore_snbep.c +21 -1
index fcd95e93f479..8f371f3cbbd2 100644
@@ -3804,6 +3804,21 @@ static const struct attribute_group *skx_iio_attr_update[] = {
 	NULL,
 };
 
+static void pmu_clear_mapping_attr(const struct attribute_group **groups,
+				   struct attribute_group *ag)
+{
+	int i;
+
+	for (i = 0; groups[i]; i++) {
+		if (groups[i] == ag) {
+			for (i++; groups[i]; i++)
+				groups[i - 1] = groups[i];
+			groups[i - 1] = NULL;
+			break;
+		}
+	}
+}
+
 static int
 pmu_iio_set_mapping(struct intel_uncore_type *type, struct attribute_group *ag)
 {
@@ -3852,7 +3867,7 @@ pmu_iio_set_mapping(struct intel_uncore_type *type, struct attribute_group *ag)
 clear_topology:
 	kfree(type->topology);
 clear_attr_update:
-	type->attr_update = NULL;
+	pmu_clear_mapping_attr(type->attr_update, ag);
 	return ret;
 }
 
@@ -5144,6 +5159,11 @@ static int icx_iio_get_topology(struct intel_uncore_type *type)
 
 static int icx_iio_set_mapping(struct intel_uncore_type *type)
 {
+	/* Detect ICX-D system. This case is not supported */
+	if (boot_cpu_data.x86_model == INTEL_FAM6_ICELAKE_D) {
+		pmu_clear_mapping_attr(type->attr_update, &icx_iio_mapping_group);
+		return -EPERM;
+	}
 	return pmu_iio_set_mapping(type, &icx_iio_mapping_group);
 }
 
arch/x86/kernel/cpu/bugs.c +2 -0
index 8961f1031180..544e6c61e17d 100644
@@ -1951,6 +1951,8 @@ static int ib_prctl_set(struct task_struct *task, unsigned long ctrl)
 		if (ctrl == PR_SPEC_FORCE_DISABLE)
 			task_set_spec_ib_force_disable(task);
 		task_update_spec_tif(task);
+		if (task == current)
+			indirect_branch_prediction_barrier();
 		break;
 	default:
 		return -ERANGE;
arch/x86/kernel/cpu/mce/amd.c +22 -15
index a873577e49dc..6469d3135d26 100644
@@ -526,7 +526,7 @@ static u32 get_block_address(u32 current_addr, u32 low, u32 high,
 	/* Fall back to method we used for older processors: */
 	switch (block) {
 	case 0:
-		addr = msr_ops.misc(bank);
+		addr = mca_msr_reg(bank, MCA_MISC);
 		break;
 	case 1:
 		offset = ((low & MASK_BLKPTR_LO) >> 21);
@@ -965,6 +965,24 @@ _log_error_bank(unsigned int bank, u32 msr_stat, u32 msr_addr, u64 misc)
 	return status & MCI_STATUS_DEFERRED;
 }
 
+static bool _log_error_deferred(unsigned int bank, u32 misc)
+{
+	if (!_log_error_bank(bank, mca_msr_reg(bank, MCA_STATUS),
+			     mca_msr_reg(bank, MCA_ADDR), misc))
+		return false;
+
+	/*
+	 * Non-SMCA systems don't have MCA_DESTAT/MCA_DEADDR registers.
+	 * Return true here to avoid accessing these registers.
+	 */
+	if (!mce_flags.smca)
+		return true;
+
+	/* Clear MCA_DESTAT if the deferred error was logged from MCA_STATUS. */
+	wrmsrl(MSR_AMD64_SMCA_MCx_DESTAT(bank), 0);
+	return true;
+}
+
 /*
  * We have three scenarios for checking for Deferred errors:
  *
@@ -976,19 +994,8 @@ _log_error_bank(unsigned int bank, u32 msr_stat, u32 msr_addr, u64 misc)
  */
 static void log_error_deferred(unsigned int bank)
 {
-	bool defrd;
-
-	defrd = _log_error_bank(bank, msr_ops.status(bank),
-					msr_ops.addr(bank), 0);
-
-	if (!mce_flags.smca)
-		return;
-
-	/* Clear MCA_DESTAT if we logged the deferred error from MCA_STATUS. */
-	if (defrd) {
-		wrmsrl(MSR_AMD64_SMCA_MCx_DESTAT(bank), 0);
+	if (_log_error_deferred(bank, 0))
 		return;
-	}
 
 	/*
 	 * Only deferred errors are logged in MCA_DE{STAT,ADDR} so just check
@@ -1009,7 +1016,7 @@ static void amd_deferred_error_interrupt(void)
 
 static void log_error_thresholding(unsigned int bank, u64 misc)
 {
-	_log_error_bank(bank, msr_ops.status(bank), msr_ops.addr(bank), misc);
+	_log_error_deferred(bank, misc);
 }
 
 static void log_and_reset_block(struct threshold_block *block)
@@ -1397,7 +1404,7 @@ static int threshold_create_bank(struct threshold_bank **bp, unsigned int cpu,
 		}
 	}
 
-	err = allocate_threshold_blocks(cpu, b, bank, 0, msr_ops.misc(bank));
+	err = allocate_threshold_blocks(cpu, b, bank, 0, mca_msr_reg(bank, MCA_MISC));
 	if (err)
 		goto out_kobj;
 
arch/x86/kernel/cpu/mce/core.c +31 -64

182 lines not on this page · raw message

arch/x86/kernel/cpu/mce/internal.h +6 -6
index 80dc94313bcf..760b57814760 100644
@@ -168,14 +168,14 @@ struct mce_vendor_flags {
 
 extern struct mce_vendor_flags mce_flags;
 
-struct mca_msr_regs {
-	u32 (*ctl)	(int bank);
-	u32 (*status)	(int bank);
-	u32 (*addr)	(int bank);
-	u32 (*misc)	(int bank);
+enum mca_msr {
+	MCA_CTL,
+	MCA_STATUS,
+	MCA_ADDR,
+	MCA_MISC,
 };
 
-extern struct mca_msr_regs msr_ops;
+u32 mca_msr_reg(int bank, enum mca_msr reg);
 
 /* Decide whether to add MCE record to MCE event pool or filter it out. */
 extern bool filter_mce(struct mce *m);
arch/x86/kernel/cpu/microcode/intel.c +1 -7
index 7e8e07bddd5f..1ba590e6ef7b 100644
@@ -659,7 +659,6 @@ void load_ucode_intel_ap(void)
 	else
 		iup = &intel_ucode_patch;
 
-reget:
 	if (!*iup) {
 		patch = __load_ucode_intel(&uci);
 		if (!patch)
@@ -670,12 +669,7 @@ void load_ucode_intel_ap(void)
 
 	uci.mc = *iup;
 
-	if (apply_microcode_early(&uci, true)) {
-		/* Mixed-silicon system? Try to refetch the proper patch: */
-		*iup = NULL;
-
-		goto reget;
-	}
+	apply_microcode_early(&uci, true);
 }
 
 static struct microcode_intel *find_patch(struct ucode_cpu_info *uci)
arch/x86/kernel/crash.c +1 -3
index e8326a8d1c5d..03a454d427c3 100644
@@ -401,10 +401,8 @@ int crash_load_segments(struct kimage *image)
 	kbuf.buf_align = ELF_CORE_HEADER_ALIGN;
 	kbuf.mem = KEXEC_BUF_MEM_UNKNOWN;
 	ret = kexec_add_buffer(&kbuf);
-	if (ret) {
-		vfree((void *)image->elf_headers);
+	if (ret)
 		return ret;
-	}
 	image->elf_load_addr = kbuf.mem;
 	pr_debug("Loaded ELF headers at 0x%lx bufsz=0x%lx memsz=0x%lx\n",
 		 image->elf_load_addr, kbuf.bufsz, kbuf.bufsz);
arch/x86/kernel/ftrace.c +2 -0
index b3c9ef01d6c0..4017da3a4c70 100644
@@ -219,7 +219,9 @@ void ftrace_replace_code(int enable)
 
 		ret = ftrace_verify_code(rec->ip, old);
 		if (ret) {
+			ftrace_expected = old;
 			ftrace_bug(ret, rec);
+			ftrace_expected = NULL;
 			return;
 		}
 	}
arch/x86/kernel/kprobes/core.c +7 -3
index 6872f3834668..c4b618d0b16a 100644
@@ -37,6 +37,7 @@
 #include <linux/extable.h>
 #include <linux/kdebug.h>
 #include <linux/kallsyms.h>
+#include <linux/kgdb.h>
 #include <linux/ftrace.h>
 #include <linux/kasan.h>
 #include <linux/moduleloader.h>
@@ -289,12 +290,15 @@ static int can_probe(unsigned long paddr)
 		if (ret < 0)
 			return 0;
 
+#ifdef CONFIG_KGDB
 		/*
-		 * Another debugging subsystem might insert this breakpoint.
-		 * In that case, we can't recover it.
+		 * If there is a dynamically installed kgdb sw breakpoint,
+		 * this function should not be probed.
 		 */
-		if (insn.opcode.bytes[0] == INT3_INSN_OPCODE)
+		if (insn.opcode.bytes[0] == INT3_INSN_OPCODE &&
+		    kgdb_has_hit_break(addr))
 			return 0;
+#endif
 		addr += insn.length;
 	}
 
arch/x86/kernel/kprobes/opt.c +8 -20
index 71425ebba98a..a9121073d951 100644
@@ -15,6 +15,7 @@
 #include <linux/extable.h>
 #include <linux/kdebug.h>
 #include <linux/kallsyms.h>
+#include <linux/kgdb.h>
 #include <linux/ftrace.h>
 #include <linux/objtool.h>
 #include <linux/pgtable.h>
@@ -272,19 +273,6 @@ static int insn_is_indirect_jump(struct insn *insn)
 	return ret;
 }
 
-static bool is_padding_int3(unsigned long addr, unsigned long eaddr)
-{
-	unsigned char ops;
-
-	for (; addr < eaddr; addr++) {
-		if (get_kernel_nofault(ops, (void *)addr) < 0 ||
-		    ops != INT3_INSN_OPCODE)
-			return false;
-	}
-
-	return true;
-}
-
 /* Decode whole function to ensure any instructions don't jump into target */
 static int can_optimize(unsigned long paddr)
 {
@@ -327,15 +315,15 @@ static int can_optimize(unsigned long paddr)
 		ret = insn_decode_kernel(&insn, (void *)recovered_insn);
 		if (ret < 0)
 			return 0;
-
+#ifdef CONFIG_KGDB
 		/*
-		 * In the case of detecting unknown breakpoint, this could be
-		 * a padding INT3 between functions. Let's check that all the
-		 * rest of the bytes are also INT3.
+		 * If there is a dynamically installed kgdb sw breakpoint,
+		 * this function should not be probed.
 		 */
-		if (insn.opcode.bytes[0] == INT3_INSN_OPCODE)
-			return is_padding_int3(addr, paddr - offset + size) ? 1 : 0;
-
+		if (insn.opcode.bytes[0] == INT3_INSN_OPCODE &&
+		    kgdb_has_hit_break(addr))
+			return 0;
+#endif
 		/* Recover address */
 		insn.kaddr = (void *)addr;
 		insn.next_byte = (void *)(addr + insn.length);
arch/x86/kvm/vmx/nested.c +35 -12

72 lines not on this page · raw message

arch/x86/kvm/vmx/sgx.c +3 -1
index 6693ebdc0770..b8cf9a59c145 100644
@@ -188,8 +188,10 @@ static int __handle_encls_ecreate(struct kvm_vcpu *vcpu,
 	/* Enforce CPUID restriction on max enclave size. */
 	max_size_log2 = (attributes & SGX_ATTR_MODE64BIT) ? sgx_12_0->edx >> 8 :
 							    sgx_12_0->edx;
-	if (size >= BIT_ULL(max_size_log2))
+	if (size >= BIT_ULL(max_size_log2)) {
 		kvm_inject_gp(vcpu, 0);
+		return 1;
+	}
 
 	/*
 	 * sgx_virt_ecreate() returns:
block/bfq-iosched.c +1 -1
index b8b6e9eae94b..85120d7b5cf0 100644
@@ -5251,8 +5251,8 @@ static void bfq_exit_icq_bfqq(struct bfq_io_cq *bic, bool is_sync)
 		unsigned long flags;
 
 		spin_lock_irqsave(&bfqd->lock, flags);
-		bfq_exit_bfqq(bfqd, bfqq);
 		bic_set_bfqq(bic, NULL, is_sync);
+		bfq_exit_bfqq(bfqd, bfqq);
 		spin_unlock_irqrestore(&bfqd->lock, flags);
 	}
 }
block/blk-merge.c +10 -0
index bbe66a9010bf..bb26db93ad1d 100644
@@ -279,6 +279,16 @@ static struct bio *blk_bio_segment_split(struct request_queue *q,
 	*segs = nsegs;
 	return NULL;
 split:
+	/*
+	 * We can't sanely support splitting for a REQ_NOWAIT bio. End it
+	 * with EAGAIN if splitting is required and return an error pointer.
+	 */
+	if (bio->bi_opf & REQ_NOWAIT) {
+		bio->bi_status = BLK_STS_AGAIN;
+		bio_endio(bio);
+		return ERR_PTR(-EAGAIN);
+	}
+
 	*segs = nsegs;
 
 	/*
block/mq-deadline.c +77 -7

135 lines not on this page · raw message

drivers/acpi/resource.c +65 -13

104 lines not on this page · raw message

drivers/acpi/x86/s2idle.c +2 -8
index e0185e841b2a..2af1ae172102 100644
@@ -378,16 +378,13 @@ static int lps0_device_attach(struct acpi_device *adev,
 		 * AMDI0006:
 		 * - should use rev_id 0x0
 		 * - function mask = 0x3: Should use Microsoft method
-		 * AMDI0007:
-		 * - Should use rev_id 0x2
-		 * - Should only use AMD method
 		 */
 		const char *hid = acpi_device_hid(adev);
-		rev_id = strcmp(hid, "AMDI0007") ? 0 : 2;
+		rev_id = 0;
 		lps0_dsm_func_mask = validate_dsm(adev->handle,
 					ACPI_LPS0_DSM_UUID_AMD, rev_id, &lps0_dsm_guid);
 		lps0_dsm_func_mask_microsoft = validate_dsm(adev->handle,
-					ACPI_LPS0_DSM_UUID_MICROSOFT, 0,
+					ACPI_LPS0_DSM_UUID_MICROSOFT, rev_id,
 					&lps0_dsm_guid_microsoft);
 		if (lps0_dsm_func_mask > 0x3 && (!strcmp(hid, "AMD0004") ||
 						 !strcmp(hid, "AMD0005") ||
@@ -395,9 +392,6 @@ static int lps0_device_attach(struct acpi_device *adev,
 			lps0_dsm_func_mask = (lps0_dsm_func_mask << 1) | 0x1;
 			acpi_handle_debug(adev->handle, "_DSM UUID %s: Adjusted function mask: 0x%x\n",
 					  ACPI_LPS0_DSM_UUID_AMD, lps0_dsm_func_mask);
-		} else if (lps0_dsm_func_mask_microsoft > 0 && !strcmp(hid, "AMDI0007")) {
-			lps0_dsm_func_mask_microsoft = -EINVAL;
-			acpi_handle_debug(adev->handle, "_DSM Using AMD method\n");
 		}
 	} else {
 		rev_id = 1;
drivers/ata/ahci.c +23 -9
index c1bf7117a9ff..149ee16fd022 100644
@@ -83,6 +83,7 @@ enum board_ids {
 static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent);
 static void ahci_remove_one(struct pci_dev *dev);
 static void ahci_shutdown_one(struct pci_dev *dev);
+static void ahci_intel_pcs_quirk(struct pci_dev *pdev, struct ahci_host_priv *hpriv);
 static int ahci_vt8251_hardreset(struct ata_link *link, unsigned int *class,
 				 unsigned long deadline);
 static int ahci_avn_hardreset(struct ata_link *link, unsigned int *class,
@@ -668,6 +669,25 @@ static void ahci_pci_save_initial_config(struct pci_dev *pdev,
 	ahci_save_initial_config(&pdev->dev, hpriv);
 }
 
+static int ahci_pci_reset_controller(struct ata_host *host)
+{
+	struct pci_dev *pdev = to_pci_dev(host->dev);
+	struct ahci_host_priv *hpriv = host->private_data;
+	int rc;
+
+	rc = ahci_reset_controller(host);
+	if (rc)
+		return rc;
+
+	/*
+	 * If platform firmware failed to enable ports, try to enable
+	 * them here.
+	 */
+	ahci_intel_pcs_quirk(pdev, hpriv);
+
+	return 0;
+}
+
 static void ahci_pci_init_controller(struct ata_host *host)
 {
 	struct ahci_host_priv *hpriv = host->private_data;
@@ -869,7 +889,7 @@ static int ahci_pci_device_runtime_resume(struct device *dev)
 	struct ata_host *host = pci_get_drvdata(pdev);
 	int rc;
 
-	rc = ahci_reset_controller(host);
+	rc = ahci_pci_reset_controller(host);
 	if (rc)
 		return rc;
 	ahci_pci_init_controller(host);
@@ -904,7 +924,7 @@ static int ahci_pci_device_resume(struct device *dev)
 		ahci_mcp89_apple_enable(pdev);
 
 	if (pdev->dev.power.power_state.event == PM_EVENT_SUSPEND) {
-		rc = ahci_reset_controller(host);
+		rc = ahci_pci_reset_controller(host);
 		if (rc)
 			return rc;
 
@@ -1789,12 +1809,6 @@ static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
 	/* save initial config */
 	ahci_pci_save_initial_config(pdev, hpriv);
 
-	/*
-	 * If platform firmware failed to enable ports, try to enable
-	 * them here.
-	 */
-	ahci_intel_pcs_quirk(pdev, hpriv);
-
 	/* prepare host */
 	if (hpriv->cap & HOST_CAP_NCQ) {
 		pi.flags |= ATA_FLAG_NCQ;
@@ -1904,7 +1918,7 @@ static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
 	if (rc)
 		return rc;
 
-	rc = ahci_reset_controller(host);
+	rc = ahci_pci_reset_controller(host);
 	if (rc)
 		return rc;
 
drivers/base/dd.c +5 -1
index 63cc01118810..060348125635 100644
@@ -1127,7 +1127,11 @@ static int __driver_attach(struct device *dev, void *data)
 		return 0;
 	} else if (ret < 0) {
 		dev_dbg(dev, "Bus failed to match device: %d\n", ret);
-		return ret;
+		/*
+		 * Driver could not match with device, but may match with
+		 * another device on the bus.
+		 */
+		return 0;
 	} /* ret > 0 means positive match */
 
 	if (driver_allows_async_probing(drv)) {
drivers/char/ipmi/ipmi_msghandler.c +3 -1
index 8dbc349a2edd..15c211c5d6f4 100644
@@ -1273,6 +1273,7 @@ static void _ipmi_destroy_user(struct ipmi_user *user)
 	unsigned long    flags;
 	struct cmd_rcvr  *rcvr;
 	struct cmd_rcvr  *rcvrs = NULL;
+	struct module    *owner;
 
 	if (!acquire_ipmi_user(user, &i)) {
 		/*
@@ -1334,8 +1335,9 @@ static void _ipmi_destroy_user(struct ipmi_user *user)
 		kfree(rcvr);
 	}
 
+	owner = intf->owner;
 	kref_put(&intf->refcount, intf_free);
-	module_put(intf->owner);
+	module_put(owner);
 }
 
 int ipmi_destroy_user(struct ipmi_user *user)
drivers/char/ipmi/ipmi_si_intf.c +19 -8
index 6f3272b58ced..17255e705cb0 100644
@@ -2152,6 +2152,20 @@ static int __init init_ipmi_si(void)
 }
 module_init(init_ipmi_si);
 
+static void wait_msg_processed(struct smi_info *smi_info)
+{
+	unsigned long jiffies_now;
+	long time_diff;
+
+	while (smi_info->curr_msg || (smi_info->si_state != SI_NORMAL)) {
+		jiffies_now = jiffies;
+		time_diff = (((long)jiffies_now - (long)smi_info->last_timeout_jiffies)
+		     * SI_USEC_PER_JIFFY);
+		smi_event_handler(smi_info, time_diff);
+		schedule_timeout_uninterruptible(1);
+	}
+}
+
 static void shutdown_smi(void *send_info)
 {
 	struct smi_info *smi_info = send_info;
@@ -2186,16 +2200,13 @@ static void shutdown_smi(void *send_info)
 	 * in the BMC.  Note that timers and CPU interrupts are off,
 	 * so no need for locks.
 	 */
-	while (smi_info->curr_msg || (smi_info->si_state != SI_NORMAL)) {
-		poll(smi_info);
-		schedule_timeout_uninterruptible(1);
-	}
+	wait_msg_processed(smi_info);
+
 	if (smi_info->handlers)
 		disable_si_irq(smi_info);
-	while (smi_info->curr_msg || (smi_info->si_state != SI_NORMAL)) {
-		poll(smi_info);
-		schedule_timeout_uninterruptible(1);
-	}
+
+	wait_msg_processed(smi_info);
+
 	if (smi_info->handlers)
 		smi_info->handlers->cleanup(smi_info->si_sm);
 
drivers/char/tpm/eventlog/acpi.c +9 -3
index 1b18ce5ebab1..0913d3eb8d51 100644
@@ -90,16 +90,21 @@ int tpm_read_log_acpi(struct tpm_chip *chip)
 			return -ENODEV;
 
 		if (tbl->header.length <
-				sizeof(*tbl) + sizeof(struct acpi_tpm2_phy))
+				sizeof(*tbl) + sizeof(struct acpi_tpm2_phy)) {
+			acpi_put_table((struct acpi_table_header *)tbl);
 			return -ENODEV;
+		}
 
 		tpm2_phy = (void *)tbl + sizeof(*tbl);
 		len = tpm2_phy->log_area_minimum_length;
 
 		start = tpm2_phy->log_area_start_address;
-		if (!start || !len)
+		if (!start || !len) {
+			acpi_put_table((struct acpi_table_header *)tbl);
 			return -ENODEV;
+		}
 
+		acpi_put_table((struct acpi_table_header *)tbl);
 		format = EFI_TCG2_EVENT_LOG_FORMAT_TCG_2;
 	} else {
 		/* Find TCPA entry in RSDT (ACPI_LOGICAL_ADDRESSING) */
@@ -120,8 +125,10 @@ int tpm_read_log_acpi(struct tpm_chip *chip)
 			break;
 		}
 
+		acpi_put_table((struct acpi_table_header *)buff);
 		format = EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2;
 	}
+
 	if (!len) {
 		dev_warn(&chip->dev, "%s: TCPA log area empty\n", __func__);
 		return -EIO;
@@ -156,5 +163,4 @@ int tpm_read_log_acpi(struct tpm_chip *chip)
 	kfree(log->bios_event_log);
 	log->bios_event_log = NULL;
 	return ret;
-
 }
drivers/char/tpm/tpm_crb.c +20 -9
index 65f8f179a27f..16fc481d6095 100644
@@ -676,12 +676,16 @@ static int crb_acpi_add(struct acpi_device *device)
 
 	/* Should the FIFO driver handle this? */
 	sm = buf->start_method;
-	if (sm == ACPI_TPM2_MEMORY_MAPPED)
-		return -ENODEV;
+	if (sm == ACPI_TPM2_MEMORY_MAPPED) {
+		rc = -ENODEV;
+		goto out;
+	}
 
 	priv = devm_kzalloc(dev, sizeof(struct crb_priv), GFP_KERNEL);
-	if (!priv)
-		return -ENOMEM;
+	if (!priv) {
+		rc = -ENOMEM;
+		goto out;
+	}
 
 	if (sm == ACPI_TPM2_COMMAND_BUFFER_WITH_ARM_SMC) {
 		if (buf->header.length < (sizeof(*buf) + sizeof(*crb_smc))) {
@@ -689,7 +693,8 @@ static int crb_acpi_add(struct acpi_device *device)
 				FW_BUG "TPM2 ACPI table has wrong size %u for start method type %d\n",
 				buf->header.length,
 				ACPI_TPM2_COMMAND_BUFFER_WITH_ARM_SMC);
-			return -EINVAL;
+			rc = -EINVAL;
+			goto out;
 		}
 		crb_smc = ACPI_ADD_PTR(struct tpm2_crb_smc, buf, sizeof(*buf));
 		priv->smc_func_id = crb_smc->smc_func_id;
@@ -700,17 +705,23 @@ static int crb_acpi_add(struct acpi_device *device)
 
 	rc = crb_map_io(device, priv, buf);
 	if (rc)
-		return rc;
+		goto out;
 
 	chip = tpmm_chip_alloc(dev, &tpm_crb);
-	if (IS_ERR(chip))
-		return PTR_ERR(chip);
+	if (IS_ERR(chip)) {
+		rc = PTR_ERR(chip);
+		goto out;
+	}
 
 	dev_set_drvdata(&chip->dev, priv);
 	chip->acpi_dev_handle = device->handle;
 	chip->flags = TPM_CHIP_FLAG_TPM2;
 
-	return tpm_chip_register(chip);
+	rc = tpm_chip_register(chip);
+
+out:
+	acpi_put_table((struct acpi_table_header *)buf);
+	return rc;
 }
 
 static int crb_acpi_remove(struct acpi_device *device)
drivers/char/tpm/tpm_tis.c +5 -4
index d3f2e5364c27..e53164c82808 100644
@@ -125,6 +125,7 @@ static int check_acpi_tpm2(struct device *dev)
 	const struct acpi_device_id *aid = acpi_match_device(tpm_acpi_tbl, dev);
 	struct acpi_table_tpm2 *tbl;
 	acpi_status st;
+	int ret = 0;
 
 	if (!aid || aid->driver_data != DEVICE_IS_TPM2)
 		return 0;
@@ -132,8 +133,7 @@ static int check_acpi_tpm2(struct device *dev)
 	/* If the ACPI TPM2 signature is matched then a global ACPI_SIG_TPM2
 	 * table is mandatory
 	 */
-	st =
-	    acpi_get_table(ACPI_SIG_TPM2, 1, (struct acpi_table_header **)&tbl);
+	st = acpi_get_table(ACPI_SIG_TPM2, 1, (struct acpi_table_header **)&tbl);
 	if (ACPI_FAILURE(st) || tbl->header.length < sizeof(*tbl)) {
 		dev_err(dev, FW_BUG "failed to get TPM2 ACPI table\n");
 		return -EINVAL;
@@ -141,9 +141,10 @@ static int check_acpi_tpm2(struct device *dev)
 
 	/* The tpm2_crb driver handles this device */
 	if (tbl->start_method != ACPI_TPM2_MEMORY_MAPPED)
-		return -ENODEV;
+		ret = -ENODEV;
 
-	return 0;
+	acpi_put_table((struct acpi_table_header *)tbl);
+	return ret;
 }
 #else
 static int check_acpi_tpm2(struct device *dev)
drivers/cpufreq/cpufreq.c +1 -1
index 799431d287ee..b998b5083953 100644
@@ -1212,6 +1212,7 @@ static struct cpufreq_policy *cpufreq_policy_alloc(unsigned int cpu)
 	if (!zalloc_cpumask_var(&policy->real_cpus, GFP_KERNEL))
 		goto err_free_rcpumask;
 
+	init_completion(&policy->kobj_unregister);
 	ret = kobject_init_and_add(&policy->kobj, &ktype_cpufreq,
 				   cpufreq_global_kobject, "policy%u", cpu);
 	if (ret) {
@@ -1250,7 +1251,6 @@ static struct cpufreq_policy *cpufreq_policy_alloc(unsigned int cpu)
 	init_rwsem(&policy->rwsem);
 	spin_lock_init(&policy->transition_lock);
 	init_waitqueue_head(&policy->transition_wait);
-	init_completion(&policy->kobj_unregister);
 	INIT_WORK(&policy->update, handle_update);
 
 	policy->cpu = cpu;
drivers/crypto/ccp/sp-pci.c +10 -1
index 88c672ad27e4..9470a9a19f29 100644
@@ -320,6 +320,15 @@ static const struct psp_vdata pspv3 = {
 	.inten_reg		= 0x10690,
 	.intsts_reg		= 0x10694,
 };
+
+static const struct psp_vdata pspv4 = {
+	.sev			= &sevv2,
+	.tee			= &teev1,
+	.feature_reg		= 0x109fc,
+	.inten_reg		= 0x10690,
+	.intsts_reg		= 0x10694,
+};
+
 #endif
 
 static const struct sp_dev_vdata dev_vdata[] = {
@@ -365,7 +374,7 @@ static const struct sp_dev_vdata dev_vdata[] = {
 	{	/* 5 */
 		.bar = 2,
 #ifdef CONFIG_CRYPTO_DEV_SP_PSP
-		.psp_vdata = &pspv2,
+		.psp_vdata = &pspv4,
 #endif
 	},
 };
drivers/crypto/n2_core.c +6 -0
index 3b0bf6fea491..b4db560105a9 100644
@@ -1229,6 +1229,7 @@ struct n2_hash_tmpl {
 	const u8	*hash_init;
 	u8		hw_op_hashsz;
 	u8		digest_size;
+	u8		statesize;
 	u8		block_size;
 	u8		auth_type;
 	u8		hmac_type;
@@ -1260,6 +1261,7 @@ static const struct n2_hash_tmpl hash_tmpls[] = {
 	  .hmac_type	= AUTH_TYPE_HMAC_MD5,
 	  .hw_op_hashsz	= MD5_DIGEST_SIZE,
 	  .digest_size	= MD5_DIGEST_SIZE,
+	  .statesize	= sizeof(struct md5_state),
 	  .block_size	= MD5_HMAC_BLOCK_SIZE },
 	{ .name		= "sha1",
 	  .hash_zero	= sha1_zero_message_hash,
@@ -1268,6 +1270,7 @@ static const struct n2_hash_tmpl hash_tmpls[] = {
 	  .hmac_type	= AUTH_TYPE_HMAC_SHA1,
 	  .hw_op_hashsz	= SHA1_DIGEST_SIZE,
 	  .digest_size	= SHA1_DIGEST_SIZE,
+	  .statesize	= sizeof(struct sha1_state),
 	  .block_size	= SHA1_BLOCK_SIZE },
 	{ .name		= "sha256",
 	  .hash_zero	= sha256_zero_message_hash,
@@ -1276,6 +1279,7 @@ static const struct n2_hash_tmpl hash_tmpls[] = {
 	  .hmac_type	= AUTH_TYPE_HMAC_SHA256,
 	  .hw_op_hashsz	= SHA256_DIGEST_SIZE,
 	  .digest_size	= SHA256_DIGEST_SIZE,
+	  .statesize	= sizeof(struct sha256_state),
 	  .block_size	= SHA256_BLOCK_SIZE },
 	{ .name		= "sha224",
 	  .hash_zero	= sha224_zero_message_hash,
@@ -1284,6 +1288,7 @@ static const struct n2_hash_tmpl hash_tmpls[] = {
 	  .hmac_type	= AUTH_TYPE_RESERVED,
 	  .hw_op_hashsz	= SHA256_DIGEST_SIZE,
 	  .digest_size	= SHA224_DIGEST_SIZE,
+	  .statesize	= sizeof(struct sha256_state),
 	  .block_size	= SHA224_BLOCK_SIZE },
 };
 #define NUM_HASH_TMPLS ARRAY_SIZE(hash_tmpls)
@@ -1424,6 +1429,7 @@ static int __n2_register_one_ahash(const struct n2_hash_tmpl *tmpl)
 
 	halg = &ahash->halg;
 	halg->digestsize = tmpl->digest_size;
+	halg->statesize = tmpl->statesize;
 
 	base = &halg->base;
 	snprintf(base->cra_name, CRYPTO_MAX_ALG_NAME, "%s", tmpl->name);
drivers/devfreq/devfreq.c +2 -4
index 85faa7a5c7d1..a473b640c40a 100644
@@ -775,8 +775,7 @@ static void remove_sysfs_files(struct devfreq *devfreq,
  * @dev:	the device to add devfreq feature.
  * @profile:	device-specific profile to run devfreq.
  * @governor_name:	name of the policy to choose frequency.
- * @data:	private data for the governor. The devfreq framework does not
- *		touch this value.
+ * @data:	devfreq driver pass to governors, governor should not change it.
  */
 struct devfreq *devfreq_add_device(struct device *dev,
 				   struct devfreq_dev_profile *profile,
@@ -1003,8 +1002,7 @@ static void devm_devfreq_dev_release(struct device *dev, void *res)
  * @dev:	the device to add devfreq feature.
  * @profile:	device-specific profile to run devfreq.
  * @governor_name:	name of the policy to choose frequency.
- * @data:	private data for the governor. The devfreq framework does not
- *		touch this value.
+ * @data:	 devfreq driver pass to governors, governor should not change it.
  *
  * This function manages automatically the memory of devfreq device using device
  * resource management and simplify the free operation for memory of devfreq
drivers/devfreq/governor_userspace.c +6 -6
index ab9db7adb3ad..d69672ccacc4 100644
@@ -21,7 +21,7 @@ struct userspace_data {
 
 static int devfreq_userspace_func(struct devfreq *df, unsigned long *freq)
 {
-	struct userspace_data *data = df->data;
+	struct userspace_data *data = df->governor_data;
 
 	if (data->valid)
 		*freq = data->user_frequency;
@@ -40,7 +40,7 @@ static ssize_t set_freq_store(struct device *dev, struct device_attribute *attr,
 	int err = 0;
 
 	mutex_lock(&devfreq->lock);
-	data = devfreq->data;
+	data = devfreq->governor_data;
 
 	sscanf(buf, "%lu", &wanted);
 	data->user_frequency = wanted;
@@ -60,7 +60,7 @@ static ssize_t set_freq_show(struct device *dev,
 	int err = 0;
 
 	mutex_lock(&devfreq->lock);
-	data = devfreq->data;
+	data = devfreq->governor_data;
 
 	if (data->valid)
 		err = sprintf(buf, "%lu\n", data->user_frequency);
@@ -91,7 +91,7 @@ static int userspace_init(struct devfreq *devfreq)
 		goto out;
 	}
 	data->valid = false;
-	devfreq->data = data;
+	devfreq->governor_data = data;
 
 	err = sysfs_create_group(&devfreq->dev.kobj, &dev_attr_group);
 out:
@@ -107,8 +107,8 @@ static void userspace_exit(struct devfreq *devfreq)
 	if (devfreq->dev.kobj.sd)
 		sysfs_remove_group(&devfreq->dev.kobj, &dev_attr_group);
 
-	kfree(devfreq->data);
-	devfreq->data = NULL;
+	kfree(devfreq->governor_data);
+	devfreq->governor_data = NULL;
 }
 
 static int devfreq_userspace_handler(struct devfreq *devfreq,
drivers/firmware/efi/efi.c +2 -2
index 70be9c87fb67..ba03f5a4b30c 100644
@@ -590,7 +590,7 @@ int __init efi_config_parse_tables(const efi_config_table_t *config_tables,
 
 		seed = early_memremap(efi_rng_seed, sizeof(*seed));
 		if (seed != NULL) {
-			size = min(seed->size, EFI_RANDOM_SEED_SIZE);
+			size = min_t(u32, seed->size, SZ_1K); // sanity check
 			early_memunmap(seed, sizeof(*seed));
 		} else {
 			pr_err("Could not map UEFI random seed!\n");
@@ -599,8 +599,8 @@ int __init efi_config_parse_tables(const efi_config_table_t *config_tables,
 			seed = early_memremap(efi_rng_seed,
 					      sizeof(*seed) + size);
 			if (seed != NULL) {
-				pr_notice("seeding entropy pool\n");
 				add_bootloader_randomness(seed->bits, size);
+				memzero_explicit(seed->bits, size);
 				early_memunmap(seed, sizeof(*seed) + size);
 			} else {
 				pr_err("Could not map UEFI random seed!\n");
drivers/firmware/efi/libstub/efistub.h +2 -0
index cde0a2ef507d..fbffdd7290a3 100644
@@ -766,6 +766,8 @@ efi_status_t efi_get_random_bytes(unsigned long size, u8 *out);
 efi_status_t efi_random_alloc(unsigned long size, unsigned long align,
 			      unsigned long *addr, unsigned long random_seed);
 
+efi_status_t efi_random_get_seed(void);
+
 efi_status_t check_platform_features(void);
 
 void *get_efi_config_table(efi_guid_t guid);
drivers/firmware/efi/libstub/random.c +36 -6

77 lines not on this page · raw message

drivers/gpio/gpio-sifive.c +1 -0
index 7d82388b4ab7..f50236e68e88 100644
@@ -209,6 +209,7 @@ static int sifive_gpio_probe(struct platform_device *pdev)
 		return -ENODEV;
 	}
 	parent = irq_find_host(irq_parent);
+	of_node_put(irq_parent);
 	if (!parent) {
 		dev_err(dev, "no IRQ parent domain\n");
 		return -ENODEV;
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +11 -2
index 28dea2eb61c7..cabbf02eb054 100644
@@ -2008,6 +2008,15 @@ static int amdgpu_pci_probe(struct pci_dev *pdev,
 			 "See modparam exp_hw_support\n");
 		return -ENODEV;
 	}
+	/* differentiate between P10 and P11 asics with the same DID */
+	if (pdev->device == 0x67FF &&
+	    (pdev->revision == 0xE3 ||
+	     pdev->revision == 0xE7 ||
+	     pdev->revision == 0xF3 ||
+	     pdev->revision == 0xF7)) {
+		flags &= ~AMD_ASIC_MASK;
+		flags |= CHIP_POLARIS10;
+	}
 
 	/* Due to hardware bugs, S/G Display on raven requires a 1:1 IOMMU mapping,
 	 * however, SME requires an indirect IOMMU mapping because the encryption
@@ -2081,12 +2090,12 @@ static int amdgpu_pci_probe(struct pci_dev *pdev,
 
 	pci_set_drvdata(pdev, ddev);
 
-	ret = amdgpu_driver_load_kms(adev, ent->driver_data);
+	ret = amdgpu_driver_load_kms(adev, flags);
 	if (ret)
 		goto err_pci;
 
 retry_init:
-	ret = drm_dev_register(ddev, ent->driver_data);
+	ret = drm_dev_register(ddev, flags);
 	if (ret == -EAGAIN && ++retry <= 3) {
 		DRM_INFO("retry init %d\n", retry);
 		/* Don't request EX mode too frequently which is attacking */
drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +2 -1
index a0b1bf17cb74..b1d0cad00b2e 100644
@@ -1510,7 +1510,8 @@ u64 amdgpu_bo_gpu_offset_no_check(struct amdgpu_bo *bo)
 uint32_t amdgpu_bo_get_preferred_domain(struct amdgpu_device *adev,
 					    uint32_t domain)
 {
-	if (domain == (AMDGPU_GEM_DOMAIN_VRAM | AMDGPU_GEM_DOMAIN_GTT)) {
+	if ((domain == (AMDGPU_GEM_DOMAIN_VRAM | AMDGPU_GEM_DOMAIN_GTT)) &&
+	    ((adev->asic_type == CHIP_CARRIZO) || (adev->asic_type == CHIP_STONEY))) {
 		domain = AMDGPU_GEM_DOMAIN_VRAM;
 		if (adev->gmc.real_vram_size <= AMDGPU_SG_THRESHOLD)
 			domain = AMDGPU_GEM_DOMAIN_GTT;
drivers/gpu/drm/drm_connector.c +3 -0
index e9b7926d9b66..cfe163103cfd 100644
@@ -487,6 +487,9 @@ void drm_connector_cleanup(struct drm_connector *connector)
 	mutex_destroy(&connector->mutex);
 
 	memset(connector, 0, sizeof(*connector));
+
+	if (dev->registered)
+		drm_sysfs_hotplug_event(dev);
 }
 EXPORT_SYMBOL(drm_connector_cleanup);
 
drivers/gpu/drm/i915/display/intel_dsi_vbt.c +2 -2
index 0a88088a11e8..55dd02a01f1a 100644
@@ -133,9 +133,9 @@ static enum port intel_dsi_seq_port_to_port(struct intel_dsi *intel_dsi,
 		return ffs(intel_dsi->ports) - 1;
 
 	if (seq_port) {
-		if (intel_dsi->ports & PORT_B)
+		if (intel_dsi->ports & BIT(PORT_B))
 			return PORT_B;
-		else if (intel_dsi->ports & PORT_C)
+		else if (intel_dsi->ports & BIT(PORT_C))
 			return PORT_C;
 	}
 
drivers/gpu/drm/i915/gt/intel_migrate.c +3 -5
index 1dac21aa7e5c..5b59a6effc20 100644
@@ -13,7 +13,6 @@
 
 struct insert_pte_data {
 	u64 offset;
-	bool is_lmem;
 };
 
 #define CHUNK_SZ SZ_8M /* ~1ms at 8GiB/s preemption delay */
@@ -40,7 +39,7 @@ static void insert_pte(struct i915_address_space *vm,
 	struct insert_pte_data *d = data;
 
 	vm->insert_page(vm, px_dma(pt), d->offset, I915_CACHE_NONE,
-			d->is_lmem ? PTE_LM : 0);
+			i915_gem_object_is_lmem(pt->base) ? PTE_LM : 0);
 	d->offset += PAGE_SIZE;
 }
 
@@ -134,8 +133,7 @@ static struct i915_address_space *migrate_vm(struct intel_gt *gt)
 			goto err_vm;
 
 		/* Now allow the GPU to rewrite the PTE via its own ppGTT */
-		d.is_lmem = i915_gem_object_is_lmem(vm->vm.scratch[0]);
-		vm->vm.foreach(&vm->vm, base, base + sz, insert_pte, &d);
+		vm->vm.foreach(&vm->vm, base, d.offset - base, insert_pte, &d);
 	}
 
 	return &vm->vm;
@@ -281,10 +279,10 @@ static int emit_pte(struct i915_request *rq,
 	GEM_BUG_ON(GRAPHICS_VER(rq->engine->i915) < 8);
 
 	/* Compute the page directory offset for the target address range */
-	offset += (u64)rq->engine->instance << 32;
 	offset >>= 12;
 	offset *= sizeof(u64);
 	offset += 2 * CHUNK_SZ;
+	offset += (u64)rq->engine->instance << 32;
 
 	cs = intel_ring_begin(rq, 6);
 	if (IS_ERR(cs))
drivers/gpu/drm/i915/gvt/debugfs.c +13 -4
index 9f1c209d9251..e08ed0e9f165 100644
@@ -175,8 +175,13 @@ void intel_gvt_debugfs_add_vgpu(struct intel_vgpu *vgpu)
  */
 void intel_gvt_debugfs_remove_vgpu(struct intel_vgpu *vgpu)
 {
-	debugfs_remove_recursive(vgpu->debugfs);
-	vgpu->debugfs = NULL;
+	struct intel_gvt *gvt = vgpu->gvt;
+	struct drm_minor *minor = gvt->gt->i915->drm.primary;
+
+	if (minor->debugfs_root && gvt->debugfs_root) {
+		debugfs_remove_recursive(vgpu->debugfs);
+		vgpu->debugfs = NULL;
+	}
 }
 
 /**
@@ -199,6 +204,10 @@ void intel_gvt_debugfs_init(struct intel_gvt *gvt)
  */
 void intel_gvt_debugfs_clean(struct intel_gvt *gvt)
 {
-	debugfs_remove_recursive(gvt->debugfs_root);
-	gvt->debugfs_root = NULL;
+	struct drm_minor *minor = gvt->gt->i915->drm.primary;
+
+	if (minor->debugfs_root) {
+		debugfs_remove_recursive(gvt->debugfs_root);
+		gvt->debugfs_root = NULL;
+	}
 }
drivers/gpu/drm/i915/gvt/scheduler.c +1 -0
index 1bb1be5c48c8..0291d42cfba8 100644
@@ -694,6 +694,7 @@ intel_vgpu_shadow_mm_pin(struct intel_vgpu_workload *workload)
 
 	if (workload->shadow_mm->type != INTEL_GVT_MM_PPGTT ||
 	    !workload->shadow_mm->ppgtt_mm.shadowed) {
+		intel_vgpu_unpin_mm(workload->shadow_mm);
 		gvt_vgpu_err("workload shadow ppgtt isn't ready\n");
 		return -EINVAL;
 	}
drivers/gpu/drm/imx/ipuv3-plane.c +8 -6
index 846c1aae69c8..924a66f53951 100644
@@ -619,6 +619,11 @@ static void ipu_plane_atomic_update(struct drm_plane *plane,
 		break;
 	}
 
+	if (ipu_plane->dp_flow == IPU_DP_FLOW_SYNC_BG)
+		width = ipu_src_rect_width(new_state);
+	else
+		width = drm_rect_width(&new_state->src) >> 16;
+
 	eba = drm_plane_state_to_eba(new_state, 0);
 
 	/*
@@ -627,8 +632,7 @@ static void ipu_plane_atomic_update(struct drm_plane *plane,
 	 */
 	if (ipu_state->use_pre) {
 		axi_id = ipu_chan_assign_axi_id(ipu_plane->dma);
-		ipu_prg_channel_configure(ipu_plane->ipu_ch, axi_id,
-					  ipu_src_rect_width(new_state),
+		ipu_prg_channel_configure(ipu_plane->ipu_ch, axi_id, width,
 					  drm_rect_height(&new_state->src) >> 16,
 					  fb->pitches[0], fb->format->format,
 					  fb->modifier, &eba);
@@ -683,9 +687,8 @@ static void ipu_plane_atomic_update(struct drm_plane *plane,
 		break;
 	}
 
-	ipu_dmfc_config_wait4eot(ipu_plane->dmfc, ALIGN(drm_rect_width(dst), 8));
+	ipu_dmfc_config_wait4eot(ipu_plane->dmfc, width);
 
-	width = ipu_src_rect_width(new_state);
 	height = drm_rect_height(&new_state->src) >> 16;
 	info = drm_format_info(fb->format->format);
 	ipu_calculate_bursts(width, info->cpp[0], fb->pitches[0],
@@ -749,8 +752,7 @@ static void ipu_plane_atomic_update(struct drm_plane *plane,
 		ipu_cpmem_set_burstsize(ipu_plane->ipu_ch, 16);
 
 		ipu_cpmem_zero(ipu_plane->alpha_ch);
-		ipu_cpmem_set_resolution(ipu_plane->alpha_ch,
-					 ipu_src_rect_width(new_state),
+		ipu_cpmem_set_resolution(ipu_plane->alpha_ch, width,
 					 drm_rect_height(&new_state->src) >> 16);
 		ipu_cpmem_set_format_passthrough(ipu_plane->alpha_ch, 8);
 		ipu_cpmem_set_high_priority(ipu_plane->alpha_ch);
drivers/gpu/drm/ingenic/ingenic-drm-drv.c +5 -1
index a5df1c8d34cd..d9231b89d73e 100644
@@ -1326,7 +1326,11 @@ static int ingenic_drm_init(void)
 			return err;
 	}
 
-	return platform_driver_register(&ingenic_drm_driver);
+	err = platform_driver_register(&ingenic_drm_driver);
+	if (IS_ENABLED(CONFIG_DRM_INGENIC_IPU) && err)
+		platform_driver_unregister(ingenic_ipu_driver_ptr);
+
+	return err;
 }
 module_init(ingenic_drm_init);
 
drivers/gpu/drm/meson/meson_viu.c +2 -3
index d4b907889a21..cd399b0b7181 100644
@@ -436,15 +436,14 @@ void meson_viu_init(struct meson_drm *priv)
 
 	/* Initialize OSD1 fifo control register */
 	reg = VIU_OSD_DDR_PRIORITY_URGENT |
-		VIU_OSD_HOLD_FIFO_LINES(31) |
 		VIU_OSD_FIFO_DEPTH_VAL(32) | /* fifo_depth_val: 32*8=256 */
 		VIU_OSD_WORDS_PER_BURST(4) | /* 4 words in 1 burst */
 		VIU_OSD_FIFO_LIMITS(2);      /* fifo_lim: 2*16=32 */
 
 	if (meson_vpu_is_compatible(priv, VPU_COMPATIBLE_G12A))
-		reg |= VIU_OSD_BURST_LENGTH_32;
+		reg |= (VIU_OSD_BURST_LENGTH_32 | VIU_OSD_HOLD_FIFO_LINES(31));
 	else
-		reg |= VIU_OSD_BURST_LENGTH_64;
+		reg |= (VIU_OSD_BURST_LENGTH_64 | VIU_OSD_HOLD_FIFO_LINES(4));
 
 	writel_relaxed(reg, priv->io_base + _REG(VIU_OSD1_FIFO_CTRL_STAT));
 	writel_relaxed(reg, priv->io_base + _REG(VIU_OSD2_FIFO_CTRL_STAT));
drivers/gpu/drm/mgag200/mgag200_pll.c +2 -1
index 52be08b744ad..87f9846b9b4f 100644
@@ -268,7 +268,8 @@ static void mgag200_pixpll_update_g200se_04(struct mgag200_pll *pixpll,
 	pixpllcp = pixpllc->p - 1;
 	pixpllcs = pixpllc->s;
 
-	xpixpllcm = pixpllcm | ((pixpllcn & BIT(8)) >> 1);
+	// For G200SE A, BIT(7) should be set unconditionally.
+	xpixpllcm = BIT(7) | pixpllcm;
 	xpixpllcn = pixpllcn;
 	xpixpllcp = (pixpllcs << 3) | pixpllcp;
 
drivers/gpu/drm/panfrost/panfrost_drv.c +18 -9
index e48e357ea4f1..4c271244092b 100644
@@ -82,6 +82,7 @@ static int panfrost_ioctl_create_bo(struct drm_device *dev, void *data,
 	struct panfrost_gem_object *bo;
 	struct drm_panfrost_create_bo *args = data;
 	struct panfrost_gem_mapping *mapping;
+	int ret;
 
 	if (!args->size || args->pad ||
 	    (args->flags & ~(PANFROST_BO_NOEXEC | PANFROST_BO_HEAP)))
@@ -92,21 +93,29 @@ static int panfrost_ioctl_create_bo(struct drm_device *dev, void *data,
 	    !(args->flags & PANFROST_BO_NOEXEC))
 		return -EINVAL;
 
-	bo = panfrost_gem_create_with_handle(file, dev, args->size, args->flags,
-					     &args->handle);
+	bo = panfrost_gem_create(dev, args->size, args->flags);
 	if (IS_ERR(bo))
 		return PTR_ERR(bo);
 
+	ret = drm_gem_handle_create(file, &bo->base.base, &args->handle);
+	if (ret)
+		goto out;
+
 	mapping = panfrost_gem_mapping_get(bo, priv);
-	if (!mapping) {
-		drm_gem_object_put(&bo->base.base);
-		return -EINVAL;
+	if (mapping) {
+		args->offset = mapping->mmnode.start << PAGE_SHIFT;
+		panfrost_gem_mapping_put(mapping);
+	} else {
+		/* This can only happen if the handle from
+		 * drm_gem_handle_create() has already been guessed and freed
+		 * by user space
+		 */
+		ret = -EINVAL;
 	}
 
-	args->offset = mapping->mmnode.start << PAGE_SHIFT;
-	panfrost_gem_mapping_put(mapping);
-
-	return 0;
+out:
+	drm_gem_object_put(&bo->base.base);
+	return ret;
 }
 
 /**
drivers/gpu/drm/panfrost/panfrost_gem.c +1 -15
index 6d9bdb9180cb..55e3a68ed28a 100644
@@ -234,12 +234,8 @@ struct drm_gem_object *panfrost_gem_create_object(struct drm_device *dev, size_t
 }
 
 struct panfrost_gem_object *
-panfrost_gem_create_with_handle(struct drm_file *file_priv,
-				struct drm_device *dev, size_t size,
-				u32 flags,
-				uint32_t *handle)
+panfrost_gem_create(struct drm_device *dev, size_t size, u32 flags)
 {
-	int ret;
 	struct drm_gem_shmem_object *shmem;
 	struct panfrost_gem_object *bo;
 
@@ -255,16 +251,6 @@ panfrost_gem_create_with_handle(struct drm_file *file_priv,
 	bo->noexec = !!(flags & PANFROST_BO_NOEXEC);
 	bo->is_heap = !!(flags & PANFROST_BO_HEAP);
 
-	/*
-	 * Allocate an id of idr table where the obj is registered
-	 * and handle has the id what user can see.
-	 */
-	ret = drm_gem_handle_create(file_priv, &shmem->base, handle);
-	/* drop reference from allocate - handle holds it now. */
-	drm_gem_object_put(&shmem->base);
-	if (ret)
-		return ERR_PTR(ret);
-
 	return bo;
 }
 
drivers/gpu/drm/panfrost/panfrost_gem.h +1 -4
index 8088d5fd8480..ad2877eeeccd 100644
@@ -69,10 +69,7 @@ panfrost_gem_prime_import_sg_table(struct drm_device *dev,
 				   struct sg_table *sgt);
 
 struct panfrost_gem_object *
-panfrost_gem_create_with_handle(struct drm_file *file_priv,
-				struct drm_device *dev, size_t size,
-				u32 flags,
-				uint32_t *handle);
+panfrost_gem_create(struct drm_device *dev, size_t size, u32 flags);
 
 int panfrost_gem_open(struct drm_gem_object *obj, struct drm_file *file_priv);
 void panfrost_gem_close(struct drm_gem_object *obj,
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c +2 -1
index 171e90c4b9f3..01d5a01af259 100644
@@ -186,7 +186,8 @@ void vmw_kms_cursor_snoop(struct vmw_surface *srf,
 	if (cmd->dma.guest.ptr.offset % PAGE_SIZE ||
 	    box->x != 0    || box->y != 0    || box->z != 0    ||
 	    box->srcx != 0 || box->srcy != 0 || box->srcz != 0 ||
-	    box->d != 1    || box_count != 1) {
+	    box->d != 1    || box_count != 1 ||
+	    box->w > 64 || box->h > 64) {
 		/* TODO handle none page aligned offsets */
 		/* TODO handle more dst & src != 0 */
 		/* TODO handle more then one copy */
drivers/hid/hid-ids.h +3 -0
index 78b55f845d2d..8698d49edaa3 100644
@@ -966,7 +966,10 @@
 #define USB_DEVICE_ID_ORTEK_IHOME_IMAC_A210S	0x8003
 
 #define USB_VENDOR_ID_PLANTRONICS	0x047f
+#define USB_DEVICE_ID_PLANTRONICS_BLACKWIRE_3210_SERIES	0xc055
 #define USB_DEVICE_ID_PLANTRONICS_BLACKWIRE_3220_SERIES	0xc056
+#define USB_DEVICE_ID_PLANTRONICS_BLACKWIRE_3215_SERIES	0xc057
+#define USB_DEVICE_ID_PLANTRONICS_BLACKWIRE_3225_SERIES	0xc058
 
 #define USB_VENDOR_ID_PANASONIC		0x04da
 #define USB_DEVICE_ID_PANABOARD_UBT780	0x1044
drivers/hid/hid-multitouch.c +4 -0
index 08462ac72b89..6b86d368d5e7 100644
@@ -1965,6 +1965,10 @@ static const struct hid_device_id mt_devices[] = {
 		HID_DEVICE(BUS_I2C, HID_GROUP_MULTITOUCH_WIN_8,
 			USB_VENDOR_ID_ELAN, 0x313a) },
 
+	{ .driver_data = MT_CLS_WIN_8_FORCE_MULTI_INPUT,
+		HID_DEVICE(BUS_I2C, HID_GROUP_MULTITOUCH_WIN_8,
+			USB_VENDOR_ID_ELAN, 0x3148) },
+
 	/* Elitegroup panel */
 	{ .driver_data = MT_CLS_SERIAL,
 		MT_USB_DEVICE(USB_VENDOR_ID_ELITEGROUP,
drivers/hid/hid-plantronics.c +9 -0
index e81b7cec2d12..3d414ae194ac 100644
@@ -198,9 +198,18 @@ static int plantronics_probe(struct hid_device *hdev,
 }
 
 static const struct hid_device_id plantronics_devices[] = {
+	{ HID_USB_DEVICE(USB_VENDOR_ID_PLANTRONICS,
+					 USB_DEVICE_ID_PLANTRONICS_BLACKWIRE_3210_SERIES),
+		.driver_data = PLT_QUIRK_DOUBLE_VOLUME_KEYS },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_PLANTRONICS,
 					 USB_DEVICE_ID_PLANTRONICS_BLACKWIRE_3220_SERIES),
 		.driver_data = PLT_QUIRK_DOUBLE_VOLUME_KEYS },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_PLANTRONICS,
+					 USB_DEVICE_ID_PLANTRONICS_BLACKWIRE_3215_SERIES),
+		.driver_data = PLT_QUIRK_DOUBLE_VOLUME_KEYS },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_PLANTRONICS,
+					 USB_DEVICE_ID_PLANTRONICS_BLACKWIRE_3225_SERIES),
+		.driver_data = PLT_QUIRK_DOUBLE_VOLUME_KEYS },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_PLANTRONICS, HID_ANY_ID) },
 	{ }
 };
drivers/infiniband/hw/mlx5/counters.c +3 -3
index 224ba36f2946..1a0ecf439c09 100644
@@ -249,7 +249,6 @@ static int mlx5_ib_get_hw_stats(struct ib_device *ibdev,
 	const struct mlx5_ib_counters *cnts = get_counters(dev, port_num - 1);
 	struct mlx5_core_dev *mdev;
 	int ret, num_counters;
-	u32 mdev_port_num;
 
 	if (!stats)
 		return -EINVAL;
@@ -270,8 +269,9 @@ static int mlx5_ib_get_hw_stats(struct ib_device *ibdev,
 	}
 
 	if (MLX5_CAP_GEN(dev->mdev, cc_query_allowed)) {
-		mdev = mlx5_ib_get_native_port_mdev(dev, port_num,
-						    &mdev_port_num);
+		if (!port_num)
+			port_num = 1;
+		mdev = mlx5_ib_get_native_port_mdev(dev, port_num, NULL);
 		if (!mdev) {
 			/* If port is not affiliated yet, its in down state
 			 * which doesn't have any counters yet, so it would be
drivers/infiniband/hw/mlx5/qp.c +35 -14

62 lines not on this page · raw message

drivers/iommu/amd/init.c +7 -0
index 9a7742732d73..ce91a6d8532f 100644
@@ -3226,6 +3226,13 @@ static int __init parse_ivrs_acpihid(char *str)
 		return 1;
 	}
 
+	/*
+	 * Ignore leading zeroes after ':', so e.g., AMDI0095:00
+	 * will match AMDI0095:0 in the second strcmp in acpi_dev_hid_uid_match
+	 */
+	while (*uid == '0' && *(uid + 1))
+		uid++;
+
 	i = early_acpihid_map_size++;
 	memcpy(early_acpihid_map[i].hid, hid, strlen(hid));
 	memcpy(early_acpihid_map[i].uid, uid, strlen(uid));
drivers/md/dm-cache-metadata.c +47 -7

86 lines not on this page · raw message

drivers/md/dm-cache-target.c +6 -5
index bdd500447dea..abfe7e37b76f 100644
@@ -915,16 +915,16 @@ static void abort_transaction(struct cache *cache)
 	if (get_cache_mode(cache) >= CM_READ_ONLY)
 		return;
 
-	if (dm_cache_metadata_set_needs_check(cache->cmd)) {
-		DMERR("%s: failed to set 'needs_check' flag in metadata", dev_name);
-		set_cache_mode(cache, CM_FAIL);
-	}
-
 	DMERR_LIMIT("%s: aborting current metadata transaction", dev_name);
 	if (dm_cache_metadata_abort(cache->cmd)) {
 		DMERR("%s: failed to abort metadata transaction", dev_name);
 		set_cache_mode(cache, CM_FAIL);
 	}
+
+	if (dm_cache_metadata_set_needs_check(cache->cmd)) {
+		DMERR("%s: failed to set 'needs_check' flag in metadata", dev_name);
+		set_cache_mode(cache, CM_FAIL);
+	}
 }
 
 static void metadata_operation_failed(struct cache *cache, const char *op, int r)
@@ -1895,6 +1895,7 @@ static void destroy(struct cache *cache)
 	if (cache->prison)
 		dm_bio_prison_destroy_v2(cache->prison);
 
+	cancel_delayed_work_sync(&cache->waker);
 	if (cache->wq)
 		destroy_workqueue(cache->wq);
 
drivers/md/dm-clone-target.c +1 -0
index edd22e4d65df..ec4f2487ef10 100644
@@ -1959,6 +1959,7 @@ static void clone_dtr(struct dm_target *ti)
 
 	mempool_exit(&clone->hydration_pool);
 	dm_kcopyd_client_destroy(clone->kcopyd_client);
+	cancel_delayed_work_sync(&clone->waker);
 	destroy_workqueue(clone->wq);
 	hash_table_exit(clone);
 	dm_clone_metadata_close(clone->cmd);
drivers/md/dm-integrity.c +2 -0
index 9705f3c358dd..508e81bfef2c 100644
@@ -4539,6 +4539,8 @@ static void dm_integrity_dtr(struct dm_target *ti)
 	BUG_ON(!RB_EMPTY_ROOT(&ic->in_progress));
 	BUG_ON(!list_empty(&ic->wait_list));
 
+	if (ic->mode == 'B')
+		cancel_delayed_work_sync(&ic->bitmap_flush_work);
 	if (ic->metadata_wq)
 		destroy_workqueue(ic->metadata_wq);
 	if (ic->wait_wq)
drivers/md/dm-thin-metadata.c +52 -8

97 lines not on this page · raw message

drivers/md/dm-thin.c +14 -4
index 0a85e4cd607c..cce26f46ded5 100644
@@ -2907,6 +2907,8 @@ static void __pool_destroy(struct pool *pool)
 	dm_bio_prison_destroy(pool->prison);
 	dm_kcopyd_client_destroy(pool->copier);
 
+	cancel_delayed_work_sync(&pool->waker);
+	cancel_delayed_work_sync(&pool->no_space_timeout);
 	if (pool->wq)
 		destroy_workqueue(pool->wq);
 
@@ -3566,20 +3568,28 @@ static int pool_preresume(struct dm_target *ti)
 	 */
 	r = bind_control_target(pool, ti);
 	if (r)
-		return r;
+		goto out;
 
 	r = maybe_resize_data_dev(ti, &need_commit1);
 	if (r)
-		return r;
+		goto out;
 
 	r = maybe_resize_metadata_dev(ti, &need_commit2);
 	if (r)
-		return r;
+		goto out;
 
 	if (need_commit1 || need_commit2)
 		(void) commit(pool);
+out:
+	/*
+	 * When a thin-pool is PM_FAIL, it cannot be rebuilt if
+	 * bio is in deferred list. Therefore need to return 0
+	 * to allow pool_resume() to flush IO.
+	 */
+	if (r && get_pool_mode(pool) == PM_FAIL)
+		r = 0;
 
-	return 0;
+	return r;
 }
 
 static void pool_suspend_active_thins(struct pool *pool)
drivers/md/md-bitmap.c +12 -8
index 650bfccd066f..062142559caa 100644
@@ -486,7 +486,7 @@ void md_bitmap_print_sb(struct bitmap *bitmap)
 	sb = kmap_atomic(bitmap->storage.sb_page);
 	pr_debug("%s: bitmap file superblock:\n", bmname(bitmap));
 	pr_debug("         magic: %08x\n", le32_to_cpu(sb->magic));
-	pr_debug("       version: %d\n", le32_to_cpu(sb->version));
+	pr_debug("       version: %u\n", le32_to_cpu(sb->version));
 	pr_debug("          uuid: %08x.%08x.%08x.%08x\n",
 		 le32_to_cpu(*(__le32 *)(sb->uuid+0)),
 		 le32_to_cpu(*(__le32 *)(sb->uuid+4)),
@@ -497,11 +497,11 @@ void md_bitmap_print_sb(struct bitmap *bitmap)
 	pr_debug("events cleared: %llu\n",
 		 (unsigned long long) le64_to_cpu(sb->events_cleared));
 	pr_debug("         state: %08x\n", le32_to_cpu(sb->state));
-	pr_debug("     chunksize: %d B\n", le32_to_cpu(sb->chunksize));
-	pr_debug("  daemon sleep: %ds\n", le32_to_cpu(sb->daemon_sleep));
+	pr_debug("     chunksize: %u B\n", le32_to_cpu(sb->chunksize));
+	pr_debug("  daemon sleep: %us\n", le32_to_cpu(sb->daemon_sleep));
 	pr_debug("     sync size: %llu KB\n",
 		 (unsigned long long)le64_to_cpu(sb->sync_size)/2);
-	pr_debug("max write behind: %d\n", le32_to_cpu(sb->write_behind));
+	pr_debug("max write behind: %u\n", le32_to_cpu(sb->write_behind));
 	kunmap_atomic(sb);
 }
 
@@ -2106,7 +2106,8 @@ int md_bitmap_resize(struct bitmap *bitmap, sector_t blocks,
 			bytes = DIV_ROUND_UP(chunks, 8);
 			if (!bitmap->mddev->bitmap_info.external)
 				bytes += sizeof(bitmap_super_t);
-		} while (bytes > (space << 9));
+		} while (bytes > (space << 9) && (chunkshift + BITMAP_BLOCK_SHIFT) <
+			(BITS_PER_BYTE * sizeof(((bitmap_super_t *)0)->chunksize) - 1));
 	} else
 		chunkshift = ffz(~chunksize) - BITMAP_BLOCK_SHIFT;
 
@@ -2151,7 +2152,7 @@ int md_bitmap_resize(struct bitmap *bitmap, sector_t blocks,
 	bitmap->counts.missing_pages = pages;
 	bitmap->counts.chunkshift = chunkshift;
 	bitmap->counts.chunks = chunks;
-	bitmap->mddev->bitmap_info.chunksize = 1 << (chunkshift +
+	bitmap->mddev->bitmap_info.chunksize = 1UL << (chunkshift +
 						     BITMAP_BLOCK_SHIFT);
 
 	blocks = min(old_counts.chunks << old_counts.chunkshift,
@@ -2177,8 +2178,8 @@ int md_bitmap_resize(struct bitmap *bitmap, sector_t blocks,
 				bitmap->counts.missing_pages = old_counts.pages;
 				bitmap->counts.chunkshift = old_counts.chunkshift;
 				bitmap->counts.chunks = old_counts.chunks;
-				bitmap->mddev->bitmap_info.chunksize = 1 << (old_counts.chunkshift +
-									     BITMAP_BLOCK_SHIFT);
+				bitmap->mddev->bitmap_info.chunksize =
+					1UL << (old_counts.chunkshift + BITMAP_BLOCK_SHIFT);
 				blocks = old_counts.chunks << old_counts.chunkshift;
 				pr_warn("Could not pre-allocate in-memory bitmap for cluster raid\n");
 				break;
@@ -2519,6 +2520,9 @@ chunksize_store(struct mddev *mddev, const char *buf, size_t len)
 	if (csize < 512 ||
 	    !is_power_of_2(csize))
 		return -EINVAL;
+	if (BITS_PER_LONG > 32 && csize >= (1ULL << (BITS_PER_BYTE *
+		sizeof(((bitmap_super_t *)0)->chunksize))))
+		return -EOVERFLOW;
 	mddev->bitmap_info.chunksize = csize;
 	return len;
 }
drivers/md/md.c +6 -3
index 04e1e294b4b1..59ab99844df8 100644
@@ -526,13 +526,14 @@ static void md_end_flush(struct bio *bio)
 	struct md_rdev *rdev = bio->bi_private;
 	struct mddev *mddev = rdev->mddev;
 
+	bio_put(bio);
+
 	rdev_dec_pending(rdev, mddev);
 
 	if (atomic_dec_and_test(&mddev->flush_pending)) {
 		/* The pre-request flush has finished */
 		queue_work(md_wq, &mddev->flush_work);
 	}
-	bio_put(bio);
 }
 
 static void md_submit_flush_data(struct work_struct *ws);
@@ -935,10 +936,12 @@ static void super_written(struct bio *bio)
 	} else
 		clear_bit(LastDev, &rdev->flags);
 
+	bio_put(bio);
+
+	rdev_dec_pending(rdev, mddev);
+
 	if (atomic_dec_and_test(&mddev->pending_writes))
 		wake_up(&mddev->sb_wait);
-	rdev_dec_pending(rdev, mddev);
-	bio_put(bio);
 }
 
 void md_super_write(struct mddev *mddev, struct md_rdev *rdev,
drivers/media/dvb-core/dmxdev.c +8 -0
index 01f288fa37e0..8abf7f44d96b 100644
@@ -800,6 +800,11 @@ static int dvb_demux_open(struct inode *inode, struct file *file)
 	if (mutex_lock_interruptible(&dmxdev->mutex))
 		return -ERESTARTSYS;
 
+	if (dmxdev->exit) {
+		mutex_unlock(&dmxdev->mutex);
+		return -ENODEV;
+	}
+
 	for (i = 0; i < dmxdev->filternum; i++)
 		if (dmxdev->filter[i].state == DMXDEV_STATE_FREE)
 			break;
@@ -1458,7 +1463,10 @@ EXPORT_SYMBOL(dvb_dmxdev_init);
 
 void dvb_dmxdev_release(struct dmxdev *dmxdev)
 {
+	mutex_lock(&dmxdev->mutex);
 	dmxdev->exit = 1;
+	mutex_unlock(&dmxdev->mutex);
+
 	if (dmxdev->dvbdev->users > 1) {
 		wait_event(dmxdev->dvbdev->wait_queue,
 				dmxdev->dvbdev->users == 1);
drivers/media/dvb-core/dvbdev.c +1 -0
index 828a0069a296..6e2b7e97da17 100644
@@ -345,6 +345,7 @@ static int dvb_create_media_entity(struct dvb_device *dvbdev,
 				       GFP_KERNEL);
 		if (!dvbdev->pads) {
 			kfree(dvbdev->entity);
+			dvbdev->entity = NULL;
 			return -ENOMEM;
 		}
 	}
drivers/media/dvb-frontends/stv0288.c +2 -3
index 3d54a0ec86af..3ae1f3a2f142 100644
@@ -440,9 +440,8 @@ static int stv0288_set_frontend(struct dvb_frontend *fe)
 	struct stv0288_state *state = fe->demodulator_priv;
 	struct dtv_frontend_properties *c = &fe->dtv_property_cache;
 
-	char tm;
-	unsigned char tda[3];
-	u8 reg, time_out = 0;
+	u8 tda[3], reg, time_out = 0;
+	s8 tm;
 
 	dprintk("%s : FE_SET_FRONTEND\n", __func__);
 
drivers/media/platform/s5p-mfc/s5p_mfc_ctrl.c +3 -1
index da138c314963..58822ec5370e 100644
@@ -468,8 +468,10 @@ void s5p_mfc_close_mfc_inst(struct s5p_mfc_dev *dev, struct s5p_mfc_ctx *ctx)
 	s5p_mfc_hw_call(dev->mfc_ops, try_run, dev);
 	/* Wait until instance is returned or timeout occurred */
 	if (s5p_mfc_wait_for_done_ctx(ctx,
-				S5P_MFC_R2H_CMD_CLOSE_INSTANCE_RET, 0))
+				S5P_MFC_R2H_CMD_CLOSE_INSTANCE_RET, 0)){
+		clear_work_bit_irqsave(ctx);
 		mfc_err("Err returning instance\n");
+	}
 
 	/* Free resources */
 	s5p_mfc_hw_call(dev->mfc_ops, release_codec_buffers, ctx);
drivers/media/platform/s5p-mfc/s5p_mfc_enc.c +10 -2
index 1fad99edb091..3da1775a65f1 100644
@@ -1218,6 +1218,7 @@ static int enc_post_frame_start(struct s5p_mfc_ctx *ctx)
 	unsigned long mb_y_addr, mb_c_addr;
 	int slice_type;
 	unsigned int strm_size;
+	bool src_ready;
 
 	slice_type = s5p_mfc_hw_call(dev->mfc_ops, get_enc_slice_type, dev);
 	strm_size = s5p_mfc_hw_call(dev->mfc_ops, get_enc_strm_size, dev);
@@ -1257,7 +1258,8 @@ static int enc_post_frame_start(struct s5p_mfc_ctx *ctx)
 			}
 		}
 	}
-	if ((ctx->src_queue_cnt > 0) && (ctx->state == MFCINST_RUNNING)) {
+	if (ctx->src_queue_cnt > 0 && (ctx->state == MFCINST_RUNNING ||
+				       ctx->state == MFCINST_FINISHING)) {
 		mb_entry = list_entry(ctx->src_queue.next, struct s5p_mfc_buf,
 									list);
 		if (mb_entry->flags & MFC_BUF_FLAG_USED) {
@@ -1288,7 +1290,13 @@ static int enc_post_frame_start(struct s5p_mfc_ctx *ctx)
 		vb2_set_plane_payload(&mb_entry->b->vb2_buf, 0, strm_size);
 		vb2_buffer_done(&mb_entry->b->vb2_buf, VB2_BUF_STATE_DONE);
 	}
-	if ((ctx->src_queue_cnt == 0) || (ctx->dst_queue_cnt == 0))
+
+	src_ready = true;
+	if (ctx->state == MFCINST_RUNNING && ctx->src_queue_cnt == 0)
+		src_ready = false;
+	if (ctx->state == MFCINST_FINISHING && ctx->ref_queue_cnt == 0)
+		src_ready = false;
+	if (!src_ready || ctx->dst_queue_cnt == 0)
 		clear_work_bit(ctx);
 
 	return 0;
drivers/media/platform/s5p-mfc/s5p_mfc_opr_v6.c +7 -7
index a1453053e31a..ef8169f6c428 100644
@@ -1060,7 +1060,7 @@ static int s5p_mfc_set_enc_params_h264(struct s5p_mfc_ctx *ctx)
 	}
 
 	/* aspect ratio VUI */
-	readl(mfc_regs->e_h264_options);
+	reg = readl(mfc_regs->e_h264_options);
 	reg &= ~(0x1 << 5);
 	reg |= ((p_h264->vui_sar & 0x1) << 5);
 	writel(reg, mfc_regs->e_h264_options);
@@ -1083,7 +1083,7 @@ static int s5p_mfc_set_enc_params_h264(struct s5p_mfc_ctx *ctx)
 
 	/* intra picture period for H.264 open GOP */
 	/* control */
-	readl(mfc_regs->e_h264_options);
+	reg = readl(mfc_regs->e_h264_options);
 	reg &= ~(0x1 << 4);
 	reg |= ((p_h264->open_gop & 0x1) << 4);
 	writel(reg, mfc_regs->e_h264_options);
@@ -1097,23 +1097,23 @@ static int s5p_mfc_set_enc_params_h264(struct s5p_mfc_ctx *ctx)
 	}
 
 	/* 'WEIGHTED_BI_PREDICTION' for B is disable */
-	readl(mfc_regs->e_h264_options);
+	reg = readl(mfc_regs->e_h264_options);
 	reg &= ~(0x3 << 9);
 	writel(reg, mfc_regs->e_h264_options);
 
 	/* 'CONSTRAINED_INTRA_PRED_ENABLE' is disable */
-	readl(mfc_regs->e_h264_options);
+	reg = readl(mfc_regs->e_h264_options);
 	reg &= ~(0x1 << 14);
 	writel(reg, mfc_regs->e_h264_options);
 
 	/* ASO */
-	readl(mfc_regs->e_h264_options);
+	reg = readl(mfc_regs->e_h264_options);
 	reg &= ~(0x1 << 6);
 	reg |= ((p_h264->aso & 0x1) << 6);
 	writel(reg, mfc_regs->e_h264_options);
 
 	/* hier qp enable */
-	readl(mfc_regs->e_h264_options);
+	reg = readl(mfc_regs->e_h264_options);
 	reg &= ~(0x1 << 8);
 	reg |= ((p_h264->open_gop & 0x1) << 8);
 	writel(reg, mfc_regs->e_h264_options);
@@ -1134,7 +1134,7 @@ static int s5p_mfc_set_enc_params_h264(struct s5p_mfc_ctx *ctx)
 	writel(reg, mfc_regs->e_h264_num_t_layer);
 
 	/* frame packing SEI generation */
-	readl(mfc_regs->e_h264_options);
+	reg = readl(mfc_regs->e_h264_options);
 	reg &= ~(0x1 << 25);
 	reg |= ((p_h264->sei_frame_packing & 0x1) << 25);
 	writel(reg, mfc_regs->e_h264_options);
drivers/mfd/mt6360-core.c +12 -2
index 6eaa6775b888..d3b32eb79837 100644
@@ -402,7 +402,7 @@ static int mt6360_regmap_read(void *context, const void *reg, size_t reg_size,
 	struct mt6360_ddata *ddata = context;
 	u8 bank = *(u8 *)reg;
 	u8 reg_addr = *(u8 *)(reg + 1);
-	struct i2c_client *i2c = ddata->i2c[bank];
+	struct i2c_client *i2c;
 	bool crc_needed = false;
 	u8 *buf;
 	int buf_len = MT6360_ALLOC_READ_SIZE(val_size);
@@ -410,6 +410,11 @@ static int mt6360_regmap_read(void *context, const void *reg, size_t reg_size,
 	u8 crc;
 	int ret;
 
+	if (bank >= MT6360_SLAVE_MAX)
+		return -EINVAL;
+
+	i2c = ddata->i2c[bank];
+
 	if (bank == MT6360_SLAVE_PMIC || bank == MT6360_SLAVE_LDO) {
 		crc_needed = true;
 		ret = mt6360_xlate_pmicldo_addr(&reg_addr, val_size);
@@ -453,13 +458,18 @@ static int mt6360_regmap_write(void *context, const void *val, size_t val_size)
 	struct mt6360_ddata *ddata = context;
 	u8 bank = *(u8 *)val;
 	u8 reg_addr = *(u8 *)(val + 1);
-	struct i2c_client *i2c = ddata->i2c[bank];
+	struct i2c_client *i2c;
 	bool crc_needed = false;
 	u8 *buf;
 	int buf_len = MT6360_ALLOC_WRITE_SIZE(val_size);
 	int write_size = val_size - MT6360_REGMAP_REG_BYTE_SIZE;
 	int ret;
 
+	if (bank >= MT6360_SLAVE_MAX)
+		return -EINVAL;
+
+	i2c = ddata->i2c[bank];
+
 	if (bank == MT6360_SLAVE_PMIC || bank == MT6360_SLAVE_LDO) {
 		crc_needed = true;
 		ret = mt6360_xlate_pmicldo_addr(&reg_addr, val_size - MT6360_REGMAP_REG_BYTE_SIZE);
drivers/mmc/host/sdhci-sprd.c +9 -7
index e85c95f3a868..256260339f69 100644
@@ -224,13 +224,15 @@ static inline void _sdhci_sprd_set_clock(struct sdhci_host *host,
 	div = ((div & 0x300) >> 2) | ((div & 0xFF) << 8);
 	sdhci_enable_clk(host, div);
 
-	/* enable auto gate sdhc_enable_auto_gate */
-	val = sdhci_readl(host, SDHCI_SPRD_REG_32_BUSY_POSI);
-	mask = SDHCI_SPRD_BIT_OUTR_CLK_AUTO_EN |
-	       SDHCI_SPRD_BIT_INNR_CLK_AUTO_EN;
-	if (mask != (val & mask)) {
-		val |= mask;
-		sdhci_writel(host, val, SDHCI_SPRD_REG_32_BUSY_POSI);
+	/* Enable CLK_AUTO when the clock is greater than 400K. */
+	if (clk > 400000) {
+		val = sdhci_readl(host, SDHCI_SPRD_REG_32_BUSY_POSI);
+		mask = SDHCI_SPRD_BIT_OUTR_CLK_AUTO_EN |
+			SDHCI_SPRD_BIT_INNR_CLK_AUTO_EN;
+		if (mask != (val & mask)) {
+			val |= mask;
+			sdhci_writel(host, val, SDHCI_SPRD_REG_32_BUSY_POSI);
+		}
 	}
 }
 
drivers/mmc/host/vub300.c +2 -0
index ab36ec479747..72f65f32abbc 100644
@@ -2049,6 +2049,7 @@ static void vub300_enable_sdio_irq(struct mmc_host *mmc, int enable)
 		return;
 	kref_get(&vub300->kref);
 	if (enable) {
+		set_current_state(TASK_RUNNING);
 		mutex_lock(&vub300->irq_mutex);
 		if (vub300->irqs_queued) {
 			vub300->irqs_queued -= 1;
@@ -2064,6 +2065,7 @@ static void vub300_enable_sdio_irq(struct mmc_host *mmc, int enable)
 			vub300_queue_poll_work(vub300, 0);
 		}
 		mutex_unlock(&vub300->irq_mutex);
+		set_current_state(TASK_INTERRUPTIBLE);
 	} else {
 		vub300->irq_enabled = 0;
 	}
drivers/mtd/spi-nor/core.c +2 -0
index aad7076ae020..d5dcc74a625e 100644
@@ -1409,6 +1409,8 @@ spi_nor_find_best_erase_type(const struct spi_nor_erase_map *map,
 			continue;
 
 		erase = &map->erase_type[i];
+		if (!erase->size)
+			continue;
 
 		/* Alignment is not mandatory for overlaid regions */
 		if (region->offset & SNOR_OVERLAID_REGION &&
drivers/net/bonding/bond_3ad.c +1 -0
index 8ad095c19f27..ff6d4e74a186 100644
@@ -1539,6 +1539,7 @@ static void ad_port_selection_logic(struct port *port, bool *update_slave_arr)
 			slave_err(bond->dev, port->slave->dev,
 				  "Port %d did not find a suitable aggregator\n",
 				  port->actor_port_number);
+			return;
 		}
 	}
 	/* if all aggregator's ports are READY_N == TRUE, set ready=TRUE
drivers/net/dsa/mv88e6xxx/Kconfig +2 -2
index 7a2445a34eb7..e3181d5471df 100644
@@ -2,7 +2,6 @@
 config NET_DSA_MV88E6XXX
 	tristate "Marvell 88E6xxx Ethernet switch fabric support"
 	depends on NET_DSA
-	depends on PTP_1588_CLOCK_OPTIONAL
 	select IRQ_DOMAIN
 	select NET_DSA_TAG_EDSA
 	select NET_DSA_TAG_DSA
@@ -13,7 +12,8 @@ config NET_DSA_MV88E6XXX
 config NET_DSA_MV88E6XXX_PTP
 	bool "PTP support for Marvell 88E6xxx"
 	default n
-	depends on NET_DSA_MV88E6XXX && PTP_1588_CLOCK
+	depends on (NET_DSA_MV88E6XXX = y && PTP_1588_CLOCK = y) || \
+	           (NET_DSA_MV88E6XXX = m && PTP_1588_CLOCK)
 	help
 	  Say Y to enable PTP hardware timestamping on Marvell 88E6xxx switch
 	  chips that support it.
drivers/net/ethernet/amazon/ena/ena_com.c +9 -20
index ab413fc1f68e..f0faad149a3b 100644
@@ -2392,29 +2392,18 @@ int ena_com_fill_hash_function(struct ena_com_dev *ena_dev,
 		return -EOPNOTSUPP;
 	}
 
-	switch (func) {
-	case ENA_ADMIN_TOEPLITZ:
-		if (key) {
-			if (key_len != sizeof(hash_key->key)) {
-				netdev_err(ena_dev->net_device,
-					   "key len (%u) doesn't equal the supported size (%zu)\n",
-					   key_len, sizeof(hash_key->key));
-				return -EINVAL;
-			}
-			memcpy(hash_key->key, key, key_len);
-			rss->hash_init_val = init_val;
-			hash_key->key_parts = key_len / sizeof(hash_key->key[0]);
+	if ((func == ENA_ADMIN_TOEPLITZ) && key) {
+		if (key_len != sizeof(hash_key->key)) {
+			netdev_err(ena_dev->net_device,
+				   "key len (%u) doesn't equal the supported size (%zu)\n",
+				   key_len, sizeof(hash_key->key));
+			return -EINVAL;
 		}
-		break;
-	case ENA_ADMIN_CRC32:
-		rss->hash_init_val = init_val;
-		break;
-	default:
-		netdev_err(ena_dev->net_device, "Invalid hash function (%d)\n",
-			   func);
-		return -EINVAL;
+		memcpy(hash_key->key, key, key_len);
+		hash_key->key_parts = key_len / sizeof(hash_key->key[0]);
 	}
 
+	rss->hash_init_val = init_val;
 	old_func = rss->hash_func;
 	rss->hash_func = func;
 	rc = ena_com_set_hash_function(ena_dev);
drivers/net/ethernet/amazon/ena/ena_ethtool.c +1 -5
index 13e745cf3781..413082f10dc1 100644
@@ -880,11 +880,7 @@ static int ena_set_tunable(struct net_device *netdev,
 	switch (tuna->id) {
 	case ETHTOOL_RX_COPYBREAK:
 		len = *(u32 *)data;
-		if (len > adapter->netdev->mtu) {
-			ret = -EINVAL;
-			break;
-		}
-		adapter->rx_copybreak = len;
+		ret = ena_set_rx_copybreak(adapter, len);
 		break;
 	default:
 		ret = -EINVAL;
drivers/net/ethernet/amazon/ena/ena_netdev.c +60 -23

245 lines not on this page · raw message

drivers/net/ethernet/amazon/ena/ena_netdev.h +15 -2
index 0c39fc2fa345..bf2a39c91c00 100644
@@ -273,9 +273,11 @@ struct ena_ring {
 	bool disable_meta_caching;
 	u16 no_interrupt_event_cnt;
 
-	/* cpu for TPH */
+	/* cpu and NUMA for TPH */
 	int cpu;
-	 /* number of tx/rx_buffer_info's entries */
+	int numa_node;
+
+	/* number of tx/rx_buffer_info's entries */
 	int ring_size;
 
 	enum ena_admin_placement_policy_type tx_mem_queue_type;
@@ -404,6 +406,8 @@ int ena_update_queue_sizes(struct ena_adapter *adapter,
 
 int ena_update_queue_count(struct ena_adapter *adapter, u32 new_channel_count);
 
+int ena_set_rx_copybreak(struct ena_adapter *adapter, u32 rx_copybreak);
+
 int ena_get_sset_count(struct net_device *netdev, int sset);
 
 enum ena_xdp_errors_t {
@@ -412,6 +416,15 @@ enum ena_xdp_errors_t {
 	ENA_XDP_NO_ENOUGH_QUEUES,
 };
 
+enum ENA_XDP_ACTIONS {
+	ENA_XDP_PASS		= 0,
+	ENA_XDP_TX		= BIT(0),
+	ENA_XDP_REDIRECT	= BIT(1),
+	ENA_XDP_DROP		= BIT(2)
+};
+
+#define ENA_XDP_FORWARDED (ENA_XDP_TX | ENA_XDP_REDIRECT)
+
 static inline bool ena_xdp_present(struct ena_adapter *adapter)
 {
 	return !!adapter->xdp_bpf_prog;
drivers/net/ethernet/amd/xgbe/xgbe-drv.c +3 -0
index e6883d52d230..555db1871ec9 100644
@@ -1064,6 +1064,9 @@ static void xgbe_free_irqs(struct xgbe_prv_data *pdata)
 
 	devm_free_irq(pdata->dev, pdata->dev_irq, pdata);
 
+	tasklet_kill(&pdata->tasklet_dev);
+	tasklet_kill(&pdata->tasklet_ecc);
+
 	if (pdata->vdata->ecc_support && (pdata->dev_irq != pdata->ecc_irq))
 		devm_free_irq(pdata->dev, pdata->ecc_irq, pdata);
 
drivers/net/ethernet/amd/xgbe/xgbe-i2c.c +3 -1
index 22d4fc547a0a..a9ccc4258ee5 100644
@@ -447,8 +447,10 @@ static void xgbe_i2c_stop(struct xgbe_prv_data *pdata)
 	xgbe_i2c_disable(pdata);
 	xgbe_i2c_clear_all_interrupts(pdata);
 
-	if (pdata->dev_irq != pdata->i2c_irq)
+	if (pdata->dev_irq != pdata->i2c_irq) {
 		devm_free_irq(pdata->dev, pdata->i2c_irq, pdata);
+		tasklet_kill(&pdata->tasklet_i2c);
+	}
 }
 
 static int xgbe_i2c_start(struct xgbe_prv_data *pdata)
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c +3 -1
index 4e97b4869522..0c5c1b155683 100644
@@ -1390,8 +1390,10 @@ static void xgbe_phy_stop(struct xgbe_prv_data *pdata)
 	/* Disable auto-negotiation */
 	xgbe_an_disable_all(pdata);
 
-	if (pdata->dev_irq != pdata->an_irq)
+	if (pdata->dev_irq != pdata->an_irq) {
 		devm_free_irq(pdata->dev, pdata->an_irq, pdata);
+		tasklet_kill(&pdata->tasklet_an);
+	}
 
 	pdata->phy_if.phy_impl.stop(pdata);
 
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c +65 -113

65 lines not on this page · raw message

drivers/net/ethernet/hisilicon/hns3/hns3_enet.h +7 -0
index f09a61d9c626..91b656adaacb 100644

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

drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +43 -32

75 lines not on this page · raw message

drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c +2 -1
index 21678c12afa2..3c1ff3313221 100644

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

drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c +21 -9
index e14624caddc6..f6306eedd59b 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c +9 -2
index 700c463ea367..a8d7f07ee2ca 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_main.c +1 -1
index c1c4f380803a..be19f5cf9d15 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_tc.c +6 -6
index 843c8435387f..8f2f99689aba 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_tc.h +2 -2
index 1a4cd882f0fb..f48af82781f8 100644

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

drivers/net/ethernet/mellanox/mlx5/core/esw/acl/egress_lgcy.c +6 -1
index 60a73990017c..6b4c9ffad95b 100644

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

drivers/net/ethernet/mellanox/mlx5/core/esw/acl/ingress_lgcy.c +28 -5
index b1a5199260f6..093ed86a0acd 100644

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

drivers/net/ethernet/mellanox/mlx5/core/eswitch.c +21 -9
index 51a8cecc4a7c..2b9278002354 100644

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

drivers/net/ethernet/mellanox/mlx5/core/eswitch.h +6 -0
index 2c7444101bb9..0e2c9e6fccb6 100644

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

drivers/net/ethernet/mellanox/mlx5/core/health.c +6 -0
index 037e18dd4be0..3dceab45986d 100644

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

drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c +4 -0
index cfde0a45b8b8..10940b8dc83e 100644

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

drivers/net/ethernet/mellanox/mlx5/core/main.c +2 -0
index 19c11d33f4b6..145e56f5eeee 100644

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

drivers/net/ethernet/microchip/sparx5/sparx5_main.c +1 -1
index 0463f20da17b..174d89ee6374 100644

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

drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c +7 -1
index 27dffa299ca6..7c3cf9ad4563 100644

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

drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.h +2 -8
index 7519773eaca6..22afa2be85fd 100644

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

drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c +7 -1
index 75960a29f80e..cec07d5bbe67 100644

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

drivers/net/ethernet/renesas/ravb_main.c +1 -1
index 77a19336abec..c89bcdd15f16 100644

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

drivers/net/phy/xilinx_gmii2rgmii.c +1 -0
index 8dcb49ed1f3d..7fd9fe6a602b 100644

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

drivers/net/usb/rndis_host.c +2 -1
index bedd36ab5cf0..e5f6614da5ac 100644

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

drivers/net/veth.c +3 -2
index 64fa8e9c0a22..41cb9179e8b7 100644

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

drivers/net/vmxnet3/vmxnet3_drv.c +8 -0
index 21896e221300..b88092a6bc85 100644

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

drivers/net/wireless/microchip/wilc1000/sdio.c +1 -0
index 6c0727fc4abd..cb4efbfd0811 100644

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

drivers/nvme/host/core.c +26 -6
index 2d5b5e0fb66a..672f53d5651a 100644

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

drivers/nvme/host/nvme.h +1 -1
index 7f52b2b179b8..39ca48babbe8 100644

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

drivers/nvme/host/pci.c +19 -18
index d49df7123677..0165e65cf548 100644

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

drivers/nvme/target/admin-cmd.c +19 -16
index 52bb262d267a..bf78c58ed41d 100644

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

drivers/nvme/target/passthru.c +5 -6
index 6220e1dd961a..9b5929754195 100644

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

drivers/of/kexec.c +5 -5
index 8f9dba11873c..52bb68fb2216 100644

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

drivers/parisc/led.c +3 -0
index cf91cb024be3..4c0551f89c44 100644

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

drivers/pci/pci-sysfs.c +9 -4
index 7fb5cd17cc98..f2909ae93f2f 100644

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

drivers/pci/pci.c +2 -0
index 2bfff2328cf8..a0c6a9eeb7c6 100644

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

drivers/phy/qualcomm/phy-qcom-qmp.c +4 -4
index ed69d455ac0e..a9687e040960 100644

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

drivers/remoteproc/remoteproc_core.c +8 -1
index 775df165eb45..97e59f746126 100644

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

drivers/rtc/rtc-ds1347.c +1 -1
index 157bf5209ac4..a40c1a52df65 100644

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

drivers/soc/qcom/Kconfig +1 -0
index 499718e131d7..6a97e8af9390 100644

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

drivers/soc/ux500/ux500-soc-id.c +4 -6
index a9472e0e5d61..27d6e25a0115 100644

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

drivers/soundwire/dmi-quirks.c +8 -0
index 747983743a14..2bf534632f64 100644

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

drivers/soundwire/intel.c +4 -4
index bbb57b9f6e01..90e0bf8ca37d 100644

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

drivers/soundwire/qcom.c +4 -4
index f88c5d451f09..500035a1fd46 100644

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

drivers/soundwire/stream.c +2 -2
index ebbe138a5626..2a900aa302a3 100644

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

drivers/staging/media/ipu3/ipu3-v4l2.c +34 -23

57 lines not on this page · raw message

drivers/staging/media/tegra-video/csi.c +3 -1
index b26e44adb2be..426e653bd55d 100644

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

drivers/staging/media/tegra-video/csi.h +1 -1
index 4ee05a1785cf..6960ea2e3d36 100644

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

drivers/thermal/intel/int340x_thermal/processor_thermal_rfim.c +4 -0
index 8c42e7662033..92ed1213fe37 100644

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

drivers/usb/dwc3/dwc3-qcom.c +10 -3
index d0352daab012..ec1de6f6c290 100644

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

drivers/vdpa/vdpa_sim/vdpa_sim.c +1 -2
index 2faf3bd1c3ba..4d9e3fdae5f6 100644

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

drivers/vdpa/vdpa_sim/vdpa_sim_blk.c +3 -1
index a790903f243e..22b812c32bee 100644

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

drivers/vdpa/vdpa_sim/vdpa_sim_net.c +3 -1
index a1ab6163f7d1..f1c420c5e26e 100644

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

drivers/vhost/vhost.c +2 -2
index 6942472cffb0..0a9746bc9228 100644

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

drivers/vhost/vringh.c +2 -3
index eab55accf381..786876af0a73 100644

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

drivers/vhost/vsock.c +8 -1
index 97bfe499222b..74ac0c28fe43 100644

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

drivers/video/fbdev/matrox/matroxfb_base.c +2 -2
index 236521b19daf..e7348d657e18 100644

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

fs/binfmt_elf_fdpic.c +3 -2
index 830a6a876ffe..c316931fc99c 100644

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

fs/btrfs/backref.c +4 -0
index 1ff527bbe54c..cd9202867d98 100644

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

fs/btrfs/disk-io.c +23 -12
index 2fd46093e5bb..2c80fc902f59 100644

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

fs/btrfs/disk-io.h +5 -1
index 1b8fd3deafc9..718787dfdb8e 100644

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

fs/btrfs/ioctl.c +3 -6
index 391a4af9c5e5..ed9c715d2579 100644

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

fs/btrfs/rcu-string.h +5 -1
index 5c1a617eb25d..5c2b66d155ef 100644

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

fs/btrfs/super.c +76 -0

76 lines not on this page · raw message

fs/btrfs/tree-defrag.c +4 -2
index 7c45d960b53c..259a3b5f9303 100644

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

fs/btrfs/volumes.c +27 -16

43 lines not on this page · raw message

fs/ceph/caps.c +1 -1
index be96fe615bec..67b782b0a90a 100644

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

fs/ceph/locks.c +0 -4
index bdeb271f47d9..3e3b8be76b21 100644

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

fs/ceph/super.h +0 -1
index 14f951cd5b61..8c9021d0f837 100644

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

fs/cifs/cifsfs.c +7 -1
index 668dd6a86295..fc736ced6f4a 100644

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

fs/cifs/cifsglob.h +69 -0

69 lines not on this page · raw message

fs/cifs/cifsproto.h +2 -2
index b2697356b5e7..50844d51da5d 100644

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

fs/cifs/connect.c +3 -1
index a4284c4d7e03..555bd386a24d 100644

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

fs/cifs/misc.c +2 -2
index 94143d7f58c7..3a90ee314ed7 100644

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

fs/cifs/smb2ops.c +68 -75

143 lines not on this page · raw message

fs/dlm/lowcomms.c +6 -3
index 9d7078a1dc8b..d56a8f88a385 100644

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

fs/ext4/balloc.c +1 -1
index a0fb0c4bdc7c..f9a79053f03a 100644

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

fs/ext4/ext4.h +5 -4
index 2d84030d7b7f..bc209f303327 100644

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

fs/ext4/ext4_jbd2.c +1 -2
index 3477a16d08ae..8e1fb18f465e 100644

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

fs/ext4/extents.c +8 -0
index 9e09caaf9b0b..d3fae909fcbf 100644

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

fs/ext4/extents_status.c +2 -1
index 9a3a8996aacf..aa99a3659edf 100644

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

fs/ext4/fast_commit.c +171 -114

285 lines not on this page · raw message

fs/ext4/fast_commit.h +5 -2
index 083ad1cb705a..2cbd317eda26 100644

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

fs/ext4/indirect.c +10 -3
index 89efa78ed4b2..9813cc4b7b2a 100644

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

fs/ext4/inode.c +40 -10

50 lines not on this page · raw message

fs/ext4/ioctl.c +7 -6
index f61b59045c6d..2e6d03e5790e 100644

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

fs/ext4/namei.c +27 -20

47 lines not on this page · raw message

fs/ext4/orphan.c +13 -13
index 53adc8f570a3..c26c404ac58b 100644

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

fs/ext4/resize.c +3 -3
index 62bbfe8960f3..405c68085055 100644

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

fs/ext4/super.c +38 -14

52 lines not on this page · raw message

fs/ext4/verity.c +1 -1
index 840639e7a7ca..5ece4d3c6210 100644

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

fs/ext4/xattr.c +7 -12
index 533216e80fa2..b92da41e9640 100644

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

fs/f2fs/gc.c +1 -0
index 7863f8fd3b95..280a93855eaf 100644

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

fs/f2fs/node.c +1 -2
index 0e6e73bc42d4..f810c6bbeff0 100644

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

fs/hfs/inode.c +8 -5
index a58a5b733224..7c9c6d0b38fd 100644

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

fs/hfsplus/hfsplus_fs.h +2 -0
index 1798949f269b..ebc0d5c678d0 100644

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

fs/hfsplus/inode.c +6 -10
index 6fef67c2a9f0..bf6f75f569e4 100644

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

fs/hfsplus/options.c +4 -0
index 047e05c57560..c94a58762ad6 100644

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

fs/ksmbd/auth.c +2 -1
index 30a92ddc1817..b962b16e5aeb 100644

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

fs/ksmbd/connection.c +5 -2
index 02254b09c0da..6a1d1fbe5fb2 100644

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

fs/ksmbd/transport_tcp.c +4 -1
index 755329c295ca..293af921f2ad 100644

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

fs/locks.c +23 -0
index 3d6fb4ae847b..82a4487e95b3 100644

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

fs/mbcache.c +48 -73

121 lines not on this page · raw message

fs/nfsd/nfs4xdr.c +11 -0
index e0409f6cdfd5..dfd3877fdd81 100644

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

fs/nfsd/nfssvc.c +1 -1
index ccb59e91011b..373695cc62a7 100644

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

fs/ntfs3/attrib.c +18 -0
index e8c00dda42ad..42af83bcaf13 100644

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

fs/ntfs3/attrlist.c +5 -0
index bad6d8a849a2..c0c6bcbc8c05 100644

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

fs/ntfs3/bitmap.c +1 -1
index 7f2055b7427a..2a63793f522d 100644

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

fs/ntfs3/file.c +2 -2
index 7a678a5b1ca5..c526e0427f2b 100644

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

fs/ntfs3/frecord.c +14 -0
index 18842998c8fa..cdeb0b51f0ba 100644

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

fs/ntfs3/fslog.c +11 -24
index 614513460b8e..20abdb268286 100644

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

fs/ntfs3/fsntfs.c +6 -4
index 24b57c3cc625..4a97a28cb8f2 100644

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

fs/ntfs3/index.c +6 -0
index 76ebea253fa2..99f8a57e9f7a 100644

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

fs/ntfs3/inode.c +9 -0
index 64b4a3c29878..ed640e4e3fac 100644

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

fs/ntfs3/record.c +10 -0
index 861e35791506..fd342da398be 100644

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

fs/ntfs3/super.c +5 -4
index 39b09f32f4db..33b1833ad525 100644

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

fs/overlayfs/dir.c +30 -16

46 lines not on this page · raw message

fs/pnode.c +1 -1
index 1106137c747a..468e4e65a615 100644

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

fs/pstore/ram.c +1 -1
index 74e4d93f3e08..f3fa3625d772 100644

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

fs/pstore/zone.c +1 -1
index 7c8f8feac6c3..5d3f944f6018 100644

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

fs/quota/dquot.c +2 -0
index 09d1307959d0..cddd07b7d132 100644

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

fs/udf/inode.c +1 -1
index 6a0e8ef664c1..d2488b7e54a5 100644

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

include/linux/devfreq.h +4 -3
index 142474b4af96..d94b9ed9443e 100644

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

include/linux/efi.h +0 -2
index 4cd4ed34d3cb..5598fc348c69 100644

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

include/linux/fs.h +6 -0
index 68fcf3ec9cf6..1e1ac116dd13 100644

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

include/linux/mbcache.h +23 -10
index 8eca7f25c432..591bc4cefe1d 100644

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

include/linux/mlx5/device.h +5 -0
index 66eaf0aa7f69..3e72133545ca 100644

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

include/linux/mlx5/mlx5_ifc.h +2 -1
index cd9d1c95129e..49ea0004109e 100644

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

include/linux/netfilter/ipset/ip_set.h +1 -1
index ada1296c87d5..72f5ebc5c97a 100644

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

include/linux/nvme.h +2 -1
index 039f59ee8f43..de235916c31c 100644

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

include/linux/sunrpc/rpc_pipe_fs.h +5 -0
index cd188a527d16..3b35b6f6533a 100644

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

include/net/mptcp.h +10 -2
index 3214848402ec..1120363987d0 100644

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

include/net/netfilter/nf_tables.h +24 -1
index 53746494eb84..80df8ff5e675 100644

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

include/sound/soc-dai.h +16 -16
index 0dcb361a98bb..ef3bb1bcea4e 100644

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

include/trace/events/ext4.h +5 -2
index 61a64d1b2bb6..c649c7fcb9af 100644

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

include/trace/events/jbd2.h +22 -22

44 lines not on this page · raw message

io_uring/io_uring.c +7 -6
index eebbe8a6da0c..c587221a289c 100644

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

kernel/events/core.c +3 -3
index e95088144471..d8795036202a 100644

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

kernel/kcsan/core.c +50 -0

50 lines not on this page · raw message

kernel/rcu/tasks.h +3 -17
index ae8396032b5d..4bd07cc3c0ea 100644

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

kernel/trace/Kconfig +2 -0
index 420ff4bc67fd..4265d125d50f 100644

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

kernel/trace/trace.c +27 -11
index b26de6ff5d0b..114d94d1e0a9 100644

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

kernel/trace/trace.h +19 -8
index 28ea6c0be495..9fc598165f3a 100644

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

kernel/trace/trace_eprobe.c +3 -0
index d19dab21848e..9806316af127 100644

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

kernel/trace/trace_events_hist.c +9 -2
index 6397285883fa..cc1a078f7a16 100644

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

kernel/trace/trace_events_synth.c +1 -1
index 47eb92b3edd0..2fdf3fd591e1 100644

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

kernel/trace/trace_probe.c +1 -1
index 2bbe4a7c6a2b..cb8f9fe5669a 100644

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

mm/compaction.c +5 -13
index e8fcf0e0c1ca..89517ad5d6a0 100644

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

net/caif/cfctrl.c +5 -1
index 2809cbd6b7f7..d8cb4b2a076b 100644

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

net/core/filter.c +5 -2
index 2da05622afbe..b2031148dd8b 100644

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

net/ipv4/syncookies.c +3 -4
index 940839264025..3aab914eb103 100644

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

net/mptcp/subflow.c +58 -18

76 lines not on this page · raw message

net/netfilter/ipset/ip_set_core.c +4 -3
index 16ae92054baa..ae061b27e446 100644

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

net/netfilter/ipset/ip_set_hash_ip.c +7 -7
index 75d556d71652..24adcdd7a0b1 100644

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

net/netfilter/ipset/ip_set_hash_ipmark.c +7 -6
index 153de3457423..a22ec1a6f6ec 100644

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

net/netfilter/ipset/ip_set_hash_ipport.c +7 -6
index 7303138e46be..10481760a9b2 100644

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

net/netfilter/ipset/ip_set_hash_ipportip.c +7 -6
index 334fb1ad0e86..39a01934b153 100644

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

net/netfilter/ipset/ip_set_hash_ipportnet.c +8 -5
index 7df94f437f60..5c6de605a9fb 100644

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

net/netfilter/ipset/ip_set_hash_net.c +7 -10
index 1422739d9aa2..ce0a9ce5a91f 100644

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

net/netfilter/ipset/ip_set_hash_netiface.c +6 -9
index 9810f5bf63f5..031073286236 100644

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

net/netfilter/ipset/ip_set_hash_netnet.c +7 -16
index 3d09eefe998a..c07b70bf32db 100644

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

net/netfilter/ipset/ip_set_hash_netport.c +7 -12
index 09cf72eb37f8..d1a0628df4ef 100644

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

net/netfilter/ipset/ip_set_hash_netportnet.c +21 -19
index 19bcdb3141f6..005a7ce87217 100644

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

net/netfilter/nf_tables_api.c +175 -86

261 lines not on this page · raw message

net/nfc/netlink.c +38 -14

52 lines not on this page · raw message

net/packet/af_packet.c +15 -5
index ceca0d6c41b5..7f9f2d0ef0e6 100644

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

net/sched/cls_tcindex.c +2 -10
index 742c7d49a958..8d1ef858db87 100644

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

net/sched/sch_atm.c +4 -1
index 70fe1c5e44ad..33737169cc2d 100644

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

net/sched/sch_cbq.c +2 -2
index fd7e10567371..46b3dd71777d 100644

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

net/sunrpc/auth_gss/auth_gss.c +17 -2
index 5f42aa5fc612..2ff66a6a7e54 100644

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

net/sunrpc/auth_gss/svcauth_gss.c +7 -2
index 1f2817195549..48b608cb5f5e 100644

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

security/device_cgroup.c +29 -4
index 04375df52fc9..fe5cb7696993 100644

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

security/integrity/ima/ima_template.c +4 -1
index f84a0598e4f6..31a8388e3dfa 100644

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

security/integrity/platform_certs/load_uefi.c +1 -0
index 185c609c6e38..d2f2c3936277 100644

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

sound/pci/hda/patch_realtek.c +50 -0

50 lines not on this page · raw message

sound/soc/codecs/hdac_hda.c +11 -11
index 390dd6c7f6a5..de5955db0a5f 100644

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

sound/soc/codecs/max98373-sdw.c +1 -1
index 12323d4b5bfa..97b64477dde6 100644

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

sound/soc/codecs/rt1308-sdw.c +1 -1
index 8472d855c325..03adf3324b81 100644

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

sound/soc/codecs/rt1316-sdw.c +1 -1
index 09cf3ca86fa4..1e04aa8ab166 100644

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

sound/soc/codecs/rt5682-sdw.c +1 -1
index a030c9987b92..f04e18c32489 100644

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

sound/soc/codecs/rt700.c +1 -1
index e049d672ccfd..3de3406d653e 100644

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

sound/soc/codecs/rt711-sdca.c +1 -1
index 3b5df3ea2f60..5ad53bbc8528 100644

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

sound/soc/codecs/rt711.c +1 -1
index 51a98e730fc8..286d882636e0 100644

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

sound/soc/codecs/rt715-sdca.c +1 -1
index 66e166568c50..bfa536bd7196 100644

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

sound/soc/codecs/rt715.c +1 -1
index 1352869cc086..a64d11a74751 100644

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

sound/soc/codecs/sdw-mockup.c +1 -1
index 8ea13cfa9f8e..7c612aaf31c7 100644

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

sound/soc/codecs/wcd938x.c +1 -1
index 8cdc45e669f2..b95cbae58641 100644

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

sound/soc/codecs/wsa881x.c +1 -1
index 564b78f3cdd0..0222370ff95d 100644

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

sound/soc/intel/boards/bytcr_rt5640.c +15 -0
index f9c82ebc552c..888e04c57757 100644

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

sound/soc/intel/boards/sof_sdw.c +3 -3
index 294e76d590ad..2d53a707aff9 100644

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

sound/soc/intel/skylake/skl-pcm.c +2 -5
index e4aa366d356e..db41bd717065 100644

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

sound/soc/jz4740/jz4740-i2s.c +34 -5
index 7ad5d9a924d8..4e1fc4ba5150 100644

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

sound/soc/qcom/sdm845.c +2 -2
index 0adfc5708949..4da5ad609fce 100644

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

sound/soc/qcom/sm8250.c +2 -2
index e5190aa588c6..feb6589171ca 100644

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

sound/soc/sof/intel/hda-dai.c +2 -5
index 6704dbcd101c..5f355b8d57a0 100644

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

sound/usb/line6/driver.c +2 -1
index 59faa5a9a714..b67617b68e50 100644

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

sound/usb/line6/midi.c +4 -2
index ba0e2b7e8fe1..0838632c788e 100644

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

sound/usb/line6/midibuf.c +17 -8
index 6a70463f82c4..e7f830f7526c 100644

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

sound/usb/line6/midibuf.h +4 -1
index 124a8f9f7e96..542e8d836f87 100644

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

sound/usb/line6/pod.c +2 -1
index 16e644330c4d..54be5ac919bf 100644

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

tools/objtool/check.c +1 -1
index edac5aaa2802..308c8806ad94 100644

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

tools/perf/util/cgroup.c +18 -5
index e99b41f9be45..cd978c240e0d 100644

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

tools/perf/util/data.c +2 -0
index 15a4547d608e..090a76be522b 100644

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

tools/perf/util/dwarf-aux.c +5 -18
index 609ca1671501..623527edeac1 100644

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

tools/testing/ktest/ktest.pl +17 -6
index 09d1578f9d66..1737c59e4ff6 100755

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

tools/testing/selftests/Makefile +17 -9
index 14206d1d1efe..56a4873a343c 100644

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

tools/testing/selftests/bpf/config +0 -4
index 4a2a47fcd6ef..5192305159ec 100644

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

tools/testing/selftests/bpf/prog_tests/bpf_nf.c deleted +0 -48

48 lines not on this page · raw message

tools/testing/selftests/bpf/progs/test_bpf_nf.c deleted +0 -109

109 lines not on this page · raw message

tools/testing/selftests/lib.mk +5 -0
index fe7ee2b0f29c..a3df78b7702c 100644

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

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

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