Skip to contentSkip to conversation

Linux 6.1.107

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Aug 29, 2024 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 6.1.107 kernel.

All users of the 6.1 kernel series must upgrade.

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

thanks,

greg k-h

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

 Documentation/bpf/map_lpm_trie.rst                         |  181 ++++++
 Documentation/filesystems/gfs2-glocks.rst                  |    3 
 Makefile                                                   |    2 
 arch/arm64/kernel/acpi_numa.c                              |    2 
 arch/arm64/kernel/setup.c                                  |    3 
 arch/arm64/kernel/smp.c                                    |    2 
 arch/arm64/kvm/sys_regs.c                                  |    6 
 arch/arm64/kvm/vgic/vgic.h                                 |    7 
 arch/mips/kernel/cpu-probe.c                               |    4 
 arch/openrisc/kernel/setup.c                               |    6 
 arch/parisc/kernel/irq.c                                   |    4 
 arch/powerpc/boot/simple_alloc.c                           |    7 
 arch/powerpc/sysdev/xics/icp-native.c                      |    2 
 arch/riscv/mm/init.c                                       |    4 
 arch/s390/include/asm/uv.h                                 |    5 
 arch/s390/kernel/early.c                                   |   12 
 arch/s390/kernel/smp.c                                     |    4 
 arch/x86/kernel/process.c                                  |    5 
 arch/x86/kvm/lapic.c                                       |    8 
 block/blk-mq-tag.c                                         |    5 
 drivers/atm/idt77252.c                                     |    9 
 drivers/bluetooth/hci_ldisc.c                              |    3 
 drivers/char/xillybus/xillyusb.c                           |   42 +
 drivers/clk/visconti/pll.c                                 |    6 
 drivers/clocksource/arm_global_timer.c                     |   11 
 drivers/firmware/cirrus/cs_dsp.c                           |    7 
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h                 |    1 
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c           |   40 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c                    |    8 
 drivers/gpu/drm/amd/amdgpu/amdgpu_psp_ta.c                 |    3 
 drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c                    |   53 -
 drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h                    |    1 
 drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c                  |    6 
 drivers/gpu/drm/amd/amdgpu/imu_v11_0.c                     |    2 
 drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.c                     |    4 
 drivers/gpu/drm/amd/amdkfd/kfd_chardev.c                   |   22 
 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c  |    2 
 drivers/gpu/drm/bridge/tc358768.c                          |  213 ++++++-
 drivers/gpu/drm/lima/lima_gp.c                             |   12 
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h                    |   14 
 drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c                  |    3 
 drivers/gpu/drm/msm/dp/dp_ctrl.c                           |    2 
 drivers/gpu/drm/msm/dp/dp_panel.c                          |   19 
 drivers/gpu/drm/msm/msm_gem_shrinker.c                     |    2 
 drivers/gpu/drm/rockchip/rockchip_drm_vop2.c               |    5 
 drivers/gpu/drm/tegra/gem.c                                |    2 
 drivers/hid/hid-ids.h                                      |   10 
 drivers/hid/hid-microsoft.c                                |   11 
 drivers/hid/wacom_wac.c                                    |    4 
 drivers/hwmon/ltc2992.c                                    |    8 
 drivers/hwmon/pc87360.c                                    |    6 
 drivers/i2c/busses/i2c-qcom-geni.c                         |    4 
 drivers/i2c/busses/i2c-riic.c                              |    2 
 drivers/i2c/busses/i2c-tegra.c                             |   41 -
 drivers/i3c/master/mipi-i3c-hci/dma.c                      |    5 
 drivers/infiniband/hw/hfi1/chip.c                          |    5 
 drivers/infiniband/ulp/rtrs/rtrs.c                         |    2 
 drivers/input/input-mt.c                                   |    3 
 drivers/input/serio/i8042-acpipnpio.h                      |   20 
 drivers/input/serio/i8042.c                                |   10 
 drivers/irqchip/irq-gic-v3-its.c                           |    2 
 drivers/irqchip/irq-renesas-rzg2l.c                        |    5 
 drivers/md/dm-clone-metadata.c                             |    5 
 drivers/md/dm-ioctl.c                                      |   22 
 drivers/md/dm.c                                            |    4 
 drivers/md/md.c                                            |    5 
 drivers/md/persistent-data/dm-space-map-metadata.c         |    4 
 drivers/md/raid5-cache.c                                   |   47 -
 drivers/media/dvb-core/dvb_frontend.c                      |   12 
 drivers/media/pci/cx23885/cx23885-video.c                  |    8 
 drivers/media/pci/solo6x10/solo6x10-offsets.h              |   10 
 drivers/media/platform/qcom/venus/pm_helpers.c             |    2 
 drivers/media/platform/samsung/s5p-mfc/s5p_mfc_enc.c       |    2 
 drivers/media/radio/radio-isa.c                            |    2 
 drivers/memory/stm32-fmc2-ebi.c                            |  122 ++--
 drivers/memory/tegra/tegra186.c                            |    3 
 drivers/mmc/core/mmc_test.c                                |    9 
 drivers/mmc/host/dw_mmc.c                                  |    8 
 drivers/net/bonding/bond_main.c                            |   21 
 drivers/net/bonding/bond_options.c                         |    2 
 drivers/net/dsa/mv88e6xxx/global1_atu.c                    |    3 
 drivers/net/dsa/ocelot/felix.c                             |   11 
 drivers/net/dsa/vitesse-vsc73xx-core.c                     |   69 +-
 drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c          |    3 
 drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c        |    7 
 drivers/net/ethernet/hisilicon/hns3/hns3_enet.c            |    3 
 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c    |   28 
 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c     |    7 
 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c    |    3 
 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c  |    4 
 drivers/net/ethernet/i825xx/sun3_82586.c                   |    2 
 drivers/net/ethernet/intel/ice/ice_base.c                  |    4 
 drivers/net/ethernet/intel/ice/ice_lib.c                   |    8 
 drivers/net/ethernet/intel/ice/ice_main.c                  |   10 
 drivers/net/ethernet/intel/ice/ice_txrx.c                  |  117 +--
 drivers/net/ethernet/intel/ice/ice_txrx.h                  |    6 
 drivers/net/ethernet/intel/ice/ice_txrx_lib.c              |    1 
 drivers/net/ethernet/intel/igc/igc_defines.h               |   15 
 drivers/net/ethernet/intel/igc/igc_main.c                  |    7 
 drivers/net/ethernet/intel/igc/igc_regs.h                  |    1 
 drivers/net/ethernet/intel/igc/igc_tsn.c                   |   64 ++
 drivers/net/ethernet/intel/igc/igc_tsn.h                   |    1 
 drivers/net/ethernet/marvell/octeontx2/af/rvu_cpt.c        |   23 
 drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c   |    2 
 drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c    |    2 
 drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige.h      |    9 
 drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c |   10 
 drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_regs.h |    2 
 drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_rx.c   |   50 +
 drivers/net/ethernet/microsoft/mana/mana.h                 |    1 
 drivers/net/ethernet/microsoft/mana/mana_en.c              |   24 
 drivers/net/ethernet/mscc/ocelot.c                         |   91 ++-
 drivers/net/ethernet/mscc/ocelot_fdma.c                    |    3 
 drivers/net/ethernet/mscc/ocelot_vsc7514.c                 |    4 
 drivers/net/ethernet/xilinx/xilinx_axienet.h               |   17 
 drivers/net/ethernet/xilinx/xilinx_axienet_main.c          |   25 
 drivers/net/gtp.c                                          |    3 
 drivers/net/ppp/pppoe.c                                    |   23 
 drivers/net/wireless/intel/iwlwifi/fw/debugfs.c            |    6 
 drivers/net/wireless/intel/iwlwifi/mvm/scan.c              |    2 
 drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c       |    2 
 drivers/net/wireless/st/cw1200/txrx.c                      |    2 
 drivers/nvme/host/core.c                                   |    5 
 drivers/nvme/target/rdma.c                                 |   16 
 drivers/nvme/target/tcp.c                                  |    1 
 drivers/nvme/target/trace.c                                |    6 
 drivers/nvme/target/trace.h                                |   28 
 drivers/platform/surface/aggregator/controller.c           |    3 
 drivers/platform/x86/lg-laptop.c                           |    2 
 drivers/rtc/rtc-nct3018y.c                                 |    6 
 drivers/s390/block/dasd.c                                  |   36 -
 drivers/s390/block/dasd_3990_erp.c                         |   10 
 drivers/s390/block/dasd_diag.c                             |    1 
 drivers/s390/block/dasd_eckd.c                             |   56 -
 drivers/s390/block/dasd_int.h                              |    2 
 drivers/s390/cio/idset.c                                   |   12 
 drivers/scsi/lpfc/lpfc_sli.c                               |    2 
 drivers/scsi/scsi_transport_spi.c                          |    4 
 drivers/soc/imx/imx93-pd.c                                 |    5 
 drivers/ssb/main.c                                         |    2 
 drivers/staging/iio/resolver/ad2s1210.c                    |    7 
 drivers/staging/ks7010/ks7010_sdio.c                       |    4 
 drivers/thunderbolt/switch.c                               |    1 
 drivers/tty/serial/atmel_serial.c                          |    2 
 drivers/usb/dwc3/core.c                                    |   13 
 drivers/usb/gadget/udc/fsl_udc_core.c                      |    2 
 drivers/usb/host/xhci.c                                    |    8 
 drivers/video/fbdev/offb.c                                 |    3 
 fs/9p/xattr.c                                              |    8 
 fs/afs/file.c                                              |    8 
 fs/binfmt_elf_fdpic.c                                      |    2 
 fs/binfmt_misc.c                                           |  216 +++++--
 fs/btrfs/delayed-inode.c                                   |    4 
 fs/btrfs/disk-io.c                                         |    2 
 fs/btrfs/extent_io.c                                       |    4 
 fs/btrfs/free-space-cache.c                                |   22 
 fs/btrfs/inode.c                                           |   11 
 fs/btrfs/ioctl.c                                           |    2 
 fs/btrfs/qgroup.c                                          |    2 
 fs/btrfs/reflink.c                                         |    6 
 fs/btrfs/send.c                                            |   63 +-
 fs/btrfs/super.c                                           |    2 
 fs/btrfs/tests/extent-io-tests.c                           |   28 
 fs/btrfs/tree-checker.c                                    |   69 ++
 fs/erofs/decompressor.c                                    |    8 
 fs/ext4/extents.c                                          |    3 
 fs/ext4/mballoc.c                                          |    3 
 fs/ext4/super.c                                            |   23 
 fs/ext4/xattr.c                                            |  158 ++---
 fs/f2fs/segment.c                                          |    5 
 fs/file.c                                                  |   30 -
 fs/fscache/cookie.c                                        |    4 
 fs/fuse/cuse.c                                             |    3 
 fs/fuse/dev.c                                              |    6 
 fs/fuse/fuse_i.h                                           |    1 
 fs/fuse/inode.c                                            |   15 
 fs/fuse/virtio_fs.c                                        |   10 
 fs/gfs2/glock.c                                            |   27 
 fs/gfs2/glock.h                                            |    9 
 fs/gfs2/glops.c                                            |   66 --
 fs/gfs2/incore.h                                           |    2 
 fs/gfs2/inode.c                                            |    2 
 fs/gfs2/lock_dlm.c                                         |    5 
 fs/gfs2/log.c                                              |    2 
 fs/gfs2/ops_fstype.c                                       |   13 
 fs/gfs2/recovery.c                                         |   28 
 fs/gfs2/super.c                                            |  197 ++++--
 fs/gfs2/super.h                                            |    1 
 fs/gfs2/sys.c                                              |    2 
 fs/gfs2/util.c                                             |   55 -
 fs/gfs2/util.h                                             |    5 
 fs/inode.c                                                 |   39 +
 fs/jbd2/journal.c                                          |    9 
 fs/jfs/jfs_dmap.c                                          |    2 
 fs/jfs/jfs_dtree.c                                         |    2 
 fs/kernfs/file.c                                           |    8 
 fs/nfs/pnfs.c                                              |    8 
 fs/nfsd/nfs4proc.c                                         |    4 
 fs/nfsd/nfs4state.c                                        |    2 
 fs/nfsd/nfsctl.c                                           |   32 -
 fs/nfsd/nfsd.h                                             |    3 
 fs/nfsd/nfssvc.c                                           |   85 --
 fs/nfsd/vfs.c                                              |    6 
 fs/nilfs2/btree.c                                          |    1 
 fs/nilfs2/dat.c                                            |   11 
 fs/nilfs2/direct.c                                         |    1 
 fs/ntfs3/bitmap.c                                          |    4 
 fs/ntfs3/frecord.c                                         |   75 ++
 fs/ntfs3/fsntfs.c                                          |    2 
 fs/ntfs3/index.c                                           |   11 
 fs/ntfs3/ntfs_fs.h                                         |    4 
 fs/ntfs3/super.c                                           |    2 
 fs/quota/dquot.c                                           |    5 
 fs/quota/quota_tree.c                                      |  128 +++-
 fs/quota/quota_v2.c                                        |   15 
 fs/reiserfs/stree.c                                        |    2 
 fs/smb/server/smb2pdu.c                                    |    3 
 fs/squashfs/block.c                                        |    2 
 fs/squashfs/file.c                                         |    3 
 fs/squashfs/file_direct.c                                  |    6 
 fs/udf/namei.c                                             |    1 
 include/linux/bitmap.h                                     |   20 
 include/linux/bpf_verifier.h                               |   23 
 include/linux/cpumask.h                                    |    2 
 include/linux/dsa/ocelot.h                                 |   47 +
 include/linux/fs.h                                         |    5 
 include/linux/if_vlan.h                                    |   21 
 include/linux/jbd2.h                                       |    8 
 include/linux/pid.h                                        |    2 
 include/linux/sched/signal.h                               |    2 
 include/linux/slab.h                                       |    5 
 include/linux/sunrpc/svc.h                                 |   13 
 include/linux/udp.h                                        |    2 
 include/linux/virtio_net.h                                 |   35 -
 include/net/cfg80211.h                                     |   40 +
 include/net/inet_timewait_sock.h                           |    2 
 include/net/kcm.h                                          |    1 
 include/net/tcp.h                                          |    2 
 include/scsi/scsi_cmnd.h                                   |    2 
 include/soc/mscc/ocelot.h                                  |   12 
 include/trace/events/huge_memory.h                         |    3 
 include/uapi/linux/bpf.h                                   |   19 
 init/Kconfig                                               |    7 
 kernel/bpf/Makefile                                        |    3 
 kernel/bpf/log.c                                           |   82 ++
 kernel/bpf/lpm_trie.c                                      |   33 -
 kernel/bpf/verifier.c                                      |   69 --
 kernel/cgroup/cgroup.c                                     |    4 
 kernel/pid.c                                               |    7 
 kernel/pid_namespace.c                                     |    2 
 kernel/rcu/rcu.h                                           |    7 
 kernel/rcu/srcutiny.c                                      |    1 
 kernel/rcu/srcutree.c                                      |    1 
 kernel/rcu/tasks.h                                         |    1 
 kernel/rcu/tiny.c                                          |    1 
 kernel/rcu/tree.c                                          |    3 
 kernel/time/clocksource.c                                  |   42 -
 kernel/time/hrtimer.c                                      |    5 
 kernel/time/posix-timers.c                                 |   31 -
 lib/math/prime_numbers.c                                   |    2 
 mm/huge_memory.c                                           |   30 -
 mm/khugepaged.c                                            |   20 
 mm/memcontrol.c                                            |    7 
 mm/memory-failure.c                                        |   20 
 mm/memory.c                                                |   29 
 mm/slab_common.c                                           |   41 -
 mm/util.c                                                  |    4 
 mm/vmalloc.c                                               |   11 
 net/bluetooth/bnep/core.c                                  |    3 
 net/bluetooth/hci_conn.c                                   |   11 
 net/bluetooth/hci_core.c                                   |   24 
 net/bluetooth/mgmt.c                                       |    4 
 net/bluetooth/rfcomm/sock.c                                |   14 
 net/bluetooth/smp.c                                        |  144 ++--
 net/bridge/br_netfilter_hooks.c                            |    6 
 net/core/filter.c                                          |    8 
 net/core/skbuff.c                                          |    8 
 net/dccp/ipv4.c                                            |    2 
 net/dccp/ipv6.c                                            |    6 
 net/dsa/tag_ocelot.c                                       |   37 -
 net/ipv4/fou.c                                             |    2 
 net/ipv4/inet_timewait_sock.c                              |   16 
 net/ipv4/tcp_ipv4.c                                        |   16 
 net/ipv4/tcp_minisocks.c                                   |    7 
 net/ipv4/tcp_offload.c                                     |    3 
 net/ipv4/udp_offload.c                                     |   18 
 net/ipv6/ip6_output.c                                      |   10 
 net/ipv6/ip6_tunnel.c                                      |   12 
 net/ipv6/netfilter/nf_conntrack_reasm.c                    |    4 
 net/ipv6/tcp_ipv6.c                                        |    6 
 net/iucv/iucv.c                                            |    3 
 net/kcm/kcmsock.c                                          |    4 
 net/mac80211/agg-tx.c                                      |    6 
 net/mac80211/debugfs_netdev.c                              |    3 
 net/mac80211/driver-ops.c                                  |    3 
 net/mac80211/ieee80211_i.h                                 |    1 
 net/mac80211/iface.c                                       |   27 
 net/mac80211/rx.c                                          |  387 ++++++-------
 net/mac80211/sta_info.c                                    |   17 
 net/mac80211/sta_info.h                                    |    3 
 net/mctp/test/route-test.c                                 |    2 
 net/mptcp/diag.c                                           |    2 
 net/mptcp/pm_netlink.c                                     |   31 -
 net/netfilter/nf_flow_table_inet.c                         |    3 
 net/netfilter/nf_flow_table_ip.c                           |    3 
 net/netfilter/nf_flow_table_offload.c                      |    2 
 net/netfilter/nf_tables_api.c                              |  209 ++++---
 net/netfilter/nfnetlink_queue.c                            |   35 +
 net/netfilter/nft_counter.c                                |    9 
 net/netlink/af_netlink.c                                   |   13 
 net/rds/recv.c                                             |   13 
 net/sched/sch_generic.c                                    |   11 
 net/sched/sch_netem.c                                      |   47 -
 net/sctp/inqueue.c                                         |   14 
 net/wireless/core.h                                        |    8 
 net/wireless/util.c                                        |  195 ++++--
 samples/bpf/map_perf_test_user.c                           |    2 
 samples/bpf/xdp_router_ipv4_user.c                         |    2 
 scripts/rust_is_available.sh                               |   41 +
 security/selinux/avc.c                                     |    2 
 sound/core/timer.c                                         |    2 
 sound/pci/hda/patch_realtek.c                              |    1 
 sound/soc/sof/ipc4.c                                       |    9 
 sound/usb/mixer.c                                          |    7 
 sound/usb/quirks-table.h                                   |    1 
 sound/usb/quirks.c                                         |    2 
 tools/include/linux/align.h                                |   12 
 tools/include/linux/bitmap.h                               |    9 
 tools/include/linux/mm.h                                   |    5 
 tools/include/uapi/linux/bpf.h                             |   19 
 tools/testing/selftests/bpf/progs/map_ptr_kern.c           |    2 
 tools/testing/selftests/bpf/test_lpm_map.c                 |   18 
 tools/testing/selftests/core/close_range_test.c            |   35 +
 tools/testing/selftests/net/net_helper.sh                  |   25 
 tools/testing/selftests/net/udpgro.sh                      |   57 +
 tools/testing/selftests/net/udpgro_bench.sh                |    5 
 tools/testing/selftests/net/udpgro_frglist.sh              |    5 
 tools/testing/selftests/net/udpgso.c                       |    2 
 tools/testing/selftests/tc-testing/tdc.py                  |    1 
 tools/tracing/rtla/src/osnoise_top.c                       |   11 
 340 files changed, 4069 insertions(+), 2057 deletions(-)

Abdulrasaq Lawani (1):
fbdev: offb: replace of_node_put with __free(device_node)

Abhinav Kumar (2):
drm/msm/dp: fix the max supported bpp logic drm/msm/dp: reset the link phy params before link training

Adrian Hunter (1):
clocksource: Make watchdog and suspend-timing multiplication overflow safe

Al Viro (4):
fix bitmap corruption on close_range() with CLOSE_RANGE_UNSHARE memcg_write_event_control(): fix a user-triggerable oops
afs: fix __afs_break_callback() / afs_drop_open_mmap() race
fuse: fix UAF in rcu pathwalks

Alex Deucher (1):
drm/amdgpu/jpeg2: properly set atomics vmid field

Alex Hung (2):
drm/amd/display: Validate hw_points_num before using it Revert "drm/amd/display: Validate hw_points_num before using it"

Alexander Gordeev (1):
s390/iucv: fix receive buffer virtual vs physical address confusion

Alexander Lobakin (5):
fs/ntfs3: add prefix to bitmap_size() and use BITS_TO_U64() s390/cio: rename bitmap_size() -> idset_bitmap_size()
btrfs: rename bitmap_set_bits() -> btrfs_bitmap_set_bits()
bitmap: introduce generic optimized bitmap_size()
tools: move alignment-related macros to new <linux/align.h>

Alexandre Belloni (1):
rtc: nct3018y: fix possible NULL dereference

Alexei Starovoitov (1):
bpf: Avoid kfree_rcu() under lock in bpf_lpm_trie.

Allison Henderson (1):
net:rds: Fix possible deadlock in rds_message_put

Andi Shyti (1):
i2c: qcom-geni: Add missing geni_icc_disable in geni_i2c_runtime_resume

Andreas Gruenbacher (12):
gfs2: Rename remaining "transaction" glock references
gfs2: Rename the {freeze,thaw}_super callbacks
gfs2: Rename gfs2_freeze_lock{ => _shared }
gfs2: Rename SDF_{FS_FROZEN => FREEZE_INITIATOR}
gfs2: Rework freeze / thaw logic
gfs2: Stop using gfs2_make_fs_ro for withdraw
gfs2: setattr_chown: Add missing initialization
gfs2: Refcounting fix in gfs2_thaw_super
gfs2: Fix another freeze/thaw hang
gfs2: don't withdraw if init_threads() got interrupted
gfs2: Remove LM_FLAG_PRIORITY flag
gfs2: Remove freeze_go_demote_ok

Andrew Melnychenko (1):
udp: allow header check for dodgy GSO_UDP_L4 packets.

Andrii Nakryiko (2):
bpf: Split off basic BPF verifier log into separate file
bpf: drop unnecessary user-triggerable WARN_ONCE in verifierl log

Andy Yan (1):
drm/rockchip: vop2: clear afbc en and transform bit for cluster window at linear mode

Antoniu Miclaus (1):
hwmon: (ltc2992) Avoid division by zero

Ashish Mhetre (1):
memory: tegra: Skip SID programming if SID registers aren't set

Aurelien Jarno (1):
media: solo6x10: replace max(a, min(b, c)) by clamp(b, a, c)

Baokun Li (2):
ext4: do not trim the group with corrupted block bitmap
ext4: set the type of max_zeroout to unsigned int to avoid overflow

Bard Liao (1):
ASoC: SOF: ipc4: check return value of snd_sof_ipc_msg_data

Bas Nieuwenhuizen (1):
drm/amdgpu: Actually check flags for all context ops.

Ben Whitten (1):
mmc: dw_mmc: allow biu and ciu clocks to defer

Bharat Bhushan (1):
octeontx2-af: Fix CPT AF register offset calculation

Biju Das (1):
irqchip/renesas-rzg2l: Do not set TIEN and TINT source at the same time

Boyuan Zhang (2):
drm/amdgpu/vcn: identify unified queue in sw init drm/amdgpu/vcn: not pause dpg for unified queue

Breno Leitao (1):
i2c: tegra: Do not mark ACPI devices as irq safe

Candice Li (1):
drm/amdgpu: Validate TA binary size

Chaotian Jing (1):
scsi: core: Fix the return value of scsi_logical_block_count()

Chengfeng Ye (3):
staging: ks7010: disable bh on tx_dev_lock
media: s5p-mfc: Fix potential deadlock on condlock IB/hfi1: Fix potential deadlock on &irq_src_lock and &dd->uctxt_lock

Christian Brauner (1):
binfmt_misc: cleanup on filesystem umount

Christophe Kerello (1):
memory: stm32-fmc2-ebi: check regmap_read return value

Claudio Imbrenda (1):
s390/uv: Panic for set and remove shared access UVC errors

Cosmin Ratiu (1):
net/mlx5e: Correctly report errors for ethtool rx flows

Costa Shulyupin (1):
hrtimer: Select housekeeping CPU during migration

Dan Carpenter (4):
rtla/osnoise: Prevent NULL dereference in error handling
atm: idt77252: prevent use after free in dequeue_rx()
dpaa2-switch: Fix error checking in dpaa2_switch_seed_bp()
mmc: mmc_test: Fix NULL dereference on allocation failure

Daniel Wagner (1):
nvmet-trace: avoid dereferencing pointer too early

Dave Kleikamp (1):
Revert "jfs: fix shift-out-of-bounds in dbJoin"

David Lechner (1):
staging: iio: resolver: ad2s1210: fix use before initialization

David Sterba (8):
btrfs: delayed-inode: drop pointless BUG_ON in __btrfs_remove_delayed_item()
btrfs: change BUG_ON to assertion when checking for delayed_node root
btrfs: tests: allocate dummy fs_info and root in test_find_delalloc()
btrfs: handle invalid root reference found in may_destroy_subvol()
btrfs: send: handle unexpected data in header buffer in begin_cmd()
btrfs: change BUG_ON to assertion in tree_move_down()
btrfs: delete pointless BUG_ON check on quota root in btrfs_qgroup_account_extent()
btrfs: replace sb::s_blocksize by fs_info::sectorsize

David Thompson (1):
mlxbf_gige: disable RX filters until RX path initialized

Dmitry Antipov (1):
net: sctp: fix skb leak in sctp_inq_free()

Dmitry Baryshkov (2):
drm/msm/dpu: don't play tricks with debug macros drm/msm/dpu: cleanup FB if dpu_format_populate_layout fails

Donald Hunter (2):
docs/bpf: Document BPF_MAP_TYPE_LPM_TRIE map
netfilter: flowtable: initialise extack before use

Dragos Tatulea (1):
net/mlx5e: Take state lock during tx timeout reporter

Edward Adam Davis (2):
reiserfs: fix uninit-value in comp_keys
jfs: fix null ptr deref in dtInsertEntry

Eli Billauer (3):
char: xillybus: Don't destroy workqueue from work item running on it
char: xillybus: Refine workqueue handling
char: xillybus: Check USB endpoints when probing device

Eric Dumazet (8):
netlink: hold nlk->cb_mutex longer in __netlink_dump_start()
gtp: pull network headers in gtp_dev_xmit() tcp/dccp: bypass empty buckets in inet_twsk_purge() tcp/dccp: do not care about families in inet_twsk_purge()
ipv6: prevent UAF in ip6_send_skb()
ipv6: fix possible UAF in ip6_finish_output2()
ipv6: prevent possible UAF in ip6_xmit()
tcp: do not export tcp_twsk_purge()

Erico Nunes (1):
drm/lima: set gp bus_stop bit before hard reset

Eugene Syromiatnikov (1):
mptcp: correct MPTCP_SUBFLOW_ATTR_SSN_OFFSET reserved size

Faizal Rahim (1):
igc: Fix packet still tx after gate close by reducing i226 MAC retry buffer

Felix Fietkau (14):
wifi: mac80211: fix and simplify unencrypted drop check for mesh
wifi: cfg80211: move A-MSDU check in ieee80211_data_to_8023_exthdr
wifi: cfg80211: factor out bridge tunnel / RFC1042 header check
wifi: mac80211: remove mesh forwarding congestion check
wifi: mac80211: fix receiving A-MSDU frames on mesh interfaces
wifi: mac80211: add a workaround for receiving non-standard mesh A-MSDU
wifi: mac80211: fix mesh path discovery based on unicast packets
wifi: mac80211: fix mesh forwarding
wifi: mac80211: fix flow dissection for forwarded packets
wifi: mac80211: fix receiving mesh packets in forwarding=0 networks
wifi: mac80211: drop bogus static keywords in A-MSDU rx
wifi: mac80211: fix potential null pointer dereference
wifi: cfg80211: fix receiving mesh packets without RFC1042 header
udp: fix receiving fraglist GSO packets

Filipe Manana (1):
btrfs: send: allow cloning non-aligned extent if it ends at i_size

Florian Westphal (2):
netfilter: nf_queue: drop packets with cloned unconfirmed conntracks
tcp: prevent concurrent execution of tcp_sk_exit_batch

Gao Xiang (1):
erofs: avoid debugging output for (de)compressed data

Gavrilov Ilia (1):
pppoe: Fix memory leak in pppoe_sendmsg()

Gergo Koteles (1):
platform/x86: lg-laptop: fix %s null argument warning

Greg Kroah-Hartman (2):
Revert "usb: gadget: uvc: cleanup request when not in correct state" Linux 6.1.107

Griffin Kroah-Hartman (1):
Bluetooth: MGMT: Add error handling to pair_device()

Guanrui Huang (1):
irqchip/gic-v3-its: Remove BUG_ON in its_vpe_irq_domain_alloc

Gustavo A. R. Silva (1):
clk: visconti: Add bounds-checking coverage for struct visconti_pll_provider

Haibo Xu (1):
arm64: ACPI: NUMA: initialize all values of acpi_early_node_map to NUMA_NO_NODE

Hailong Liu (1):
mm/vmalloc: fix page mapping if vm_area_alloc_pages() with high order fallback to order 0

Hangbin Liu (1):
selftests: udpgro: report error when receive failed

Hannes Reinecke (1):
nvmet-tcp: do not continue for invalid icreq

Hans Verkuil (3):
media: radio-isa: use dev_name to fill in bus_info
media: qcom: venus: fix incorrect return value
media: pci: cx23885: check cx23885_vdev_init() return

Heiko Carstens (1):
s390/smp,mcck: fix early IPI handling

Helge Deller (1):
parisc: Use irq_enter_rcu() to fix warning at kernel/context_tracking.c:367

Ivan Orlov (2):
9P FS: Fix wild-memory-access write in v9fs_get_acl
mm: khugepaged: fix kernel BUG in hpage_collapse_scan_file()

Jakub Kicinski (1):
net: don't dump stack on queue timeout

Jan Höppner (1):
Revert "s390/dasd: Establish DMA alignment"

Jan Kara (5):
quota: Detect loops in quota tree
ext4: fold quota accounting into ext4_xattr_inode_lookup_create()
ext4: do not create EA inode under buffer lock
udf: Fix bogus checksum computation in udf_rename()
quota: Remove BUG_ON from dqget()

Jann Horn (1):
fuse: Initialize beyond-EOF page contents before setting uptodate

Jarkko Nikula (2):
i3c: mipi-i3c-hci: Remove BUG() when Ring Abort request times out
i3c: mipi-i3c-hci: Do not unmap region not mapped for transfer

Jason Gerecke (1):
HID: wacom: Defer calculation of resolution until resolution_code is known

Javier Carrasco (1):

      hwmon: (ltc2992) Fix memory leak in ltc2992_parse_dt()

Jeff Johnson (1):
wifi: cw1200: Avoid processing an invalid TIM IE

Jeff Layton (1):
nfsd: drop the nfsd_put helper

Jeremy Kerr (1):
net: mctp: test: Use correct skb for route input check

Jesse Brandeburg (1):
ice: fix W=1 headers mismatch

Jesse Zhang (1):
drm/amdgpu: fix dereference null return value for the function amdgpu_vm_pt_parent

Jian Shen (1):
net: hns3: add checking for vf id of mailbox

Jiaxun Yang (1):
MIPS: Loongson64: Set timer mode in cpu-probe

Jie Wang (2):
net: hns3: fix wrong use of semaphore up
net: hns3: fix a deadlock problem when config TC during resetting

Johannes Berg (6):
wifi: mac80211: take wiphy lock for MAC addr change
wifi: mac80211: fix change_address deadlock during unregister
wifi: cfg80211: check A-MSDU format more carefully
wifi: cfg80211: check wiphy mutex is held for wdev mutex
wifi: mac80211: fix BA session teardown race
wifi: mac80211: add documentation for amsdu_mesh_control

Joseph Huang (1):
net: dsa: mv88e6xxx: Fix out-of-bound access

Juan José Arboleda (1):
ALSA: usb-audio: Support Yamaha P-125 quirk entry

Justin Tee (1):
scsi: lpfc: Initialize status local variable in lpfc_sli4_repost_sgl_list()

Kamalesh Babulal (1):
cgroup: Avoid extra dereference in css_populate_dir()

Kees Cook (5):
pid: Replace struct pid 1-element array with flex-array
bpf: Replace bpf_lpm_trie_key 0-length array with flexible array
hwmon: (pc87360) Bounds check data->innr usage net/sun3_82586: Avoid reading past buffer in debug output
x86: Increase brk randomness entropy for 64-bit systems

Keith Busch (1):
nvme: clear caller pointer on identify failure

Khazhismel Kumykov (1):
dm resume: don't return EINVAL when signalled

Konstantin Komarov (1):
fs/ntfs3: Do copy_to_user out of run_lock

Krishna Kurapati (1):
usb: dwc3: core: Skip setting event buffers for host only controllers

Kuniyuki Iwashima (1):
kcm: Serialise kcm_sendmsg() for the same socket.

Kunwu Chan (1):
powerpc/xics: Check return value of kasprintf in icp_native_map_one_cpu

Lang Yu (1):
drm/amdkfd: reserve the BO before validating it

Lee Jones (1):
drm/amd/amdgpu/imu_v11_0: Increase buffer size to ensure all possible values can be stored

Lee, Chun-Yi (1):
Bluetooth: hci_ldisc: check HCI_UART_PROTO_READY flag in HCIUARTGETPROTO

Leon Hwang (1):
bpf: Fix updating attached freplace prog in prog_array map

Li Lingfeng (1):
block: Fix lockdep warning in blk_mq_mark_tag_wait

Li Nan (1):
md: clean up invalid BUG_ON in md_ioctl

Li RongQing (1):
KVM: x86: fire timer when it is migrated and expired, and in oneshot mode

Li Zhong (1):
ext4: check the return value of ext4_xattr_inode_dec_ref()

Li zeming (1):
powerpc/boot: Handle allocation failure in simple_realloc()

Lianqin Hu (1):
ALSA: usb-audio: Add delay quirk for VIVO USB-C-XE710 HEADSET

Lizhi Xu (1):
squashfs: squashfs_read_data need to check if the length is 0

Long Li (1):
net: mana: Fix doorbell out of order violation and avoid unnecessary doorbell rings

Lucas Karpinski (1):
selftests/net: synchronize udpgro tests' tx and rx connection

Luiz Augusto von Dentz (4):
Bluetooth: RFCOMM: Fix not validating setsockopt user input
Bluetooth: bnep: Fix out-of-bound access
Bluetooth: hci_core: Fix LE quote calculation
Bluetooth: SMP: Fix assumption of Central always being Initiator

Maciej Fijalkowski (6):
ice: Prepare legacy-rx for upcoming XDP multi-buffer support
ice: Add xdp_buff to ice_rx_ring struct
ice: Store page count inside ice_rx_buf
ice: Pull out next_to_clean bump out of ice_put_rx_buf()
ice: fix page reuse when PAGE_SIZE is over 8k
ice: fix ICE_LAST_OFFSET formula

Manas Ghandat (1):
jfs: fix shift-out-of-bounds in dbJoin

Marc Zyngier (1):
KVM: arm64: Make ICC_*SGI*_EL1 undef in the absence of a vGICv3

Martin Blumenstingl (1):
clocksource/drivers/arm_global_timer: Guard against division by zero

Masahiro Yamada (2):
rust: suppress error messages from CONFIG_{RUSTC,BINDGEN}_VERSION_TEXT
rust: fix the default format for CONFIG_{RUSTC,BINDGEN}_VERSION_TEXT

Mathias Nyman (1):
xhci: Fix Panther point NULL pointer deref at full-speed re-enumeration

Mathieu Othacehe (1):
tty: atmel_serial: use the correct RTS flag.

Matthieu Baerts (NGI0) (4):
mptcp: pm: re-using ID of unused removed ADD_ADDR
mptcp: pm: re-using ID of unused removed subflows
mptcp: pm: re-using ID of unused flushed subflows
mptcp: pm: only decrement add_addr_accepted for MPJ req

Max Filippov (1):
fs: binfmt_elf_efpic: don't use missing interpreter's properties

Max Kellermann (1):
fs/netfs/fscache_cookie: add missing "n_accesses" check

Maximilian Luz (1):
platform/surface: aggregator: Fix warning when controller is destroyed in probe

Michael Ellerman (1):
powerpc/boot: Only free if realloc() succeeds

Michael Grzeschik (1):
usb: gadget: uvc: cleanup request when not in correct state

Michał Mirosław (2):
i2c: tegra: allow DVC support to be compiled out
i2c: tegra: allow VI support to be compiled out

Miguel Ojeda (3):
kbuild: rust_is_available: normalize version matching
kbuild: rust_is_available: handle failures calling $RUSTC/$BINDGEN
rust: work around bindgen 0.69.0 issue

Mika Westerberg (1):
thunderbolt: Mark XDomain as unplugged when router is removed

Mike Christie (1):
scsi: spi: Fix sshdr use

Mikko Perttunen (1):
drm/tegra: Zero-initialize iosys_map

Mikulas Patocka (2):
dm persistent data: fix memory allocation failure dm suspend: return -ERESTARTSYS instead of -EINTR

Miri Korenblit (1):
wifi: iwlwifi: abort scan when rfkill on but device enabled

Muhammad Husaini Zulkifli (1):
igc: Correct the launchtime offset

Mukesh Sisodiya (1):
wifi: iwlwifi: fw: Fix debugfs command sending

Nam Cao (1):
riscv: change XIP's kernel_map.size to be size of the entire kernel

Namjae Jeon (1):
ksmbd: the buffer of smb2 query dir response has at least 1 byte

Naohiro Aota (1):
btrfs: zoned: properly take lock to read/update block group's zoned variables

Neel Natu (1):
kernfs: fix false-positive WARN(nr_mmapped) in kernfs_drain_open_files

NeilBrown (6):
NFS: avoid infinite loop in pnfs_update_layout.
nfsd: Simplify code around svc_exit_thread() call in nfsd()
nfsd: separate nfsd_last_thread() from nfsd_put()
NFSD: simplify error paths in nfsd_svc()
nfsd: call nfsd_last_thread() before final nfsd_put()
nfsd: don't call locks_release_private() twice concurrently

Nikolay Aleksandrov (4):
bonding: fix bond_ipsec_offload_ok return type
bonding: fix null pointer deref in bond_ipsec_offload_ok
bonding: fix xfrm real_dev null pointer dereference
bonding: fix xfrm state handling when clearing active slave

Nikolay Kuratov (1):
cxgb4: add forgotten u64 ivlan cast before shift

Oreoluwa Babatunde (1):
openrisc: Call setup_memory() earlier in the init sequence

Pablo Neira Ayuso (1):
netfilter: flowtable: validate vlan header

Paolo Abeni (1):
selftests: net: more strict check in net_helper

Parsa Poorshikhian (1):
ALSA: hda/realtek: Fix noise from speakers on Lenovo IdeaPad 3 15IAU7

Paul E. McKenney (1):
rcu: Eliminate rcu_gp_slow_unregister() false positive

Pawel Dembicki (3):
net: dsa: vsc73xx: pass value in phy_write operation
net: dsa: vsc73xx: use read_poll_timeout instead delay loop
net: dsa: vsc73xx: check busy flag in MDIO operations

Pei Li (1):
jfs: Fix shift-out-of-bounds in dbDiscardAG

Peiyang Wang (1):
net: hns3: use the user's cfg after reset

Peng Fan (1):
pmdomain: imx: wait SSAR when i.MX93 power domain on

Phil Chang (1):
hrtimer: Prevent queuing of hrtimer without a function callback

Phil Sutter (9):
netfilter: nf_tables: Audit log dump reset after the fact
netfilter: nf_tables: Drop pointless memset in nf_tables_dump_obj
netfilter: nf_tables: Unconditionally allocate nft_obj_filter
netfilter: nf_tables: A better name for nft_obj_filter
netfilter: nf_tables: Carry s_idx in nft_obj_dump_ctx
netfilter: nf_tables: nft_obj_filter fits into cb->ctx
netfilter: nf_tables: Carry reset boolean in nft_obj_dump_ctx
netfilter: nf_tables: Introduce nf_tables_getobj_single
netfilter: nf_tables: Add locking for NFT_MSG_GETOBJ_RESET requests

Philip Yang (1):
drm/amdkfd: Move dma unmapping after TLB flush

Philipp Stanner (1):
media: drivers/media/dvb-core: copy user arrays safely

Phillip Lougher (1):
Squashfs: fix variable overflow triggered by sysbot

Qu Wenruo (1):
btrfs: tree-checker: add dev extent item checks

Radhey Shyam Pandey (1):
net: axienet: Fix register defines comment description

Rand Deeb (1):
ssb: Fix division by zero issue in ssb_calc_clock_rate

Richard Fitzgerald (1):
firmware: cirrus: cs_dsp: Initialize debugfs_root to invalid

Rob Clark (1):
drm/msm: Reduce fallout of fence signaling vs reclaim hangs

Rodrigo Siqueira (1):
drm/amd/display: Adjust cursor position

Ryusuke Konishi (1):
nilfs2: prevent WARNING in nilfs_dat_commit_end()

Sagi Grimberg (1):
nvmet-rdma: fix possible bad dereference when freeing rsps

Samuel Holland (1):
arm64: Fix KASAN random tag seed initialization

Sean Anderson (2):
net: xilinx: axienet: Always disable promiscuous mode
net: xilinx: axienet: Fix dangling multicast addresses

Sebastian Andrzej Siewior (2):
netfilter: nft_counter: Disable BH in nft_counter_offload_stats().
netfilter: nft_counter: Synchronize nft_counter_reset() against reader.

Siarhei Vishniakou (1):
HID: microsoft: Add rumble support to latest xbox controllers

Simon Horman (1):
tc-testing: don't access non-existent variable on exception

Stefan Haberland (1):
s390/dasd: fix error recovery leading to data corruption on ESE devices

Stefan Hajnoczi (1):
virtiofs: forbid newlines in tags

Stephen Hemminger (1):
netem: fix return value if duplicate enqueue fails

Takashi Iwai (2):
ALSA: usb: Fix UBSAN warning in parse_audio_unit()
ALSA: timer: Relax start tick time check for slave timer elements

Tetsuo Handa (2):
nilfs2: initialize "struct nilfs_binfo_dat"->bi_pad field
Input: MT - limit max slots

Theodore Ts'o (1):
ext4, jbd2: add an optimized bmap for the journal inode

Thomas Bogendoerfer (1):
ip6_tunnel: Fix broken GRO

Thomas Gleixner (1):
posix-timers: Ensure timer ID search-loop limit is valid

Tom Hughes (1):
netfilter: allow ipv6 fragments to arrive on different devices

Tomi Valkeinen (1):
drm/bridge: tc358768: Attempt to fix DSI horizontal timings

Trond Myklebust (1):
nfsd: Fix a regression in nfsd_setattr()

Uwe Kleine-König (1):
usb: gadget: fsl: Increase size of name buffer for endpoints

Vladimir Oltean (5):
net: dsa: tag_ocelot: do not rely on skb_mac_header() for VLAN xmit
net: dsa: tag_ocelot: call only the relevant portion of __skb_vlan_pop() on TX
net: mscc: ocelot: use ocelot_xmit_get_vlan_info() also for FDMA and register injection
net: mscc: ocelot: fix QoS class for injected packets with "ocelot-8021q"
net: mscc: ocelot: serialize access to the injection/extraction groups

Waiman Long (1):
mm/memory-failure: use raw_spinlock_t in struct memory_failure_cpu

Werner Sembach (2):
Input: i8042 - add forcenorestore quirk to leave controller untouched even on s3
Input: i8042 - use new forcenorestore quirk to replace old buggy quirk combination

Willem de Bruijn (3):
fou: remove warn in gue_gro_receive on unsupported protocol
net: more strict VIRTIO_NET_HDR_GSO_UDP_L4 validation
net: drop bad gso csum_start and offset in virtio_net_hdr

Wolfram Sang (1):
i2c: riic: avoid potential division by zero

Yajun Deng (1):
net: sched: Print msecs when transmit queue time out

Yan Zhai (1):
gso: fix dodgy bit handling for GSO_UDP_L4

Ying Hsu (1):
Bluetooth: Fix hci_link_tx_to RCU lock usage

Yu Kuai (1):

      md/raid5-cache: use READ_ONCE/WRITE_ONCE for 'conf->log'

Yue Haibing (1):
mlxbf_gige: Remove two unused function declarations

Yuri Benditovich (1):
net: change maximum number of UDP segments to 128

Zhen Lei (3):
selinux: fix potential counting error in avc_add_xperms_decision()
mm: Remove kmem_valid_obj()
rcu: Dump memory object info if callback function is invalid

Zhiguo Niu (1):
f2fs: fix to do sanity check in update_sit_entry

Zhihao Cheng (1):
vfs: Don't evict inode under the inode lru traversing context

Zhu Yanjun (1):
RDMA/rtrs: Fix the problem of variable not initialized fully

Zi Yan (2):
mm/numa: no task_numa_fault() call if PMD is changed mm/numa: no task_numa_fault() call if PTE is changed

Zijun Hu (1):
Bluetooth: hci_conn: Check non NULL function before calling for HFP offload

yunshui (1):
bpf, net: Use DEV_STAT_INC()

author maintainer
#1 lore raw
Documentation/bpf/map_lpm_trie.rst new file +181 -0
new file mode 100644
index 000000000000..b4fce3f7c98f
@@ -0,0 +1,181 @@
+.. SPDX-License-Identifier: GPL-2.0-only
+.. Copyright (C) 2022 Red Hat, Inc.
+
+=====================
+BPF_MAP_TYPE_LPM_TRIE
+=====================
+
+.. note::
+   - ``BPF_MAP_TYPE_LPM_TRIE`` was introduced in kernel version 4.11
+
+``BPF_MAP_TYPE_LPM_TRIE`` provides a longest prefix match algorithm that
+can be used to match IP addresses to a stored set of prefixes.
+Internally, data is stored in an unbalanced trie of nodes that uses
+``prefixlen,data`` pairs as its keys. The ``data`` is interpreted in
+network byte order, i.e. big endian, so ``data[0]`` stores the most
+significant byte.
+
+LPM tries may be created with a maximum prefix length that is a multiple
+of 8, in the range from 8 to 2048. The key used for lookup and update
+operations is a ``struct bpf_lpm_trie_key_u8``, extended by
+``max_prefixlen/8`` bytes.
+
+- For IPv4 addresses the data length is 4 bytes
+- For IPv6 addresses the data length is 16 bytes
+
+The value type stored in the LPM trie can be any user defined type.
+
+.. note::
+   When creating a map of type ``BPF_MAP_TYPE_LPM_TRIE`` you must set the
+   ``BPF_F_NO_PREALLOC`` flag.
+
+Usage
+=====
+
+Kernel BPF
+----------
+
+.. c:function::
+   void *bpf_map_lookup_elem(struct bpf_map *map, const void *key)
+
+The longest prefix entry for a given data value can be found using the
+``bpf_map_lookup_elem()`` helper. This helper returns a pointer to the
+value associated with the longest matching ``key``, or ``NULL`` if no
+entry was found.
+
+The ``key`` should have ``prefixlen`` set to ``max_prefixlen`` when
+performing longest prefix lookups. For example, when searching for the
+longest prefix match for an IPv4 address, ``prefixlen`` should be set to
+``32``.
+
+.. c:function::
+   long bpf_map_update_elem(struct bpf_map *map, const void *key, const void *value, u64 flags)
+
+Prefix entries can be added or updated using the ``bpf_map_update_elem()``
+helper. This helper replaces existing elements atomically.
+
+``bpf_map_update_elem()`` returns ``0`` on success, or negative error in
+case of failure.
+
+ .. note::
+    The flags parameter must be one of BPF_ANY, BPF_NOEXIST or BPF_EXIST,
+    but the value is ignored, giving BPF_ANY semantics.
+
+.. c:function::
+   long bpf_map_delete_elem(struct bpf_map *map, const void *key)
+
+Prefix entries can be deleted using the ``bpf_map_delete_elem()``
+helper. This helper will return 0 on success, or negative error in case
+of failure.
+
+Userspace
+---------
+
+Access from userspace uses libbpf APIs with the same names as above, with
+the map identified by ``fd``.
+
+.. c:function::
+   int bpf_map_get_next_key (int fd, const void *cur_key, void *next_key)
+
+A userspace program can iterate through the entries in an LPM trie using
+libbpf's ``bpf_map_get_next_key()`` function. The first key can be
+fetched by calling ``bpf_map_get_next_key()`` with ``cur_key`` set to
+``NULL``. Subsequent calls will fetch the next key that follows the
+current key. ``bpf_map_get_next_key()`` returns ``0`` on success,
+``-ENOENT`` if ``cur_key`` is the last key in the trie, or negative
+error in case of failure.
+
+``bpf_map_get_next_key()`` will iterate through the LPM trie elements
+from leftmost leaf first. This means that iteration will return more
+specific keys before less specific ones.
+
+Examples
+========
+
+Please see ``tools/testing/selftests/bpf/test_lpm_map.c`` for examples
+of LPM trie usage from userspace. The code snippets below demonstrate
+API usage.
+
+Kernel BPF
+----------
+
+The following BPF code snippet shows how to declare a new LPM trie for IPv4
+address prefixes:
+
+.. code-block:: c
+
+    #include <linux/bpf.h>
+    #include <bpf/bpf_helpers.h>
+
+    struct ipv4_lpm_key {
+            __u32 prefixlen;
+            __u32 data;
+    };
+
+    struct {
+            __uint(type, BPF_MAP_TYPE_LPM_TRIE);
+            __type(key, struct ipv4_lpm_key);
+            __type(value, __u32);
+            __uint(map_flags, BPF_F_NO_PREALLOC);
+            __uint(max_entries, 255);
+    } ipv4_lpm_map SEC(".maps");
+
+The following BPF code snippet shows how to lookup by IPv4 address:
+
+.. code-block:: c
+
+    void *lookup(__u32 ipaddr)
+    {
+            struct ipv4_lpm_key key = {
+                    .prefixlen = 32,
+                    .data = ipaddr
+            };
+
+            return bpf_map_lookup_elem(&ipv4_lpm_map, &key);
+    }
+
+Userspace
+---------
+
+The following snippet shows how to insert an IPv4 prefix entry into an
+LPM trie:
+
+.. code-block:: c
+
+    int add_prefix_entry(int lpm_fd, __u32 addr, __u32 prefixlen, struct value *value)
+    {
+            struct ipv4_lpm_key ipv4_key = {
+                    .prefixlen = prefixlen,
+                    .data = addr
+            };
+            return bpf_map_update_elem(lpm_fd, &ipv4_key, value, BPF_ANY);
+    }
+
+The following snippet shows a userspace program walking through the entries
+of an LPM trie:
+
+
+.. code-block:: c
+
+    #include <bpf/libbpf.h>
+    #include <bpf/bpf.h>
+
+    void iterate_lpm_trie(int map_fd)
+    {
+            struct ipv4_lpm_key *cur_key = NULL;
+            struct ipv4_lpm_key next_key;
+            struct value value;
+            int err;
+
+            for (;;) {
+                    err = bpf_map_get_next_key(map_fd, cur_key, &next_key);
+                    if (err)
+                            break;
+
+                    bpf_map_lookup_elem(map_fd, &next_key, &value);
+
+                    /* Use key and value here */
+
+                    cur_key = &next_key;
+            }
+    }
Documentation/filesystems/gfs2-glocks.rst +1 -2
index d14f230f0b12..93a690b9bcf2 100644
@@ -20,8 +20,7 @@ The gl_holders list contains all the queued lock requests (not
 just the holders) associated with the glock. If there are any
 held locks, then they will be contiguous entries at the head
 of the list. Locks are granted in strictly the order that they
-are queued, except for those marked LM_FLAG_PRIORITY which are
-used only during recovery, and even then only for journal locks.
+are queued.
 
 There are three lock states that users of the glock layer can request,
 namely shared (SH), deferred (DF) and exclusive (EX). Those translate
Makefile +1 -1
index f0fd656e9da3..4c0fc0e5e002 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 6
 PATCHLEVEL = 1
-SUBLEVEL = 106
+SUBLEVEL = 107
 EXTRAVERSION =
 NAME = Curry Ramen
 
arch/arm64/kernel/acpi_numa.c +1 -1
index e51535a5f939..ccbff21ce1fa 100644
@@ -27,7 +27,7 @@
 
 #include <asm/numa.h>
 
-static int acpi_early_node_map[NR_CPUS] __initdata = { NUMA_NO_NODE };
+static int acpi_early_node_map[NR_CPUS] __initdata = { [0 ... NR_CPUS - 1] = NUMA_NO_NODE };
 
 int __init acpi_numa_get_nid(unsigned int cpu)
 {
arch/arm64/kernel/setup.c +0 -3
index fea3223704b6..44c4d79bd914 100644
@@ -360,9 +360,6 @@ void __init __no_sanitize_address setup_arch(char **cmdline_p)
 	smp_init_cpus();
 	smp_build_mpidr_hash();
 
-	/* Init percpu seeds for random tags after cpus are set up. */
-	kasan_init_sw_tags();
-
 #ifdef CONFIG_ARM64_SW_TTBR0_PAN
 	/*
 	 * Make sure init_thread_info.ttbr0 always generates translation
arch/arm64/kernel/smp.c +2 -0
index d323621d14a5..b606093a5596 100644
@@ -464,6 +464,8 @@ void __init smp_prepare_boot_cpu(void)
 		init_gic_priority_masking();
 
 	kasan_init_hw_tags();
+	/* Init percpu seeds for random tags after cpus are set up. */
+	kasan_init_sw_tags();
 }
 
 /*
arch/arm64/kvm/sys_regs.c +6 -0
index 457e74f1f671..974b94ad7952 100644
@@ -30,6 +30,7 @@
 #include <trace/events/kvm.h>
 
 #include "sys_regs.h"
+#include "vgic/vgic.h"
 
 #include "trace.h"
 
@@ -200,6 +201,11 @@ static bool access_gic_sgi(struct kvm_vcpu *vcpu,
 {
 	bool g1;
 
+	if (!kvm_has_gicv3(vcpu->kvm)) {
+		kvm_inject_undefined(vcpu);
+		return false;
+	}
+
 	if (!p->is_write)
 		return read_from_write_only(vcpu, p, r);
 
arch/arm64/kvm/vgic/vgic.h +7 -0
index 5fb0bfc07d85..bc898229167b 100644
@@ -334,4 +334,11 @@ void vgic_v4_configure_vsgis(struct kvm *kvm);
 void vgic_v4_get_vlpi_state(struct vgic_irq *irq, bool *val);
 int vgic_v4_request_vpe_irq(struct kvm_vcpu *vcpu, int irq);
 
+static inline bool kvm_has_gicv3(struct kvm *kvm)
+{
+	return (static_branch_unlikely(&kvm_vgic_global_state.gicv3_cpuif) &&
+		irqchip_in_kernel(kvm) &&
+		kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3);
+}
+
 #endif
arch/mips/kernel/cpu-probe.c +4 -0
index 482af80b8179..fdf00c228b67 100644
@@ -1723,12 +1723,16 @@ static inline void cpu_probe_loongson(struct cpuinfo_mips *c, unsigned int cpu)
 		c->ases |= (MIPS_ASE_LOONGSON_MMI | MIPS_ASE_LOONGSON_CAM |
 			MIPS_ASE_LOONGSON_EXT | MIPS_ASE_LOONGSON_EXT2);
 		c->ases &= ~MIPS_ASE_VZ; /* VZ of Loongson-3A2000/3000 is incomplete */
+		change_c0_config6(LOONGSON_CONF6_EXTIMER | LOONGSON_CONF6_INTIMER,
+				  LOONGSON_CONF6_INTIMER);
 		break;
 	case PRID_IMP_LOONGSON_64G:
 		__cpu_name[cpu] = "ICT Loongson-3";
 		set_elf_platform(cpu, "loongson3a");
 		set_isa(c, MIPS_CPU_ISA_M64R2);
 		decode_cpucfg(c);
+		change_c0_config6(LOONGSON_CONF6_EXTIMER | LOONGSON_CONF6_INTIMER,
+				  LOONGSON_CONF6_INTIMER);
 		break;
 	default:
 		panic("Unknown Loongson Processor ID!");
arch/openrisc/kernel/setup.c +3 -3
index 0cd04d936a7a..f2fe45d3094d 100644
@@ -270,6 +270,9 @@ void calibrate_delay(void)
 
 void __init setup_arch(char **cmdline_p)
 {
+	/* setup memblock allocator */
+	setup_memory();
+
 	unflatten_and_copy_device_tree();
 
 	setup_cpuinfo();
@@ -293,9 +296,6 @@ void __init setup_arch(char **cmdline_p)
 	}
 #endif
 
-	/* setup memblock allocator */
-	setup_memory();
-
 	/* paging_init() sets up the MMU and marks all pages as reserved */
 	paging_init();
 
arch/parisc/kernel/irq.c +2 -2
index 9ddb2e397058..b481cde6bfb6 100644
@@ -501,7 +501,7 @@ void do_cpu_irq_mask(struct pt_regs *regs)
 
 	old_regs = set_irq_regs(regs);
 	local_irq_disable();
-	irq_enter();
+	irq_enter_rcu();
 
 	eirr_val = mfctl(23) & cpu_eiem & per_cpu(local_ack_eiem, cpu);
 	if (!eirr_val)
@@ -536,7 +536,7 @@ void do_cpu_irq_mask(struct pt_regs *regs)
 #endif /* CONFIG_IRQSTACKS */
 
  out:
-	irq_exit();
+	irq_exit_rcu();
 	set_irq_regs(old_regs);
 	return;
 
arch/powerpc/boot/simple_alloc.c +5 -2
index 267d6524caac..d07796fdf91a 100644
@@ -112,8 +112,11 @@ static void *simple_realloc(void *ptr, unsigned long size)
 		return ptr;
 
 	new = simple_malloc(size);
-	memcpy(new, ptr, p->size);
-	simple_free(ptr);
+	if (new) {
+		memcpy(new, ptr, p->size);
+		simple_free(ptr);
+	}
+
 	return new;
 }
 
arch/powerpc/sysdev/xics/icp-native.c +2 -0
index edc17b6b1cc2..9b2238d73003 100644
@@ -236,6 +236,8 @@ static int __init icp_native_map_one_cpu(int hw_id, unsigned long addr,
 	rname = kasprintf(GFP_KERNEL, "CPU %d [0x%x] Interrupt Presentation",
 			  cpu, hw_id);
 
+	if (!rname)
+		return -ENOMEM;
 	if (!request_mem_region(addr, size, rname)) {
 		pr_warn("icp_native: Could not reserve ICP MMIO for CPU %d, interrupt server #0x%x\n",
 			cpu, hw_id);
arch/riscv/mm/init.c +2 -2
index 7ba5c244f3a0..ba2210b553f9 100644
@@ -816,7 +816,7 @@ static void __init create_kernel_page_table(pgd_t *pgdir,
 				   PMD_SIZE, PAGE_KERNEL_EXEC);
 
 	/* Map the data in RAM */
-	end_va = kernel_map.virt_addr + XIP_OFFSET + kernel_map.size;
+	end_va = kernel_map.virt_addr + kernel_map.size;
 	for (va = kernel_map.virt_addr + XIP_OFFSET; va < end_va; va += PMD_SIZE)
 		create_pgd_mapping(pgdir, va,
 				   kernel_map.phys_addr + (va - (kernel_map.virt_addr + XIP_OFFSET)),
@@ -947,7 +947,7 @@ asmlinkage void __init setup_vm(uintptr_t dtb_pa)
 
 	phys_ram_base = CONFIG_PHYS_RAM_BASE;
 	kernel_map.phys_addr = (uintptr_t)CONFIG_PHYS_RAM_BASE;
-	kernel_map.size = (uintptr_t)(&_end) - (uintptr_t)(&_sdata);
+	kernel_map.size = (uintptr_t)(&_end) - (uintptr_t)(&_start);
 
 	kernel_map.va_kernel_xip_pa_offset = kernel_map.virt_addr - kernel_map.xiprom;
 #else
arch/s390/include/asm/uv.h +4 -1
index be3ef9dd6972..6abcb46a8dfe 100644
@@ -387,7 +387,10 @@ static inline int share(unsigned long addr, u16 cmd)
 
 	if (!uv_call(0, (u64)&uvcb))
 		return 0;
-	return -EINVAL;
+	pr_err("%s UVC failed (rc: 0x%x, rrc: 0x%x), possible hypervisor bug.\n",
+	       uvcb.header.cmd == UVC_CMD_SET_SHARED_ACCESS ? "Share" : "Unshare",
+	       uvcb.header.rc, uvcb.header.rrc);
+	panic("System security cannot be guaranteed unless the system panics now.\n");
 }
 
 /*
arch/s390/kernel/early.c +3 -9
index 9693c8630e73..b3cb256ec669 100644
@@ -237,15 +237,9 @@ static inline void save_vector_registers(void)
 #endif
 }
 
-static inline void setup_control_registers(void)
+static inline void setup_low_address_protection(void)
 {
-	unsigned long reg;
-
-	__ctl_store(reg, 0, 0);
-	reg |= CR0_LOW_ADDRESS_PROTECTION;
-	reg |= CR0_EMERGENCY_SIGNAL_SUBMASK;
-	reg |= CR0_EXTERNAL_CALL_SUBMASK;
-	__ctl_load(reg, 0, 0);
+	__ctl_set_bit(0, 28);
 }
 
 static inline void setup_access_registers(void)
@@ -304,7 +298,7 @@ void __init startup_init(void)
 	save_vector_registers();
 	setup_topology();
 	sclp_early_detect();
-	setup_control_registers();
+	setup_low_address_protection();
 	setup_access_registers();
 	lockdep_on();
 }
arch/s390/kernel/smp.c +2 -2
index 0031325ce4bc..436dbf4d743d 100644
@@ -1007,12 +1007,12 @@ void __init smp_fill_possible_mask(void)
 
 void __init smp_prepare_cpus(unsigned int max_cpus)
 {
-	/* request the 0x1201 emergency signal external interrupt */
 	if (register_external_irq(EXT_IRQ_EMERGENCY_SIG, do_ext_call_interrupt))
 		panic("Couldn't request external interrupt 0x1201");
-	/* request the 0x1202 external call external interrupt */
+	ctl_set_bit(0, 14);
 	if (register_external_irq(EXT_IRQ_EXTERNAL_CALL, do_ext_call_interrupt))
 		panic("Couldn't request external interrupt 0x1202");
+	ctl_set_bit(0, 13);
 }
 
 void __init smp_prepare_boot_cpu(void)
arch/x86/kernel/process.c +4 -1
index 279b5e9be80f..acc83738bf5b 100644
@@ -991,7 +991,10 @@ unsigned long arch_align_stack(unsigned long sp)
 
 unsigned long arch_randomize_brk(struct mm_struct *mm)
 {
-	return randomize_page(mm->brk, 0x02000000);
+	if (mmap_is_ia32())
+		return randomize_page(mm->brk, SZ_32M);
+
+	return randomize_page(mm->brk, SZ_1G);
 }
 
 /*
arch/x86/kvm/lapic.c +6 -2
index c90fef0258c5..3cd590ace95a 100644
@@ -1843,8 +1843,12 @@ static bool set_target_expiration(struct kvm_lapic *apic, u32 count_reg)
 		if (unlikely(count_reg != APIC_TMICT)) {
 			deadline = tmict_to_ns(apic,
 				     kvm_lapic_get_reg(apic, count_reg));
-			if (unlikely(deadline <= 0))
-				deadline = apic->lapic_timer.period;
+			if (unlikely(deadline <= 0)) {
+				if (apic_lvtt_period(apic))
+					deadline = apic->lapic_timer.period;
+				else
+					deadline = 0;
+			}
 			else if (unlikely(deadline > apic->lapic_timer.period)) {
 				pr_info_ratelimited(
 				    "kvm: vcpu %i: requested lapic timer restore with "
block/blk-mq-tag.c +3 -2
index 100889c276c3..dcd620422d01 100644
@@ -40,6 +40,7 @@ static void blk_mq_update_wake_batch(struct blk_mq_tags *tags,
 void __blk_mq_tag_busy(struct blk_mq_hw_ctx *hctx)
 {
 	unsigned int users;
+	unsigned long flags;
 	struct blk_mq_tags *tags = hctx->tags;
 
 	/*
@@ -58,11 +59,11 @@ void __blk_mq_tag_busy(struct blk_mq_hw_ctx *hctx)
 			return;
 	}
 
-	spin_lock_irq(&tags->lock);
+	spin_lock_irqsave(&tags->lock, flags);
 	users = tags->active_queues + 1;
 	WRITE_ONCE(tags->active_queues, users);
 	blk_mq_update_wake_batch(tags, users);
-	spin_unlock_irq(&tags->lock);
+	spin_unlock_irqrestore(&tags->lock, flags);
 }
 
 /*
drivers/atm/idt77252.c +5 -4
index 2daf50d4cd47..7810f974b2ca 100644
@@ -1118,8 +1118,8 @@ dequeue_rx(struct idt77252_dev *card, struct rsq_entry *rsqe)
 	rpp->len += skb->len;
 
 	if (stat & SAR_RSQE_EPDU) {
+		unsigned int len, truesize;
 		unsigned char *l1l2;
-		unsigned int len;
 
 		l1l2 = (unsigned char *) ((unsigned long) skb->data + skb->len - 6);
 
@@ -1189,14 +1189,15 @@ dequeue_rx(struct idt77252_dev *card, struct rsq_entry *rsqe)
 		ATM_SKB(skb)->vcc = vcc;
 		__net_timestamp(skb);
 
+		truesize = skb->truesize;
 		vcc->push(vcc, skb);
 		atomic_inc(&vcc->stats->rx);
 
-		if (skb->truesize > SAR_FB_SIZE_3)
+		if (truesize > SAR_FB_SIZE_3)
 			add_rx_skb(card, 3, SAR_FB_SIZE_3, 1);
-		else if (skb->truesize > SAR_FB_SIZE_2)
+		else if (truesize > SAR_FB_SIZE_2)
 			add_rx_skb(card, 2, SAR_FB_SIZE_2, 1);
-		else if (skb->truesize > SAR_FB_SIZE_1)
+		else if (truesize > SAR_FB_SIZE_1)
 			add_rx_skb(card, 1, SAR_FB_SIZE_1, 1);
 		else
 			add_rx_skb(card, 0, SAR_FB_SIZE_0, 1);
drivers/bluetooth/hci_ldisc.c +2 -1
index 865112e96ff9..c1feebd9e3a0 100644
@@ -770,7 +770,8 @@ static int hci_uart_tty_ioctl(struct tty_struct *tty, unsigned int cmd,
 		break;
 
 	case HCIUARTGETPROTO:
-		if (test_bit(HCI_UART_PROTO_SET, &hu->flags))
+		if (test_bit(HCI_UART_PROTO_SET, &hu->flags) &&
+		    test_bit(HCI_UART_PROTO_READY, &hu->flags))
 			err = hu->proto->id;
 		else
 			err = -EUNATCH;
drivers/char/xillybus/xillyusb.c +34 -8

116 lines not on this page · raw message

drivers/clk/visconti/pll.c +3 -3
index 1f3234f22667..e9cd80e085dc 100644
@@ -329,12 +329,12 @@ struct visconti_pll_provider * __init visconti_init_pll(struct device_node *np,
 	if (!ctx)
 		return ERR_PTR(-ENOMEM);
 
-	for (i = 0; i < nr_plls; ++i)
-		ctx->clk_data.hws[i] = ERR_PTR(-ENOENT);
-
 	ctx->node = np;
 	ctx->reg_base = base;
 	ctx->clk_data.num = nr_plls;
 
+	for (i = 0; i < nr_plls; ++i)
+		ctx->clk_data.hws[i] = ERR_PTR(-ENOENT);
+
 	return ctx;
 }
drivers/clocksource/arm_global_timer.c +5 -6
index e1c773bb5535..22a58d35a41f 100644
@@ -290,18 +290,17 @@ static int gt_clk_rate_change_cb(struct notifier_block *nb,
 	switch (event) {
 	case PRE_RATE_CHANGE:
 	{
-		int psv;
+		unsigned long psv;
 
-		psv = DIV_ROUND_CLOSEST(ndata->new_rate,
-					gt_target_rate);
-
-		if (abs(gt_target_rate - (ndata->new_rate / psv)) > MAX_F_ERR)
+		psv = DIV_ROUND_CLOSEST(ndata->new_rate, gt_target_rate);
+		if (!psv ||
+		    abs(gt_target_rate - (ndata->new_rate / psv)) > MAX_F_ERR)
 			return NOTIFY_BAD;
 
 		psv--;
 
 		/* prescaler within legal range? */
-		if (psv < 0 || psv > GT_CONTROL_PRESCALER_MAX)
+		if (psv > GT_CONTROL_PRESCALER_MAX)
 			return NOTIFY_BAD;
 
 		/*
drivers/firmware/cirrus/cs_dsp.c +6 -1
index ee4c32669607..68005cce0136 100644
@@ -490,7 +490,7 @@ void cs_dsp_cleanup_debugfs(struct cs_dsp *dsp)
 {
 	cs_dsp_debugfs_clear(dsp);
 	debugfs_remove_recursive(dsp->debugfs_root);
-	dsp->debugfs_root = NULL;
+	dsp->debugfs_root = ERR_PTR(-ENODEV);
 }
 EXPORT_SYMBOL_GPL(cs_dsp_cleanup_debugfs);
 #else
@@ -2300,6 +2300,11 @@ static int cs_dsp_common_init(struct cs_dsp *dsp)
 
 	mutex_init(&dsp->pwr_lock);
 
+#ifdef CONFIG_DEBUG_FS
+	/* Ensure this is invalid if client never provides a debugfs root */
+	dsp->debugfs_root = ERR_PTR(-ENODEV);
+#endif
+
 	return 0;
 }
 
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h +1 -0
index dbc842590b25..4b694886715c 100644
@@ -286,6 +286,7 @@ int amdgpu_amdkfd_gpuvm_map_memory_to_gpu(struct amdgpu_device *adev,
 					  struct kgd_mem *mem, void *drm_priv);
 int amdgpu_amdkfd_gpuvm_unmap_memory_from_gpu(
 		struct amdgpu_device *adev, struct kgd_mem *mem, void *drm_priv);
+int amdgpu_amdkfd_gpuvm_dmaunmap_mem(struct kgd_mem *mem, void *drm_priv);
 int amdgpu_amdkfd_gpuvm_sync_memory(
 		struct amdgpu_device *adev, struct kgd_mem *mem, bool intr);
 int amdgpu_amdkfd_gpuvm_map_gtt_bo_to_kernel(struct kgd_mem *mem,
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c +36 -4
index 7d5fbaaba72f..d486f5dc052e 100644
@@ -719,7 +719,7 @@ kfd_mem_dmaunmap_sg_bo(struct kgd_mem *mem,
 	enum dma_data_direction dir;
 
 	if (unlikely(!ttm->sg)) {
-		pr_err("SG Table of BO is UNEXPECTEDLY NULL");
+		pr_debug("SG Table of BO is NULL");
 		return;
 	}
 
@@ -1226,8 +1226,6 @@ static void unmap_bo_from_gpuvm(struct kgd_mem *mem,
 	amdgpu_vm_clear_freed(adev, vm, &bo_va->last_pt_update);
 
 	amdgpu_sync_fence(sync, bo_va->last_pt_update);
-
-	kfd_mem_dmaunmap_attachment(mem, entry);
 }
 
 static int update_gpuvm_pte(struct kgd_mem *mem,
@@ -1282,6 +1280,7 @@ static int map_bo_to_gpuvm(struct kgd_mem *mem,
 
 update_gpuvm_pte_failed:
 	unmap_bo_from_gpuvm(mem, entry, sync);
+	kfd_mem_dmaunmap_attachment(mem, entry);
 	return ret;
 }
 
@@ -1852,8 +1851,10 @@ int amdgpu_amdkfd_gpuvm_free_memory_of_gpu(
 		mem->va + bo_size * (1 + mem->aql_queue));
 
 	/* Remove from VM internal data structures */
-	list_for_each_entry_safe(entry, tmp, &mem->attachments, list)
+	list_for_each_entry_safe(entry, tmp, &mem->attachments, list) {
+		kfd_mem_dmaunmap_attachment(mem, entry);
 		kfd_mem_detach(entry);
+	}
 
 	ret = unreserve_bo_and_vms(&ctx, false, false);
 
@@ -2024,6 +2025,37 @@ int amdgpu_amdkfd_gpuvm_map_memory_to_gpu(
 	return ret;
 }
 
+int amdgpu_amdkfd_gpuvm_dmaunmap_mem(struct kgd_mem *mem, void *drm_priv)
+{
+	struct kfd_mem_attachment *entry;
+	struct amdgpu_vm *vm;
+	int ret;
+
+	vm = drm_priv_to_vm(drm_priv);
+
+	mutex_lock(&mem->lock);
+
+	ret = amdgpu_bo_reserve(mem->bo, true);
+	if (ret)
+		goto out;
+
+	list_for_each_entry(entry, &mem->attachments, list) {
+		if (entry->bo_va->base.vm != vm)
+			continue;
+		if (entry->bo_va->base.bo->tbo.ttm &&
+		    !entry->bo_va->base.bo->tbo.ttm->sg)
+			continue;
+
+		kfd_mem_dmaunmap_attachment(mem, entry);
+	}
+
+	amdgpu_bo_unreserve(mem->bo);
+out:
+	mutex_unlock(&mem->lock);
+
+	return ret;
+}
+
 int amdgpu_amdkfd_gpuvm_unmap_memory_from_gpu(
 		struct amdgpu_device *adev, struct kgd_mem *mem, void *drm_priv)
 {
drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c +8 -0
index 1ed2142a6e7b..3898b67c35bc 100644
@@ -656,16 +656,24 @@ int amdgpu_ctx_ioctl(struct drm_device *dev, void *data,
 
 	switch (args->in.op) {
 	case AMDGPU_CTX_OP_ALLOC_CTX:
+		if (args->in.flags)
+			return -EINVAL;
 		r = amdgpu_ctx_alloc(adev, fpriv, filp, priority, &id);
 		args->out.alloc.ctx_id = id;
 		break;
 	case AMDGPU_CTX_OP_FREE_CTX:
+		if (args->in.flags)
+			return -EINVAL;
 		r = amdgpu_ctx_free(fpriv, id);
 		break;
 	case AMDGPU_CTX_OP_QUERY_STATE:
+		if (args->in.flags)
+			return -EINVAL;
 		r = amdgpu_ctx_query(adev, fpriv, id, &args->out);
 		break;
 	case AMDGPU_CTX_OP_QUERY_STATE2:
+		if (args->in.flags)
+			return -EINVAL;
 		r = amdgpu_ctx_query2(adev, fpriv, id, &args->out);
 		break;
 	case AMDGPU_CTX_OP_GET_STABLE_PSTATE:
drivers/gpu/drm/amd/amdgpu/amdgpu_psp_ta.c +3 -0
index 0988e00612e5..09a995df95e8 100644
@@ -148,6 +148,9 @@ static ssize_t ta_if_load_debugfs_write(struct file *fp, const char *buf, size_t
 	if (ret)
 		return -EINVAL;
 
+	if (ta_bin_len > PSP_1_MEG)
+		return -EINVAL;
+
 	copy_pos += sizeof(uint32_t);
 
 	ta_bin = kzalloc(ta_bin_len, GFP_KERNEL);
drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c +26 -27

156 lines not on this page · raw message

drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h +1 -0
index 253ea6b159df..165d841e0aaa 100644
@@ -271,6 +271,7 @@ struct amdgpu_vcn {
 
 	struct ras_common_if    *ras_if;
 	struct amdgpu_vcn_ras   *ras;
+	bool using_unified_queue;
 };
 
 struct amdgpu_fw_shared_rb_ptrs_struct {
drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c +5 -1
index 69b3829bbe53..370d02bdde86 100644
@@ -754,11 +754,15 @@ int amdgpu_vm_pde_update(struct amdgpu_vm_update_params *params,
 			 struct amdgpu_vm_bo_base *entry)
 {
 	struct amdgpu_vm_bo_base *parent = amdgpu_vm_pt_parent(entry);
-	struct amdgpu_bo *bo = parent->bo, *pbo;
+	struct amdgpu_bo *bo, *pbo;
 	struct amdgpu_vm *vm = params->vm;
 	uint64_t pde, pt, flags;
 	unsigned int level;
 
+	if (WARN_ON(!parent))
+		return -EINVAL;
+
+	bo = parent->bo;
 	for (level = 0, pbo = bo->parent; pbo; ++level)
 		pbo = pbo->parent;
 
drivers/gpu/drm/amd/amdgpu/imu_v11_0.c +1 -1
index 95548c512f4f..3c21128fa1d8 100644
@@ -38,7 +38,7 @@ MODULE_FIRMWARE("amdgpu/gc_11_0_3_imu.bin");
 
 static int imu_v11_0_init_microcode(struct amdgpu_device *adev)
 {
-	char fw_name[40];
+	char fw_name[45];
 	char ucode_prefix[30];
 	int err;
 	const struct imu_firmware_header_v1_0 *imu_hdr;
drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.c +2 -2
index f3c1af5130ab..3301ad980f28 100644
@@ -541,11 +541,11 @@ void jpeg_v2_0_dec_ring_emit_ib(struct amdgpu_ring *ring,
 
 	amdgpu_ring_write(ring, PACKETJ(mmUVD_LMI_JRBC_IB_VMID_INTERNAL_OFFSET,
 		0, 0, PACKETJ_TYPE0));
-	amdgpu_ring_write(ring, (vmid | (vmid << 4)));
+	amdgpu_ring_write(ring, (vmid | (vmid << 4) | (vmid << 8)));
 
 	amdgpu_ring_write(ring, PACKETJ(mmUVD_LMI_JPEG_VMID_INTERNAL_OFFSET,
 		0, 0, PACKETJ_TYPE0));
-	amdgpu_ring_write(ring, (vmid | (vmid << 4)));
+	amdgpu_ring_write(ring, (vmid | (vmid << 4) | (vmid << 8)));
 
 	amdgpu_ring_write(ring,	PACKETJ(mmUVD_LMI_JRBC_IB_64BIT_BAR_LOW_INTERNAL_OFFSET,
 		0, 0, PACKETJ_TYPE0));
drivers/gpu/drm/amd/amdkfd/kfd_chardev.c +14 -8
index b0f475d51ae7..e3cd66c4d95d 100644
@@ -1400,17 +1400,23 @@ static int kfd_ioctl_unmap_memory_from_gpu(struct file *filep,
 			goto sync_memory_failed;
 		}
 	}
-	mutex_unlock(&p->mutex);
 
-	if (flush_tlb) {
-		/* Flush TLBs after waiting for the page table updates to complete */
-		for (i = 0; i < args->n_devices; i++) {
-			peer_pdd = kfd_process_device_data_by_id(p, devices_arr[i]);
-			if (WARN_ON_ONCE(!peer_pdd))
-				continue;
+	/* Flush TLBs after waiting for the page table updates to complete */
+	for (i = 0; i < args->n_devices; i++) {
+		peer_pdd = kfd_process_device_data_by_id(p, devices_arr[i]);
+		if (WARN_ON_ONCE(!peer_pdd))
+			continue;
+		if (flush_tlb)
 			kfd_flush_tlb(peer_pdd, TLB_FLUSH_HEAVYWEIGHT);
-		}
+
+		/* Remove dma mapping after tlb flush to avoid IO_PAGE_FAULT */
+		err = amdgpu_amdkfd_gpuvm_dmaunmap_mem(mem, peer_pdd->drm_priv);
+		if (err)
+			goto sync_memory_failed;
 	}
+
+	mutex_unlock(&p->mutex);
+
 	kfree(devices_arr);
 
 	return 0;
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c +1 -1
index d6c5d48c878e..416168c7dcc5 100644
@@ -3633,7 +3633,7 @@ void dcn10_set_cursor_position(struct pipe_ctx *pipe_ctx)
 						(int)hubp->curs_attr.width || pos_cpy.x
 						<= (int)hubp->curs_attr.width +
 						pipe_ctx->plane_state->src_rect.x) {
-						pos_cpy.x = 2 * viewport_width - temp_x;
+						pos_cpy.x = temp_x + viewport_width;
 					}
 				}
 			} else {
drivers/gpu/drm/bridge/tc358768.c +185 -28

290 lines not on this page · raw message

drivers/gpu/drm/lima/lima_gp.c +12 -0
index ca3842f71984..82071835ec9e 100644
@@ -166,6 +166,11 @@ static void lima_gp_task_run(struct lima_sched_pipe *pipe,
 	gp_write(LIMA_GP_CMD, cmd);
 }
 
+static int lima_gp_bus_stop_poll(struct lima_ip *ip)
+{
+	return !!(gp_read(LIMA_GP_STATUS) & LIMA_GP_STATUS_BUS_STOPPED);
+}
+
 static int lima_gp_hard_reset_poll(struct lima_ip *ip)
 {
 	gp_write(LIMA_GP_PERF_CNT_0_LIMIT, 0xC01A0000);
@@ -179,6 +184,13 @@ static int lima_gp_hard_reset(struct lima_ip *ip)
 
 	gp_write(LIMA_GP_PERF_CNT_0_LIMIT, 0xC0FFE000);
 	gp_write(LIMA_GP_INT_MASK, 0);
+
+	gp_write(LIMA_GP_CMD, LIMA_GP_CMD_STOP_BUS);
+	ret = lima_poll_timeout(ip, lima_gp_bus_stop_poll, 10, 100);
+	if (ret) {
+		dev_err(dev->dev, "%s bus stop timeout\n", lima_ip_name(ip));
+		return ret;
+	}
 	gp_write(LIMA_GP_CMD, LIMA_GP_CMD_RESET);
 	ret = lima_poll_timeout(ip, lima_gp_hard_reset_poll, 10, 100);
 	if (ret) {
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h +2 -12
index bb35aa5f5709..41e44a77c2be 100644
@@ -31,24 +31,14 @@
  * @fmt: Pointer to format string
  */
 #define DPU_DEBUG(fmt, ...)                                                \
-	do {                                                               \
-		if (drm_debug_enabled(DRM_UT_KMS))                         \
-			DRM_DEBUG(fmt, ##__VA_ARGS__); \
-		else                                                       \
-			pr_debug(fmt, ##__VA_ARGS__);                      \
-	} while (0)
+	DRM_DEBUG_DRIVER(fmt, ##__VA_ARGS__)
 
 /**
  * DPU_DEBUG_DRIVER - macro for hardware driver logging
  * @fmt: Pointer to format string
  */
 #define DPU_DEBUG_DRIVER(fmt, ...)                                         \
-	do {                                                               \
-		if (drm_debug_enabled(DRM_UT_DRIVER))                      \
-			DRM_ERROR(fmt, ##__VA_ARGS__); \
-		else                                                       \
-			pr_debug(fmt, ##__VA_ARGS__);                      \
-	} while (0)
+	DRM_DEBUG_DRIVER(fmt, ##__VA_ARGS__)
 
 #define DPU_ERROR(fmt, ...) pr_err("[dpu error]" fmt, ##__VA_ARGS__)
 #define DPU_ERROR_RATELIMITED(fmt, ...) pr_err_ratelimited("[dpu error]" fmt, ##__VA_ARGS__)
drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c +3 -0
index 62d48c0f905e..61c456c5015a 100644
@@ -889,6 +889,9 @@ static int dpu_plane_prepare_fb(struct drm_plane *plane,
 			new_state->fb, &layout);
 	if (ret) {
 		DPU_ERROR_PLANE(pdpu, "failed to get format layout, %d\n", ret);
+		if (pstate->aspace)
+			msm_framebuffer_cleanup(new_state->fb, pstate->aspace,
+						pstate->needs_dirtyfb);
 		return ret;
 	}
 
drivers/gpu/drm/msm/dp/dp_ctrl.c +2 -0
index bd1343602f55..3c001b792423 100644
@@ -1248,6 +1248,8 @@ static int dp_ctrl_link_train(struct dp_ctrl_private *ctrl,
 	link_info.rate = ctrl->link->link_params.rate;
 	link_info.capabilities = DP_LINK_CAP_ENHANCED_FRAMING;
 
+	dp_link_reset_phy_params_vx_px(ctrl->link);
+
 	dp_aux_link_configure(ctrl->aux, &link_info);
 
 	if (drm_dp_max_downspread(dpcd))
drivers/gpu/drm/msm/dp/dp_panel.c +10 -9
index d38086650fcf..f2cc0cc0b66b 100644
@@ -113,22 +113,22 @@ static int dp_panel_read_dpcd(struct dp_panel *dp_panel)
 static u32 dp_panel_get_supported_bpp(struct dp_panel *dp_panel,
 		u32 mode_edid_bpp, u32 mode_pclk_khz)
 {
-	struct dp_link_info *link_info;
+	const struct dp_link_info *link_info;
 	const u32 max_supported_bpp = 30, min_supported_bpp = 18;
-	u32 bpp = 0, data_rate_khz = 0;
+	u32 bpp, data_rate_khz;
 
-	bpp = min_t(u32, mode_edid_bpp, max_supported_bpp);
+	bpp = min(mode_edid_bpp, max_supported_bpp);
 
 	link_info = &dp_panel->link_info;
 	data_rate_khz = link_info->num_lanes * link_info->rate * 8;
 
-	while (bpp > min_supported_bpp) {
+	do {
 		if (mode_pclk_khz * bpp <= data_rate_khz)
-			break;
+			return bpp;
 		bpp -= 6;
-	}
+	} while (bpp > min_supported_bpp);
 
-	return bpp;
+	return min_supported_bpp;
 }
 
 static int dp_panel_update_modes(struct drm_connector *connector,
@@ -421,8 +421,9 @@ int dp_panel_init_panel_info(struct dp_panel *dp_panel)
 				drm_mode->clock);
 	drm_dbg_dp(panel->drm_dev, "bpp = %d\n", dp_panel->dp_mode.bpp);
 
-	dp_panel->dp_mode.bpp = max_t(u32, 18,
-				min_t(u32, dp_panel->dp_mode.bpp, 30));
+	dp_panel->dp_mode.bpp = dp_panel_get_mode_bpp(dp_panel, dp_panel->dp_mode.bpp,
+						      dp_panel->dp_mode.drm_mode.clock);
+
 	drm_dbg_dp(panel->drm_dev, "updated bpp = %d\n",
 				dp_panel->dp_mode.bpp);
 
drivers/gpu/drm/msm/msm_gem_shrinker.c +1 -1
index 31f054c903a4..a35c98306f1e 100644
@@ -76,7 +76,7 @@ static bool
 wait_for_idle(struct drm_gem_object *obj)
 {
 	enum dma_resv_usage usage = dma_resv_usage_rw(true);
-	return dma_resv_wait_timeout(obj->resv, usage, false, 1000) > 0;
+	return dma_resv_wait_timeout(obj->resv, usage, false, 10) > 0;
 }
 
 static bool
drivers/gpu/drm/rockchip/rockchip_drm_vop2.c +5 -0
index 80b8c8334284..a6071464a543 100644
@@ -1258,6 +1258,11 @@ static void vop2_plane_atomic_update(struct drm_plane *plane,
 		vop2_win_write(win, VOP2_WIN_AFBC_ROTATE_270, rotate_270);
 		vop2_win_write(win, VOP2_WIN_AFBC_ROTATE_90, rotate_90);
 	} else {
+		if (vop2_cluster_window(win)) {
+			vop2_win_write(win, VOP2_WIN_AFBC_ENABLE, 0);
+			vop2_win_write(win, VOP2_WIN_AFBC_TRANSFORM_OFFSET, 0);
+		}
+
 		vop2_win_write(win, VOP2_WIN_YRGB_VIR, DIV_ROUND_UP(fb->pitches[0], 4));
 	}
 
drivers/gpu/drm/tegra/gem.c +1 -1
index 81991090adcc..cd06f2549954 100644
@@ -175,7 +175,7 @@ static void tegra_bo_unpin(struct host1x_bo_mapping *map)
 static void *tegra_bo_mmap(struct host1x_bo *bo)
 {
 	struct tegra_bo *obj = host1x_to_tegra_bo(bo);
-	struct iosys_map map;
+	struct iosys_map map = { 0 };
 	int ret;
 
 	if (obj->vaddr) {
drivers/hid/hid-ids.h +9 -1
index 0e5b2b3dea4d..1395270a30cb 100644
@@ -924,7 +924,15 @@
 #define USB_DEVICE_ID_MS_TYPE_COVER_2    0x07a9
 #define USB_DEVICE_ID_MS_POWER_COVER     0x07da
 #define USB_DEVICE_ID_MS_SURFACE3_COVER		0x07de
-#define USB_DEVICE_ID_MS_XBOX_ONE_S_CONTROLLER	0x02fd
+/*
+ * For a description of the Xbox controller models, refer to:
+ * https://en.wikipedia.org/wiki/Xbox_Wireless_Controller#Summary
+ */
+#define USB_DEVICE_ID_MS_XBOX_CONTROLLER_MODEL_1708	0x02fd
+#define USB_DEVICE_ID_MS_XBOX_CONTROLLER_MODEL_1708_BLE	0x0b20
+#define USB_DEVICE_ID_MS_XBOX_CONTROLLER_MODEL_1914	0x0b13
+#define USB_DEVICE_ID_MS_XBOX_CONTROLLER_MODEL_1797	0x0b05
+#define USB_DEVICE_ID_MS_XBOX_CONTROLLER_MODEL_1797_BLE	0x0b22
 #define USB_DEVICE_ID_MS_PIXART_MOUSE    0x00cb
 #define USB_DEVICE_ID_8BITDO_SN30_PRO_PLUS      0x02e0
 #define USB_DEVICE_ID_MS_MOUSE_0783      0x0783
drivers/hid/hid-microsoft.c +10 -1
index 071fd093a5f4..9345e2bfd56e 100644
@@ -446,7 +446,16 @@ static const struct hid_device_id ms_devices[] = {
 		.driver_data = MS_PRESENTER },
 	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_MICROSOFT, 0x091B),
 		.driver_data = MS_SURFACE_DIAL },
-	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_XBOX_ONE_S_CONTROLLER),
+
+	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_XBOX_CONTROLLER_MODEL_1708),
+		.driver_data = MS_QUIRK_FF },
+	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_XBOX_CONTROLLER_MODEL_1708_BLE),
+		.driver_data = MS_QUIRK_FF },
+	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_XBOX_CONTROLLER_MODEL_1914),
+		.driver_data = MS_QUIRK_FF },
+	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_XBOX_CONTROLLER_MODEL_1797),
+		.driver_data = MS_QUIRK_FF },
+	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_XBOX_CONTROLLER_MODEL_1797_BLE),
 		.driver_data = MS_QUIRK_FF },
 	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_8BITDO_SN30_PRO_PLUS),
 		.driver_data = MS_QUIRK_FF },
drivers/hid/wacom_wac.c +3 -1
index 05e40880e7d4..82f171f6d0c5 100644
@@ -1921,12 +1921,14 @@ static void wacom_map_usage(struct input_dev *input, struct hid_usage *usage,
 	int fmax = field->logical_maximum;
 	unsigned int equivalent_usage = wacom_equivalent_usage(usage->hid);
 	int resolution_code = code;
-	int resolution = hidinput_calc_abs_res(field, resolution_code);
+	int resolution;
 
 	if (equivalent_usage == HID_DG_TWIST) {
 		resolution_code = ABS_RZ;
 	}
 
+	resolution = hidinput_calc_abs_res(field, resolution_code);
+
 	if (equivalent_usage == HID_GD_X) {
 		fmin += features->offset_left;
 		fmax -= features->offset_right;
drivers/hwmon/ltc2992.c +7 -1
index d88e883c7492..b5dc0b7d25ae 100644
@@ -875,8 +875,14 @@ static int ltc2992_parse_dt(struct ltc2992_state *st)
 		}
 
 		ret = fwnode_property_read_u32(child, "shunt-resistor-micro-ohms", &val);
-		if (!ret)
+		if (!ret) {
+			if (!val) {
+				fwnode_handle_put(child);
+				return dev_err_probe(&st->client->dev, -EINVAL,
+						     "shunt resistor value cannot be zero\n");
+			}
 			st->r_sense_uohm[addr] = val;
+		}
 	}
 
 	return 0;
drivers/hwmon/pc87360.c +5 -1
index a4adc8bd531f..534a6072036c 100644
@@ -323,7 +323,11 @@ static struct pc87360_data *pc87360_update_device(struct device *dev)
 		}
 
 		/* Voltages */
-		for (i = 0; i < data->innr; i++) {
+		/*
+		 * The min() below does not have any practical meaning and is
+		 * only needed to silence a warning observed with gcc 12+.
+		 */
+		for (i = 0; i < min(data->innr, ARRAY_SIZE(data->in)); i++) {
 			data->in_status[i] = pc87360_read_value(data, LD_IN, i,
 					     PC87365_REG_IN_STATUS);
 			/* Clear bits */
drivers/i2c/busses/i2c-qcom-geni.c +3 -1
index cc957655cec2..471279bd7006 100644
@@ -990,8 +990,10 @@ static int __maybe_unused geni_i2c_runtime_resume(struct device *dev)
 		return ret;
 
 	ret = clk_prepare_enable(gi2c->core_clk);
-	if (ret)
+	if (ret) {
+		geni_icc_disable(&gi2c->se);
 		return ret;
+	}
 
 	ret = geni_se_resources_on(&gi2c->se);
 	if (ret) {
drivers/i2c/busses/i2c-riic.c +1 -1
index 849848ccb080..b9959621cc5d 100644
@@ -314,7 +314,7 @@ static int riic_init_hw(struct riic_dev *riic, struct i2c_timings *t)
 	 * frequency with only 62 clock ticks max (31 high, 31 low).
 	 * Aim for a duty of 60% LOW, 40% HIGH.
 	 */
-	total_ticks = DIV_ROUND_UP(rate, t->bus_freq_hz);
+	total_ticks = DIV_ROUND_UP(rate, t->bus_freq_hz ?: 1);
 
 	for (cks = 0; cks < 7; cks++) {
 		/*
drivers/i2c/busses/i2c-tegra.c +25 -16

142 lines not on this page · raw message

drivers/i3c/master/mipi-i3c-hci/dma.c +3 -2
index 71b5dbe45c45..337c95d43f3f 100644
@@ -345,6 +345,8 @@ static void hci_dma_unmap_xfer(struct i3c_hci *hci,
 
 	for (i = 0; i < n; i++) {
 		xfer = xfer_list + i;
+		if (!xfer->data)
+			continue;
 		dma_unmap_single(&hci->master.dev,
 				 xfer->data_dma, xfer->data_len,
 				 xfer->rnw ? DMA_FROM_DEVICE : DMA_TO_DEVICE);
@@ -450,10 +452,9 @@ static bool hci_dma_dequeue_xfer(struct i3c_hci *hci,
 		/*
 		 * We're deep in it if ever this condition is ever met.
 		 * Hardware might still be writing to memory, etc.
-		 * Better suspend the world than risking silent corruption.
 		 */
 		dev_crit(&hci->master.dev, "unable to abort the ring\n");
-		BUG();
+		WARN_ON(1);
 	}
 
 	for (i = 0; i < n; i++) {
drivers/infiniband/hw/hfi1/chip.c +3 -2
index 194cac40da65..c560552244ae 100644
@@ -13183,15 +13183,16 @@ static void read_mod_write(struct hfi1_devdata *dd, u16 src, u64 bits,
 {
 	u64 reg;
 	u16 idx = src / BITS_PER_REGISTER;
+	unsigned long flags;
 
-	spin_lock(&dd->irq_src_lock);
+	spin_lock_irqsave(&dd->irq_src_lock, flags);
 	reg = read_csr(dd, CCE_INT_MASK + (8 * idx));
 	if (set)
 		reg |= bits;
 	else
 		reg &= ~bits;
 	write_csr(dd, CCE_INT_MASK + (8 * idx), reg);
-	spin_unlock(&dd->irq_src_lock);
+	spin_unlock_irqrestore(&dd->irq_src_lock, flags);
 }
 
 /**
drivers/infiniband/ulp/rtrs/rtrs.c +1 -1
index 716ec7baddef..d71b1d83e9ff 100644
@@ -255,7 +255,7 @@ static int create_cq(struct rtrs_con *con, int cq_vector, int nr_cqe,
 static int create_qp(struct rtrs_con *con, struct ib_pd *pd,
 		     u32 max_send_wr, u32 max_recv_wr, u32 max_sge)
 {
-	struct ib_qp_init_attr init_attr = {NULL};
+	struct ib_qp_init_attr init_attr = {};
 	struct rdma_cm_id *cm_id = con->cm_id;
 	int ret;
 
drivers/input/input-mt.c +3 -0
index 14b53dac1253..6b04a674f832 100644
@@ -46,6 +46,9 @@ int input_mt_init_slots(struct input_dev *dev, unsigned int num_slots,
 		return 0;
 	if (mt)
 		return mt->num_slots != num_slots ? -EINVAL : 0;
+	/* Arbitrary limit for avoiding too large memory allocation. */
+	if (num_slots > 1024)
+		return -EINVAL;
 
 	mt = kzalloc(struct_size(mt, slots, num_slots), GFP_KERNEL);
 	if (!mt)
drivers/input/serio/i8042-acpipnpio.h +8 -12
index 5b50475ec414..e9eb9554dd7b 100644
@@ -83,6 +83,7 @@ static inline void i8042_write_command(int val)
 #define SERIO_QUIRK_KBDRESET		BIT(12)
 #define SERIO_QUIRK_DRITEK		BIT(13)
 #define SERIO_QUIRK_NOPNP		BIT(14)
+#define SERIO_QUIRK_FORCENORESTORE	BIT(15)
 
 /* Quirk table for different mainboards. Options similar or identical to i8042
  * module parameters.
@@ -1149,18 +1150,10 @@ static const struct dmi_system_id i8042_dmi_quirk_table[] __initconst = {
 					SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP)
 	},
 	{
-		/*
-		 * Setting SERIO_QUIRK_NOMUX or SERIO_QUIRK_RESET_ALWAYS makes
-		 * the keyboard very laggy for ~5 seconds after boot and
-		 * sometimes also after resume.
-		 * However both are required for the keyboard to not fail
-		 * completely sometimes after boot or resume.
-		 */
 		.matches = {
 			DMI_MATCH(DMI_BOARD_NAME, "N150CU"),
 		},
-		.driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS |
-					SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP)
+		.driver_data = (void *)(SERIO_QUIRK_FORCENORESTORE)
 	},
 	{
 		.matches = {
@@ -1685,6 +1678,8 @@ static void __init i8042_check_quirks(void)
 	if (quirks & SERIO_QUIRK_NOPNP)
 		i8042_nopnp = true;
 #endif
+	if (quirks & SERIO_QUIRK_FORCENORESTORE)
+		i8042_forcenorestore = true;
 }
 #else
 static inline void i8042_check_quirks(void) {}
@@ -1718,7 +1713,7 @@ static int __init i8042_platform_init(void)
 
 	i8042_check_quirks();
 
-	pr_debug("Active quirks (empty means none):%s%s%s%s%s%s%s%s%s%s%s%s%s\n",
+	pr_debug("Active quirks (empty means none):%s%s%s%s%s%s%s%s%s%s%s%s%s%s\n",
 		i8042_nokbd ? " nokbd" : "",
 		i8042_noaux ? " noaux" : "",
 		i8042_nomux ? " nomux" : "",
@@ -1738,10 +1733,11 @@ static int __init i8042_platform_init(void)
 		"",
 #endif
 #ifdef CONFIG_PNP
-		i8042_nopnp ? " nopnp" : "");
+		i8042_nopnp ? " nopnp" : "",
 #else
-		"");
+		"",
 #endif
+		i8042_forcenorestore ? " forcenorestore" : "");
 
 	retval = i8042_pnp_init();
 	if (retval)
drivers/input/serio/i8042.c +7 -3
index 6dac7c1853a5..29340f8095bb 100644
@@ -115,6 +115,10 @@ module_param_named(nopnp, i8042_nopnp, bool, 0);
 MODULE_PARM_DESC(nopnp, "Do not use PNP to detect controller settings");
 #endif
 
+static bool i8042_forcenorestore;
+module_param_named(forcenorestore, i8042_forcenorestore, bool, 0);
+MODULE_PARM_DESC(forcenorestore, "Force no restore on s3 resume, copying s2idle behaviour");
+
 #define DEBUG
 #ifdef DEBUG
 static bool i8042_debug;
@@ -1232,7 +1236,7 @@ static int i8042_pm_suspend(struct device *dev)
 {
 	int i;
 
-	if (pm_suspend_via_firmware())
+	if (!i8042_forcenorestore && pm_suspend_via_firmware())
 		i8042_controller_reset(true);
 
 	/* Set up serio interrupts for system wakeup. */
@@ -1248,7 +1252,7 @@ static int i8042_pm_suspend(struct device *dev)
 
 static int i8042_pm_resume_noirq(struct device *dev)
 {
-	if (!pm_resume_via_firmware())
+	if (i8042_forcenorestore || !pm_resume_via_firmware())
 		i8042_interrupt(0, NULL);
 
 	return 0;
@@ -1271,7 +1275,7 @@ static int i8042_pm_resume(struct device *dev)
 	 * not restore the controller state to whatever it had been at boot
 	 * time, so we do not need to do anything.
 	 */
-	if (!pm_suspend_via_firmware())
+	if (i8042_forcenorestore || !pm_suspend_via_firmware())
 		return 0;
 
 	/*
drivers/irqchip/irq-gic-v3-its.c +0 -2
index 3620bdb5200f..a7a952bbfdc2 100644
@@ -4476,8 +4476,6 @@ static int its_vpe_irq_domain_alloc(struct irq_domain *domain, unsigned int virq
 	struct page *vprop_page;
 	int base, nr_ids, i, err = 0;
 
-	BUG_ON(!vm);
-
 	bitmap = its_lpi_alloc(roundup_pow_of_two(nr_irqs), &base, &nr_ids);
 	if (!bitmap)
 		return -ENOMEM;
drivers/irqchip/irq-renesas-rzg2l.c +2 -3
index be71459c7465..70279ca7e627 100644
@@ -132,7 +132,7 @@ static void rzg2l_irqc_irq_disable(struct irq_data *d)
 
 		raw_spin_lock(&priv->lock);
 		reg = readl_relaxed(priv->base + TSSR(tssr_index));
-		reg &= ~(TSSEL_MASK << TSSEL_SHIFT(tssr_offset));
+		reg &= ~(TIEN << TSSEL_SHIFT(tssr_offset));
 		writel_relaxed(reg, priv->base + TSSR(tssr_index));
 		raw_spin_unlock(&priv->lock);
 	}
@@ -145,7 +145,6 @@ static void rzg2l_irqc_irq_enable(struct irq_data *d)
 
 	if (hw_irq >= IRQC_TINT_START && hw_irq < IRQC_NUM_IRQ) {
 		struct rzg2l_irqc_priv *priv = irq_data_to_priv(d);
-		unsigned long tint = (uintptr_t)d->chip_data;
 		u32 offset = hw_irq - IRQC_TINT_START;
 		u32 tssr_offset = TSSR_OFFSET(offset);
 		u8 tssr_index = TSSR_INDEX(offset);
@@ -153,7 +152,7 @@ static void rzg2l_irqc_irq_enable(struct irq_data *d)
 
 		raw_spin_lock(&priv->lock);
 		reg = readl_relaxed(priv->base + TSSR(tssr_index));
-		reg |= (TIEN | tint) << TSSEL_SHIFT(tssr_offset);
+		reg |= TIEN << TSSEL_SHIFT(tssr_offset);
 		writel_relaxed(reg, priv->base + TSSR(tssr_index));
 		raw_spin_unlock(&priv->lock);
 	}
drivers/md/dm-clone-metadata.c +0 -5
index c43d55672bce..47c1fa7aad8b 100644
@@ -465,11 +465,6 @@ static void __destroy_persistent_data_structures(struct dm_clone_metadata *cmd)
 
 /*---------------------------------------------------------------------------*/
 
-static size_t bitmap_size(unsigned long nr_bits)
-{
-	return BITS_TO_LONGS(nr_bits) * sizeof(long);
-}
-
 static int __dirty_map_init(struct dirty_map *dmap, unsigned long nr_words,
 			    unsigned long nr_regions)
 {
drivers/md/dm-ioctl.c +20 -2
index 4376754816ab..f9df723866da 100644
@@ -1156,8 +1156,26 @@ static int do_resume(struct dm_ioctl *param)
 			suspend_flags &= ~DM_SUSPEND_LOCKFS_FLAG;
 		if (param->flags & DM_NOFLUSH_FLAG)
 			suspend_flags |= DM_SUSPEND_NOFLUSH_FLAG;
-		if (!dm_suspended_md(md))
-			dm_suspend(md, suspend_flags);
+		if (!dm_suspended_md(md)) {
+			r = dm_suspend(md, suspend_flags);
+			if (r) {
+				down_write(&_hash_lock);
+				hc = dm_get_mdptr(md);
+				if (hc && !hc->new_map) {
+					hc->new_map = new_map;
+					new_map = NULL;
+				} else {
+					r = -ENXIO;
+				}
+				up_write(&_hash_lock);
+				if (new_map) {
+					dm_sync_table(md);
+					dm_table_destroy(new_map);
+				}
+				dm_put(md);
+				return r;
+			}
+		}
 
 		old_size = dm_get_size(md);
 		old_map = dm_swap_table(md, new_map);
drivers/md/dm.c +2 -2
index 29270f6f272f..ddd44a7f79db 100644
@@ -2511,7 +2511,7 @@ static int dm_wait_for_bios_completion(struct mapped_device *md, unsigned int ta
 			break;
 
 		if (signal_pending_state(task_state, current)) {
-			r = -EINTR;
+			r = -ERESTARTSYS;
 			break;
 		}
 
@@ -2536,7 +2536,7 @@ static int dm_wait_for_completion(struct mapped_device *md, unsigned int task_st
 			break;
 
 		if (signal_pending_state(task_state, current)) {
-			r = -EINTR;
+			r = -ERESTARTSYS;
 			break;
 		}
 
drivers/md/md.c +0 -5
index b87c6ef0da8a..297c86f5c70b 100644
@@ -7614,11 +7614,6 @@ static int md_ioctl(struct block_device *bdev, fmode_t mode,
 
 	mddev = bdev->bd_disk->private_data;
 
-	if (!mddev) {
-		BUG();
-		goto out;
-	}
-
 	/* Some actions do not requires the mutex */
 	switch (cmd) {
 	case GET_ARRAY_INFO:
drivers/md/persistent-data/dm-space-map-metadata.c +2 -2
index 0d1fcdf29c83..769bb70d37d5 100644
@@ -274,7 +274,7 @@ static void sm_metadata_destroy(struct dm_space_map *sm)
 {
 	struct sm_metadata *smm = container_of(sm, struct sm_metadata, sm);
 
-	kfree(smm);
+	kvfree(smm);
 }
 
 static int sm_metadata_get_nr_blocks(struct dm_space_map *sm, dm_block_t *count)
@@ -768,7 +768,7 @@ struct dm_space_map *dm_sm_metadata_init(void)
 {
 	struct sm_metadata *smm;
 
-	smm = kmalloc(sizeof(*smm), GFP_KERNEL);
+	smm = kvmalloc(sizeof(*smm), GFP_KERNEL);
 	if (!smm)
 		return ERR_PTR(-ENOMEM);
 
drivers/md/raid5-cache.c +25 -22

178 lines not on this page · raw message

drivers/media/dvb-core/dvb_frontend.c +8 -4
index fce0e2094078..a1a3dbb0e738 100644
@@ -2160,7 +2160,8 @@ static int dvb_frontend_handle_compat_ioctl(struct file *file, unsigned int cmd,
 		if (!tvps->num || (tvps->num > DTV_IOCTL_MAX_MSGS))
 			return -EINVAL;
 
-		tvp = memdup_user(compat_ptr(tvps->props), tvps->num * sizeof(*tvp));
+		tvp = memdup_array_user(compat_ptr(tvps->props),
+					tvps->num, sizeof(*tvp));
 		if (IS_ERR(tvp))
 			return PTR_ERR(tvp);
 
@@ -2191,7 +2192,8 @@ static int dvb_frontend_handle_compat_ioctl(struct file *file, unsigned int cmd,
 		if (!tvps->num || (tvps->num > DTV_IOCTL_MAX_MSGS))
 			return -EINVAL;
 
-		tvp = memdup_user(compat_ptr(tvps->props), tvps->num * sizeof(*tvp));
+		tvp = memdup_array_user(compat_ptr(tvps->props),
+					tvps->num, sizeof(*tvp));
 		if (IS_ERR(tvp))
 			return PTR_ERR(tvp);
 
@@ -2368,7 +2370,8 @@ static int dvb_get_property(struct dvb_frontend *fe, struct file *file,
 	if (!tvps->num || tvps->num > DTV_IOCTL_MAX_MSGS)
 		return -EINVAL;
 
-	tvp = memdup_user((void __user *)tvps->props, tvps->num * sizeof(*tvp));
+	tvp = memdup_array_user((void __user *)tvps->props,
+				tvps->num, sizeof(*tvp));
 	if (IS_ERR(tvp))
 		return PTR_ERR(tvp);
 
@@ -2446,7 +2449,8 @@ static int dvb_frontend_handle_ioctl(struct file *file,
 		if (!tvps->num || (tvps->num > DTV_IOCTL_MAX_MSGS))
 			return -EINVAL;
 
-		tvp = memdup_user((void __user *)tvps->props, tvps->num * sizeof(*tvp));
+		tvp = memdup_array_user((void __user *)tvps->props,
+					tvps->num, sizeof(*tvp));
 		if (IS_ERR(tvp))
 			return PTR_ERR(tvp);
 
drivers/media/pci/cx23885/cx23885-video.c +8 -0
index 9af2c5596121..51d7d720ec48 100644
@@ -1354,6 +1354,10 @@ int cx23885_video_register(struct cx23885_dev *dev)
 	/* register Video device */
 	dev->video_dev = cx23885_vdev_init(dev, dev->pci,
 		&cx23885_video_template, "video");
+	if (!dev->video_dev) {
+		err = -ENOMEM;
+		goto fail_unreg;
+	}
 	dev->video_dev->queue = &dev->vb2_vidq;
 	dev->video_dev->device_caps = V4L2_CAP_READWRITE | V4L2_CAP_STREAMING |
 				      V4L2_CAP_AUDIO | V4L2_CAP_VIDEO_CAPTURE;
@@ -1382,6 +1386,10 @@ int cx23885_video_register(struct cx23885_dev *dev)
 	/* register VBI device */
 	dev->vbi_dev = cx23885_vdev_init(dev, dev->pci,
 		&cx23885_vbi_template, "vbi");
+	if (!dev->vbi_dev) {
+		err = -ENOMEM;
+		goto fail_unreg;
+	}
 	dev->vbi_dev->queue = &dev->vb2_vbiq;
 	dev->vbi_dev->device_caps = V4L2_CAP_READWRITE | V4L2_CAP_STREAMING |
 				    V4L2_CAP_AUDIO | V4L2_CAP_VBI_CAPTURE;
drivers/media/pci/solo6x10/solo6x10-offsets.h +5 -5
index f414ee1316f2..fdbb817e6360 100644
@@ -57,16 +57,16 @@
 #define SOLO_MP4E_EXT_ADDR(__solo) \
 	(SOLO_EREF_EXT_ADDR(__solo) + SOLO_EREF_EXT_AREA(__solo))
 #define SOLO_MP4E_EXT_SIZE(__solo) \
-	max((__solo->nr_chans * 0x00080000),				\
-	    min(((__solo->sdram_size - SOLO_MP4E_EXT_ADDR(__solo)) -	\
-		 __SOLO_JPEG_MIN_SIZE(__solo)), 0x00ff0000))
+	clamp(__solo->sdram_size - SOLO_MP4E_EXT_ADDR(__solo) -	\
+	      __SOLO_JPEG_MIN_SIZE(__solo),			\
+	      __solo->nr_chans * 0x00080000, 0x00ff0000)
 
 #define __SOLO_JPEG_MIN_SIZE(__solo)		(__solo->nr_chans * 0x00080000)
 #define SOLO_JPEG_EXT_ADDR(__solo) \
 		(SOLO_MP4E_EXT_ADDR(__solo) + SOLO_MP4E_EXT_SIZE(__solo))
 #define SOLO_JPEG_EXT_SIZE(__solo) \
-	max(__SOLO_JPEG_MIN_SIZE(__solo),				\
-	    min((__solo->sdram_size - SOLO_JPEG_EXT_ADDR(__solo)), 0x00ff0000))
+	clamp(__solo->sdram_size - SOLO_JPEG_EXT_ADDR(__solo),	\
+	      __SOLO_JPEG_MIN_SIZE(__solo), 0x00ff0000)
 
 #define SOLO_SDRAM_END(__solo) \
 	(SOLO_JPEG_EXT_ADDR(__solo) + SOLO_JPEG_EXT_SIZE(__solo))
drivers/media/platform/qcom/venus/pm_helpers.c +1 -1
index 48c9084bb4db..a1b127caa90a 100644
@@ -870,7 +870,7 @@ static int vcodec_domains_get(struct venus_core *core)
 		pd = dev_pm_domain_attach_by_name(dev,
 						  res->vcodec_pmdomains[i]);
 		if (IS_ERR_OR_NULL(pd))
-			return PTR_ERR(pd) ? : -ENODATA;
+			return pd ? PTR_ERR(pd) : -ENODATA;
 		core->pmdomains[i] = pd;
 	}
 
drivers/media/platform/samsung/s5p-mfc/s5p_mfc_enc.c +1 -1
index f62703cebb77..4b4c129c09e7 100644
@@ -1297,7 +1297,7 @@ static int enc_post_frame_start(struct s5p_mfc_ctx *ctx)
 	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);
+		clear_work_bit_irqsave(ctx);
 
 	return 0;
 }
drivers/media/radio/radio-isa.c +1 -1
index c591c0851fa2..ad49151f5ff0 100644
@@ -36,7 +36,7 @@ static int radio_isa_querycap(struct file *file, void  *priv,
 
 	strscpy(v->driver, isa->drv->driver.driver.name, sizeof(v->driver));
 	strscpy(v->card, isa->drv->card, sizeof(v->card));
-	snprintf(v->bus_info, sizeof(v->bus_info), "ISA:%s", isa->v4l2_dev.name);
+	snprintf(v->bus_info, sizeof(v->bus_info), "ISA:%s", dev_name(isa->v4l2_dev.dev));
 	return 0;
 }
 
drivers/memory/stm32-fmc2-ebi.c +88 -34

242 lines not on this page · raw message

drivers/memory/tegra/tegra186.c +3 -0
index 7bb73f06fad3..fd6f5e2e01a2 100644
@@ -74,6 +74,9 @@ static void tegra186_mc_client_sid_override(struct tegra_mc *mc,
 {
 	u32 value, old;
 
+	if (client->regs.sid.security == 0 && client->regs.sid.override == 0)
+		return;
+
 	value = readl(mc->regs + client->regs.sid.security);
 	if ((value & MC_SID_STREAMID_SECURITY_OVERRIDE) == 0) {
 		/*
drivers/mmc/core/mmc_test.c +5 -4
index 155ce2bdfe62..dbbcbdeab6c5 100644
@@ -3109,13 +3109,13 @@ static ssize_t mtf_test_write(struct file *file, const char __user *buf,
 	test->buffer = kzalloc(BUFFER_SIZE, GFP_KERNEL);
 #ifdef CONFIG_HIGHMEM
 	test->highmem = alloc_pages(GFP_KERNEL | __GFP_HIGHMEM, BUFFER_ORDER);
+	if (!test->highmem) {
+		count = -ENOMEM;
+		goto free_test_buffer;
+	}
 #endif
 
-#ifdef CONFIG_HIGHMEM
-	if (test->buffer && test->highmem) {
-#else
 	if (test->buffer) {
-#endif
 		mutex_lock(&mmc_test_lock);
 		mmc_test_run(test, testcase);
 		mutex_unlock(&mmc_test_lock);
@@ -3123,6 +3123,7 @@ static ssize_t mtf_test_write(struct file *file, const char __user *buf,
 
 #ifdef CONFIG_HIGHMEM
 	__free_pages(test->highmem, BUFFER_ORDER);
+free_test_buffer:
 #endif
 	kfree(test->buffer);
 	kfree(test);
drivers/mmc/host/dw_mmc.c +8 -0
index c78bbc22e0d1..a0ccf88876f9 100644
@@ -3295,6 +3295,10 @@ int dw_mci_probe(struct dw_mci *host)
 	host->biu_clk = devm_clk_get(host->dev, "biu");
 	if (IS_ERR(host->biu_clk)) {
 		dev_dbg(host->dev, "biu clock not available\n");
+		ret = PTR_ERR(host->biu_clk);
+		if (ret == -EPROBE_DEFER)
+			return ret;
+
 	} else {
 		ret = clk_prepare_enable(host->biu_clk);
 		if (ret) {
@@ -3306,6 +3310,10 @@ int dw_mci_probe(struct dw_mci *host)
 	host->ciu_clk = devm_clk_get(host->dev, "ciu");
 	if (IS_ERR(host->ciu_clk)) {
 		dev_dbg(host->dev, "ciu clock not available\n");
+		ret = PTR_ERR(host->ciu_clk);
+		if (ret == -EPROBE_DEFER)
+			goto err_clk_biu;
+
 		host->bus_hz = host->pdata->bus_hz;
 	} else {
 		ret = clk_prepare_enable(host->ciu_clk);
drivers/net/bonding/bond_main.c +8 -13
index be5348d0b22e..c21835281443 100644
@@ -578,7 +578,6 @@ static void bond_ipsec_del_sa_all(struct bonding *bond)
 		} else {
 			slave->dev->xfrmdev_ops->xdo_dev_state_delete(ipsec->xs);
 		}
-		ipsec->xs->xso.real_dev = NULL;
 	}
 	spin_unlock_bh(&bond->ipsec_lock);
 	rcu_read_unlock();
@@ -595,34 +594,30 @@ static bool bond_ipsec_offload_ok(struct sk_buff *skb, struct xfrm_state *xs)
 	struct net_device *real_dev;
 	struct slave *curr_active;
 	struct bonding *bond;
-	int err;
+	bool ok = false;
 
 	bond = netdev_priv(bond_dev);
 	rcu_read_lock();
 	curr_active = rcu_dereference(bond->curr_active_slave);
+	if (!curr_active)
+		goto out;
 	real_dev = curr_active->dev;
 
-	if (BOND_MODE(bond) != BOND_MODE_ACTIVEBACKUP) {
-		err = false;
+	if (BOND_MODE(bond) != BOND_MODE_ACTIVEBACKUP)
 		goto out;
-	}
 
-	if (!xs->xso.real_dev) {
-		err = false;
+	if (!xs->xso.real_dev)
 		goto out;
-	}
 
 	if (!real_dev->xfrmdev_ops ||
 	    !real_dev->xfrmdev_ops->xdo_dev_offload_ok ||
-	    netif_is_bond_master(real_dev)) {
-		err = false;
+	    netif_is_bond_master(real_dev))
 		goto out;
-	}
 
-	err = real_dev->xfrmdev_ops->xdo_dev_offload_ok(skb, xs);
+	ok = real_dev->xfrmdev_ops->xdo_dev_offload_ok(skb, xs);
 out:
 	rcu_read_unlock();
-	return err;
+	return ok;
 }
 
 static const struct xfrmdev_ops bond_xfrmdev_ops = {
drivers/net/bonding/bond_options.c +1 -1
index 685fb4703ee1..06c4cd0f0002 100644
@@ -932,7 +932,7 @@ static int bond_option_active_slave_set(struct bonding *bond,
 	/* check to see if we are clearing active */
 	if (!slave_dev) {
 		netdev_dbg(bond->dev, "Clearing current active slave\n");
-		RCU_INIT_POINTER(bond->curr_active_slave, NULL);
+		bond_change_active_slave(bond, NULL);
 		bond_select_active_slave(bond);
 	} else {
 		struct slave *old_active = rtnl_dereference(bond->curr_active_slave);
drivers/net/dsa/mv88e6xxx/global1_atu.c +2 -1
index 7c513a03789c..17fd62616ce6 100644
@@ -453,7 +453,8 @@ static irqreturn_t mv88e6xxx_g1_atu_prob_irq_thread_fn(int irq, void *dev_id)
 		trace_mv88e6xxx_atu_full_violation(chip->dev, spid,
 						   entry.portvec, entry.mac,
 						   fid);
-		chip->ports[spid].atu_full_violation++;
+		if (spid < ARRAY_SIZE(chip->ports))
+			chip->ports[spid].atu_full_violation++;
 	}
 	mv88e6xxx_reg_unlock(chip);
 
drivers/net/dsa/ocelot/felix.c +11 -0
index 2d2c6f941272..73da407bb068 100644
@@ -528,7 +528,9 @@ static int felix_tag_8021q_setup(struct dsa_switch *ds)
 	 * so we need to be careful that there are no extra frames to be
 	 * dequeued over MMIO, since we would never know to discard them.
 	 */
+	ocelot_lock_xtr_grp_bh(ocelot, 0);
 	ocelot_drain_cpu_queue(ocelot, 0);
+	ocelot_unlock_xtr_grp_bh(ocelot, 0);
 
 	return 0;
 }
@@ -1493,6 +1495,8 @@ static void felix_port_deferred_xmit(struct kthread_work *work)
 	int port = xmit_work->dp->index;
 	int retries = 10;
 
+	ocelot_lock_inj_grp(ocelot, 0);
+
 	do {
 		if (ocelot_can_inject(ocelot, 0))
 			break;
@@ -1501,6 +1505,7 @@ static void felix_port_deferred_xmit(struct kthread_work *work)
 	} while (--retries);
 
 	if (!retries) {
+		ocelot_unlock_inj_grp(ocelot, 0);
 		dev_err(ocelot->dev, "port %d failed to inject skb\n",
 			port);
 		ocelot_port_purge_txtstamp_skb(ocelot, port, skb);
@@ -1510,6 +1515,8 @@ static void felix_port_deferred_xmit(struct kthread_work *work)
 
 	ocelot_port_inject_frame(ocelot, port, 0, rew_op, skb);
 
+	ocelot_unlock_inj_grp(ocelot, 0);
+
 	consume_skb(skb);
 	kfree(xmit_work);
 }
@@ -1658,6 +1665,8 @@ static bool felix_check_xtr_pkt(struct ocelot *ocelot)
 	if (!felix->info->quirk_no_xtr_irq)
 		return false;
 
+	ocelot_lock_xtr_grp(ocelot, grp);
+
 	while (ocelot_read(ocelot, QS_XTR_DATA_PRESENT) & BIT(grp)) {
 		struct sk_buff *skb;
 		unsigned int type;
@@ -1694,6 +1703,8 @@ static bool felix_check_xtr_pkt(struct ocelot *ocelot)
 		ocelot_drain_cpu_queue(ocelot, 0);
 	}
 
+	ocelot_unlock_xtr_grp(ocelot, grp);
+
 	return true;
 }
 
drivers/net/dsa/vitesse-vsc73xx-core.c +53 -16

134 lines not on this page · raw message

drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c +2 -1
index 786ceae34488..dd9e68465e69 100644
@@ -1244,7 +1244,8 @@ static u64 hash_filter_ntuple(struct ch_filter_specification *fs,
 	 * in the Compressed Filter Tuple.
 	 */
 	if (tp->vlan_shift >= 0 && fs->mask.ivlan)
-		ntuple |= (FT_VLAN_VLD_F | fs->val.ivlan) << tp->vlan_shift;
+		ntuple |= (u64)(FT_VLAN_VLD_F |
+				fs->val.ivlan) << tp->vlan_shift;
 
 	if (tp->port_shift >= 0 && fs->mask.iport)
 		ntuple |= (u64)fs->val.iport << tp->port_shift;
drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c +4 -3
index b98ef4ba172f..d6c871f22794 100644
@@ -2583,13 +2583,14 @@ static int dpaa2_switch_refill_bp(struct ethsw_core *ethsw)
 
 static int dpaa2_switch_seed_bp(struct ethsw_core *ethsw)
 {
-	int *count, i;
+	int *count, ret, i;
 
 	for (i = 0; i < DPAA2_ETHSW_NUM_BUFS; i += BUFS_PER_CMD) {
+		ret = dpaa2_switch_add_bufs(ethsw, ethsw->bpid);
 		count = &ethsw->buf_count;
-		*count += dpaa2_switch_add_bufs(ethsw, ethsw->bpid);
+		*count += ret;
 
-		if (unlikely(*count < BUFS_PER_CMD))
+		if (unlikely(ret < BUFS_PER_CMD))
 			return -ENOMEM;
 	}
 
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c +3 -0
index 4ce43c3a00a3..0377a056aaec 100644
@@ -5728,6 +5728,9 @@ static int hns3_reset_notify_uninit_enet(struct hnae3_handle *handle)
 	struct net_device *netdev = handle->kinfo.netdev;
 	struct hns3_nic_priv *priv = netdev_priv(netdev);
 
+	if (!test_bit(HNS3_NIC_STATE_DOWN, &priv->state))
+		hns3_nic_net_stop(netdev);
+
 	if (!test_and_clear_bit(HNS3_NIC_STATE_INITED, &priv->state)) {
 		netdev_warn(netdev, "already uninitialized\n");
 		return 0;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +20 -8
index 01e24b69e920..45bd5c79e4da 100644
@@ -2696,8 +2696,17 @@ static int hclge_cfg_mac_speed_dup_h(struct hnae3_handle *handle, int speed,
 {
 	struct hclge_vport *vport = hclge_get_vport(handle);
 	struct hclge_dev *hdev = vport->back;
+	int ret;
+
+	ret = hclge_cfg_mac_speed_dup(hdev, speed, duplex, lane_num);
+
+	if (ret)
+		return ret;
 
-	return hclge_cfg_mac_speed_dup(hdev, speed, duplex, lane_num);
+	hdev->hw.mac.req_speed = speed;
+	hdev->hw.mac.req_duplex = duplex;
+
+	return 0;
 }
 
 static int hclge_set_autoneg_en(struct hclge_dev *hdev, bool enable)
@@ -2999,17 +3008,20 @@ static int hclge_mac_init(struct hclge_dev *hdev)
 	if (!test_bit(HCLGE_STATE_RST_HANDLING, &hdev->state))
 		hdev->hw.mac.duplex = HCLGE_MAC_FULL;
 
-	ret = hclge_cfg_mac_speed_dup_hw(hdev, hdev->hw.mac.speed,
-					 hdev->hw.mac.duplex, hdev->hw.mac.lane_num);
-	if (ret)
-		return ret;
-
 	if (hdev->hw.mac.support_autoneg) {
 		ret = hclge_set_autoneg_en(hdev, hdev->hw.mac.autoneg);
 		if (ret)
 			return ret;
 	}
 
+	if (!hdev->hw.mac.autoneg) {
+		ret = hclge_cfg_mac_speed_dup_hw(hdev, hdev->hw.mac.req_speed,
+						 hdev->hw.mac.req_duplex,
+						 hdev->hw.mac.lane_num);
+		if (ret)
+			return ret;
+	}
+
 	mac->link = 0;
 
 	if (mac->user_fec_mode & BIT(HNAE3_FEC_USER_DEF)) {
@@ -11538,8 +11550,8 @@ static void hclge_reset_done(struct hnae3_ae_dev *ae_dev)
 		dev_err(&hdev->pdev->dev, "fail to rebuild, ret=%d\n", ret);
 
 	hdev->reset_type = HNAE3_NONE_RESET;
-	clear_bit(HCLGE_STATE_RST_HANDLING, &hdev->state);
-	up(&hdev->reset_sem);
+	if (test_and_clear_bit(HCLGE_STATE_RST_HANDLING, &hdev->state))
+		up(&hdev->reset_sem);
 }
 
 static void hclge_clear_resetting_state(struct hclge_dev *hdev)
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c +4 -3
index 877feee53804..61e155c4d441 100644
@@ -1124,10 +1124,11 @@ void hclge_mbx_handler(struct hclge_dev *hdev)
 		req = (struct hclge_mbx_vf_to_pf_cmd *)desc->data;
 
 		flag = le16_to_cpu(crq->desc[crq->next_to_use].flag);
-		if (unlikely(!hnae3_get_bit(flag, HCLGE_CMDQ_RX_OUTVLD_B))) {
+		if (unlikely(!hnae3_get_bit(flag, HCLGE_CMDQ_RX_OUTVLD_B) ||
+			     req->mbx_src_vfid > hdev->num_req_vfs)) {
 			dev_warn(&hdev->pdev->dev,
-				 "dropped invalid mailbox message, code = %u\n",
-				 req->msg.code);
+				 "dropped invalid mailbox message, code = %u, vfid = %u\n",
+				 req->msg.code, req->mbx_src_vfid);
 
 			/* dropping/not processing this invalid message */
 			crq->desc[crq->next_to_use].flag = 0;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c +3 -0
index 85fb11de43a1..80079657afeb 100644
@@ -191,6 +191,9 @@ static void hclge_mac_adjust_link(struct net_device *netdev)
 	if (ret)
 		netdev_err(netdev, "failed to adjust link.\n");
 
+	hdev->hw.mac.req_speed = (u32)speed;
+	hdev->hw.mac.req_duplex = (u8)duplex;
+
 	ret = hclge_cfg_flowctrl(hdev);
 	if (ret)
 		netdev_err(netdev, "failed to configure flow control.\n");
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c +2 -2
index 1f5a27fb309a..aebb104f4c29 100644
@@ -1764,8 +1764,8 @@ static void hclgevf_reset_done(struct hnae3_ae_dev *ae_dev)
 			 ret);
 
 	hdev->reset_type = HNAE3_NONE_RESET;
-	clear_bit(HCLGEVF_STATE_RST_HANDLING, &hdev->state);
-	up(&hdev->reset_sem);
+	if (test_and_clear_bit(HCLGEVF_STATE_RST_HANDLING, &hdev->state))
+		up(&hdev->reset_sem);
 }
 
 static u32 hclgevf_get_fw_version(struct hnae3_handle *handle)
drivers/net/ethernet/i825xx/sun3_82586.c +1 -1
index 3909c6a0af89..72d3b5328ebb 100644
@@ -986,7 +986,7 @@ static void sun3_82586_timeout(struct net_device *dev, unsigned int txqueue)
 	{
 #ifdef DEBUG
 		printk("%s: xmitter timed out, try to restart! stat: %02x\n",dev->name,p->scb->cus);
-		printk("%s: command-stats: %04x %04x\n",dev->name,swab16(p->xmit_cmds[0]->cmd_status),swab16(p->xmit_cmds[1]->cmd_status));
+		printk("%s: command-stats: %04x\n", dev->name, swab16(p->xmit_cmds[0]->cmd_status));
 		printk("%s: check, whether you set the right interrupt number!\n",dev->name);
 #endif
 		sun3_82586_close(dev);
drivers/net/ethernet/intel/ice/ice_base.c +1 -3
index 818eca6aa4a4..4db4ec4b8857 100644
@@ -355,9 +355,6 @@ static unsigned int ice_rx_offset(struct ice_rx_ring *rx_ring)
 {
 	if (ice_ring_uses_build_skb(rx_ring))
 		return ICE_SKB_PAD;
-	else if (ice_is_xdp_ena_vsi(rx_ring->vsi))
-		return XDP_PACKET_HEADROOM;
-
 	return 0;
 }
 
@@ -537,6 +534,7 @@ int ice_vsi_cfg_rxq(struct ice_rx_ring *ring)
 		}
 	}
 
+	xdp_init_buff(&ring->xdp, ice_rx_pg_size(ring) / 2, &ring->xdp_rxq);
 	err = ice_setup_rx_ctx(ring);
 	if (err) {
 		dev_err(dev, "ice_setup_rx_ctx failed for RxQ %d, err %d\n",
drivers/net/ethernet/intel/ice/ice_lib.c +2 -6
index 7661e735d099..347c6c23bfc1 100644
@@ -1818,8 +1818,8 @@ void ice_update_eth_stats(struct ice_vsi *vsi)
 void ice_vsi_cfg_frame_size(struct ice_vsi *vsi)
 {
 	if (!vsi->netdev || test_bit(ICE_FLAG_LEGACY_RX, vsi->back->flags)) {
-		vsi->max_frame = ICE_AQ_SET_MAC_FRAME_SIZE_MAX;
-		vsi->rx_buf_len = ICE_RXBUF_2048;
+		vsi->max_frame = ICE_MAX_FRAME_LEGACY_RX;
+		vsi->rx_buf_len = ICE_RXBUF_1664;
 #if (PAGE_SIZE < 8192)
 	} else if (!ICE_2K_TOO_SMALL_WITH_PADDING &&
 		   (vsi->netdev->mtu <= ETH_DATA_LEN)) {
@@ -1828,11 +1828,7 @@ void ice_vsi_cfg_frame_size(struct ice_vsi *vsi)
 #endif
 	} else {
 		vsi->max_frame = ICE_AQ_SET_MAC_FRAME_SIZE_MAX;
-#if (PAGE_SIZE < 8192)
 		vsi->rx_buf_len = ICE_RXBUF_3072;
-#else
-		vsi->rx_buf_len = ICE_RXBUF_2048;
-#endif
 	}
 }
 
drivers/net/ethernet/intel/ice/ice_main.c +8 -2
index 6e55861dd86f..9dbfbc90485e 100644
@@ -7328,8 +7328,8 @@ static void ice_rebuild(struct ice_pf *pf, enum ice_reset_req reset_type)
  */
 static int ice_max_xdp_frame_size(struct ice_vsi *vsi)
 {
-	if (PAGE_SIZE >= 8192 || test_bit(ICE_FLAG_LEGACY_RX, vsi->back->flags))
-		return ICE_RXBUF_2048 - XDP_PACKET_HEADROOM;
+	if (test_bit(ICE_FLAG_LEGACY_RX, vsi->back->flags))
+		return ICE_RXBUF_1664;
 	else
 		return ICE_RXBUF_3072;
 }
@@ -7362,6 +7362,12 @@ static int ice_change_mtu(struct net_device *netdev, int new_mtu)
 				   frame_size - ICE_ETH_PKT_HDR_PAD);
 			return -EINVAL;
 		}
+	} else if (test_bit(ICE_FLAG_LEGACY_RX, pf->flags)) {
+		if (new_mtu + ICE_ETH_PKT_HDR_PAD > ICE_MAX_FRAME_LEGACY_RX) {
+			netdev_err(netdev, "Too big MTU for legacy-rx; Max is %d\n",
+				   ICE_MAX_FRAME_LEGACY_RX - ICE_ETH_PKT_HDR_PAD);
+			return -EINVAL;
+		}
 	}
 
 	/* if a reset is in progress, wait for some time for it to complete */
drivers/net/ethernet/intel/ice/ice_txrx.c +54 -63

81 lines not on this page · raw message

drivers/net/ethernet/intel/ice/ice_txrx.h +5 -1
index 932b5661ec4d..c1d9b3cebb05 100644

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

drivers/net/ethernet/intel/ice/ice_txrx_lib.c +1 -0
index 7ee38d02d1e5..d137b98d78eb 100644

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

drivers/net/ethernet/intel/igc/igc_defines.h +15 -0
index efdabcbd66dd..8187a658dcbd 100644

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

drivers/net/ethernet/intel/igc/igc_main.c +7 -0
index e052f49cc08d..39f8f28288aa 100644

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

drivers/net/ethernet/intel/igc/igc_regs.h +1 -0
index c0d8214148d1..01c86d36856d 100644

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

drivers/net/ethernet/intel/igc/igc_tsn.c +64 -0

64 lines not on this page · raw message

drivers/net/ethernet/intel/igc/igc_tsn.h +1 -0
index 1512307f5a52..b53e6af560b7 100644

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

drivers/net/ethernet/marvell/octeontx2/af/rvu_cpt.c +11 -12
index b226a4d376aa..160e044c25c2 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c +2 -0
index 60bc5b577ab9..02d9fb0c5ec2 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c +1 -1
index aac32e505c14..a8870c6daec6 100644

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

drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige.h +7 -2
index 5a1027b07215..bf1a2883f082 100644

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

drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c +10 -0
index d6b4d163bbbf..6d90576fda59 100644

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

drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_regs.h +2 -0
index 7be3a793984d..d27535a1fb86 100644

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

drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_rx.c +44 -6

50 lines not on this page · raw message

drivers/net/ethernet/microsoft/mana/mana.h +1 -0
index d58be64374c8..41c99eabf40a 100644

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

drivers/net/ethernet/microsoft/mana/mana_en.c +15 -9
index b751b03eddfb..e7d1ce68f05e 100644

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

drivers/net/ethernet/mscc/ocelot.c +84 -7

91 lines not on this page · raw message

drivers/net/ethernet/mscc/ocelot_fdma.c +1 -2
index 8e3894cf5f7c..cc9bce5a4dcd 100644

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

drivers/net/ethernet/mscc/ocelot_vsc7514.c +4 -0
index 6f22aea08a64..bf39a053dc82 100644

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

drivers/net/ethernet/xilinx/xilinx_axienet.h +9 -8
index 6370c447ac5c..503c32413474 100644

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

drivers/net/ethernet/xilinx/xilinx_axienet_main.c +13 -12
index ff777735be66..59d1cfbf7d6b 100644

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

drivers/net/gtp.c +3 -0
index 05b5914d8358..512daeb14e28 100644

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

drivers/net/ppp/pppoe.c +9 -14
index ce2cbb5903d7..c6f44af35889 100644

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

drivers/net/wireless/intel/iwlwifi/fw/debugfs.c +5 -1
index 607e07ed2477..7d4340c56628 100644

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

drivers/net/wireless/intel/iwlwifi/mvm/scan.c +1 -1
index 069bac72117f..b58441c2af73 100644

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

drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c +1 -1
index 54ab8b54369b..4ab3a14567b6 100644

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

drivers/net/wireless/st/cw1200/txrx.c +1 -1
index 6894b919ff94..e16e9ae90d20 100644

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

drivers/nvme/host/core.c +4 -1
index 1aff793a1d77..0729ab543072 100644

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

drivers/nvme/target/rdma.c +4 -12
index 4597bca43a6d..a6d55ebb8238 100644

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

drivers/nvme/target/tcp.c +1 -0
index 5556f5588041..76b9eb438268 100644

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

drivers/nvme/target/trace.c +3 -3
index bff454d46255..6ee1f3db81d0 100644

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

drivers/nvme/target/trace.h +17 -11
index 974d99d47f51..7f7ebf9558e5 100644

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

drivers/platform/surface/aggregator/controller.c +2 -1
index 30cea324ff95..a6a8f4b1836a 100644

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

drivers/platform/x86/lg-laptop.c +1 -1
index 2e1dc91bfc76..5704981d1848 100644

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

drivers/rtc/rtc-nct3018y.c +3 -3
index d43acd3920ed..108eced8f003 100644

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

drivers/s390/block/dasd.c +23 -13
index 341d65acd715..4250671e4400 100644

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

drivers/s390/block/dasd_3990_erp.c +2 -8
index 91cb9d52a425..b96044fb1a3a 100644

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

drivers/s390/block/dasd_diag.c +0 -1
index f956a4ac9881..5802aead09f3 100644

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

drivers/s390/block/dasd_eckd.c +24 -32

56 lines not on this page · raw message

drivers/s390/block/dasd_int.h +1 -1
index 00bcd177264a..7823e6c06e29 100644

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

drivers/s390/cio/idset.c +7 -5
index 45f9c0736be4..e5f28370a903 100644

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

drivers/scsi/lpfc/lpfc_sli.c +1 -1
index 47b8102a7063..587e3c2f7c48 100644

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

drivers/scsi/scsi_transport_spi.c +2 -2
index f569cf0095c2..a95a35635c33 100644

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

drivers/soc/imx/imx93-pd.c +3 -2
index 4d235c8c4924..46c47f645faf 100644

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

drivers/ssb/main.c +1 -1
index 8a93c83cb6f8..d52e91258e98 100644

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

drivers/staging/iio/resolver/ad2s1210.c +4 -3
index 636c45b12843..afe89c91c89e 100644

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

drivers/staging/ks7010/ks7010_sdio.c +2 -2
index 9fb118e77a1f..f1d44e4955fc 100644

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

drivers/thunderbolt/switch.c +1 -0
index d3058ede5306..3c2035fc9cee 100644

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

drivers/tty/serial/atmel_serial.c +1 -1
index fbce8ef205ce..6a9310379dc2 100644

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

drivers/usb/dwc3/core.c +13 -0
index 94bc7786a3c4..4964fa7419ef 100644

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

drivers/usb/gadget/udc/fsl_udc_core.c +1 -1
index a67873a074b7..c1a62ebd78d6 100644

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

drivers/usb/host/xhci.c +5 -3
index 505f45429c12..ec2f6bedf003 100644

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

drivers/video/fbdev/offb.c +1 -2
index 91001990e351..6f0a9851b092 100644

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

fs/9p/xattr.c +5 -3
index 3b9aa61de8c2..2aac0e8c4835 100644

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

fs/afs/file.c +6 -2
index 2eeab57df133..9051ed008554 100644

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

fs/binfmt_elf_fdpic.c +1 -1
index 2aecd4ffb13b..c71a40927315 100644

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

fs/binfmt_misc.c +168 -48

216 lines not on this page · raw message

fs/btrfs/delayed-inode.c +1 -3
index 1494ce990d29..052112d0daa7 100644

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

fs/btrfs/disk-io.c +2 -0
index c17232659942..9ebb7bb37a22 100644

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

fs/btrfs/extent_io.c +2 -2
index 5f923c9b773e..72227c0b4b5a 100644

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

fs/btrfs/free-space-cache.c +12 -10
index 21d262da386d..75ad735322c4 100644

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

fs/btrfs/inode.c +9 -2
index 10ded9c2be03..934e360d1aef 100644

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

fs/btrfs/ioctl.c +1 -1
index 64b37afb7c87..31f7fe31b607 100644

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

fs/btrfs/qgroup.c +0 -2
index e482889667ec..f3b066b44280 100644

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

fs/btrfs/reflink.c +3 -3
index f50586ff85c8..fc6e42852578 100644

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

fs/btrfs/send.c +47 -16

63 lines not on this page · raw message

fs/btrfs/super.c +1 -1
index 6fc5fa18d1ee..d063379a031d 100644

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

fs/btrfs/tests/extent-io-tests.c +24 -4
index 350da449db08..d6a5e6afd5dc 100644

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

fs/btrfs/tree-checker.c +69 -0

69 lines not on this page · raw message

fs/erofs/decompressor.c +1 -7
index 1eefa4411e06..708bf142b188 100644

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

fs/ext4/extents.c +2 -1
index 5cbe5ae5ad4a..92b540754799 100644

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

fs/ext4/mballoc.c +3 -0
index 004ad321a45d..c723ee3e4995 100644

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

fs/ext4/super.c +23 -0
index 274542d869d0..3db39758486e 100644

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

fs/ext4/xattr.c +75 -83

158 lines not on this page · raw message

fs/f2fs/segment.c +3 -2
index 1264a350d4d7..947849e66b0a 100644

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

fs/file.c +13 -17
index 82c5d2382082..50a019fd1726 100644

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

fs/fscache/cookie.c +4 -0
index bce2492186d0..d4d4b3a8b106 100644

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

fs/fuse/cuse.c +1 -2
index c7d882a9fe33..295344a462e1 100644

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

fs/fuse/dev.c +4 -2
index b4a6e0a1b945..96a717f73ce3 100644

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

fs/fuse/fuse_i.h +1 -0
index 253b9b78d6f1..66c2a9999468 100644

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

fs/fuse/inode.c +11 -4
index f19bdd7cbd77..64618548835b 100644

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

fs/fuse/virtio_fs.c +10 -0
index 4d8d4f16c727..92d41269f1d3 100644

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

fs/gfs2/glock.c +8 -19
index 95353982e643..6ba8460f5331 100644

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

fs/gfs2/glock.h +0 -9
index 0d068f4fd7d6..f6dd94ce7499 100644

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

fs/gfs2/glops.c +20 -46

66 lines not on this page · raw message

fs/gfs2/incore.h +1 -1
index d09d9892cd05..113aeb587702 100644

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

fs/gfs2/inode.c +1 -1
index 23e6962cdd6e..04fc3e72a96e 100644

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

fs/gfs2/lock_dlm.c +0 -5
index 71911bf9ab34..884081730f9f 100644

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

fs/gfs2/log.c +0 -2
index e021d5f50c23..8fd8bb860486 100644

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

fs/gfs2/ops_fstype.c +5 -8
index c0cf1d2d0ef5..26a70b9676d5 100644

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

fs/gfs2/recovery.c +14 -14
index 2bb085a72e8e..afeda936e2be 100644

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

fs/gfs2/super.c +146 -51

197 lines not on this page · raw message

fs/gfs2/super.h +1 -0
index 58d13fd77aed..bba58629bc45 100644

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

fs/gfs2/sys.c +1 -1
index d87ea98cf535..e1fa76d4a7c2 100644

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

fs/gfs2/util.c +29 -26

55 lines not on this page · raw message

fs/gfs2/util.h +3 -2
index 78ec190f4155..3291e33e81e9 100644

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

fs/inode.c +37 -2
index 8cfda7a6d590..417ba66af4a3 100644

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

fs/jbd2/journal.c +6 -3
index c8d59f7c4745..d3d3ea439d29 100644

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

fs/jfs/jfs_dmap.c +2 -0
index 4462274e325a..d2df00676292 100644

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

fs/jfs/jfs_dtree.c +2 -0
index 031d8f570f58..5d3127ca68a4 100644

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

fs/kernfs/file.c +5 -3
index e4a50e4ff0d2..adf3536cfec8 100644

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

fs/nfs/pnfs.c +8 -0
index 4448ff829cbb..8c1f47ca5dc5 100644

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

fs/nfsd/nfs4proc.c +4 -0
index 7451cd34710d..df9dbd93663e 100644

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

fs/nfsd/nfs4state.c +1 -1
index 8d15959004ad..f04de2553c90 100644

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

fs/nfsd/nfsctl.c +20 -12
index 813ae75e7128..2feaa49fb9fe 100644

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

fs/nfsd/nfsd.h +1 -2
index 0e557fb60a0e..996f3f62335b 100644

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

fs/nfsd/nfssvc.c +21 -64

85 lines not on this page · raw message

fs/nfsd/vfs.c +4 -2
index 17e96e58e772..8f6d611d1380 100644

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

fs/nilfs2/btree.c +1 -0
index bd24a33fc72e..42617080a838 100644

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

fs/nilfs2/dat.c +11 -0
index 242cc36bf1e9..351010828d88 100644

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

fs/nilfs2/direct.c +1 -0
index 8f802f7b0840..893ab36824cc 100644

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

fs/ntfs3/bitmap.c +2 -2
index dfe4930ccec6..70d9d08fc61b 100644

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

fs/ntfs3/frecord.c +72 -3

75 lines not on this page · raw message

fs/ntfs3/fsntfs.c +1 -1
index 97723a839c81..a7e2009419c3 100644

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

fs/ntfs3/index.c +6 -5
index 9c36e0f3468d..2589f6d1215f 100644

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

fs/ntfs3/ntfs_fs.h +2 -2
index 3e65ccccdb89..a88f6879fcaa 100644

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

fs/ntfs3/super.c +1 -1
index ab0711185b3d..667ff92f5afc 100644

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

fs/quota/dquot.c +2 -3
index b67557647d61..f7ab6b44011b 100644

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

fs/quota/quota_tree.c +96 -32

128 lines not on this page · raw message

fs/quota/quota_v2.c +9 -6
index b1467f3921c2..6921d40645a7 100644

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

fs/reiserfs/stree.c +1 -1
index 84c12a1947b2..6ecf77291968 100644

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

fs/smb/server/smb2pdu.c +2 -1
index 4ba6bf1535da..7263889a772d 100644

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

fs/squashfs/block.c +1 -1
index 833aca92301f..45ea5d62cef4 100644

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

fs/squashfs/file.c +2 -1
index 8ba8c4c50770..e8df6430444b 100644

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

fs/squashfs/file_direct.c +3 -3
index f1ccad519e28..763a3f7a75f6 100644

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

fs/udf/namei.c +0 -1
index 7c95c549dd64..ded71044988a 100644

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

include/linux/bitmap.h +17 -3
index 03644237e1ef..3c8d2b87a9ed 100644

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

include/linux/bpf_verifier.h +9 -14
index 6a524c5462a6..33b073deb8c1 100644

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

include/linux/cpumask.h +1 -1
index c2aa0aa26b45..76e6d42beb71 100644

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

include/linux/dsa/ocelot.h +47 -0

47 lines not on this page · raw message

include/linux/fs.h +5 -0
index 092d8fa10153..f2206c78755a 100644

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

include/linux/if_vlan.h +21 -0
index e0d0a645be7c..83266201746c 100644

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

include/linux/jbd2.h +8 -0
index e301d323108d..5bf7ada754d7 100644

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

include/linux/pid.h +1 -1
index 343abf22092e..bf3af54de616 100644

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

include/linux/sched/signal.h +1 -1
index 20099268fa25..669e8cff40c7 100644

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

include/linux/slab.h +3 -2
index b8e77ffc3892..64cb4e26c8a6 100644

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

include/linux/sunrpc/svc.h +0 -13
index 912da376ef9b..49621cc4e01b 100644

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

include/linux/udp.h +1 -1
index 79a4eae6f1f8..e0bbc05f001a 100644

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

include/linux/virtio_net.h +21 -14
index 29b19d0a324c..823e28042f41 100644

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

include/net/cfg80211.h +39 -1
index 5bf5c1ab542c..2a0fc4a64af1 100644

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

include/net/inet_timewait_sock.h +1 -1
index 4a8e578405cb..9365e5af8d6d 100644

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

include/net/kcm.h +1 -0
index 2d704f8f4905..8e8252e08a9c 100644

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

include/net/tcp.h +1 -1
index cc314c383c53..c7501ca66dd3 100644

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

include/scsi/scsi_cmnd.h +1 -1
index 7d3622db38ed..3a92245fd845 100644

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

include/soc/mscc/ocelot.h +11 -1
index 195ca8f0b6f9..9b5562f54548 100644

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

include/trace/events/huge_memory.h +2 -1
index 760455dfa860..01591e799523 100644

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

include/uapi/linux/bpf.h +18 -1
index a17688011440..58c7fc75da75 100644

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

init/Kconfig +5 -2
index 4cd3fc82b09e..2825c8cfde3b 100644

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

kernel/bpf/Makefile +2 -1
index 341c94f208f4..5b86ea9f09c4 100644

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

kernel/bpf/log.c new file +82 -0

82 lines not on this page · raw message

kernel/bpf/lpm_trie.c +19 -14
index ce3a091d52e8..37b510d91b81 100644

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

kernel/bpf/verifier.c +0 -69

69 lines not on this page · raw message

kernel/cgroup/cgroup.c +2 -2
index 489c25713edc..455f67ff31b5 100644

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

kernel/pid.c +5 -2
index 3fbc5e46b721..74834c04a081 100644

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

kernel/pid_namespace.c +1 -1
index 1daadbefcee3..a575fabf697e 100644

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

kernel/rcu/rcu.h +7 -0
index 48d8f754b730..49ff955ed203 100644

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

kernel/rcu/srcutiny.c +1 -0
index 33adafdad261..5e7f336baa06 100644

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

kernel/rcu/srcutree.c +1 -0
index 929dcbc04d29..f7825900bdfd 100644

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

kernel/rcu/tasks.h +1 -0
index 456c956f481e..bb6b037ef30f 100644

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

kernel/rcu/tiny.c +1 -0
index a33a8d4942c3..21c040cba4bd 100644

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

kernel/rcu/tree.c +2 -1
index cd6144cea5a1..dd6e15ca63b0 100644

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

kernel/time/clocksource.c +20 -22

42 lines not on this page · raw message

kernel/time/hrtimer.c +4 -1
index 9bb88836c42e..f62cc13b5f14 100644

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

kernel/time/posix-timers.c +18 -13
index ed3c4a954398..2d6cf93ca370 100644

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

lib/math/prime_numbers.c +0 -2
index d42cebf7407f..d3b64b10da1c 100644

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

mm/huge_memory.c +13 -17
index f97b221fb656..98a1a05f2db2 100644

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

mm/khugepaged.c +20 -0
index 65bd0b105266..085fca1fa27a 100644

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

mm/memcontrol.c +5 -2
index 4570d3e315cf..4ad6e8345b36 100644

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

mm/memory-failure.c +11 -9
index 8067c1e22af9..56b2dcc2c0d6 100644

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

mm/memory.c +14 -15
index 301c74c44438..73085e36aaba 100644

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

mm/slab_common.c +11 -30

41 lines not on this page · raw message

mm/util.c +1 -3
index ce3bb17c97b9..aa4f8a45dd56 100644

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

mm/vmalloc.c +2 -9
index c5e30b52844c..a0b650f50faa 100644

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

net/bluetooth/bnep/core.c +2 -1
index 5a6a49885ab6..a660c428e220 100644

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

net/bluetooth/hci_conn.c +8 -3
index bac5a369d2be..858c454e35e6 100644

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

net/bluetooth/hci_core.c +12 -12
index 398a32465769..210e03a3609d 100644

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

net/bluetooth/mgmt.c +4 -0
index 76dac5a90aef..5b8adfb36e20 100644

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

net/bluetooth/rfcomm/sock.c +5 -9
index b54e8a530f55..29aa07e9db9d 100644

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

net/bluetooth/smp.c +72 -72

144 lines not on this page · raw message

net/bridge/br_netfilter_hooks.c +5 -1
index 9ac70c27da83..9229300881b5 100644

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

net/core/filter.c +4 -4
index 210b881cb50b..1cd5f146cafe 100644

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

net/core/skbuff.c +1 -7
index 4d46788cd493..768b8d65a5ba 100644

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

net/dccp/ipv4.c +1 -1
index f4a2dce3e104..db8d54fb8806 100644

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

net/dccp/ipv6.c +0 -6
index 016af0301366..d90bb941f2ad 100644

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

net/dsa/tag_ocelot.c +2 -35
index 0d81f172b7a6..ce9d2b20d67a 100644

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

net/ipv4/fou.c +1 -1
index 0c3c6d0cee29..358bff068eef 100644

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

net/ipv4/inet_timewait_sock.c +9 -7
index 340a8f0c2980..6356a8a47b34 100644

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

net/ipv4/tcp_ipv4.c +15 -1
index c64ba4f8ddaa..1327447a3aad 100644

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

net/ipv4/tcp_minisocks.c +3 -4
index b3bfa1a09df6..c562cb965e74 100644

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

net/ipv4/tcp_offload.c +3 -0
index 4851211aa60d..72a645bf05c9 100644

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

net/ipv4/udp_offload.c +15 -3
index 794ea24292f6..84cc3f6e1472 100644

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

net/ipv6/ip6_output.c +10 -0
index df79044fbf3c..f2227e662d1c 100644

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

net/ipv6/ip6_tunnel.c +7 -5
index 2699915bb85b..f3324f2a4046 100644

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

net/ipv6/netfilter/nf_conntrack_reasm.c +4 -0
index 87a394179092..e4b45db8a399 100644

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

net/ipv6/tcp_ipv6.c +0 -6
index eb6fc0e2a453..06b4acbfd314 100644

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

net/iucv/iucv.c +1 -2
index db41eb2d977f..038e1ba9aec2 100644

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

net/kcm/kcmsock.c +4 -0
index 7d37bf4334d2..462bdb6bfa4d 100644

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

net/mac80211/agg-tx.c +1 -5
index 85d2b9e4b51c..e26a72f3a104 100644

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

net/mac80211/debugfs_netdev.c +0 -3
index 08a1d7564b7f..8ced615add71 100644

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

net/mac80211/driver-ops.c +0 -3
index c08d3c9a4a17..5392ffa18270 100644

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

net/mac80211/ieee80211_i.h +0 -1
index 709eb7bfcf19..8a3af4144d3f 100644

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

net/mac80211/iface.c +24 -3
index e00e1bf0f754..6a9d81e9069c 100644

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

net/mac80211/rx.c +207 -180

387 lines not on this page · raw message

net/mac80211/sta_info.c +17 -0
index f388b3953174..dd1864f6549f 100644

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

net/mac80211/sta_info.h +3 -0
index 4809756a43dd..09db542fd202 100644

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

net/mctp/test/route-test.c +1 -1
index 92ea4158f7fc..a944490a724d 100644

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

net/mptcp/diag.c +1 -1
index 7017dd60659d..b2199cc28238 100644

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

net/mptcp/pm_netlink.c +27 -4
index 368886d3faac..2bce3a32bd88 100644

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

net/netfilter/nf_flow_table_inet.c +3 -0
index 6eef15648b7b..b0f199171932 100644

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

net/netfilter/nf_flow_table_ip.c +3 -0
index 22bc0e3d8a0b..34be2c9bc39d 100644

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

net/netfilter/nf_flow_table_offload.c +1 -1
index 1c26f03fc661..1904a4f295d4 100644

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

net/netfilter/nf_tables_api.c +126 -83

209 lines not on this page · raw message

net/netfilter/nfnetlink_queue.c +33 -2
index 5bc342cb1376..f13eed826cbb 100644

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

net/netfilter/nft_counter.c +7 -2
index b5fe7fe4b60d..781d3a26f5df 100644

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

net/netlink/af_netlink.c +6 -7
index e9b81cba1e2b..8d26bd2ae3d5 100644

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

net/rds/recv.c +11 -2
index 5b426dc3634d..a316180d3c32 100644

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

net/sched/sch_generic.c +6 -5
index 7053c0292c33..6ab9359c1706 100644

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

net/sched/sch_netem.c +29 -18

47 lines not on this page · raw message

net/sctp/inqueue.c +10 -4
index 7182c5a450fb..5c1652181805 100644

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

net/wireless/core.h +7 -1
index ee980965a7cf..8118b8614ac6 100644

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

net/wireless/util.c +135 -60

195 lines not on this page · raw message

samples/bpf/map_perf_test_user.c +1 -1
index 1bb53f4b29e1..cb5c776103b9 100644

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

samples/bpf/xdp_router_ipv4_user.c +1 -1
index 683913bbf279..28bae295d0ed 100644

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

scripts/rust_is_available.sh +35 -6

41 lines not on this page · raw message

security/selinux/avc.c +1 -1
index 9a43af0ebd7d..8984ba92676d 100644

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

sound/core/timer.c +1 -1
index 38f3b30efae7..ecad57a1bc5b 100644

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

sound/pci/hda/patch_realtek.c +0 -1
index 93d65a1acc47..b942ed868070 100644

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

sound/soc/sof/ipc4.c +8 -1
index 06e1872abfee..1449837b0fb2 100644

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

sound/usb/mixer.c +7 -0
index 5699a62d1767..34ded71cb807 100644

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

sound/usb/quirks-table.h +1 -0
index af1b8cf5a988..d2aa97a5c438 100644

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

sound/usb/quirks.c +2 -0
index 733a25275fe9..f9ba10d4f1e1 100644

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

tools/include/linux/align.h new file +12 -0
new file mode 100644
index 000000000000..14e34ace80dd

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

tools/include/linux/bitmap.h +5 -4
index 65d0747c5205..2cbabc1dcf0f 100644

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

tools/include/linux/mm.h +1 -4
index 2f401e8c6c0b..66ca5f9a0e09 100644

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

tools/include/uapi/linux/bpf.h +18 -1
index a17688011440..58c7fc75da75 100644

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

tools/testing/selftests/bpf/progs/map_ptr_kern.c +1 -1
index db388f593d0a..96eed198af36 100644

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

tools/testing/selftests/bpf/test_lpm_map.c +9 -9
index c028d621c744..d98c72dc563e 100644

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

tools/testing/selftests/core/close_range_test.c +35 -0
index 749239930ca8..190c57b0efeb 100644

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

tools/testing/selftests/net/net_helper.sh new file +25 -0
new file mode 100755
index 000000000000..6596fe03c77f

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

tools/testing/selftests/net/udpgro.sh +33 -24

57 lines not on this page · raw message

tools/testing/selftests/net/udpgro_bench.sh +3 -2
index 894972877e8b..cb664679b434 100755

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

tools/testing/selftests/net/udpgro_frglist.sh +3 -2
index 0a6359bed0b9..dd47fa96f6b3 100755

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

tools/testing/selftests/net/udpgso.c +1 -1
index 7badaf215de2..b02080d09fbc 100644

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

tools/testing/selftests/tc-testing/tdc.py +0 -1
index ee22e3447ec7..4702c99c99d3 100755

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

tools/tracing/rtla/src/osnoise_top.c +4 -7
index 6c07f360de72..2e3c70723fdc 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.