Skip to contentSkip to conversation

Linux 6.12.94

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Jun 19 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 6.12.94 kernel.

All users of the 6.12 kernel series must upgrade.

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

thanks,

greg k-h

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

 Documentation/ABI/testing/sysfs-fs-erofs                                |   25 +-
 Documentation/arch/arm64/silicon-errata.rst                             |   48 +++
 Makefile                                                                |    5 
 arch/arm/include/asm/io.h                                               |   15 +
 arch/arm/kernel/entry-armv.S                                            |    2 
 arch/arm/mach-socfpga/platsmp.c                                         |    1 
 arch/arm/mm/alignment.c                                                 |    6 
 arch/arm/mm/fault.c                                                     |  100 ++++++--
 arch/arm64/Kconfig                                                      |   50 ++++
 arch/arm64/Makefile                                                     |    3 
 arch/arm64/include/asm/cputype.h                                        |    6 
 arch/arm64/include/asm/tlbflush.h                                       |   63 +++--
 arch/arm64/kernel/cpu_errata.c                                          |   34 ++
 arch/arm64/kernel/sys_compat.c                                          |    2 
 arch/arm64/kvm/hyp/nvhe/mm.c                                            |    2 
 arch/arm64/kvm/hyp/nvhe/tlb.c                                           |    8 
 arch/arm64/kvm/hyp/pgtable.c                                            |    2 
 arch/arm64/kvm/hyp/vhe/tlb.c                                            |   10 
 arch/x86/Makefile                                                       |    4 
 arch/x86/Makefile.um                                                    |    8 
 arch/x86/kvm/svm/sev.c                                                  |   27 +-
 arch/x86/kvm/vmx/vmx.c                                                  |    9 
 arch/x86/kvm/x86.c                                                      |    7 
 block/blk-zoned.c                                                       |   32 ++
 drivers/accel/ivpu/ivpu_fw_log.c                                        |    5 
 drivers/accel/ivpu/ivpu_ipc.c                                           |    2 
 drivers/accel/ivpu/ivpu_ms.c                                            |    7 
 drivers/base/bus.c                                                      |   11 
 drivers/block/zram/zram_drv.c                                           |    2 
 drivers/char/ipmi/ipmi_msghandler.c                                     |    2 
 drivers/char/ipmi/ipmi_ssif.c                                           |   29 +-
 drivers/clk/qcom/dispcc-sc8280xp.c                                      |    4 
 drivers/clk/qcom/dispcc-x1e80100.c                                      |    2 
 drivers/clk/samsung/clk-gs101.c                                         |    2 
 drivers/gpio/gpio-mvebu.c                                               |    4 
 drivers/gpio/gpio-zynq.c                                                |    1 
 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c                                  |    4 
 drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c                   |    2 
 drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v11.c                        |   49 +++-
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c               |    5 
 drivers/gpu/drm/amd/display/dc/basics/vector.c                          |    4 
 drivers/gpu/drm/amd/display/dc/bios/bios_parser.c                       |   15 -
 drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c                      |   81 ++++--
 drivers/gpu/drm/amd/display/dc/bios/bios_parser_helper.h                |    5 
 drivers/gpu/drm/amd/display/dc/dce/dce_transform.c                      |   10 
 drivers/gpu/drm/amd/display/dc/dce110/dce110_opp_csc_v.c                |   10 
 drivers/gpu/drm/amd/display/modules/hdcp/hdcp_ddc.c                     |    3 
 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c                    |   32 +-
 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c                    |   32 +-
 drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_0_ppt.c                    |    3 
 drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_2_ppt.c                    |    1 
 drivers/gpu/drm/i915/gem/i915_gem_phys.c                                |   19 +
 drivers/gpu/drm/imx/dcss/dcss-scaler.c                                  |    3 
 drivers/gpu/drm/v3d/v3d_sched.c                                         |    3 
 drivers/gpu/drm/vc4/vc4_validate_shaders.c                              |   13 -
 drivers/gpu/drm/virtio/virtgpu_drv.c                                    |    5 
 drivers/gpu/drm/virtio/virtgpu_submit.c                                 |    4 
 drivers/gpu/drm/xe/xe_guc_submit.c                                      |    2 
 drivers/gpu/drm/xe/xe_range_fence.c                                     |    2 
 drivers/i2c/busses/i2c-qcom-cci.c                                       |    2 
 drivers/i2c/busses/i2c-stm32f7.c                                        |    6 
 drivers/i2c/busses/i2c-tegra.c                                          |   53 ++--
 drivers/i2c/i2c-dev.c                                                   |    9 
 drivers/infiniband/core/Makefile                                        |    2 
 drivers/infiniband/core/iter.c                                          |   43 +++
 drivers/infiniband/core/umem.c                                          |   16 +
 drivers/infiniband/core/umem_dmabuf.c                                   |   77 ++++--
 drivers/infiniband/core/verbs.c                                         |   38 ---
 drivers/infiniband/hw/bnxt_re/qplib_res.c                               |    2 
 drivers/infiniband/hw/cxgb4/mem.c                                       |    2 
 drivers/infiniband/hw/efa/efa_verbs.c                                   |    2 
 drivers/infiniband/hw/erdma/erdma_verbs.c                               |    2 
 drivers/infiniband/hw/hns/hns_roce_alloc.c                              |    2 
 drivers/infiniband/hw/hns/hns_roce_mr.c                                 |    4 
 drivers/infiniband/hw/irdma/main.h                                      |    2 
 drivers/infiniband/hw/irdma/verbs.c                                     |    4 
 drivers/infiniband/hw/mana/mana_ib.h                                    |    2 
 drivers/infiniband/hw/mlx4/mr.c                                         |    5 
 drivers/infiniband/hw/mlx5/mem.c                                        |    1 
 drivers/infiniband/hw/mlx5/mr.c                                         |    4 
 drivers/infiniband/hw/mlx5/umr.c                                        |    1 
 drivers/infiniband/hw/mthca/mthca_provider.c                            |    2 
 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c                             |    2 
 drivers/infiniband/hw/qedr/verbs.c                                      |    2 
 drivers/infiniband/hw/vmw_pvrdma/pvrdma.h                               |    2 
 drivers/infiniband/sw/rxe/rxe_verbs.c                                   |    5 
 drivers/infiniband/ulp/isert/ib_isert.c                                 |    6 
 drivers/infiniband/ulp/srp/ib_srp.c                                     |   30 +-
 drivers/input/keyboard/atkbd.c                                          |   15 +
 drivers/mailbox/mailbox.c                                               |   15 -
 drivers/mailbox/tegra-hsp.c                                             |    2 
 drivers/md/dm-cache-policy-smq.c                                        |   12 
 drivers/misc/fastrpc.c                                                  |  107 +++++---
 drivers/mmc/core/mmc.c                                                  |    4 
 drivers/mmc/host/dw_mmc-rockchip.c                                      |   17 +
 drivers/mmc/host/litex_mmc.c                                            |   20 +
 drivers/mmc/host/renesas_sdhi_internal_dmac.c                           |    1 
 drivers/mmc/host/sdhci.c                                                |    1 
 drivers/net/bonding/bond_main.c                                         |    4 
 drivers/net/ethernet/amd/pcnet32.c                                      |    4 
 drivers/net/ethernet/broadcom/bnxt/bnxt.c                               |    2 
 drivers/net/ethernet/freescale/fec_main.c                               |    3 
 drivers/net/ethernet/ibm/emac/core.c                                    |    9 
 drivers/net/ethernet/marvell/mv643xx_eth.c                              |    2 
 drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c                         |   75 +++---
 drivers/net/ethernet/marvell/octeontx2/af/rvu.c                         |    2 
 drivers/net/ethernet/marvell/octeontx2/af/rvu.h                         |    1 
 drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c                     |   36 +-
 drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c                  |    2 
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c                    |    2 
 drivers/net/ethernet/mediatek/mtk_eth_soc.c                             |    2 
 drivers/net/ethernet/mellanox/mlx4/cq.c                                 |    9 
 drivers/net/ethernet/mellanox/mlx5/core/cmd.c                           |    6 
 drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c                        |   10 
 drivers/net/ethernet/mellanox/mlx5/core/eswitch.c                       |   13 -
 drivers/net/ethernet/mellanox/mlx5/core/irq_affinity.c                  |    5 
 drivers/net/ethernet/mellanox/mlx5/core/vport.c                         |   72 ++++-
 drivers/net/ethernet/microchip/lan743x_main.c                           |   32 ++
 drivers/net/ethernet/microchip/lan743x_main.h                           |    1 
 drivers/net/ethernet/realtek/rtase/rtase_main.c                         |    7 
 drivers/net/hyperv/netvsc.c                                             |   19 +
 drivers/net/phy/micrel.c                                                |   15 -
 drivers/net/phy/phy_device.c                                            |    6 
 drivers/net/tap.c                                                       |    2 
 drivers/net/usb/r8152.c                                                 |    7 
 drivers/net/vxlan/vxlan_vnifilter.c                                     |    5 
 drivers/nvmem/core.c                                                    |   12 
 drivers/nvmem/layouts/onie-tlv.c                                        |    3 
 drivers/pinctrl/pinctrl-mcp23s08_spi.c                                  |    5 
 drivers/pmdomain/imx/gpc.c                                              |    2 
 drivers/ptp/ptp_vclock.c                                                |   14 -
 drivers/slimbus/qcom-ngd-ctrl.c                                         |  122 ++++++----
 drivers/soc/qcom/ice.c                                                  |   40 ++-
 drivers/spi/spi-cadence-quadspi.c                                       |    5 
 drivers/tee/optee/supp.c                                                |  107 ++++++--
 drivers/tee/tee_shm.c                                                   |    2 
 drivers/thunderbolt/property.c                                          |    6 
 drivers/thunderbolt/xdomain.c                                           |   14 -
 drivers/usb/serial/io_ti.c                                              |   11 
 drivers/usb/serial/kl5kusb105.c                                         |    4 
 drivers/usb/serial/mct_u232.c                                           |   21 -
 drivers/usb/serial/option.c                                             |    3 
 fs/erofs/internal.h                                                     |    7 
 fs/erofs/super.c                                                        |    3 
 fs/erofs/sysfs.c                                                        |   19 +
 fs/erofs/zdata.c                                                        |   36 +-
 fs/fcntl.c                                                              |    8 
 fs/fs-writeback.c                                                       |  101 +++++---
 fs/fuse/dev.c                                                           |    9 
 fs/iomap/buffered-io.c                                                  |    4 
 fs/qnx6/dir.c                                                           |    8 
 fs/smb/server/oplock.c                                                  |   15 -
 fs/smb/server/smb2pdu.c                                                 |   11 
 include/linux/backing-dev-defs.h                                        |    4 
 include/linux/hugetlb.h                                                 |    8 
 include/linux/ieee80211.h                                               |   18 -
 include/linux/kexec.h                                                   |    3 
 include/linux/mailbox_controller.h                                      |    3 
 include/linux/mlx5/vport.h                                              |    4 
 include/linux/mm.h                                                      |    8 
 include/linux/writeback.h                                               |    2 
 include/net/act_api.h                                                   |    1 
 include/net/bluetooth/hci_core.h                                        |    9 
 include/net/bluetooth/hci_sync.h                                        |    4 
 include/net/bluetooth/l2cap.h                                           |    1 
 include/net/ip.h                                                        |    8 
 include/net/ip_vs.h                                                     |    3 
 include/net/netfilter/nf_conntrack_core.h                               |    5 
 include/net/netfilter/nf_conntrack_helper.h                             |    1 
 include/net/secure_seq.h                                                |   45 +++
 include/net/sock.h                                                      |    1 
 include/net/tc_act/tc_pedit.h                                           |    2 
 include/net/tcp.h                                                       |    6 
 include/rdma/ib_umem.h                                                  |   48 +--
 include/rdma/ib_verbs.h                                                 |   48 ---
 include/rdma/iter.h                                                     |   88 +++++++
 io_uring/io_uring.c                                                     |    2 
 io_uring/kbuf.c                                                         |    1 
 io_uring/net.c                                                          |    3 
 ipc/shm.c                                                               |   10 
 kernel/dma/debug.c                                                      |    2 
 kernel/kexec_file.c                                                     |   33 ++
 kernel/pid.c                                                            |    8 
 kernel/sched/ext.c                                                      |    9 
 kernel/signal.c                                                         |    1 
 kernel/time/time.c                                                      |    2 
 kernel/time/timer_migration.c                                           |    8 
 kernel/trace/trace_probe.c                                              |    2 
 mm/backing-dev.c                                                        |    5 
 mm/damon/ops-common.c                                                   |    4 
 mm/huge_memory.c                                                        |    2 
 mm/hugetlb.c                                                            |   70 +++--
 mm/memory-failure.c                                                     |   19 -
 net/6lowpan/iphc.c                                                      |    4 
 net/802/garp.c                                                          |    2 
 net/802/mrp.c                                                           |    9 
 net/bluetooth/bnep/core.c                                               |   50 ++--
 net/bluetooth/hci_conn.c                                                |   31 +-
 net/bluetooth/hci_core.c                                                |   16 +
 net/bluetooth/hci_sync.c                                                |   25 +-
 net/bluetooth/hci_sysfs.c                                               |    6 
 net/bluetooth/iso.c                                                     |   71 ++++-
 net/bluetooth/l2cap_core.c                                              |   46 +++
 net/bluetooth/mgmt.c                                                    |   17 -
 net/bluetooth/rfcomm/core.c                                             |   67 ++++-
 net/bluetooth/rfcomm/sock.c                                             |   26 +-
 net/bridge/netfilter/ebt_dnat.c                                         |    4 
 net/bridge/netfilter/ebt_redirect.c                                     |   16 -
 net/bridge/netfilter/ebt_snat.c                                         |    3 
 net/core/filter.c                                                       |   15 -
 net/core/gro.c                                                          |    5 
 net/core/netdev-genl.c                                                  |    4 
 net/core/secure_seq.c                                                   |   80 ++----
 net/core/skbuff.c                                                       |    6 
 net/core/sock.c                                                         |   13 -
 net/devlink/core.c                                                      |    2 
 net/hsr/hsr_framereg.c                                                  |    4 
 net/ieee802154/6lowpan/tx.c                                             |    5 
 net/ipv4/inet_fragment.c                                                |    3 
 net/ipv4/ip_fragment.c                                                  |    3 
 net/ipv4/ip_options.c                                                   |    4 
 net/ipv4/netfilter/arp_tables.c                                         |   15 -
 net/ipv4/netfilter/ip_tables.c                                          |   15 -
 net/ipv4/netfilter/nf_nat_h323.c                                        |    2 
 net/ipv4/netfilter/nft_fib_ipv4.c                                       |    2 
 net/ipv4/syncookies.c                                                   |   19 -
 net/ipv4/tcp.c                                                          |   44 +--
 net/ipv4/tcp_fastopen.c                                                 |    2 
 net/ipv4/tcp_input.c                                                    |   22 +
 net/ipv4/tcp_ipv4.c                                                     |   84 +++---
 net/ipv4/tcp_minisocks.c                                                |   11 
 net/ipv4/tcp_output.c                                                   |   12 
 net/ipv4/tcp_timer.c                                                    |    4 
 net/ipv4/udp.c                                                          |    8 
 net/ipv4/xfrm4_input.c                                                  |    5 
 net/ipv6/addrconf.c                                                     |    6 
 net/ipv6/ip6_vti.c                                                      |    2 
 net/ipv6/mcast.c                                                        |    8 
 net/ipv6/netfilter/ip6_tables.c                                         |   15 -
 net/ipv6/netfilter/ip6t_eui64.c                                         |    7 
 net/ipv6/netfilter/nft_fib_ipv6.c                                       |    2 
 net/ipv6/sit.c                                                          |    1 
 net/ipv6/syncookies.c                                                   |   11 
 net/ipv6/tcp_ipv6.c                                                     |   37 +--
 net/ipv6/xfrm6_input.c                                                  |    5 
 net/l2tp/l2tp_ppp.c                                                     |   82 ++++--
 net/mac80211/tx.c                                                       |    4 
 net/mptcp/options.c                                                     |   73 ++---
 net/mptcp/pm.c                                                          |   15 -
 net/mptcp/pm_userspace.c                                                |   13 -
 net/mptcp/protocol.c                                                    |   10 
 net/mptcp/protocol.h                                                    |    7 
 net/mptcp/sockopt.c                                                     |    8 
 net/netfilter/ipset/ip_set_bitmap_ipmac.c                               |    5 
 net/netfilter/ipset/ip_set_hash_ipmac.c                                 |    9 
 net/netfilter/ipset/ip_set_hash_mac.c                                   |    5 
 net/netfilter/ipvs/ip_vs_ctl.c                                          |   13 -
 net/netfilter/ipvs/ip_vs_proto_sctp.c                                   |   18 -
 net/netfilter/ipvs/ip_vs_proto_tcp.c                                    |   21 -
 net/netfilter/ipvs/ip_vs_proto_udp.c                                    |   20 -
 net/netfilter/ipvs/ip_vs_sched.c                                        |   14 -
 net/netfilter/nf_conntrack_ecache.c                                     |    2 
 net/netfilter/nf_conntrack_expect.c                                     |   10 
 net/netfilter/nf_conntrack_helper.c                                     |   19 +
 net/netfilter/nf_conntrack_irc.c                                        |    4 
 net/netfilter/nf_conntrack_netlink.c                                    |   28 +-
 net/netfilter/nf_log_syslog.c                                           |   12 
 net/netfilter/nf_nat_core.c                                             |    2 
 net/netfilter/nf_nat_sip.c                                              |    1 
 net/netfilter/nf_synproxy_core.c                                        |   24 +
 net/netfilter/nfnetlink_log.c                                           |   23 +
 net/netfilter/nfnetlink_queue.c                                         |   64 ++++-
 net/netfilter/nft_ct.c                                                  |    8 
 net/netfilter/nft_ct_fast.c                                             |    2 
 net/netfilter/nft_exthdr.c                                              |    3 
 net/netfilter/nft_fib.c                                                 |    6 
 net/netfilter/nft_tunnel.c                                              |    2 
 net/netfilter/xt_NFQUEUE.c                                              |    2 
 net/netfilter/xt_mac.c                                                  |    4 
 net/netlabel/netlabel_unlabeled.c                                       |   30 --
 net/openvswitch/datapath.c                                              |    1 
 net/qrtr/af_qrtr.c                                                      |    4 
 net/rds/ib_cm.c                                                         |    1 
 net/rds/ib_send.c                                                       |    2 
 net/rds/info.c                                                          |    2 
 net/sched/act_api.c                                                     |    7 
 net/sched/act_pedit.c                                                   |   97 ++++---
 net/sctp/diag.c                                                         |   17 -
 net/sctp/input.c                                                        |    8 
 net/sctp/sm_statefuns.c                                                 |    6 
 net/sctp/stream.c                                                       |    6 
 net/smc/af_smc.c                                                        |   17 -
 net/socket.c                                                            |   11 
 net/vmw_vsock/virtio_transport_common.c                                 |   11 
 net/vmw_vsock/vmci_transport.c                                          |    4 
 net/wireless/nl80211.c                                                  |    3 
 net/xfrm/espintcp.c                                                     |    4 
 net/xfrm/xfrm_input.c                                                   |   25 +-
 net/xfrm/xfrm_policy.c                                                  |   13 -
 scripts/Makefile.compiler                                               |    2 
 scripts/generate_rust_target.rs                                         |    8 
 security/integrity/ima/ima_kexec.c                                      |   46 ++-
 sound/core/pcm_native.c                                                 |    7 
 sound/core/seq/seq_dummy.c                                              |   15 -
 sound/core/timer.c                                                      |   17 -
 sound/soc/codecs/wm_adsp.c                                              |    3 
 sound/soc/fsl/fsl_sai.c                                                 |    2 
 tools/testing/selftests/ftrace/test.d/dynevent/eprobes_syntax_errors.tc |    2 
 tools/testing/selftests/net/mptcp/mptcp_join.sh                         |    4 
 tools/testing/selftests/ptp/testptp.c                                   |   62 -----
 tools/verification/rv/src/in_kernel.c                                   |    2 
 virt/kvm/kvm_main.c                                                     |    3 
 312 files changed, 3057 insertions(+), 1609 deletions(-)

Adrian Korwel (2):
USB: serial: io_ti: fix heap overflow in get_manuf_info()
USB: serial: io_ti: fix heap overflow in build_i2c_fw_hdr()

Adrian Moreno (1):
net: openvswitch: fix possible kfree_skb of ERR_PTR

Akhil R (1):
i2c: tegra: Fix NOIRQ suspend/resume

Aleksandr Nogikh (1):
signal: clear JOBCTL_PENDING_MASK for caller in zap_other_threads()

Alexander A. Klimov (1):
drm/vc4: fix krealloc() memory leak

Alice Ryhl (2):
rust: arm64: set uwtable llvm module flag for CONFIG_UNWIND_TABLES
rust: kasan/kbuild: fix rustc-option when cross-compiling

Amirreza Zarrabi (1):
tee: optee: prevent use-after-free when the client exits before the supplicant

Amit Matityahu (1):
timers/migration: Fix livelock in tmigr_handle_remote_up()

Anandu Krishnan E (1):
misc: fastrpc: fix use-after-free of fastrpc_user in workqueue context

Andre Heider (1):
nvmem: layouts: onie-tlv: fix hang on unknown types

Andrew Martin (1):
drm/amdkfd: Fix buffer overflow in SDMA queue checkpoint/restore on GFX11

Andrzej Kacprowski (3):
accel/ivpu: Add bounds checks for firmware log indices accel/ivpu: Add buffer overflow check in MS get_info_ioctl accel/ivpu: Fix signed integer truncation in IPC receive

Andy Roulin (2):
vxlan: vnifilter: send notification on VNI add
vxlan: vnifilter: fix spurious notification on VNI update

Anton Leontev (1):
hv_netvsc: use kmap_local_page in netvsc_copy_to_send_buf

Arpith Kalaginanavoor (1):
fs/qnx6: fix pointer arithmetic in directory iteration

Bartosz Golaszewski (4):
net: mv643xx: fix OF node refcount
nvmem: core: fix use-after-free bugs in error paths
pmdomain: imx: fix OF node refcount
slimbus: qcom-ngd-ctrl: fix OF node refcount

Bharath Reddy (1):
Bluetooth: fix memory leak in error path of hci_alloc_dev()

Bjorn Andersson (7):
slimbus: qcom-ngd-ctrl: Fix up platform_driver registration
slimbus: qcom-ngd-ctrl: Fix probe error path ordering
slimbus: qcom-ngd-ctrl: Register callbacks after creating the ngd
slimbus: qcom-ngd-ctrl: Initialize controller resources in controller
slimbus: qcom-ngd-ctrl: Correct PDR and SSR cleanup ownership
slimbus: qcom-ngd-ctrl: Balance pm_runtime enablement for NGD
slimbus: qcom-ngd-ctrl: Avoid ABBA on tx_lock/ctrl->lock

Breno Leitao (1):
rds: mark snapshot pages dirty in rds_info_getsockopt()

Brian Foster (1):
iomap: don't revert iov_iter on partially completed buffered writes

Chancel Liu (1):
ASoC: fsl_sai: Fix 32 slots TDM broken by integer shift UB in xMR write

Chenguang Zhao (1):
netlabel: validate unlabeled address and mask attribute lengths

Chih Kai Hsu (1):
r8152: handle the return value of usb_reset_device()

Christian A. Ehrhardt (1):
io_uring/wait: fix min_timeout behavior

Christian Brauner (1):
pidfd: refuse access to tasks that have started exiting harder

Christian König (1):
drm/amdgpu: restart the CS if some parts of the VM are still invalidated

Chunhai Guo (1):
erofs: add sysfs node to drop internal caches

Clément Léger (1):
io_uring/net: inherit IORING_CQE_F_BUF_MORE across bundle recv retries

Corey Minyard (2):
ipmi:ssif: Remove unnecessary indention
ipmi:ssif: NULL thread on error

Cryolitia PukNgae (1):
Input: atkbd - skip deactivate for HONOR BCC-N's internal keyboard

Cunlong Li (1):
zram: fix use-after-free in zram_bvec_write_partial()

Damien Le Moal (1):
block: fix handling of dead zone write plugs

David Carlier (1):
mm/hugetlb: restore reservation on error in hugetlb folio copy paths

David Thompson (1):
net: lan743x: permit VLAN-tagged packets up to configured MTU

Davide Ornaghi (1):
netfilter: nft_fib: fix stale stack leak via the OIFNAME register

Dawei Feng (1):
octeontx2-af: fix memory leak in rvu_setup_hw_resources()

Deepanshu Kartikey (1):
wifi: mac80211: limit injected antenna index in ieee80211_parse_tx_radiotap

Dmitry Osipenko (1):
drm/virtio: Fix driver removal with disabled KMS

Dongli Zhang (1):
KVM: VMX: Update SVI during runtime APICv activation

Dragos Tatulea (2):
net/mlx5: Fix slab-out-of-bounds in mlx5_query_nic_vport_mac_list net/mlx5e: xsk: Fix DMA and xdp_frame leak on XDP_TX xmit failure

Dudu Lu (1):
Bluetooth: bnep: fix incorrect length parsing in bnep_rx_frame() extension handling

Eric Dumazet (9):
ipv4: restrict IPOPT_SSRR and IPOPT_LSRR options
net_sched: act_pedit: use RCU in tcf_pedit_dump()
ieee802154: 6lowpan: only accept IPv6 packets in lowpan_xmit()
tcp: restrict SO_ATTACH_FILTER to priv users
ip6_vti: fix incorrect tunnel matching in vti6_tnl_lookup() vsock/virtio: fix potential unbounded skb queue
net: introduce EXPORT_IPV6_MOD() and EXPORT_IPV6_MOD_GPL()
tcp: use EXPORT_IPV6_MOD[_GPL]()
tcp: secure_seq: add back ports to TS offset

Fernando Fernandez Mancera (2):
netfilter: xt_NFQUEUE: prefer raw_smp_processor_id
netfilter: synproxy: add mutex to guard hook reference counting

Florian Westphal (3):
netfilter: conntrack_irc: fix possible out-of-bounds read
netfilter: revalidate bridge ports
netfilter: nft_exthdr: fix register tracking for F_PRESENT flag

Fushuai Wang (1):
net/mlx5: Use effective affinity mask for IRQ selection

Gabriele Monaco (1):
tools/rv: Fix cleanup after failed trace setup

Gao Xiang (2):
erofs: tidy up synchronous decompression
erofs: fix use-after-free on sbi->sync_decompress

Geetha sowjanya (1):
octeontx2-pf: Fix NDC sync operation errors

Georgiy Osokin (1):
tee: shm: fix shm leak in register_shm_helper()

Gil Portnoy (2):
ksmbd: fix NULL-deref of opinfo->conn in oplock/lease break notifiers
ksmbd: fix use-after-free of a deferred file_lock on double SMB2_CANCEL

Greg Kroah-Hartman (1):

      Linux 6.12.94

Guangshuo Li (1):
dm cache policy smq: check allocation under invalidate lock

Guillermo Rodríguez (1):
i2c: stm32f7: fix timing computation ignoring i2c-analog-filter

HanQuan (1):
net: add pskb_may_pull() to skb_gro_receive_list()

Hans de Goede (1):
clk: qcom: x1e80100-dispcc: Stop disp_cc_mdss_mdp_clk_src from getting parked

Harry Wentland (6):
drm/amd/display: Reject gpio_bitshift >= 32 in bios_parser_get_gpio_pin_info() drm/amd/display: Bound VBIOS record-chain walk loops drm/amd/display: Clamp HDMI HDCP2 rx_id_list read to buffer size drm/amd/display: Clamp VBIOS HDMI retimer register count to array size drm/amd/display: Fix NULL deref and buffer over-read in SDP debugfs drm/amd/display: Use krealloc_array() in dal_vector_reserve()

Heiko Stuebner (1):
mmc: dw_mmc-rockchip: Add missing private data for very old controllers

HyeongJun An (1):
USB: serial: kl5kusb105: fix bulk-out buffer overflow

Hyunwoo Kim (1):
inet: frags: fix use-after-free caused by the fqdir_pre_exit() flush

Ido Schimmel (2):
ipv6: mcast: Fix use-after-free when processing MLD queries
ipv6: Fix a potential NPD in cleanup_prefix_route()

Inochi Amaoto (2):
mmc: litex_mmc: Use DIV_ROUND_UP for more accurate clock calculation
mmc: litex_mmc: Set mandatory idle clocks before CMD0

Jack Wu (1):
USB: serial: option: add usb-id for Dell Wireless DW5826e-m

Jacob Moroni (3):
RDMA/umem: Add ib_umem_dmabuf_get_pinned_and_lock helper RDMA/umem: Move umem dmabuf revoke logic into helper function RDMA/umem: Add helpers for umem dmabuf revoke lock

Jakub Kicinski (1):
netdev: fix double-free in netdev_nl_bind_rx_doit()

Jamal Hadi Salim (1):
net/sched: act_api: use RCU with deferred freeing for action lifecycle

Jan Kara (2):
writeback: Avoid contention on wb->list_lock when switching inodes
writeback: Fix use after free in inode_switch_wbs_work_fn()

Jann Horn (1):
fuse: reject fuse_notify() pagecache ops on directories

Jason Gunthorpe (2):
RDMA: During rereg_mr ensure that REREG_ACCESS is compatible RDMA/umem: Fix truncation for block sizes >= 4G

Jassi Brar (1):
mailbox: Fix NULL message support in mbox_send_message()

Jens Axboe (1):
io_uring/kbuf: don't truncate end buffer for bundles

Ji'an Zhou (1):
ALSA: PCM: Fix wait queue list corruption in snd_pcm_drain() on linked streams

Jianbo Liu (1):
xfrm: hold device only for the asynchronous decryption

Jiayuan Chen (1):
netfilter: nft_ct: bail out on template ct in get eval

Jisheng Zhang (1):
mmc: sdhci: add signal voltage switch in sdhci_resume_host

Johan Hovold (3):
USB: serial: mct_u232: fix memory corruption with small endpoint
spi: cadence-quadspi: fix unclocked access on unbind driver core: reject devices with unregistered buses

Johannes Berg (1):
wifi: remove zero-length arrays

Joonas Lahtinen (1):
drm/i915/gem: Fix phys BO pread/pwrite with offset

Judith Mendez (1):

      pinctrl: mcp23s08: Initialize mcp->dev and mcp->addr before regmap init

Julian Anastasov (2):
ipvs: clear the svc scheduler ptr early on edit
ipvs: skip ipv6 extension headers for csum checks

Junrui Luo (1):
misc: fastrpc: fix DMA address corruption due to find_vma misuse

Justin Lai (2):
rtase: Avoid sleeping in get_stats64()
rtase: Reset TX subqueue when clearing TX ring

Kamal Dasu (1):
mmc: core: Fix host controller programming for fixed driver type

Karl Mehltretter (2):
ARM: 9474/1: io: avoid KASAN instrumentation of raw halfword I/O
ARM: 9475/1: entry: use byte load for KASAN VMAP stack shadow

Kuan-Wei Chiu (1):
clk: samsung: gs101: Fix missing USI7_USI DIV clock in peric0_clk_regs

Kuniyuki Iwashima (3):
bpf: Free reuseport cBPF prog after RCU grace period.
net: Annotate sk->sk_write_space() for UDP SOCKMAP.
hsr: Remove WARN_ONCE() in hsr_addr_is_self().

Kurt Kanzenbach (1):
ptp: vclock: Switch from RCU to SRCU

Kyle Meyer (1):
bnxt_en: Fix NULL pointer dereference

Kyle Zeng (4):
ALSA: seq: dummy: fix UMP event stack overread
ipv6: sit: reload inner IPv6 header after GSO offloads
net: guard timestamp cmsgs to real error queue skbs
netfilter: x_tables: avoid leaking percpu counter pointers

Lad Prabhakar (1):
mmc: renesas_sdhi: Add OF entry for RZ/G2H SoC

Lee Jones (1):
l2tp: pppol2tp: hold reference to session in pppol2tp_ioctl()

Leon Romanovsky (1):
RDMA: Move DMA block iterator logic into dedicated files

Leorize (1):
drm/amd/display: add missing CSC entries for BT.2020 for DCE IPs

Li RongQing (1):
dma-debug: fix physical address retrieval in debug_dma_sync_sg_for_device

Lorenzo Bianconi (2):
net: ethernet: mtk_eth_soc: Fix use-after-free in metadata dst teardown
net: mvpp2: Add metadata support for xdp mode

Lorenzo Stoakes (1):
mm/hugetlb: avoid false positive lockdep assertion

Luiz Augusto von Dentz (3):
Bluetooth: ISO: Fix not releasing hdev reference on iso_conn_big_sync
Bluetooth: ISO: Fix not using bc_sid as advertisement SID
Bluetooth: MGMT: Fix backward compatibility with userspace

Manivannan Sadhasivam (2):
soc: qcom: ice: Return -ENODEV if the ICE platform device is not found
soc: qcom: ice: Fix race between qcom_ice_probe() and of_qcom_ice_get()

Mark Bloch (1):
devlink: Release nested relation on devlink free

Mark Rutland (5):
arm64: tlb: Allow XZR argument to TLBI ops
arm64: tlb: Optimize ARM64_WORKAROUND_REPEAT_TLBI
arm64: cputype: Add C1-Ultra definitions
arm64: cputype: Add C1-Premium definitions
arm64: errata: Mitigate TLBI errata on various Arm CPUs

Masami Hiramatsu (Google) (1):
tracing/probes: Point the error offset correctly for eprobe argument error

Matthieu Baerts (NGI0) (2):
mptcp: sockopt: check timestamping ret value
mptcp: add-addr: always drop other suboptions

Maxime Chevallier (1):
net: phy: clean the sfp upstream if phy probing fails

Maíra Canal (1):
drm/v3d: Fix vaddr leak when indirect CSD has zeroed workgroups

Michael Bommarito (9):
sctp: fix uninit-value in __sctp_rcv_asconf_lookup()
Bluetooth: L2CAP: reject BR/EDR signaling packets over MTUsig RDMA/srp: bound SRP_RSP sense copy by the received length IB/isert: Reject login PDUs shorter than ISER_HEADERS_LEN
thunderbolt: Reject zero-length property entries in validator
thunderbolt: Bound root directory content to block size
thunderbolt: Clamp XDomain response data copy to allocation size
thunderbolt: Validate XDomain request packet size before type cast
thunderbolt: Limit XDomain response copy to actual frame size

Miguel Ojeda (1):

      rust: x86: support Rust >= 1.98.0 target spec

Mingyu Wang (3):
i2c: dev: prevent integer overflow in I2C_TIMEOUT ioctl
net: qrtr: fix refcount saturation and potential UAF in qrtr_port_remove fs/fcntl: fix SOFTIRQ-unsafe lock order in fasync signaling

Muhammad Bilal (1):
drm/amdkfd: fix NULL dereference in get_queue_ids()

Mukesh Ojha (1):
misc: fastrpc: Fix NULL pointer dereference in rpmsg callback

Naveen Kumar Chaudhary (1):
time: Fix off-by-one in settimeofday() usec validation

Nicolò Coccia (1):
net/smc: fix sleep-inside-lock in __smc_setsockopt() causing local DoS

Nikolay Kuratov (1):
net/mlx5: Reorder completion before putting command entry in cmd_work_handler

Nithin Dabilpuram (1):
octeontx2-af: npc: Fix CPT channel mask in npc_install_flow

Oscar Maes (1):
pcnet32: stop holding device spin lock during napi_complete_done

Pablo Neira Ayuso (1):
netfilter: ctnetlink: ensure safe access to master conntrack

Paolo Abeni (4):
mptcp: fix retransmission loop when csum is enabled
mptcp: close TOCTOU race while computing rcv_wnd
mptcp: allow subflow rcv wnd to shrink
mptcp: fix missing wakeups in edge scenarios

Pengyu Luo (1):

      clk: qcom: dispcc-sc8280xp: Don't park mdp_clk_src at registration time

Petr Machata (1):
Revert "selftest/ptp: update ptp selftest to exercise the gettimex options"

Priya Hosur (1):
drm/amd/pm: smu_v14_0_0: use SoftMin for gfxclk in set_soft_freq_limited_range

Qi Tang (1):
xfrm: hold dev ref until after transport_finish NF_HOOK

Raf Dickson (1):
vsock/vmci: fix sk_ack_backlog leak on failed handshake

Rajat Gupta (1):
net/sched: fix pedit partial COW leading to page cache corruption

Randy Dunlap (1):
RDMA/umem: fix kernel-doc warnings

Richard Fitzgerald (1):
ASoC: wm_adsp: Fix NULL dereference when removing firmware controls

Robert Marko (1):
net: phy: micrel: fix LAN8814 QSGMII soft reset

Rosen Penev (1):
net: ibm: emac: Fix use-after-free during device removal

Rui Qi (1):
ipmi: Fix rcu_read_unlock to srcu_read_unlock in handle_read_event_rsp

Ruoyu Wang (1):
gpio: zynq: fix runtime PM leak on remove

Russell King (Oracle) (4):
ARM: group is_permission_fault() with is_translation_fault()
ARM: allow __do_kernel_fault() to report execution of memory faults
ARM: fix hash_name() fault
ARM: fix branch predictor hardening

Sanghyun Park (1):
xfrm: policy: fix use-after-free on inexact bin in xfrm_policy_bysel_ctx()

Sean Christopherson (2):
KVM: Don't WARN if memory is dirtied without a vCPU when the VM is dying
KVM: SEV: Decouple the need to sync the GHCB SA from the need to free the SA

Sechang Lim (1):

      udp: clear skb->dev before running a sockmap verdict

SeongJae Park (1):
mm/damon/ops-common: call folio_test_lru() after folio_get()

SeungJu Cheon (2):
Bluetooth: RFCOMM: validate skb length in MCC handlers
Bluetooth: ISO: Fix data-race on iso_pi fields in hci_get_route calls

Shanker Donthineni (2):
arm64: cputype: Add NVIDIA Olympus definitions
arm64: errata: Mitigate TLBI errata on NVIDIA Olympus CPU

Stefano Garzarella (2):
vsock/virtio: fix skb overhead accounting to preserve full buf_alloc vsock/virtio: fix skb overhead overflow on 32-bit builds

Steven Chen (2):
ima: kexec: skip IMA segment validation after kexec soft reboot
ima: kexec: move IMA log copy from kexec load to execute

Suman Ghosh (1):
octeontx2-af: Fix initialization of mcam's entry2target_pffunc field

Takashi Iwai (2):
ALSA: timer: Forcibly close timer instances at closing
ALSA: timer: Fix UAF at snd_timer_user_params()

Tangudu Tilak Tirumalesh (1):
drm/xe: Clear pending_disable before signaling suspend fence

Tao Cui (2):
selftests: mptcp: add test for extra_subflows underflow on userspace PM
mptcp: pm: fix extra_subflows underflow on userspace PM subflow creation

Tapio Reijonen (1):
net: fec: fix pinctrl default state restore order on resume

Tejun Heo (1):
sched_ext: Don't warn on NULL cgrp_moving_from in scx_cgroup_move_task()

Til Kaiser (4):
net: mvpp2: sync RX data at the hardware packet offset
net: mvpp2: limit XDP frame size to the RX buffer
net: mvpp2: refill RX buffers before XDP or skb use
net: mvpp2: build skb from XDP-adjusted data on XDP_PASS

Tristan Madani (1):
netfilter: nft_tunnel: fix use-after-free on object destroy

Vladimir Zapolskiy (1):
i2c: qcom-cci: Fix NULL pointer dereference in cci_remove()

Weiming Shi (3):
tap: free page on error paths in tap_get_user_xdp()
net/rds: fix NULL deref in rds_ib_send_cqe_handler() on masked atomic completion
netfilter: nf_conntrack: destroy stale expectfn expectations on unregister

Wentao Liang (2):
drm/xe: fix refcount leak in xe_range_fence_insert()
drm/virtio: fix dma_fence refcount leak on error in virtio_gpu_dma_fence_wait()

Will Deacon (1):
arm64: errata: Mitigate TLBI errata on Microsoft Azure Cobalt 100 CPU

Wupeng Ma (1):
mm/memory-failure: fix hugetlb_lock AA deadlock in get_huge_page_for_hwpoison

Wyatt Feng (2):
xfrm: espintcp: do not reuse an in-progress partial send
sctp: stream: fully roll back denied add-stream state

Xiang Mei (1):
netfilter: nf_log: validate MAC header was set before dumping it

Xin Long (1):
sctp: purge outqueue on stale COOKIE-ECHO handling

Yang Wang (2):
drm/amd/pm: fix smu13 power limit default/cap calculation drm/amd/pm: mark metrics.energy_accumulator is invalid for smu 14.0.2

Yao Sang (1):
net/mlx4: avoid GCC 10 __bad_copy_from() false positive

Yicong Hui (1):
drm/imx: Fix three kernel-doc warnings in dcss-scaler.c

Yilin Zhu (1):
ipc/shm: serialize orphan cleanup with shm_nattch updates

Yiming Qian (1):
netfilter: bridge: make ebt_snat ARP rewrite writable

Yin Tirui (1):
mm/huge_memory: update file PMD counter before folio_put()

Yizhou Zhao (3):
6lowpan: fix off-by-one in multicast context address compression
net: garp: fix unsigned integer underflow in garp_pdu_parse_attr net/802/mrp: fix vector attribute parsing in mrp_pdu_parse_vecattr

Yuho Choi (1):
ARM: socfpga: Fix OF node refcount leak in SMP setup

Yun Zhou (1):
gpio: mvebu: fix NULL pointer dereference in suspend/resume

Yuqi Xu (3):
Bluetooth: hci_sync: reject oversized Broadcast Announcement prepend
wifi: nl80211: reject oversized EMA RNR lists
net: rds: clear i_sends on setup unwind

Zeyu WANG (1):
Input: atkbd - add DMI quirk for Lenovo Yoga Air 14 (83QK)

Zhang Cen (3):
Bluetooth: RFCOMM: hold listener socket in rfcomm_connect_ind()
Bluetooth: MGMT: validate advertising TLV before type checks
Bluetooth: bnep: reject short frames before parsing

Zhao Zhang (1):
sctp: diag: reject stale associations in dump_one path

ZhaoJinming (1):
net: bonding: fix NULL pointer dereference in bond_do_ioctl()

Zhengchuan Liang (1):
netfilter: require Ethernet MAC header before using eth_hdr()

Zhenghang Xiao (1):
misc: fastrpc: fix use-after-free race in fastrpc_map_create

author maintainer
#1 lore raw
Documentation/ABI/testing/sysfs-fs-erofs +20 -5
index 284224d1b56f..d76de22b6ef3 100644
@@ -10,9 +10,24 @@ Description:	Shows all enabled kernel features.
 What:		/sys/fs/erofs/<disk>/sync_decompress
 Date:		November 2021
 Contact:	"Huang Jianan" <[email protected]>
-Description:	Control strategy of sync decompression:
+Description:	Control strategy of synchronous decompression. Synchronous
+		decompression tries to decompress in the reader thread for
+		synchronous reads and small asynchronous reads (<= 12 KiB):
 
-		- 0 (default, auto): enable for readpage, and enable for
-		  readahead on atomic contexts only.
-		- 1 (force on): enable for readpage and readahead.
-		- 2 (force off): disable for all situations.
+		- 0 (auto, default): apply to synchronous reads only, but will
+		                     switch to 1 (force on) if any decompression
+		                     request is detected in atomic contexts;
+		- 1 (force on): apply to synchronous reads and small
+		                asynchronous reads;
+		- 2 (force off): disable synchronous decompression completely.
+
+What:		/sys/fs/erofs/<disk>/drop_caches
+Date:		November 2024
+Contact:	"Guo Chunhai" <[email protected]>
+Description:	Writing to this will drop compression-related caches,
+		currently used to drop in-memory pclusters and cached
+		compressed folios:
+
+		- 1 : invalidate cached compressed folios
+		- 2 : drop in-memory pclusters
+		- 3 : drop in-memory pclusters and cached compressed folios
Documentation/arch/arm64/silicon-errata.rst +48 -0

123 lines not on this page · raw message

Makefile +3 -2
index 692ed9db7c79..3f5933a5c7e7 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 6
 PATCHLEVEL = 12
-SUBLEVEL = 93
+SUBLEVEL = 94
 EXTRAVERSION =
 NAME = Baby Opossum Posse
 
@@ -568,6 +568,7 @@ KBUILD_RUSTFLAGS := $(rust_common_flags) \
 		    -Crelocation-model=static \
 		    -Zfunction-sections=n \
 		    -Wclippy::float_arithmetic
+KBUILD_RUSTFLAGS_OPTION_CHKS :=
 
 KBUILD_AFLAGS_KERNEL :=
 KBUILD_CFLAGS_KERNEL :=
@@ -604,7 +605,7 @@ export KBUILD_USERCFLAGS KBUILD_USERLDFLAGS
 
 export KBUILD_CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS KBUILD_LDFLAGS
 export KBUILD_CFLAGS CFLAGS_KERNEL CFLAGS_MODULE
-export KBUILD_RUSTFLAGS RUSTFLAGS_KERNEL RUSTFLAGS_MODULE
+export KBUILD_RUSTFLAGS RUSTFLAGS_KERNEL RUSTFLAGS_MODULE KBUILD_RUSTFLAGS_OPTION_CHKS
 export KBUILD_AFLAGS AFLAGS_KERNEL AFLAGS_MODULE
 export KBUILD_AFLAGS_MODULE KBUILD_CFLAGS_MODULE KBUILD_RUSTFLAGS_MODULE KBUILD_LDFLAGS_MODULE
 export KBUILD_AFLAGS_KERNEL KBUILD_CFLAGS_KERNEL KBUILD_RUSTFLAGS_KERNEL
arch/arm/include/asm/io.h +13 -2
index 1815748f5d2a..ad369ea025ad 100644
@@ -56,8 +56,19 @@ void __raw_readsl(const volatile void __iomem *addr, void *data, int longlen);
  * the bus. Rather than special-case the machine, just let the compiler
  * generate the access for CPUs prior to ARMv6.
  */
-#define __raw_readw(a)         (__chk_io_ptr(a), *(volatile unsigned short __force *)(a))
-#define __raw_writew(v,a)      ((void)(__chk_io_ptr(a), *(volatile unsigned short __force *)(a) = (v)))
+#define __raw_writew __raw_writew
+static __no_kasan_or_inline void __raw_writew(u16 val, volatile void __iomem *addr)
+{
+	__chk_io_ptr(addr);
+	*(volatile unsigned short __force *)addr = val;
+}
+
+#define __raw_readw __raw_readw
+static __no_kasan_or_inline u16 __raw_readw(const volatile void __iomem *addr)
+{
+	__chk_io_ptr(addr);
+	return *(const volatile unsigned short __force *)addr;
+}
 #else
 /*
  * When running under a hypervisor, we want to avoid I/O accesses with
arch/arm/kernel/entry-armv.S +1 -1
index ef6a657c8d13..a3d050ce9b79 100644
@@ -567,7 +567,7 @@ ENTRY(__switch_to)
 	@ are using KASAN
 	mov_l	r2, KASAN_SHADOW_OFFSET
 	add	r2, r2, ip, lsr #KASAN_SHADOW_SCALE_SHIFT
-	ldr	r2, [r2]
+	ldrb	r2, [r2]
 #endif
 #endif
 
arch/arm/mach-socfpga/platsmp.c +1 -0
index 201191cf68f3..349e6c54518e 100644
@@ -78,6 +78,7 @@ static void __init socfpga_smp_prepare_cpus(unsigned int max_cpus)
 	}
 
 	socfpga_scu_base_addr = of_iomap(np, 0);
+	of_node_put(np);
 	if (!socfpga_scu_base_addr)
 		return;
 	scu_enable(socfpga_scu_base_addr);
arch/arm/mm/alignment.c +5 -1
index 3c6ddb1afdc4..812380f30ae3 100644
@@ -19,10 +19,11 @@
 #include <linux/init.h>
 #include <linux/sched/signal.h>
 #include <linux/uaccess.h>
+#include <linux/unaligned.h>
 
 #include <asm/cp15.h>
 #include <asm/system_info.h>
-#include <linux/unaligned.h>
+#include <asm/system_misc.h>
 #include <asm/opcodes.h>
 
 #include "fault.h"
@@ -809,6 +810,9 @@ do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
 	int thumb2_32b = 0;
 	int fault;
 
+	if (addr >= TASK_SIZE && user_mode(regs))
+		harden_branch_predictor();
+
 	if (interrupts_enabled(regs))
 		local_irq_enable();
 
arch/arm/mm/fault.c +75 -25

157 lines not on this page · raw message

arch/arm64/Kconfig +50 -0

56 lines not on this page · raw message

arch/arm64/Makefile +3 -0
index 88029d38b3c6..1e53db5810ee 100644
@@ -66,6 +66,9 @@ else
 KBUILD_CFLAGS	+= -fasynchronous-unwind-tables
 KBUILD_AFLAGS	+= -fasynchronous-unwind-tables
 KBUILD_RUSTFLAGS += -Cforce-unwind-tables=y -Zuse-sync-unwind=n
+# Work around rustc bug on compilers without
+# https://github.com/rust-lang/rust/pull/156973.
+KBUILD_RUSTFLAGS += $(if $(call rustc-min-version,109800),,-Zllvm_module_flag=uwtable:u32:2:max)
 endif
 
 ifeq ($(CONFIG_STACKPROTECTOR_PER_TASK),y)
arch/arm64/include/asm/cputype.h +6 -0
index c279a0a9b366..62bcd8ff1e63 100644
@@ -97,7 +97,9 @@
 #define ARM_CPU_PART_NEOVERSE_V3	0xD84
 #define ARM_CPU_PART_CORTEX_X925	0xD85
 #define ARM_CPU_PART_CORTEX_A725	0xD87
+#define ARM_CPU_PART_C1_ULTRA		0xD8C
 #define ARM_CPU_PART_NEOVERSE_N3	0xD8E
+#define ARM_CPU_PART_C1_PREMIUM		0xD90
 
 #define APM_CPU_PART_XGENE		0x000
 #define APM_CPU_VAR_POTENZA		0x00
@@ -129,6 +131,7 @@
 
 #define NVIDIA_CPU_PART_DENVER		0x003
 #define NVIDIA_CPU_PART_CARMEL		0x004
+#define NVIDIA_CPU_PART_OLYMPUS		0x010
 
 #define FUJITSU_CPU_PART_A64FX		0x001
 
@@ -185,7 +188,9 @@
 #define MIDR_NEOVERSE_V3 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_V3)
 #define MIDR_CORTEX_X925 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_X925)
 #define MIDR_CORTEX_A725 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A725)
+#define MIDR_C1_ULTRA MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_C1_ULTRA)
 #define MIDR_NEOVERSE_N3 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_N3)
+#define MIDR_C1_PREMIUM MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_C1_PREMIUM)
 #define MIDR_THUNDERX	MIDR_CPU_MODEL(ARM_CPU_IMP_CAVIUM, CAVIUM_CPU_PART_THUNDERX)
 #define MIDR_THUNDERX_81XX MIDR_CPU_MODEL(ARM_CPU_IMP_CAVIUM, CAVIUM_CPU_PART_THUNDERX_81XX)
 #define MIDR_THUNDERX_83XX MIDR_CPU_MODEL(ARM_CPU_IMP_CAVIUM, CAVIUM_CPU_PART_THUNDERX_83XX)
@@ -209,6 +214,7 @@
 #define MIDR_QCOM_KRYO_4XX_SILVER MIDR_CPU_MODEL(ARM_CPU_IMP_QCOM, QCOM_CPU_PART_KRYO_4XX_SILVER)
 #define MIDR_NVIDIA_DENVER MIDR_CPU_MODEL(ARM_CPU_IMP_NVIDIA, NVIDIA_CPU_PART_DENVER)
 #define MIDR_NVIDIA_CARMEL MIDR_CPU_MODEL(ARM_CPU_IMP_NVIDIA, NVIDIA_CPU_PART_CARMEL)
+#define MIDR_NVIDIA_OLYMPUS MIDR_CPU_MODEL(ARM_CPU_IMP_NVIDIA, NVIDIA_CPU_PART_OLYMPUS)
 #define MIDR_FUJITSU_A64FX MIDR_CPU_MODEL(ARM_CPU_IMP_FUJITSU, FUJITSU_CPU_PART_A64FX)
 #define MIDR_HISI_TSV110 MIDR_CPU_MODEL(ARM_CPU_IMP_HISI, HISI_CPU_PART_TSV110)
 #define MIDR_HISI_HIP09 MIDR_CPU_MODEL(ARM_CPU_IMP_HISI, HISI_CPU_PART_HIP09)
arch/arm64/include/asm/tlbflush.h +37 -26

124 lines not on this page · raw message

arch/arm64/kernel/cpu_errata.c +32 -2
index 3f675ae57d09..80e47d3e86af 100644
@@ -225,7 +225,37 @@ static const struct arm64_cpu_capabilities arm64_repeat_tlbi_list[] = {
 		ERRATA_MIDR_RANGE(MIDR_CORTEX_A510, 0, 0, 1, 1),
 	},
 #endif
-	{},
+#ifdef CONFIG_ARM64_ERRATUM_4118414
+	{
+		ERRATA_MIDR_RANGE_LIST(((const struct midr_range[]) {
+			MIDR_ALL_VERSIONS(MIDR_C1_PREMIUM),
+			MIDR_ALL_VERSIONS(MIDR_C1_ULTRA),
+			MIDR_ALL_VERSIONS(MIDR_CORTEX_A76),
+			MIDR_ALL_VERSIONS(MIDR_CORTEX_A76AE),
+			MIDR_ALL_VERSIONS(MIDR_CORTEX_A77),
+			MIDR_ALL_VERSIONS(MIDR_CORTEX_A78),
+			MIDR_ALL_VERSIONS(MIDR_CORTEX_A78AE),
+			MIDR_ALL_VERSIONS(MIDR_CORTEX_A78C),
+			MIDR_ALL_VERSIONS(MIDR_CORTEX_A710),
+			MIDR_ALL_VERSIONS(MIDR_CORTEX_X1),
+			MIDR_ALL_VERSIONS(MIDR_CORTEX_X1C),
+			MIDR_ALL_VERSIONS(MIDR_CORTEX_X2),
+			MIDR_ALL_VERSIONS(MIDR_CORTEX_X3),
+			MIDR_ALL_VERSIONS(MIDR_CORTEX_X4),
+			MIDR_ALL_VERSIONS(MIDR_CORTEX_X925),
+			MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N1),
+			MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N2),
+			MIDR_ALL_VERSIONS(MIDR_NEOVERSE_V1),
+			MIDR_ALL_VERSIONS(MIDR_NEOVERSE_V2),
+			MIDR_ALL_VERSIONS(MIDR_NEOVERSE_V3),
+			MIDR_ALL_VERSIONS(MIDR_NEOVERSE_V3AE),
+			MIDR_ALL_VERSIONS(MIDR_NVIDIA_OLYMPUS),
+			MIDR_ALL_VERSIONS(MIDR_MICROSOFT_AZURE_COBALT_100),
+			{}
+		})),
+	},
+#endif
+	{}
 };
 #endif
 
@@ -553,7 +583,7 @@ const struct arm64_cpu_capabilities arm64_errata[] = {
 #endif
 #ifdef CONFIG_ARM64_WORKAROUND_REPEAT_TLBI
 	{
-		.desc = "Qualcomm erratum 1009, or ARM erratum 1286807, 2441009",
+		.desc = "Broken broadcast TLBI completion",
 		.capability = ARM64_WORKAROUND_REPEAT_TLBI,
 		.type = ARM64_CPUCAP_LOCAL_CPU_ERRATUM,
 		.matches = cpucap_multi_entry_cap_matches,
arch/arm64/kernel/sys_compat.c +1 -1
index 4a609e9b65de..b9d4998c97ef 100644
@@ -37,7 +37,7 @@ __do_compat_cache_op(unsigned long start, unsigned long end)
 			 * We pick the reserved-ASID to minimise the impact.
 			 */
 			__tlbi(aside1is, __TLBI_VADDR(0, 0));
-			dsb(ish);
+			__tlbi_sync_s1ish();
 		}
 
 		ret = caches_clean_inval_user_pou(start, start + chunk);
arch/arm64/kvm/hyp/nvhe/mm.c +1 -1
index 8850b591d775..cd58fbebd073 100644
@@ -261,7 +261,7 @@ static void fixmap_clear_slot(struct hyp_fixmap_slot *slot)
 	 */
 	dsb(ishst);
 	__tlbi_level(vale2is, __TLBI_VADDR(addr, 0), KVM_PGTABLE_LAST_LEVEL);
-	dsb(ish);
+	__tlbi_sync_s1ish_hyp();
 	isb();
 }
 
arch/arm64/kvm/hyp/nvhe/tlb.c +4 -4
index 48da9ca9763f..3dc1ce0d27fe 100644
@@ -169,7 +169,7 @@ void __kvm_tlb_flush_vmid_ipa(struct kvm_s2_mmu *mmu,
 	 */
 	dsb(ish);
 	__tlbi(vmalle1is);
-	dsb(ish);
+	__tlbi_sync_s1ish_hyp();
 	isb();
 
 	exit_vmid_context(&cxt);
@@ -226,7 +226,7 @@ void __kvm_tlb_flush_vmid_range(struct kvm_s2_mmu *mmu,
 
 	dsb(ish);
 	__tlbi(vmalle1is);
-	dsb(ish);
+	__tlbi_sync_s1ish_hyp();
 	isb();
 
 	exit_vmid_context(&cxt);
@@ -240,7 +240,7 @@ void __kvm_tlb_flush_vmid(struct kvm_s2_mmu *mmu)
 	enter_vmid_context(mmu, &cxt, false);
 
 	__tlbi(vmalls12e1is);
-	dsb(ish);
+	__tlbi_sync_s1ish_hyp();
 	isb();
 
 	exit_vmid_context(&cxt);
@@ -266,5 +266,5 @@ void __kvm_flush_vm_context(void)
 	/* Same remark as in enter_vmid_context() */
 	dsb(ish);
 	__tlbi(alle1is);
-	dsb(ish);
+	__tlbi_sync_s1ish_hyp();
 }
arch/arm64/kvm/hyp/pgtable.c +1 -1
index b11bcebac908..deabc21caae3 100644
@@ -497,7 +497,7 @@ static int hyp_unmap_walker(const struct kvm_pgtable_visit_ctx *ctx,
 		*unmapped += granule;
 	}
 
-	dsb(ish);
+	__tlbi_sync_s1ish_hyp();
 	isb();
 	mm_ops->put_page(ctx->ptep);
 
arch/arm64/kvm/hyp/vhe/tlb.c +5 -5
index 3d50a1bd2bdb..0f2aea1b4288 100644
@@ -115,7 +115,7 @@ void __kvm_tlb_flush_vmid_ipa(struct kvm_s2_mmu *mmu,
 	 */
 	dsb(ish);
 	__tlbi(vmalle1is);
-	dsb(ish);
+	__tlbi_sync_s1ish_hyp();
 	isb();
 
 	exit_vmid_context(&cxt);
@@ -176,7 +176,7 @@ void __kvm_tlb_flush_vmid_range(struct kvm_s2_mmu *mmu,
 
 	dsb(ish);
 	__tlbi(vmalle1is);
-	dsb(ish);
+	__tlbi_sync_s1ish_hyp();
 	isb();
 
 	exit_vmid_context(&cxt);
@@ -192,7 +192,7 @@ void __kvm_tlb_flush_vmid(struct kvm_s2_mmu *mmu)
 	enter_vmid_context(mmu, &cxt);
 
 	__tlbi(vmalls12e1is);
-	dsb(ish);
+	__tlbi_sync_s1ish_hyp();
 	isb();
 
 	exit_vmid_context(&cxt);
@@ -217,7 +217,7 @@ void __kvm_flush_vm_context(void)
 {
 	dsb(ishst);
 	__tlbi(alle1is);
-	dsb(ish);
+	__tlbi_sync_s1ish_hyp();
 }
 
 /*
@@ -358,7 +358,7 @@ int __kvm_tlbi_s1e2(struct kvm_s2_mmu *mmu, u64 va, u64 sys_encoding)
 	default:
 		ret = -EINVAL;
 	}
-	dsb(ish);
+	__tlbi_sync_s1ish_hyp();
 	isb();
 
 	if (mmu)
arch/x86/Makefile +4 -0
index 7c921514c6d0..957435617452 100644
@@ -78,6 +78,10 @@ KBUILD_CFLAGS += -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx
 KBUILD_RUSTFLAGS += --target=$(objtree)/scripts/target.json
 KBUILD_RUSTFLAGS += -Ctarget-feature=-sse,-sse2,-sse3,-ssse3,-sse4.1,-sse4.2,-avx,-avx2
 
+# The target.json file is not available when invoking rustc-option, so use the
+# built-in target when checking whether flags are supported instead.
+KBUILD_RUSTFLAGS_OPTION_CHKS += --target=x86_64-unknown-none
+
 #
 # CFLAGS for compiling floating point code inside the kernel.
 #
arch/x86/Makefile.um +8 -0
index 19c13afa474e..9adecd65639f 100644
@@ -14,6 +14,14 @@ endif
 
 KBUILD_RUSTFLAGS += --target=$(objtree)/scripts/target.json
 
+# The target.json file is not available when invoking rustc-option, so use the
+# built-in target when checking whether flags are supported instead.
+ifeq ($(CONFIG_X86_32),y)
+KBUILD_RUSTFLAGS_OPTION_CHKS += --target=i686-unknown-linux-gnu
+else
+KBUILD_RUSTFLAGS_OPTION_CHKS += --target=x86_64-unknown-linux-gnu
+endif
+
 ifeq ($(CONFIG_X86_32),y)
 START := 0x8048000
 
arch/x86/kvm/svm/sev.c +14 -13
index 881e07d08375..115c59c86f44 100644
@@ -3451,20 +3451,17 @@ void sev_es_unmap_ghcb(struct vcpu_svm *svm)
 	if (!svm->sev_es.ghcb)
 		return;
 
-	if (svm->sev_es.ghcb_sa_free) {
-		/*
-		 * The scratch area lives outside the GHCB, so there is a
-		 * buffer that, depending on the operation performed, may
-		 * need to be synced, then freed.
-		 */
-		if (svm->sev_es.ghcb_sa_sync) {
-			kvm_write_guest(svm->vcpu.kvm,
-					svm->sev_es.sw_scratch,
-					svm->sev_es.ghcb_sa,
-					svm->sev_es.ghcb_sa_len);
-			svm->sev_es.ghcb_sa_sync = false;
-		}
+	/*
+	 * If the scratch area lives outside the GHCB, there's a buffer that,
+	 * depending on the operation performed, may need to be synced.
+	 */
+	if (svm->sev_es.ghcb_sa_sync) {
+		kvm_write_guest(svm->vcpu.kvm, svm->sev_es.sw_scratch,
+				svm->sev_es.ghcb_sa, svm->sev_es.ghcb_sa_len);
+		svm->sev_es.ghcb_sa_sync = false;
+	}
 
+	if (svm->sev_es.ghcb_sa_free) {
 		kvfree(svm->sev_es.ghcb_sa);
 		svm->sev_es.ghcb_sa = NULL;
 		svm->sev_es.ghcb_sa_free = false;
@@ -3525,6 +3522,8 @@ static int setup_vmgexit_scratch(struct vcpu_svm *svm, bool sync, u64 min_len)
 		goto e_scratch;
 	}
 
+	WARN_ON_ONCE(svm->sev_es.ghcb_sa_sync || svm->sev_es.ghcb_sa_free);
+
 	if ((scratch_gpa_beg & PAGE_MASK) == control->ghcb_gpa) {
 		/* Scratch area begins within GHCB */
 		ghcb_scratch_beg = control->ghcb_gpa +
@@ -3546,6 +3545,8 @@ static int setup_vmgexit_scratch(struct vcpu_svm *svm, bool sync, u64 min_len)
 		scratch_va = (void *)svm->sev_es.ghcb;
 		scratch_va += (scratch_gpa_beg - control->ghcb_gpa);
 
+		svm->sev_es.ghcb_sa_sync = false;
+		svm->sev_es.ghcb_sa_free = false;
 		svm->sev_es.ghcb_sa_len = ghcb_scratch_end - scratch_gpa_beg;
 	} else {
 		/* GHCB v2 requires the scratch area to be within the GHCB. */
arch/x86/kvm/vmx/vmx.c +0 -9
index b8aa9ef73e7a..d9011af23fb6 100644
@@ -6853,15 +6853,6 @@ void vmx_hwapic_isr_update(struct kvm_vcpu *vcpu, int max_isr)
 	 * VM-Exit, otherwise L1 with run with a stale SVI.
 	 */
 	if (is_guest_mode(vcpu)) {
-		/*
-		 * KVM is supposed to forward intercepted L2 EOIs to L1 if VID
-		 * is enabled in vmcs12; as above, the EOIs affect L2's vAPIC.
-		 * Note, userspace can stuff state while L2 is active; assert
-		 * that VID is disabled if and only if the vCPU is in KVM_RUN
-		 * to avoid false positives if userspace is setting APIC state.
-		 */
-		WARN_ON_ONCE(vcpu->wants_to_run &&
-			     nested_cpu_has_vid(get_vmcs12(vcpu)));
 		to_vmx(vcpu)->nested.update_vmcs01_hwapic_isr = true;
 		return;
 	}
arch/x86/kvm/x86.c +7 -0
index a1ee8bd3ca15..21c10a87eed5 100644
@@ -10629,9 +10629,16 @@ void __kvm_vcpu_update_apicv(struct kvm_vcpu *vcpu)
 	 * pending. At the same time, KVM_REQ_EVENT may not be set as APICv was
 	 * still active when the interrupt got accepted. Make sure
 	 * kvm_check_and_inject_events() is called to check for that.
+	 *
+	 * Update SVI when APICv gets enabled, otherwise SVI won't reflect the
+	 * highest bit in vISR and the next accelerated EOI in the guest won't
+	 * be virtualized correctly (the CPU uses SVI to determine which vISR
+	 * vector to clear).
 	 */
 	if (!apic->apicv_active)
 		kvm_make_request(KVM_REQ_EVENT, vcpu);
+	else
+		kvm_apic_update_hwapic_isr(vcpu);
 
 out:
 	preempt_enable();
block/blk-zoned.c +27 -5
index 696124c43c2a..e3d6e7a18868 100644
@@ -517,6 +517,28 @@ static void disk_mark_zone_wplug_dead(struct blk_zone_wplug *zwplug)
 	}
 }
 
+static inline bool disk_check_zone_wplug_dead(struct blk_zone_wplug *zwplug)
+{
+	if (!(zwplug->flags & BLK_ZONE_WPLUG_DEAD))
+		return false;
+
+	/*
+	 * If a new write is received right after a zone reset completes and
+	 * while the disk_zone_wplugs_worker() thread has not yet released the
+	 * reference on the zone write plug after processing the last write to
+	 * the zone, then the new write BIO will see the zone write plug marked
+	 * as dead. This case is however a false positive and a perfectly valid
+	 * pattern. In such case, restore the zone write plug to a live one.
+	 */
+	if (!zwplug->wp_offset && bio_list_empty(&zwplug->bio_list)) {
+		zwplug->flags &= ~BLK_ZONE_WPLUG_DEAD;
+		refcount_inc(&zwplug->ref);
+		return false;
+	}
+
+	return true;
+}
+
 static void blk_zone_wplug_bio_work(struct work_struct *work);
 
 /*
@@ -1037,12 +1059,12 @@ static bool blk_zone_wplug_handle_write(struct bio *bio, unsigned int nr_segs)
 	}
 
 	/*
-	 * If we got a zone write plug marked as dead, then the user is issuing
-	 * writes to a full zone, or without synchronizing with zone reset or
-	 * zone finish operations. In such case, fail the BIO to signal this
-	 * invalid usage.
+	 * Check if we got a zone write plug marked as dead. If yes, then the
+	 * user is likely issuing writes to a full zone, or without
+	 * synchronizing with zone reset or zone finish operations. In such
+	 * case, fail the BIO to signal this invalid usage.
 	 */
-	if (zwplug->flags & BLK_ZONE_WPLUG_DEAD) {
+	if (disk_check_zone_wplug_dead(zwplug)) {
 		spin_unlock_irqrestore(&zwplug->lock, flags);
 		disk_put_zone_wplug(zwplug);
 		bio_io_error(bio);
drivers/accel/ivpu/ivpu_fw_log.c +5 -0
index 337c906b0210..275baf844b56 100644
@@ -98,6 +98,11 @@ static void fw_log_print_buffer(struct vpu_tracing_buffer_header *log, const cha
 	u32 log_start = only_new_msgs ? READ_ONCE(log->read_index) : 0;
 	u32 log_end = READ_ONCE(log->write_index);
 
+	if (log_start >= data_size)
+		log_start = 0;
+	if (log_end > data_size)
+		log_end = data_size;
+
 	if (log->wrap_count == log->read_wrap_count) {
 		if (log_end <= log_start) {
 			drm_printf(p, "==== %s \"%s\" log empty ====\n", prefix, log->name);
drivers/accel/ivpu/ivpu_ipc.c +1 -1
index f0402dc84758..1baaf26b7da8 100644
@@ -275,7 +275,7 @@ int ivpu_ipc_receive(struct ivpu_device *vdev, struct ivpu_ipc_consumer *cons,
 	if (ipc_buf)
 		memcpy(ipc_buf, rx_msg->ipc_hdr, sizeof(*ipc_buf));
 	if (rx_msg->jsm_msg) {
-		u32 size = min_t(int, rx_msg->ipc_hdr->data_size, sizeof(*jsm_msg));
+		u32 size = min(rx_msg->ipc_hdr->data_size, sizeof(*jsm_msg));
 
 		if (rx_msg->jsm_msg->result != VPU_JSM_STATUS_SUCCESS) {
 			ivpu_dbg(vdev, IPC, "IPC resp result error: %d\n", rx_msg->jsm_msg->result);
drivers/accel/ivpu/ivpu_ms.c +7 -0
index a961002fe25b..690b72c1a473 100644
@@ -282,6 +282,13 @@ int ivpu_ms_get_info_ioctl(struct drm_device *dev, void *data, struct drm_file *
 	if (ret)
 		goto unlock;
 
+	if (info_size > ivpu_bo_size(bo)) {
+		ivpu_warn_ratelimited(vdev, "MS info overflow: %#llx > %#zx\n",
+				      info_size, ivpu_bo_size(bo));
+		ret = -EOVERFLOW;
+		goto unlock;
+	}
+
 	if (args->buffer_size < info_size) {
 		ret = -ENOSPC;
 		goto unlock;
drivers/base/bus.c +9 -2
index 4075865a3a2a..b29757cfd4c1 100644
@@ -503,10 +503,10 @@ static const struct attribute_group driver_override_dev_group = {
  */
 int bus_add_device(struct device *dev)
 {
-	struct subsys_private *sp = bus_to_subsys(dev->bus);
+	struct subsys_private *sp;
 	int error;
 
-	if (!sp) {
+	if (!dev->bus) {
 		/*
 		 * This is a normal operation for many devices that do not
 		 * have a bus assigned to them, just say that all went
@@ -515,6 +515,13 @@ int bus_add_device(struct device *dev)
 		return 0;
 	}
 
+	sp = bus_to_subsys(dev->bus);
+	if (!sp) {
+		pr_err("%s: cannot add device '%s' to unregistered bus '%s'\n",
+		       __func__, dev_name(dev), dev->bus->name);
+		return -EINVAL;
+	}
+
 	/*
 	 * Reference in sp is now incremented and will be dropped when
 	 * the device is removed from the bus
drivers/block/zram/zram_drv.c +1 -1
index cbb613f7968b..cf3c789945b4 100644
@@ -1661,7 +1661,7 @@ static int zram_bvec_write_partial(struct zram *zram, struct bio_vec *bvec,
 	if (!page)
 		return -ENOMEM;
 
-	ret = zram_read_page(zram, page, index, bio);
+	ret = zram_read_page(zram, page, index, NULL);
 	if (!ret) {
 		memcpy_from_bvec(page_address(page) + offset, bvec);
 		ret = zram_write_page(zram, page, index);
drivers/char/ipmi/ipmi_msghandler.c +1 -1
index 188722ec0337..41ae4dac4eeb 100644
@@ -4395,7 +4395,7 @@ static int handle_read_event_rsp(struct ipmi_smi *intf,
 
 		recv_msg = ipmi_alloc_recv_msg(user);
 		if (IS_ERR(recv_msg)) {
-			rcu_read_unlock();
+			srcu_read_unlock(&intf->users_srcu, index);
 			list_for_each_entry_safe(recv_msg, recv_msg2, &msgs,
 						 link) {
 				list_del(&recv_msg->link);
drivers/char/ipmi/ipmi_ssif.c +13 -16
index 9d8872cbc43e..7950f13c1ef7 100644
@@ -1681,6 +1681,7 @@ static int ssif_probe(struct i2c_client *client)
 	int               len = 0;
 	int               i;
 	u8		  slave_addr = 0;
+	unsigned int      thread_num;
 	struct ssif_addr_info *addr_info = NULL;
 
 	mutex_lock(&ssif_infos_mutex);
@@ -1899,22 +1900,18 @@ static int ssif_probe(struct i2c_client *client)
 	ssif_info->handlers.request_events = request_events;
 	ssif_info->handlers.set_need_watch = ssif_set_need_watch;
 
-	{
-		unsigned int thread_num;
-
-		thread_num = ((i2c_adapter_id(ssif_info->client->adapter)
-			       << 8) |
-			      ssif_info->client->addr);
-		init_completion(&ssif_info->wake_thread);
-		ssif_info->thread = kthread_run(ipmi_ssif_thread, ssif_info,
-					       "kssif%4.4x", thread_num);
-		if (IS_ERR(ssif_info->thread)) {
-			rv = PTR_ERR(ssif_info->thread);
-			dev_notice(&ssif_info->client->dev,
-				   "Could not start kernel thread: error %d\n",
-				   rv);
-			goto out;
-		}
+	thread_num = ((i2c_adapter_id(ssif_info->client->adapter) << 8) |
+		      ssif_info->client->addr);
+	init_completion(&ssif_info->wake_thread);
+	ssif_info->thread = kthread_run(ipmi_ssif_thread, ssif_info,
+					"kssif%4.4x", thread_num);
+	if (IS_ERR(ssif_info->thread)) {
+		rv = PTR_ERR(ssif_info->thread);
+		ssif_info->thread = NULL;
+		dev_notice(&ssif_info->client->dev,
+			   "Could not start kernel thread: error %d\n",
+			   rv);
+		goto out;
 	}
 
 	dev_set_drvdata(&ssif_info->client->dev, ssif_info);
drivers/clk/qcom/dispcc-sc8280xp.c +2 -2
index c23cbb983d29..43d26616bd27 100644
@@ -978,7 +978,7 @@ static struct clk_rcg2 disp0_cc_mdss_mdp_clk_src = {
 		.name = "disp0_cc_mdss_mdp_clk_src",
 		.parent_data = disp0_cc_parent_data_5,
 		.num_parents = ARRAY_SIZE(disp0_cc_parent_data_5),
-		.ops = &clk_rcg2_shared_ops,
+		.ops = &clk_rcg2_shared_no_init_park_ops,
 	},
 };
 
@@ -992,7 +992,7 @@ static struct clk_rcg2 disp1_cc_mdss_mdp_clk_src = {
 		.name = "disp1_cc_mdss_mdp_clk_src",
 		.parent_data = disp1_cc_parent_data_5,
 		.num_parents = ARRAY_SIZE(disp1_cc_parent_data_5),
-		.ops = &clk_rcg2_shared_ops,
+		.ops = &clk_rcg2_shared_no_init_park_ops,
 	},
 };
 
drivers/clk/qcom/dispcc-x1e80100.c +1 -1
index 40069eba41f2..5c00a0f84489 100644
@@ -580,7 +580,7 @@ static struct clk_rcg2 disp_cc_mdss_mdp_clk_src = {
 		.parent_data = disp_cc_parent_data_6,
 		.num_parents = ARRAY_SIZE(disp_cc_parent_data_6),
 		.flags = CLK_SET_RATE_PARENT,
-		.ops = &clk_rcg2_shared_ops,
+		.ops = &clk_rcg2_shared_no_init_park_ops,
 	},
 };
 
drivers/clk/samsung/clk-gs101.c +1 -1
index fa628fab28ac..7cc6a1173d44 100644
@@ -3602,7 +3602,7 @@ static const unsigned long peric0_clk_regs[] __initconst = {
 	CLK_CON_DIV_DIV_CLK_PERIC0_USI4_USI,
 	CLK_CON_DIV_DIV_CLK_PERIC0_USI5_USI,
 	CLK_CON_DIV_DIV_CLK_PERIC0_USI6_USI,
-	CLK_CON_DIV_DIV_CLK_PERIC0_USI6_USI,
+	CLK_CON_DIV_DIV_CLK_PERIC0_USI7_USI,
 	CLK_CON_DIV_DIV_CLK_PERIC0_USI8_USI,
 	CLK_CON_BUF_CLKBUF_PERIC0_IP,
 	CLK_CON_GAT_CLK_BLK_PERIC0_UID_PERIC0_CMU_PERIC0_IPCLKPORT_PCLK,
drivers/gpio/gpio-mvebu.c +2 -2
index 8cfd3a89c018..c85ab356bc72 100644
@@ -1002,7 +1002,7 @@ static int mvebu_gpio_suspend(struct platform_device *pdev, pm_message_t state)
 		BUG();
 	}
 
-	if (IS_REACHABLE(CONFIG_PWM))
+	if (IS_REACHABLE(CONFIG_PWM) && mvchip->mvpwm)
 		mvebu_pwm_suspend(mvchip);
 
 	return 0;
@@ -1054,7 +1054,7 @@ static int mvebu_gpio_resume(struct platform_device *pdev)
 		BUG();
 	}
 
-	if (IS_REACHABLE(CONFIG_PWM))
+	if (IS_REACHABLE(CONFIG_PWM) && mvchip->mvpwm)
 		mvebu_pwm_resume(mvchip);
 
 	return 0;
drivers/gpio/gpio-zynq.c +1 -0
index cc53e6940ad7..50fa4938161d 100644
@@ -1015,6 +1015,7 @@ static void zynq_gpio_remove(struct platform_device *pdev)
 	gpiochip_remove(&gpio->chip);
 	device_set_wakeup_capable(&pdev->dev, 0);
 	pm_runtime_disable(&pdev->dev);
+	pm_runtime_put_noidle(&pdev->dev);
 }
 
 static struct platform_driver zynq_gpio_driver = {
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +3 -1
index 844e49d1499e..e018a807e4e3 100644
@@ -1278,6 +1278,7 @@ static int amdgpu_cs_submit(struct amdgpu_cs_parser *p,
 {
 	struct amdgpu_fpriv *fpriv = p->filp->driver_priv;
 	struct amdgpu_job *leader = p->gang_leader;
+	struct amdgpu_vm *vm = &fpriv->vm;
 	struct amdgpu_bo_list_entry *e;
 	struct drm_gem_object *gobj;
 	unsigned long index;
@@ -1323,7 +1324,8 @@ static int amdgpu_cs_submit(struct amdgpu_cs_parser *p,
 							e->range);
 		e->range = NULL;
 	}
-	if (r) {
+
+	if (r || !list_empty(&vm->invalidated)) {
 		r = -EAGAIN;
 		mutex_unlock(&p->adev->notifier_lock);
 		return r;
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c +1 -1
index bd443133734e..e19f088c7dcf 100644
@@ -3195,7 +3195,7 @@ static void copy_context_work_handler (struct work_struct *work)
 static uint32_t *get_queue_ids(uint32_t num_queues, uint32_t *usr_queue_id_array)
 {
 	if (!usr_queue_id_array)
-		return NULL;
+		return num_queues ? ERR_PTR(-EINVAL) : NULL;
 
 	if (num_queues > KFD_MAX_NUM_OF_QUEUES_PER_PROCESS)
 		return ERR_PTR(-EINVAL);
drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v11.c +41 -8

71 lines not on this page · raw message

drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c +5 -0
index 249fa03dcedd..23d429cf22c5 100644
@@ -1314,8 +1314,13 @@ static ssize_t dp_sdp_message_debugfs_write(struct file *f, const char __user *b
 	if (size == 0)
 		return 0;
 
+	if (!connector->base.state || !connector->base.state->crtc)
+		return -ENODEV;
+
 	acrtc_state = to_dm_crtc_state(connector->base.state->crtc->state);
 
+	write_size = min_t(size_t, size, sizeof(data));
+
 	r = copy_from_user(data, buf, write_size);
 
 	write_size -= r;
drivers/gpu/drm/amd/display/dc/basics/vector.c +2 -2
index 6d2924114a3e..3d18bccee04a 100644
@@ -288,8 +288,8 @@ bool dal_vector_reserve(struct vector *vector, uint32_t capacity)
 	if (capacity <= vector->capacity)
 		return true;
 
-	new_container = krealloc(vector->container,
-				 capacity * vector->struct_size, GFP_KERNEL);
+	new_container = krealloc_array(vector->container,
+				       capacity, vector->struct_size, GFP_KERNEL);
 
 	if (new_container) {
 		vector->container = new_container;
drivers/gpu/drm/amd/display/dc/bios/bios_parser.c +10 -5
index fad0129bf8b1..a414f861c16e 100644
@@ -220,6 +220,7 @@ static enum bp_result bios_parser_get_i2c_info(struct dc_bios *dcb,
 	ATOM_COMMON_RECORD_HEADER *header;
 	ATOM_I2C_RECORD *record;
 	struct bios_parser *bp = BP_FROM_DCB(dcb);
+	int i;
 
 	if (!info)
 		return BP_RESULT_BADINPUT;
@@ -232,7 +233,7 @@ static enum bp_result bios_parser_get_i2c_info(struct dc_bios *dcb,
 	offset = le16_to_cpu(object->usRecordOffset)
 			+ bp->object_info_tbl_offset;
 
-	for (;;) {
+	for (i = 0; i < BIOS_MAX_NUM_RECORD; i++) {
 		header = GET_IMAGE(ATOM_COMMON_RECORD_HEADER, offset);
 
 		if (!header)
@@ -291,11 +292,12 @@ static enum bp_result bios_parser_get_device_tag_record(
 {
 	ATOM_COMMON_RECORD_HEADER *header;
 	uint32_t offset;
+	int i;
 
 	offset = le16_to_cpu(object->usRecordOffset)
 			+ bp->object_info_tbl_offset;
 
-	for (;;) {
+	for (i = 0; i < BIOS_MAX_NUM_RECORD; i++) {
 		header = GET_IMAGE(ATOM_COMMON_RECORD_HEADER, offset);
 
 		if (!header)
@@ -868,6 +870,7 @@ static ATOM_HPD_INT_RECORD *get_hpd_record(struct bios_parser *bp,
 {
 	ATOM_COMMON_RECORD_HEADER *header;
 	uint32_t offset;
+	int i;
 
 	if (!object) {
 		BREAK_TO_DEBUGGER(); /* Invalid object */
@@ -877,7 +880,7 @@ static ATOM_HPD_INT_RECORD *get_hpd_record(struct bios_parser *bp,
 	offset = le16_to_cpu(object->usRecordOffset)
 			+ bp->object_info_tbl_offset;
 
-	for (;;) {
+	for (i = 0; i < BIOS_MAX_NUM_RECORD; i++) {
 		header = GET_IMAGE(ATOM_COMMON_RECORD_HEADER, offset);
 
 		if (!header)
@@ -1572,6 +1575,7 @@ static ATOM_ENCODER_CAP_RECORD_V2 *get_encoder_cap_record(
 {
 	ATOM_COMMON_RECORD_HEADER *header;
 	uint32_t offset;
+	int i;
 
 	if (!object) {
 		BREAK_TO_DEBUGGER(); /* Invalid object */
@@ -1581,7 +1585,7 @@ static ATOM_ENCODER_CAP_RECORD_V2 *get_encoder_cap_record(
 	offset = le16_to_cpu(object->usRecordOffset)
 					+ bp->object_info_tbl_offset;
 
-	for (;;) {
+	for (i = 0; i < BIOS_MAX_NUM_RECORD; i++) {
 		header = GET_IMAGE(ATOM_COMMON_RECORD_HEADER, offset);
 
 		if (!header)
@@ -2671,6 +2675,7 @@ static enum bp_result update_slot_layout_info(struct dc_bios *dcb,
 					      unsigned int record_offset)
 {
 	unsigned int j;
+	unsigned int n;
 	struct bios_parser *bp;
 	ATOM_BRACKET_LAYOUT_RECORD *record;
 	ATOM_COMMON_RECORD_HEADER *record_header;
@@ -2680,7 +2685,7 @@ static enum bp_result update_slot_layout_info(struct dc_bios *dcb,
 	record = NULL;
 	record_header = NULL;
 
-	for (;;) {
+	for (n = 0; n < BIOS_MAX_NUM_RECORD; n++) {
 
 		record_header = GET_IMAGE(ATOM_COMMON_RECORD_HEADER, record_offset);
 		if (record_header == NULL) {
drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c +54 -27

291 lines not on this page · raw message

drivers/gpu/drm/amd/display/dc/bios/bios_parser_helper.h +5 -0
index e1b4a40a353d..da1e30de3c59 100644
@@ -38,4 +38,9 @@ uint32_t bios_get_vga_enabled_displays(struct dc_bios *bios);
 
 #define GET_IMAGE(type, offset) ((type *) bios_get_image(&bp->base, offset, sizeof(type)))
 
+/* Upper bound on the number of records in a VBIOS record chain. Prevents
+ * unbounded looping if the VBIOS image is malformed and lacks a terminator.
+ */
+#define BIOS_MAX_NUM_RECORD 256
+
 #endif
drivers/gpu/drm/amd/display/dc/dce/dce_transform.c +9 -1
index 1ab5ae9b5ea5..23b35393bf42 100644
@@ -110,7 +110,15 @@ static const struct out_csc_color_matrix global_color_matrix[] = {
 { COLOR_SPACE_YCBCR601_LIMITED, { 0xE00, 0xF447, 0xFDB9, 0x1000, 0x991,
 	0x12C9, 0x3A6, 0x200, 0xFB47, 0xF6B9, 0xE00, 0x1000} },
 { COLOR_SPACE_YCBCR709_LIMITED, { 0xE00, 0xF349, 0xFEB7, 0x1000, 0x6CE, 0x16E3,
-	0x24F, 0x200, 0xFCCB, 0xF535, 0xE00, 0x1000} }
+	0x24F, 0x200, 0xFCCB, 0xF535, 0xE00, 0x1000} },
+{ COLOR_SPACE_2020_RGB_FULLRANGE,
+	{ 0x2000, 0, 0, 0, 0, 0x2000, 0, 0, 0, 0, 0x2000, 0} },
+{ COLOR_SPACE_2020_RGB_LIMITEDRANGE,
+	{ 0x1B67, 0, 0, 0x201, 0, 0x1B67, 0, 0x201, 0, 0, 0x1B67, 0x201} },
+{ COLOR_SPACE_2020_YCBCR_LIMITED, { 0x1000, 0xF149, 0xFEB7, 0x1004, 0x0868,
+	0x15B2, 0x01E6, 0x201, 0xFB88, 0xF478, 0x1000, 0x1004} },
+{ COLOR_SPACE_2020_YCBCR_FULL, { 0x1000, 0xF149, 0xFEB7, 0x1004, 0x0868, 0x15B2,
+	0x01E6, 0x201, 0xFB88, 0xF478, 0x1000, 0x1004} }
 };
 
 static bool setup_scaling_configuration(
drivers/gpu/drm/amd/display/dc/dce110/dce110_opp_csc_v.c +9 -1
index e096d2b95ef9..f7b2be02333c 100644
@@ -88,7 +88,15 @@ static const struct out_csc_color_matrix global_color_matrix[] = {
 { COLOR_SPACE_YCBCR601_LIMITED, { 0xE00, 0xF447, 0xFDB9, 0x1000, 0x991,
 	0x12C9, 0x3A6, 0x200, 0xFB47, 0xF6B9, 0xE00, 0x1000} },
 { COLOR_SPACE_YCBCR709_LIMITED, { 0xE00, 0xF349, 0xFEB7, 0x1000, 0x6CE, 0x16E3,
-	0x24F, 0x200, 0xFCCB, 0xF535, 0xE00, 0x1000} }
+	0x24F, 0x200, 0xFCCB, 0xF535, 0xE00, 0x1000} },
+{ COLOR_SPACE_2020_RGB_FULLRANGE,
+	{ 0x2000, 0, 0, 0, 0, 0x2000, 0, 0, 0, 0, 0x2000, 0} },
+{ COLOR_SPACE_2020_RGB_LIMITEDRANGE,
+	{ 0x1B67, 0, 0, 0x201, 0, 0x1B67, 0, 0x201, 0, 0, 0x1B67, 0x201} },
+{ COLOR_SPACE_2020_YCBCR_LIMITED, { 0x1000, 0xF149, 0xFEB7, 0x1004, 0x0868,
+	0x15B2, 0x01E6, 0x201, 0xFB88, 0xF478, 0x1000, 0x1004} },
+{ COLOR_SPACE_2020_YCBCR_FULL, { 0x1000, 0xF149, 0xFEB7, 0x1004, 0x0868, 0x15B2,
+	0x01E6, 0x201, 0xFB88, 0xF478, 0x1000, 0x1004} }
 };
 
 enum csc_color_mode {
drivers/gpu/drm/amd/display/modules/hdcp/hdcp_ddc.c +2 -1
index 6e064e6ae949..bf1be5f91cd9 100644
@@ -529,7 +529,8 @@ enum mod_hdcp_status mod_hdcp_read_rx_id_list(struct mod_hdcp *hdcp)
 	} else {
 		status = read(hdcp, MOD_HDCP_MESSAGE_ID_READ_REPEATER_AUTH_SEND_RECEIVERID_LIST,
 				hdcp->auth.msg.hdcp2.rx_id_list,
-				hdcp->auth.msg.hdcp2.rx_id_list_size);
+				MIN(hdcp->auth.msg.hdcp2.rx_id_list_size,
+				    sizeof(hdcp->auth.msg.hdcp2.rx_id_list)));
 	}
 	return status;
 }
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c +17 -15
index 58d712525e00..bef3bd11fde0 100644
@@ -2383,28 +2383,30 @@ static int smu_v13_0_0_enable_mgpu_fan_boost(struct smu_context *smu)
 }
 
 static int smu_v13_0_0_get_power_limit(struct smu_context *smu,
-						uint32_t *current_power_limit,
-						uint32_t *default_power_limit,
-						uint32_t *max_power_limit,
-						uint32_t *min_power_limit)
+				       uint32_t *current_power_limit,
+				       uint32_t *default_power_limit,
+				       uint32_t *max_power_limit,
+				       uint32_t *min_power_limit)
 {
 	struct smu_table_context *table_context = &smu->smu_table;
 	struct smu_13_0_0_powerplay_table *powerplay_table =
 		(struct smu_13_0_0_powerplay_table *)table_context->power_play_table;
 	PPTable_t *pptable = table_context->driver_pptable;
 	SkuTable_t *skutable = &pptable->SkuTable;
-	uint32_t power_limit, od_percent_upper = 0, od_percent_lower = 0;
-	uint32_t msg_limit = skutable->MsgLimits.Power[PPT_THROTTLER_PPT0][POWER_SOURCE_AC];
-
-	if (smu_v13_0_get_current_power_limit(smu, &power_limit))
-		power_limit = smu->adev->pm.ac_power ?
+	uint32_t pp_limit = smu->adev->pm.ac_power ?
 			      skutable->SocketPowerLimitAc[PPT_THROTTLER_PPT0] :
 			      skutable->SocketPowerLimitDc[PPT_THROTTLER_PPT0];
+	uint32_t power_limit = 0, od_percent_upper = 0, od_percent_lower = 0;
+	int ret;
+
+	if (current_power_limit) {
+		ret = smu_v13_0_get_current_power_limit(smu, &power_limit);
+		if (ret)
+			*current_power_limit = pp_limit;
+	}
 
-	if (current_power_limit)
-		*current_power_limit = power_limit;
 	if (default_power_limit)
-		*default_power_limit = power_limit;
+		*default_power_limit = pp_limit;
 
 	if (powerplay_table) {
 		if (smu->od_enabled &&
@@ -2418,15 +2420,15 @@ static int smu_v13_0_0_get_power_limit(struct smu_context *smu,
 	}
 
 	dev_dbg(smu->adev->dev, "od percent upper:%d, od percent lower:%d (default power: %d)\n",
-					od_percent_upper, od_percent_lower, power_limit);
+		od_percent_upper, od_percent_lower, pp_limit);
 
 	if (max_power_limit) {
-		*max_power_limit = msg_limit * (100 + od_percent_upper);
+		*max_power_limit = pp_limit * (100 + od_percent_upper);
 		*max_power_limit /= 100;
 	}
 
 	if (min_power_limit) {
-		*min_power_limit = power_limit * (100 - od_percent_lower);
+		*min_power_limit = pp_limit * (100 - od_percent_lower);
 		*min_power_limit /= 100;
 	}
 
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c +18 -14
index ba4ab66cf151..8caf44829290 100644
@@ -2344,28 +2344,32 @@ static int smu_v13_0_7_enable_mgpu_fan_boost(struct smu_context *smu)
 }
 
 static int smu_v13_0_7_get_power_limit(struct smu_context *smu,
-						uint32_t *current_power_limit,
-						uint32_t *default_power_limit,
-						uint32_t *max_power_limit,
-						uint32_t *min_power_limit)
+				       uint32_t *current_power_limit,
+				       uint32_t *default_power_limit,
+				       uint32_t *max_power_limit,
+				       uint32_t *min_power_limit)
 {
 	struct smu_table_context *table_context = &smu->smu_table;
 	struct smu_13_0_7_powerplay_table *powerplay_table =
 		(struct smu_13_0_7_powerplay_table *)table_context->power_play_table;
 	PPTable_t *pptable = table_context->driver_pptable;
 	SkuTable_t *skutable = &pptable->SkuTable;
-	uint32_t power_limit, od_percent_upper = 0, od_percent_lower = 0;
-	uint32_t msg_limit = skutable->MsgLimits.Power[PPT_THROTTLER_PPT0][POWER_SOURCE_AC];
-
-	if (smu_v13_0_get_current_power_limit(smu, &power_limit))
-		power_limit = smu->adev->pm.ac_power ?
+	uint32_t pp_limit = smu->adev->pm.ac_power ?
 			      skutable->SocketPowerLimitAc[PPT_THROTTLER_PPT0] :
 			      skutable->SocketPowerLimitDc[PPT_THROTTLER_PPT0];
+	uint32_t power_limit = 0, od_percent_upper = 0, od_percent_lower = 0;
+	int ret;
+
+	if (current_power_limit) {
+		ret = smu_v13_0_get_current_power_limit(smu, &power_limit);
+		if (ret)
+			power_limit = pp_limit;
 
-	if (current_power_limit)
 		*current_power_limit = power_limit;
+	}
+
 	if (default_power_limit)
-		*default_power_limit = power_limit;
+		*default_power_limit = pp_limit;
 
 	if (powerplay_table) {
 		if (smu->od_enabled &&
@@ -2379,15 +2383,15 @@ static int smu_v13_0_7_get_power_limit(struct smu_context *smu,
 	}
 
 	dev_dbg(smu->adev->dev, "od percent upper:%d, od percent lower:%d (default power: %d)\n",
-					od_percent_upper, od_percent_lower, power_limit);
+		od_percent_upper, od_percent_lower, pp_limit);
 
 	if (max_power_limit) {
-		*max_power_limit = msg_limit * (100 + od_percent_upper);
+		*max_power_limit = pp_limit * (100 + od_percent_upper);
 		*max_power_limit /= 100;
 	}
 
 	if (min_power_limit) {
-		*min_power_limit = power_limit * (100 - od_percent_lower);
+		*min_power_limit = pp_limit * (100 - od_percent_lower);
 		*min_power_limit /= 100;
 	}
 
drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_0_ppt.c +2 -1
index 84f9b007b59f..3fdca8a5816b 100644
@@ -1219,7 +1219,8 @@ static int smu_v14_0_0_set_soft_freq_limited_range(struct smu_context *smu,
 	switch (clk_type) {
 	case SMU_GFXCLK:
 	case SMU_SCLK:
-		msg_set_min = SMU_MSG_SetHardMinGfxClk;
+		/* SoftMin lets PMFW throttle gfxclk; HardMin would override SoftMax. */
+		msg_set_min = SMU_MSG_SetSoftMinGfxclk;
 		msg_set_max = SMU_MSG_SetSoftMaxGfxClk;
 		break;
 	case SMU_FCLK:
drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_2_ppt.c +0 -1
index 96ddae139cce..29dd41fd8539 100644
@@ -2208,7 +2208,6 @@ static ssize_t smu_v14_0_2_get_gpu_metrics(struct smu_context *smu,
 					       metrics->Vcn1ActivityPercentage);
 
 	gpu_metrics->average_socket_power = metrics->AverageSocketPower;
-	gpu_metrics->energy_accumulator = metrics->EnergyAccumulator;
 
 	if (metrics->AverageGfxActivity <= SMU_14_0_2_BUSY_THRESHOLD)
 		gpu_metrics->average_gfxclk_frequency = metrics->AverageGfxclkFrequencyPostDs;
drivers/gpu/drm/i915/gem/i915_gem_phys.c +15 -4
index ef85c6dc9fd5..8d07b802f73f 100644
@@ -18,6 +18,17 @@
 #include "i915_gem_tiling.h"
 #include "i915_scatterlist.h"
 
+/* Abuse scatterlist to store pointer instead of struct page. */
+static inline void __set_phys_vaddr(struct scatterlist *sg, void *vaddr)
+{
+	sg_assign_page(sg, (struct page *)vaddr);
+}
+
+static inline void *__get_phys_vaddr(struct scatterlist *sg)
+{
+	return (void *)sg_page(sg);
+}
+
 static int i915_gem_object_get_pages_phys(struct drm_i915_gem_object *obj)
 {
 	struct address_space *mapping = obj->base.filp->f_mapping;
@@ -58,7 +69,7 @@ static int i915_gem_object_get_pages_phys(struct drm_i915_gem_object *obj)
 	sg->offset = 0;
 	sg->length = obj->base.size;
 
-	sg_assign_page(sg, (struct page *)vaddr);
+	__set_phys_vaddr(sg, vaddr);
 	sg_dma_address(sg) = dma;
 	sg_dma_len(sg) = obj->base.size;
 
@@ -99,7 +110,7 @@ i915_gem_object_put_pages_phys(struct drm_i915_gem_object *obj,
 			       struct sg_table *pages)
 {
 	dma_addr_t dma = sg_dma_address(pages->sgl);
-	void *vaddr = sg_page(pages->sgl);
+	void *vaddr = __get_phys_vaddr(pages->sgl);
 
 	__i915_gem_object_release_shmem(obj, pages, false);
 
@@ -139,7 +150,7 @@ i915_gem_object_put_pages_phys(struct drm_i915_gem_object *obj,
 int i915_gem_object_pwrite_phys(struct drm_i915_gem_object *obj,
 				const struct drm_i915_gem_pwrite *args)
 {
-	void *vaddr = sg_page(obj->mm.pages->sgl) + args->offset;
+	void *vaddr = __get_phys_vaddr(obj->mm.pages->sgl) + args->offset;
 	char __user *user_data = u64_to_user_ptr(args->data_ptr);
 	struct drm_i915_private *i915 = to_i915(obj->base.dev);
 	int err;
@@ -170,7 +181,7 @@ int i915_gem_object_pwrite_phys(struct drm_i915_gem_object *obj,
 int i915_gem_object_pread_phys(struct drm_i915_gem_object *obj,
 			       const struct drm_i915_gem_pread *args)
 {
-	void *vaddr = sg_page(obj->mm.pages->sgl) + args->offset;
+	void *vaddr = __get_phys_vaddr(obj->mm.pages->sgl) + args->offset;
 	char __user *user_data = u64_to_user_ptr(args->data_ptr);
 	int err;
 
drivers/gpu/drm/imx/dcss/dcss-scaler.c +3 -0
index 825728c356ff..eb81a4a57905 100644
@@ -166,6 +166,7 @@ static int exp_approx_q(int x)
  * dcss_scaler_gaussian_filter() - Generate gaussian prototype filter.
  * @fc_q: fixed-point cutoff frequency normalized to range [0, 1]
  * @use_5_taps: indicates whether to use 5 taps or 7 taps
+ * @phase0_identity: whether to override phase 0 coefficients with identity filter
  * @coef: output filter coefficients
  */
 static void dcss_scaler_gaussian_filter(int fc_q, bool use_5_taps,
@@ -262,7 +263,9 @@ static void dcss_scaler_nearest_neighbor_filter(bool use_5_taps,
  * @src_length: length of input
  * @dst_length: length of output
  * @use_5_taps: 0 for 7 taps per phase, 1 for 5 taps
+ * @phase0_identity: whether to override phase 0 coefficients with identity filter
  * @coef: output coefficients
+ * @nn_interpolation: whether to use nearest neighbor instead of gaussian filter
  */
 static void dcss_scaler_filter_design(int src_length, int dst_length,
 				      bool use_5_taps, bool phase0_identity,
drivers/gpu/drm/v3d/v3d_sched.c +2 -1
index 90eef062766c..8e3c8ffc2a42 100644
@@ -409,7 +409,7 @@ v3d_rewrite_csd_job_wg_counts_from_indirect(struct v3d_cpu_job *job)
 	wg_counts = (uint32_t *)(bo->vaddr + indirect_csd->offset);
 
 	if (wg_counts[0] == 0 || wg_counts[1] == 0 || wg_counts[2] == 0)
-		return;
+		goto unmap_bo;
 
 	args->cfg[0] = wg_counts[0] << V3D_CSD_CFG012_WG_COUNT_SHIFT;
 	args->cfg[1] = wg_counts[1] << V3D_CSD_CFG012_WG_COUNT_SHIFT;
@@ -434,6 +434,7 @@ v3d_rewrite_csd_job_wg_counts_from_indirect(struct v3d_cpu_job *job)
 		}
 	}
 
+unmap_bo:
 	v3d_put_bo_vaddr(indirect);
 	v3d_put_bo_vaddr(bo);
 }
drivers/gpu/drm/vc4/vc4_validate_shaders.c +7 -6
index afb1a4d82684..792e2d90aecf 100644
@@ -288,15 +288,16 @@ static bool require_uniform_address_uniform(struct vc4_validated_shader_info *va
 {
 	uint32_t o = validated_shader->num_uniform_addr_offsets;
 	uint32_t num_uniforms = validated_shader->uniforms_size / 4;
+	u32 *offsets;
 
-	validated_shader->uniform_addr_offsets =
-		krealloc(validated_shader->uniform_addr_offsets,
-			 (o + 1) *
-			 sizeof(*validated_shader->uniform_addr_offsets),
-			 GFP_KERNEL);
-	if (!validated_shader->uniform_addr_offsets)
+	offsets = krealloc_array(validated_shader->uniform_addr_offsets,
+				 o + 1,
+				 sizeof(*validated_shader->uniform_addr_offsets),
+				 GFP_KERNEL);
+	if (!offsets)
 		return false;
 
+	validated_shader->uniform_addr_offsets = offsets;
 	validated_shader->uniform_addr_offsets[o] = num_uniforms;
 	validated_shader->num_uniform_addr_offsets++;
 
drivers/gpu/drm/virtio/virtgpu_drv.c +4 -1
index e5a2665e50ea..44d99e89bb9b 100644
@@ -118,7 +118,10 @@ static void virtio_gpu_remove(struct virtio_device *vdev)
 	struct drm_device *dev = vdev->priv;
 
 	drm_dev_unplug(dev);
-	drm_atomic_helper_shutdown(dev);
+
+	if (drm_core_check_feature(dev, DRIVER_ATOMIC))
+		drm_atomic_helper_shutdown(dev);
+
 	virtio_gpu_deinit(dev);
 	drm_dev_put(dev);
 }
drivers/gpu/drm/virtio/virtgpu_submit.c +3 -1
index 7d34cf83f5f2..409ecdb0d680 100644
@@ -65,8 +65,10 @@ static int virtio_gpu_dma_fence_wait(struct virtio_gpu_submit *submit,
 
 	dma_fence_unwrap_for_each(f, &itr, fence) {
 		err = virtio_gpu_do_fence_wait(submit, f);
-		if (err)
+		if (err) {
+			dma_fence_put(itr.chain);
 			return err;
+		}
 	}
 
 	return 0;
drivers/gpu/drm/xe/xe_guc_submit.c +1 -1
index d0ef3a6a68d2..51bd4a0f2a18 100644
@@ -1907,8 +1907,8 @@ static void handle_sched_done(struct xe_guc *guc, struct xe_exec_queue *q,
 		xe_gt_assert(guc_to_gt(guc), exec_queue_pending_disable(q));
 
 		if (q->guc->suspend_pending) {
-			suspend_fence_signal(q);
 			clear_exec_queue_pending_disable(q);
+			suspend_fence_signal(q);
 		} else {
 			if (exec_queue_banned(q) || check_timeout) {
 				smp_wmb();
drivers/gpu/drm/xe/xe_range_fence.c +2 -0
index 372378e89e98..3d8fa194a7b0 100644
@@ -77,6 +77,8 @@ int xe_range_fence_insert(struct xe_range_fence_tree *tree,
 	} else if (err == 0) {
 		xe_range_fence_tree_insert(rfence, &tree->root);
 		return 0;
+	} else {
+		dma_fence_put(fence);
 	}
 
 free:
drivers/i2c/busses/i2c-qcom-cci.c +1 -1
index 414882c57d7f..85de659bb362 100644
@@ -683,8 +683,8 @@ static void cci_remove(struct platform_device *pdev)
 		if (cci->master[i].cci) {
 			i2c_del_adapter(&cci->master[i].adap);
 			of_node_put(cci->master[i].adap.dev.of_node);
+			cci_halt(cci, i);
 		}
-		cci_halt(cci, i);
 	}
 
 	disable_irq(cci->irq);
drivers/i2c/busses/i2c-stm32f7.c +3 -3
index a4587f281216..7ea40ec88bda 100644
@@ -693,6 +693,9 @@ static int stm32f7_i2c_setup_timing(struct stm32f7_i2c_dev *i2c_dev,
 	if (!of_property_read_bool(i2c_dev->dev->of_node, "i2c-digital-filter"))
 		i2c_dev->dnf_dt = STM32F7_I2C_DNF_DEFAULT;
 
+	i2c_dev->analog_filter = of_property_read_bool(i2c_dev->dev->of_node,
+						       "i2c-analog-filter");
+
 	do {
 		ret = stm32f7_i2c_compute_timing(i2c_dev, setup,
 						 &i2c_dev->timing);
@@ -714,9 +717,6 @@ static int stm32f7_i2c_setup_timing(struct stm32f7_i2c_dev *i2c_dev,
 		return ret;
 	}
 
-	i2c_dev->analog_filter = of_property_read_bool(i2c_dev->dev->of_node,
-						       "i2c-analog-filter");
-
 	dev_dbg(i2c_dev->dev, "I2C Speed(%i), Clk Source(%i)\n",
 		setup->speed_freq, setup->clock_src);
 	dev_dbg(i2c_dev->dev, "I2C Rise(%i) and Fall(%i) Time\n",
drivers/i2c/busses/i2c-tegra.c +30 -23

83 lines not on this page · raw message

drivers/i2c/i2c-dev.c +5 -4
index e9577f920286..c8715df8b08b 100644
@@ -487,12 +487,13 @@ static long i2cdev_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
 		client->adapter->retries = arg;
 		break;
 	case I2C_TIMEOUT:
-		if (arg > INT_MAX)
+		/*
+		 * For historical reasons, user-space sets the timeout value in
+		 * units of 10 ms.
+		 */
+		if (arg > INT_MAX / 10)
 			return -EINVAL;
 
-		/* For historical reasons, user-space sets the timeout
-		 * value in units of 10 ms.
-		 */
 		client->adapter->timeout = msecs_to_jiffies(arg * 10);
 		break;
 	default:
drivers/infiniband/core/Makefile +1 -1
index 8ab4eea5a0a5..394d7e1f7375 100644
@@ -12,7 +12,7 @@ ib_core-y :=			packer.o ud_header.o verbs.o cq.o rw.o sysfs.o \
 				roce_gid_mgmt.o mr_pool.o addr.o sa_query.o \
 				multicast.o mad.o smi.o agent.o mad_rmpp.o \
 				nldev.o restrack.o counters.o ib_core_uverbs.o \
-				trace.o lag.o
+				trace.o lag.o iter.o
 
 ib_core-$(CONFIG_SECURITY_INFINIBAND) += security.o
 ib_core-$(CONFIG_CGROUP_RDMA) += cgroup.o
drivers/infiniband/core/iter.c new file +43 -0

43 lines not on this page · raw message

drivers/infiniband/core/umem.c +16 -0
index c5b686394760..fd3a774904f8 100644
@@ -326,3 +326,19 @@ int ib_umem_copy_from(void *dst, struct ib_umem *umem, size_t offset,
 		return 0;
 }
 EXPORT_SYMBOL(ib_umem_copy_from);
+
+/*
+ * Called during rereg mr if the driver is able to re-use a umem for
+ * IB_MR_REREG_ACCESS.
+ */
+int ib_umem_check_rereg(struct ib_umem *umem, int flags, int new_access_flags)
+{
+	if (!umem)
+		return 0;
+
+	if ((flags & IB_MR_REREG_ACCESS) && !(flags & IB_MR_REREG_TRANS))
+		if (ib_access_writable(new_access_flags) && !umem->writable)
+			return -EACCES;
+	return 0;
+}
+EXPORT_SYMBOL(ib_umem_check_rereg);
drivers/infiniband/core/umem_dmabuf.c +59 -18

110 lines not on this page · raw message

drivers/infiniband/core/verbs.c +0 -38
index 8dd96dc98fd3..dff87b5980aa 100644
@@ -3093,44 +3093,6 @@ int rdma_init_netdev(struct ib_device *device, u32 port_num,
 }
 EXPORT_SYMBOL(rdma_init_netdev);
 
-void __rdma_block_iter_start(struct ib_block_iter *biter,
-			     struct scatterlist *sglist, unsigned int nents,
-			     unsigned long pgsz)
-{
-	memset(biter, 0, sizeof(struct ib_block_iter));
-	biter->__sg = sglist;
-	biter->__sg_nents = nents;
-
-	/* Driver provides best block size to use */
-	biter->__pg_bit = __fls(pgsz);
-}
-EXPORT_SYMBOL(__rdma_block_iter_start);
-
-bool __rdma_block_iter_next(struct ib_block_iter *biter)
-{
-	unsigned int block_offset;
-	unsigned int delta;
-
-	if (!biter->__sg_nents || !biter->__sg)
-		return false;
-
-	biter->__dma_addr = sg_dma_address(biter->__sg) + biter->__sg_advance;
-	block_offset = biter->__dma_addr & (BIT_ULL(biter->__pg_bit) - 1);
-	delta = BIT_ULL(biter->__pg_bit) - block_offset;
-
-	while (biter->__sg_nents && biter->__sg &&
-	       sg_dma_len(biter->__sg) - biter->__sg_advance <= delta) {
-		delta -= sg_dma_len(biter->__sg) - biter->__sg_advance;
-		biter->__sg_advance = 0;
-		biter->__sg = sg_next(biter->__sg);
-		biter->__sg_nents--;
-	}
-	biter->__sg_advance += delta;
-
-	return true;
-}
-EXPORT_SYMBOL(__rdma_block_iter_next);
-
 /**
  * rdma_alloc_hw_stats_struct - Helper function to allocate dynamic struct
  *   for the drivers.
drivers/infiniband/hw/bnxt_re/qplib_res.c +1 -1
index dfb72a5adc91..cf8208f652d3 100644
@@ -46,7 +46,7 @@
 #include <linux/if_vlan.h>
 #include <linux/vmalloc.h>
 #include <rdma/ib_verbs.h>
-#include <rdma/ib_umem.h>
+#include <rdma/iter.h>
 
 #include "roce_hsi.h"
 #include "qplib_res.h"
drivers/infiniband/hw/cxgb4/mem.c +1 -1
index a2c71a1d93d5..88db7e527728 100644
@@ -32,9 +32,9 @@
 
 #include <linux/module.h>
 #include <linux/moduleparam.h>
-#include <rdma/ib_umem.h>
 #include <linux/atomic.h>
 #include <rdma/ib_user_verbs.h>
+#include <rdma/iter.h>
 
 #include "iw_cxgb4.h"
 
drivers/infiniband/hw/efa/efa_verbs.c +1 -1
index fb6b29972fcc..ff36b7994af9 100644
@@ -9,9 +9,9 @@
 #include <linux/log2.h>
 
 #include <rdma/ib_addr.h>
-#include <rdma/ib_umem.h>
 #include <rdma/ib_user_verbs.h>
 #include <rdma/ib_verbs.h>
+#include <rdma/iter.h>
 #include <rdma/uverbs_ioctl.h>
 #define UVERBS_MODULE_NAME efa_ib
 #include <rdma/uverbs_named_ioctl.h>
drivers/infiniband/hw/erdma/erdma_verbs.c +1 -1
index a50fb03c9643..bf5627e3f237 100644
@@ -12,7 +12,7 @@
 #include <linux/vmalloc.h>
 #include <net/addrconf.h>
 #include <rdma/erdma-abi.h>
-#include <rdma/ib_umem.h>
+#include <rdma/iter.h>
 #include <rdma/uverbs_ioctl.h>
 
 #include "erdma.h"
drivers/infiniband/hw/hns/hns_roce_alloc.c +1 -1
index 6ee911f6885b..c21004814c3c 100644
@@ -32,7 +32,7 @@
  */
 
 #include <linux/vmalloc.h>
-#include <rdma/ib_umem.h>
+#include <rdma/iter.h>
 #include "hns_roce_device.h"
 
 void hns_roce_buf_free(struct hns_roce_dev *hr_dev, struct hns_roce_buf *buf)
drivers/infiniband/hw/hns/hns_roce_mr.c +4 -0
index 55b9283bfc6f..f86859ffb413 100644
@@ -292,6 +292,10 @@ struct ib_mr *hns_roce_rereg_user_mr(struct ib_mr *ibmr, int flags, u64 start,
 		goto err_out;
 	}
 
+	ret = ib_umem_check_rereg(mr->pbl_mtr.umem, flags, mr_access_flags);
+	if (ret)
+		goto err_out;
+
 	mailbox = hns_roce_alloc_cmd_mailbox(hr_dev);
 	ret = PTR_ERR_OR_ZERO(mailbox);
 	if (ret)
drivers/infiniband/hw/irdma/main.h +1 -1
index e8f5f8aaa565..e5dc43442dff 100644
@@ -37,8 +37,8 @@
 #include <rdma/rdma_cm.h>
 #include <rdma/iw_cm.h>
 #include <rdma/ib_user_verbs.h>
-#include <rdma/ib_umem.h>
 #include <rdma/ib_cache.h>
+#include <rdma/iter.h>
 #include <rdma/uverbs_ioctl.h>
 #include "osdep.h"
 #include "defs.h"
drivers/infiniband/hw/irdma/verbs.c +4 -0
index 0b9cf175ed73..04015eb3663d 100644
@@ -3245,6 +3245,10 @@ static struct ib_mr *irdma_rereg_user_mr(struct ib_mr *ib_mr, int flags,
 	if (flags & ~(IB_MR_REREG_TRANS | IB_MR_REREG_PD | IB_MR_REREG_ACCESS))
 		return ERR_PTR(-EOPNOTSUPP);
 
+	ret = ib_umem_check_rereg(iwmr->region, flags, new_access);
+	if (ret)
+		return ERR_PTR(ret);
+
 	ret = irdma_hwdereg_mr(ib_mr);
 	if (ret)
 		return ERR_PTR(ret);
drivers/infiniband/hw/mana/mana_ib.h +1 -1
index bb9c6b1af24e..3747c5186e24 100644
@@ -8,7 +8,7 @@
 
 #include <rdma/ib_verbs.h>
 #include <rdma/ib_mad.h>
-#include <rdma/ib_umem.h>
+#include <rdma/iter.h>
 #include <rdma/mana-abi.h>
 #include <rdma/uverbs_ioctl.h>
 
drivers/infiniband/hw/mlx4/mr.c +5 -0
index a40bf58bcdd3..e331c04967df 100644
@@ -33,6 +33,7 @@
 
 #include <linux/slab.h>
 #include <rdma/ib_user_verbs.h>
+#include <rdma/iter.h>
 
 #include "mlx4_ib.h"
 
@@ -466,6 +467,10 @@ struct ib_mr *mlx4_ib_rereg_user_mr(struct ib_mr *mr, int flags, u64 start,
 	struct mlx4_mpt_entry **pmpt_entry = &mpt_entry;
 	int err;
 
+	err = ib_umem_check_rereg(mmr->umem, flags, mr_access_flags);
+	if (err)
+		return ERR_PTR(err);
+
 	/* Since we synchronize this call and mlx4_ib_dereg_mr via uverbs,
 	 * we assume that the calls can't run concurrently. Otherwise, a
 	 * race exists.
drivers/infiniband/hw/mlx5/mem.c +1 -0
index af321f6ef7f5..75d5b5672b5c 100644
@@ -31,6 +31,7 @@
  */
 
 #include <rdma/ib_umem_odp.h>
+#include <rdma/iter.h>
 #include "mlx5_ib.h"
 
 /*
drivers/infiniband/hw/mlx5/mr.c +4 -0
index 726b81b6330c..c8238db895bf 100644
@@ -1829,6 +1829,10 @@ struct ib_mr *mlx5_ib_rereg_user_mr(struct ib_mr *ib_mr, int flags, u64 start,
 	if (flags & ~(IB_MR_REREG_TRANS | IB_MR_REREG_PD | IB_MR_REREG_ACCESS))
 		return ERR_PTR(-EOPNOTSUPP);
 
+	err = ib_umem_check_rereg(mr->umem, flags, new_access_flags);
+	if (err)
+		return ERR_PTR(err);
+
 	if (!(flags & IB_MR_REREG_ACCESS))
 		new_access_flags = mr->access_flags;
 	if (!(flags & IB_MR_REREG_PD))
drivers/infiniband/hw/mlx5/umr.c +1 -0
index 80c665d15218..562078b8f11a 100644
@@ -2,6 +2,7 @@
 /* Copyright (c) 2022, NVIDIA CORPORATION & AFFILIATES. */
 
 #include <rdma/ib_umem_odp.h>
+#include <rdma/iter.h>
 #include "mlx5_ib.h"
 #include "umr.h"
 #include "wr.h"
drivers/infiniband/hw/mthca/mthca_provider.c +1 -1
index c01ac0e478c6..d0ccdb68f2b8 100644
@@ -35,8 +35,8 @@
  */
 
 #include <rdma/ib_smi.h>
-#include <rdma/ib_umem.h>
 #include <rdma/ib_user_verbs.h>
+#include <rdma/iter.h>
 #include <rdma/uverbs_ioctl.h>
 
 #include <linux/sched.h>
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c +1 -1
index bbdf4619218d..6ae42ca04acc 100644
@@ -45,9 +45,9 @@
 #include <rdma/ib_verbs.h>
 #include <rdma/ib_user_verbs.h>
 #include <rdma/iw_cm.h>
-#include <rdma/ib_umem.h>
 #include <rdma/ib_addr.h>
 #include <rdma/ib_cache.h>
+#include <rdma/iter.h>
 #include <rdma/uverbs_ioctl.h>
 
 #include "ocrdma.h"
drivers/infiniband/hw/qedr/verbs.c +1 -1
index 568a5b18803f..b5da3badfba6 100644
@@ -39,9 +39,9 @@
 #include <rdma/ib_verbs.h>
 #include <rdma/ib_user_verbs.h>
 #include <rdma/iw_cm.h>
-#include <rdma/ib_umem.h>
 #include <rdma/ib_addr.h>
 #include <rdma/ib_cache.h>
+#include <rdma/iter.h>
 #include <rdma/uverbs_ioctl.h>
 
 #include <linux/qed/common_hsi.h>
drivers/infiniband/hw/vmw_pvrdma/pvrdma.h +1 -1
index 763ddc6f25d1..23e547d4b3a7 100644
@@ -53,8 +53,8 @@
 #include <linux/pci.h>
 #include <linux/semaphore.h>
 #include <linux/workqueue.h>
-#include <rdma/ib_umem.h>
 #include <rdma/ib_verbs.h>
+#include <rdma/iter.h>
 #include <rdma/vmw_pvrdma-abi.h>
 
 #include "pvrdma_ring.h"
drivers/infiniband/sw/rxe/rxe_verbs.c +5 -0
index 589ac0d8489d..9466fed6726b 100644
@@ -1312,6 +1312,7 @@ static struct ib_mr *rxe_rereg_user_mr(struct ib_mr *ibmr, int flags,
 	struct rxe_mr *mr = to_rmr(ibmr);
 	struct rxe_pd *old_pd = to_rpd(ibmr->pd);
 	struct rxe_pd *pd = to_rpd(ibpd);
+	int err;
 
 	/* for now only support the two easy cases:
 	 * rereg_pd and rereg_access
@@ -1321,6 +1322,10 @@ static struct ib_mr *rxe_rereg_user_mr(struct ib_mr *ibmr, int flags,
 		return ERR_PTR(-EOPNOTSUPP);
 	}
 
+	err = ib_umem_check_rereg(mr->umem, flags, access);
+	if (err)
+		return ERR_PTR(err);
+
 	if (flags & IB_MR_REREG_PD) {
 		rxe_put(old_pd);
 		rxe_get(pd);
drivers/infiniband/ulp/isert/ib_isert.c +6 -0
index 42977a5326ee..640634f96d72 100644
@@ -1385,6 +1385,12 @@ isert_login_recv_done(struct ib_cq *cq, struct ib_wc *wc)
 	ib_dma_sync_single_for_cpu(ib_dev, isert_conn->login_desc->dma_addr,
 			ISER_RX_SIZE, DMA_FROM_DEVICE);
 
+	if (unlikely(wc->byte_len < ISER_HEADERS_LEN)) {
+		isert_dbg("login request length %u is too short\n",
+			  wc->byte_len);
+		return;
+	}
+
 	isert_conn->login_req_len = wc->byte_len - ISER_HEADERS_LEN;
 
 	if (isert_conn->conn) {
drivers/infiniband/ulp/srp/ib_srp.c +24 -6
index 7289ae0b83ac..ce1505a8ee8d 100644
@@ -1930,7 +1930,8 @@ static int srp_post_recv(struct srp_rdma_ch *ch, struct srp_iu *iu)
 	return ib_post_recv(ch->qp, &wr, NULL);
 }
 
-static void srp_process_rsp(struct srp_rdma_ch *ch, struct srp_rsp *rsp)
+static void srp_process_rsp(struct srp_rdma_ch *ch, struct srp_rsp *rsp,
+			    u32 byte_len)
 {
 	struct srp_target_port *target = ch->target;
 	struct srp_request *req;
@@ -1971,10 +1972,27 @@ static void srp_process_rsp(struct srp_rdma_ch *ch, struct srp_rsp *rsp)
 		scmnd->result = rsp->status;
 
 		if (rsp->flags & SRP_RSP_FLAG_SNSVALID) {
-			memcpy(scmnd->sense_buffer, rsp->data +
-			       be32_to_cpu(rsp->resp_data_len),
-			       min_t(int, be32_to_cpu(rsp->sense_data_len),
-				     SCSI_SENSE_BUFFERSIZE));
+			u32 resp_len = be32_to_cpu(rsp->resp_data_len);
+			u32 sense_len = be32_to_cpu(rsp->sense_data_len);
+
+			/*
+			 * The sense data starts resp_data_len bytes past the
+			 * response data area; both lengths come from the
+			 * target-controlled response.  Copy the sense data
+			 * only if it has not been truncated, that is, only if
+			 * the full sense region fits within the bytes actually
+			 * received.  Otherwise the copy source would run past
+			 * the receive buffer (sized to the target-chosen
+			 * max_ti_iu_len), reading out of bounds.
+			 */
+			if (sizeof(*rsp) + (u64)resp_len + sense_len <= byte_len)
+				memcpy(scmnd->sense_buffer,
+				       rsp->data + resp_len,
+				       min(sense_len, SCSI_SENSE_BUFFERSIZE));
+			else
+				shost_printk(KERN_ERR, target->scsi_host,
+					     "dropping truncated sense data (resp_data_len %u sense_data_len %u, %u bytes received)\n",
+					     resp_len, sense_len, byte_len);
 		}
 
 		if (unlikely(rsp->flags & SRP_RSP_FLAG_DIUNDER))
@@ -2084,7 +2102,7 @@ static void srp_recv_done(struct ib_cq *cq, struct ib_wc *wc)
 
 	switch (opcode) {
 	case SRP_RSP:
-		srp_process_rsp(ch, iu->buf);
+		srp_process_rsp(ch, iu->buf, wc->byte_len);
 		break;
 
 	case SRP_CRED_REQ:
drivers/input/keyboard/atkbd.c +15 -0
index f7b08b359c9c..d8e1ca18e141 100644
@@ -1937,6 +1937,21 @@ static const struct dmi_system_id atkbd_dmi_quirk_table[] __initconst = {
 		},
 		.callback = atkbd_deactivate_fixup,
 	},
+	{
+		/* Lenovo Yoga Air 14 (83QK) */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "83QK"),
+		},
+		.callback = atkbd_deactivate_fixup,
+	},
+	{
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "HONOR"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "BCC-N"),
+		},
+		.callback = atkbd_deactivate_fixup,
+	},
 	{ }
 };
 
drivers/mailbox/mailbox.c +8 -7
index 39269359e3a6..d1db150e7e54 100644
@@ -59,7 +59,7 @@ static void msg_submit(struct mbox_chan *chan)
 
 	spin_lock_irqsave(&chan->lock, flags);
 
-	if (!chan->msg_count || chan->active_req)
+	if (!chan->msg_count || chan->active_req != MBOX_NO_MSG)
 		goto exit;
 
 	count = chan->msg_count;
@@ -97,13 +97,13 @@ static void tx_tick(struct mbox_chan *chan, int r)
 
 	spin_lock_irqsave(&chan->lock, flags);
 	mssg = chan->active_req;
-	chan->active_req = NULL;
+	chan->active_req = MBOX_NO_MSG;
 	spin_unlock_irqrestore(&chan->lock, flags);
 
 	/* Submit next message */
 	msg_submit(chan);
 
-	if (!mssg)
+	if (mssg == MBOX_NO_MSG)
 		return;
 
 	/* Notify the client */
@@ -125,7 +125,7 @@ static enum hrtimer_restart txdone_hrtimer(struct hrtimer *hrtimer)
 	for (i = 0; i < mbox->num_chans; i++) {
 		struct mbox_chan *chan = &mbox->chans[i];
 
-		if (chan->active_req && chan->cl) {
+		if (chan->active_req != MBOX_NO_MSG && chan->cl) {
 			txdone = chan->mbox->ops->last_tx_done(chan);
 			if (txdone)
 				tx_tick(chan, 0);
@@ -257,7 +257,7 @@ int mbox_send_message(struct mbox_chan *chan, void *mssg)
 {
 	int t;
 
-	if (!chan || !chan->cl)
+	if (!chan || !chan->cl || mssg == MBOX_NO_MSG)
 		return -EINVAL;
 
 	t = add_to_rbuf(chan, mssg);
@@ -331,7 +331,7 @@ static int __mbox_bind_client(struct mbox_chan *chan, struct mbox_client *cl)
 	spin_lock_irqsave(&chan->lock, flags);
 	chan->msg_free = 0;
 	chan->msg_count = 0;
-	chan->active_req = NULL;
+	chan->active_req = MBOX_NO_MSG;
 	chan->cl = cl;
 	init_completion(&chan->tx_complete);
 
@@ -492,7 +492,7 @@ void mbox_free_channel(struct mbox_chan *chan)
 	/* The queued TX requests are simply aborted, no callbacks are made */
 	spin_lock_irqsave(&chan->lock, flags);
 	chan->cl = NULL;
-	chan->active_req = NULL;
+	chan->active_req = MBOX_NO_MSG;
 	if (chan->txdone_method == TXDONE_BY_ACK)
 		chan->txdone_method = TXDONE_BY_POLL;
 
@@ -548,6 +548,7 @@ int mbox_controller_register(struct mbox_controller *mbox)
 
 		chan->cl = NULL;
 		chan->mbox = mbox;
+		chan->active_req = MBOX_NO_MSG;
 		chan->txdone_method = txdone;
 		spin_lock_init(&chan->lock);
 	}
drivers/mailbox/tegra-hsp.c +1 -1
index 76f54f8b6b6c..8ef8b444de61 100644
@@ -497,7 +497,7 @@ static int tegra_hsp_mailbox_flush(struct mbox_chan *chan,
 			mbox_chan_txdone(chan, 0);
 
 			/* Wait until channel is empty */
-			if (chan->active_req != NULL)
+			if (chan->active_req != MBOX_NO_MSG)
 				continue;
 
 			return 0;
drivers/md/dm-cache-policy-smq.c +8 -4
index d81a87142cac..5f48bcbdaf43 100644
@@ -1590,18 +1590,22 @@ static int smq_invalidate_mapping(struct dm_cache_policy *p, dm_cblock_t cblock)
 	struct smq_policy *mq = to_smq_policy(p);
 	struct entry *e = get_entry(&mq->cache_alloc, from_cblock(cblock));
 	unsigned long flags;
-
-	if (!e->allocated)
-		return -ENODATA;
+	int r = 0;
 
 	spin_lock_irqsave(&mq->lock, flags);
+	if (!e->allocated) {
+		r = -ENODATA;
+		goto out;
+	}
 	// FIXME: what if this block has pending background work?
 	del_queue(mq, e);
 	h_remove(&mq->table, e);
 	free_entry(&mq->cache_alloc, e);
+
+out:
 	spin_unlock_irqrestore(&mq->lock, flags);
 
-	return 0;
+	return r;
 }
 
 static uint32_t smq_get_hint(struct dm_cache_policy *p, dm_cblock_t cblock)
drivers/misc/fastrpc.c +68 -39

215 lines not on this page · raw message

drivers/mmc/core/mmc.c +3 -1
index 6a23be214543..bbe4439c7edb 100644
@@ -1348,7 +1348,9 @@ static void mmc_select_driver_type(struct mmc_card *card)
 
 	card->drive_strength = drive_strength;
 
-	if (drv_type)
+	if (fixed_drv_type >= 0 && drive_strength)
+		mmc_set_driver_type(card->host, drive_strength);
+	else if (drv_type)
 		mmc_set_driver_type(card->host, drv_type);
 }
 
drivers/mmc/host/dw_mmc-rockchip.c +17 -0
index ec72453203de..3374400bff2c 100644
@@ -433,6 +433,22 @@ static int dw_mci_common_parse_dt(struct dw_mci *host)
 	return 0;
 }
 
+static int dw_mci_rk2928_parse_dt(struct dw_mci *host)
+{
+	struct dw_mci_rockchip_priv_data *priv;
+	int err;
+
+	err = dw_mci_common_parse_dt(host);
+	if (err)
+		return err;
+
+	priv = host->priv;
+
+	priv->internal_phase = false;
+
+	return 0;
+}
+
 static int dw_mci_rk3288_parse_dt(struct dw_mci *host)
 {
 	struct dw_mci_rockchip_priv_data *priv;
@@ -506,6 +522,7 @@ static int dw_mci_rockchip_init(struct dw_mci *host)
 
 static const struct dw_mci_drv_data rk2928_drv_data = {
 	.init			= dw_mci_rockchip_init,
+	.parse_dt		= dw_mci_rk2928_parse_dt,
 };
 
 static const struct dw_mci_drv_data rk3288_drv_data = {
drivers/mmc/host/litex_mmc.c +17 -3
index 4ec8072dc60b..81f7595b252e 100644
@@ -16,6 +16,7 @@
 #include <linux/interrupt.h>
 #include <linux/iopoll.h>
 #include <linux/litex.h>
+#include <linux/math.h>
 #include <linux/mod_devicetable.h>
 #include <linux/module.h>
 #include <linux/platform_device.h>
@@ -68,6 +69,9 @@
 #define SD_SLEEP_US       5
 #define SD_TIMEOUT_US 20000
 
+#define SD_INIT_DELAY_US  1000
+#define SD_INIT_CLK_HZ    400000
+
 #define SDIRQ_CARD_DETECT    1
 #define SDIRQ_SD_TO_MEM_DONE 2
 #define SDIRQ_MEM_TO_SD_DONE 4
@@ -436,11 +440,10 @@ static void litex_mmc_setclk(struct litex_mmc_host *host, unsigned int freq)
 	struct device *dev = mmc_dev(host->mmc);
 	u32 div;
 
-	div = freq ? host->ref_clk / freq : 256U;
-	div = roundup_pow_of_two(div);
+	div = freq ? DIV_ROUND_UP(host->ref_clk, freq) : 256U;
 	div = clamp(div, 2U, 256U);
 	dev_dbg(dev, "sd_clk_freq=%d: set to %d via div=%d\n",
-		freq, host->ref_clk / div, div);
+		freq, host->ref_clk / ((div + 1) & ~1U), div);
 	litex_write16(host->sdphy + LITEX_PHY_CLOCKERDIV, div);
 	host->sd_clk = freq;
 }
@@ -449,6 +452,17 @@ static void litex_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
 {
 	struct litex_mmc_host *host = mmc_priv(mmc);
 
+	/*
+	 * The SD specification requires at least 74 idle clocks before CMD0.
+	 * These dummy cycles is generated by writing LITEX_PHY_INITIALIZE.
+	 */
+	if (ios->chip_select == MMC_CS_HIGH) {
+		litex_mmc_setclk(host, SD_INIT_CLK_HZ);
+		litex_write8(host->sdphy + LITEX_PHY_INITIALIZE, 1);
+		fsleep(SD_INIT_DELAY_US);
+		return;
+	}
+
 	/*
 	 * NOTE: Ignore any ios->bus_width updates; they occur right after
 	 * the mmc core sends its own acmd6 bus-width change notification,
drivers/mmc/host/renesas_sdhi_internal_dmac.c +1 -0
index 1dcaa050f264..2a145af4f8ae 100644
@@ -278,6 +278,7 @@ static const struct renesas_sdhi_of_data_with_quirks of_rza2_compatible = {
 static const struct of_device_id renesas_sdhi_internal_dmac_of_match[] = {
 	{ .compatible = "renesas,sdhi-r7s9210", .data = &of_rza2_compatible, },
 	{ .compatible = "renesas,sdhi-mmc-r8a77470", .data = &of_rcar_gen3_compatible, },
+	{ .compatible = "renesas,sdhi-r8a774e1", .data = &of_r8a7795_compatible, },
 	{ .compatible = "renesas,sdhi-r8a7795", .data = &of_r8a7795_compatible, },
 	{ .compatible = "renesas,sdhi-r8a77961", .data = &of_r8a77961_compatible, },
 	{ .compatible = "renesas,sdhi-r8a77965", .data = &of_r8a77965_compatible, },
drivers/mmc/host/sdhci.c +1 -0
index bd67cbb9a19e..5c8a10495bb8 100644
@@ -3782,6 +3782,7 @@ int sdhci_resume_host(struct sdhci_host *host)
 		host->pwr = 0;
 		host->clock = 0;
 		host->reinit_uhs = true;
+		mmc->ops->start_signal_voltage_switch(mmc, &mmc->ios);
 		mmc->ops->set_ios(mmc, &mmc->ios);
 	} else {
 		sdhci_init(host, (mmc->pm_flags & MMC_PM_KEEP_POWER));
drivers/net/bonding/bond_main.c +2 -2
index c6b114946d9a..7b8555f6102a 100644
@@ -4673,11 +4673,11 @@ static int bond_do_ioctl(struct net_device *bond_dev, struct ifreq *ifr, int cmd
 
 	slave_dev = __dev_get_by_name(net, ifr->ifr_slave);
 
-	slave_dbg(bond_dev, slave_dev, "slave_dev=%p:\n", slave_dev);
-
 	if (!slave_dev)
 		return -ENODEV;
 
+	slave_dbg(bond_dev, slave_dev, "slave_dev=%p:\n", slave_dev);
+
 	switch (cmd) {
 	case SIOCBONDENSLAVE:
 		res = bond_enslave(bond_dev, slave_dev, NULL);
drivers/net/ethernet/amd/pcnet32.c +3 -1
index 72db9f9e7bee..81cb83caf62a 100644
@@ -1403,8 +1403,10 @@ static int pcnet32_poll(struct napi_struct *napi, int budget)
 		pcnet32_restart(dev, CSR0_START);
 		netif_wake_queue(dev);
 	}
+	spin_unlock_irqrestore(&lp->lock, flags);
 
 	if (work_done < budget && napi_complete_done(napi, work_done)) {
+		spin_lock_irqsave(&lp->lock, flags);
 		/* clear interrupt masks */
 		val = lp->a->read_csr(ioaddr, CSR3);
 		val &= 0x00ff;
@@ -1412,9 +1414,9 @@ static int pcnet32_poll(struct napi_struct *napi, int budget)
 
 		/* Set interrupt enable. */
 		lp->a->write_csr(ioaddr, CSR0, CSR0_INTEN);
+		spin_unlock_irqrestore(&lp->lock, flags);
 	}
 
-	spin_unlock_irqrestore(&lp->lock, flags);
 	return work_done;
 }
 
drivers/net/ethernet/broadcom/bnxt/bnxt.c +1 -1
index 7a2d91182013..cff92020b381 100644
@@ -5419,7 +5419,7 @@ static void bnxt_disable_int_sync(struct bnxt *bp)
 {
 	int i;
 
-	if (!bp->irq_tbl)
+	if (!bp->irq_tbl || !bp->bnapi)
 		return;
 
 	atomic_inc(&bp->intr_sem);
drivers/net/ethernet/freescale/fec_main.c +1 -2
index 9018a7d3864f..d8189c433847 100644
@@ -4731,6 +4731,7 @@ static int fec_resume(struct device *dev)
 		if (fep->rpm_active)
 			pm_runtime_force_resume(dev);
 
+		pinctrl_pm_select_default_state(&fep->pdev->dev);
 		ret = fec_enet_clk_enable(ndev, true);
 		if (ret) {
 			rtnl_unlock();
@@ -4747,8 +4748,6 @@ static int fec_resume(struct device *dev)
 			val &= ~(FEC_ECR_MAGICEN | FEC_ECR_SLEEP);
 			writel(val, fep->hwp + FEC_ECNTRL);
 			fep->wol_flag &= ~FEC_WOL_FLAG_SLEEP_ON;
-		} else {
-			pinctrl_pm_select_default_state(&fep->pdev->dev);
 		}
 		fec_restart(ndev);
 		netif_tx_lock_bh(ndev);
drivers/net/ethernet/ibm/emac/core.c +8 -1
index dac570f3c110..0db3f558c95b 100644
@@ -3147,7 +3147,7 @@ static int emac_probe(struct platform_device *ofdev)
 
 	netif_carrier_off(ndev);
 
-	err = devm_register_netdev(&ofdev->dev, ndev);
+	err = register_netdev(ndev);
 	if (err) {
 		printk(KERN_ERR "%pOF: failed to register net device (%d)!\n",
 		       np, err);
@@ -3200,6 +3200,13 @@ static void emac_remove(struct platform_device *ofdev)
 
 	DBG(dev, "remove" NL);
 
+	/* Unregister network device before tearing down hardware
+	 * to prevent use-after-free during deferred cleanup. This ensures
+	 * the network stack stops all operations before hardware resources
+	 * are released.
+	 */
+	unregister_netdev(dev->ndev);
+
 	cancel_work_sync(&dev->reset_work);
 
 	if (emac_has_feature(dev, EMAC_FTR_HAS_TAH))
drivers/net/ethernet/marvell/mv643xx_eth.c +1 -1
index 83b9905666e2..8dae8d38d7bc 100644
@@ -2784,7 +2784,7 @@ static int mv643xx_eth_shared_of_add_port(struct platform_device *pdev,
 		goto put_err;
 	}
 	ppdev->dev.coherent_dma_mask = DMA_BIT_MASK(32);
-	ppdev->dev.of_node = pnp;
+	ppdev->dev.of_node = of_node_get(pnp);
 
 	ret = platform_device_add_resources(ppdev, &res, 1);
 	if (ret)
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +47 -28

21 lines not on this page · raw message

drivers/net/ethernet/marvell/octeontx2/af/rvu.c +1 -1
index d5e2ebedd433..df662d07a5e9 100644

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

drivers/net/ethernet/marvell/octeontx2/af/rvu.h +1 -0
index f94bf04788e9..77a03e29a771 100644

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

drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c +18 -18
index e3038a912a58..0163fbb758d3 100644

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

drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c +1 -1
index 0c484120be79..73850213b1f3 100644

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

drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c +1 -1
index 2de9c44ef57c..ce01fab28624 100644

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

drivers/net/ethernet/mediatek/mtk_eth_soc.c +1 -1
index 7406b706fb75..ebf5432cb328 100644

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

drivers/net/ethernet/mellanox/mlx4/cq.c +8 -1
index e130e7259275..5c55971abbf0 100644

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

drivers/net/ethernet/mellanox/mlx5/core/cmd.c +4 -2
index b51c00627759..79a8b0f3b004 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c +8 -2
index 14192da4b8ed..d4d2de017a50 100644

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

drivers/net/ethernet/mellanox/mlx5/core/eswitch.c +3 -10
index 864e88f05771..383ca082e841 100644

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

drivers/net/ethernet/mellanox/mlx5/core/irq_affinity.c +4 -1
index 2691d88cdee1..589051ffb49d 100644

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

drivers/net/ethernet/mellanox/mlx5/core/vport.c +54 -18

72 lines not on this page · raw message

drivers/net/ethernet/microchip/lan743x_main.c +32 -0
index b897d071fc45..dff5767671b1 100644

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

drivers/net/ethernet/microchip/lan743x_main.h +1 -0
index 2f0cab0c85e1..b8bb31c0400d 100644

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

drivers/net/ethernet/realtek/rtase/rtase_main.c +5 -2
index 3a588aaa89c5..d9d4b7132730 100644

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

drivers/net/hyperv/netvsc.c +15 -4
index 5f14799b68c5..ff04364c9d97 100644

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

drivers/net/phy/micrel.c +8 -7
index f0c068075322..2dca6e8a5fce 100644

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

drivers/net/phy/phy_device.c +6 -0
index eb478e4961cb..f2d067b907bf 100644

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

drivers/net/tap.c +2 -0
index 5ca6ecf0ce5f..c460b1f39136 100644

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

drivers/net/usb/r8152.c +6 -1
index 1c36816405f1..f3a4a40d5346 100644

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

drivers/net/vxlan/vxlan_vnifilter.c +2 -3
index 06d19e90eadb..272fa31ef074 100644

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

drivers/nvmem/core.c +5 -7
index 021bf3310fb2..2edc9cea2bda 100644

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

drivers/nvmem/layouts/onie-tlv.c +2 -1
index 0967a32319a2..8b0f3c1b8a0e 100644

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

drivers/pinctrl/pinctrl-mcp23s08_spi.c +4 -1
index 54f61c8cb1c0..5ed368772adb 100644

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

drivers/pmdomain/imx/gpc.c +1 -1
index b811d0ad94e2..72aeacdc0e83 100644

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

drivers/ptp/ptp_vclock.c +9 -5
index 8ed4b8598924..5e2730c73bc2 100644

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

drivers/slimbus/qcom-ngd-ctrl.c +77 -45

122 lines not on this page · raw message

drivers/soc/qcom/ice.c +32 -8
index 9d89bfc50e8b..85504a023e32 100644

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

drivers/spi/spi-cadence-quadspi.c +3 -2
index 72262b6fb62b..da8401261bbc 100644

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

drivers/tee/optee/supp.c +74 -33

107 lines not on this page · raw message

drivers/tee/tee_shm.c +1 -1
index 8e50476eb71f..e4183d062552 100644

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

drivers/thunderbolt/property.c +6 -0
index e6c0330a9e50..d7598df98b7d 100644

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

drivers/thunderbolt/xdomain.c +11 -3
index 11a50c86a1e4..06357073f4ab 100644

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

drivers/usb/serial/io_ti.c +11 -0
index 7d0584b2a234..bae3c72f777c 100644

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

drivers/usb/serial/kl5kusb105.c +2 -2
index d36155b6d2bf..8c7585b3271f 100644

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

drivers/usb/serial/mct_u232.c +11 -10
index d225d7c1455f..33d4bbc461be 100644

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

drivers/usb/serial/option.c +3 -0
index c8f0d2bbfc1b..2f6be5e1f01f 100644

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

fs/erofs/internal.h +3 -4
index 1c003412677e..89dfb3736daa 100644

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

fs/erofs/super.c +1 -2
index bc968cf812ba..1640ebc26ac9 100644

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

fs/erofs/sysfs.c +18 -1
index 63cffd0fd261..3fbce0864a66 100644

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

fs/erofs/zdata.c +13 -23
index a81b6e6aee59..d625e3be9ec6 100644

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

fs/fcntl.c +4 -4
index a7947a615db6..c4cdee6a7800 100644

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

fs/fs-writeback.c +65 -36

101 lines not on this page · raw message

fs/fuse/dev.c +8 -1
index 1a6efb7cd945..8f4a2ff56cc3 100644

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

fs/iomap/buffered-io.c +0 -4
index 0178292c1864..5f885286b2f4 100644

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

fs/qnx6/dir.c +4 -4
index b4d10e45f2e4..f53a38585785 100644

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

fs/smb/server/oplock.c +12 -3
index a84c01bceb8b..6454c7a4baa4 100644

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

fs/smb/server/smb2pdu.c +11 -0
index a691801e1d7b..eb8ab4c8c7f4 100644

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

include/linux/backing-dev-defs.h +4 -0
index 2ad261082bba..c5c9d89c73ed 100644

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

include/linux/hugetlb.h +0 -8
index 32c9bc8c750c..739bc71c33fd 100644

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

include/linux/ieee80211.h +9 -9
index abb069aa5fa5..85bf3ac6db57 100644

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

include/linux/kexec.h +3 -0
index 7d6b12f8b8d0..107e726f2ef3 100644

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

include/linux/mailbox_controller.h +3 -0
index b91379922cb3..1689031c58c9 100644

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

include/linux/mlx5/vport.h +2 -2
index c36cc6d82926..80992c370fb0 100644

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

include/linux/mm.h +0 -8
index 544ee79faf37..ad3823929464 100644

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

include/linux/writeback.h +2 -0
index 641a057e0413..b6bf90a70525 100644

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

include/net/act_api.h +1 -0
index d8103b2270d9..539ea6693a24 100644

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

include/net/bluetooth/hci_core.h +6 -3
index ba5d176069a6..a0c84a83f25e 100644

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

include/net/bluetooth/hci_sync.h +2 -2
index 17e5112f7840..4d3132a50ef0 100644

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

include/net/bluetooth/l2cap.h +1 -0
index b233779824c2..00b5d56f369f 100644

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

include/net/ip.h +8 -0
index c65ca2765e29..39c6a4033aed 100644

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

include/net/ip_vs.h +1 -2
index ff406ef4fd4a..d70268cf1af8 100644

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

include/net/netfilter/nf_conntrack_core.h +5 -0
index 3384859a8921..8883575adcc1 100644

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

include/net/netfilter/nf_conntrack_helper.h +1 -0
index de2f956abf34..24cf3d2d9745 100644

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

include/net/secure_seq.h +38 -7

45 lines not on this page · raw message

include/net/sock.h +1 -0
index 6edd9cac5006..0d77a87929f9 100644

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

include/net/tc_act/tc_pedit.h +1 -1
index 83fe39931781..cb7b82f2cbc7 100644

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

include/net/tcp.h +4 -2
index 3255a199ef60..5d39b0e8dd90 100644

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

include/rdma/ib_umem.h +16 -32

48 lines not on this page · raw message

include/rdma/ib_verbs.h +0 -48

48 lines not on this page · raw message

include/rdma/iter.h new file +88 -0

88 lines not on this page · raw message

io_uring/io_uring.c +1 -1
index e515aeafa878..03c6ab505d74 100644

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

io_uring/kbuf.c +0 -1
index f67ecacd2543..df5ba0d7fbb3 100644

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

io_uring/net.c +2 -1
index 94b6a15245af..8eb0ebdc6a72 100644

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

ipc/shm.c +6 -4
index 492fcc699985..f70a503e6129 100644

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

kernel/dma/debug.c +1 -1
index 035dda07ab0d..b1192cff0359 100644

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

kernel/kexec_file.c +32 -1
index f852528bdc24..909432e804be 100644

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

kernel/pid.c +5 -3
index c5650ea80a2b..8552cc7edca4 100644

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

kernel/sched/ext.c +6 -3
index 01dc2a613868..428cde37130d 100644

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

kernel/signal.c +1 -0
index 468b589c39e6..b832158a9c46 100644

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

kernel/time/time.c +1 -1
index da7e8a02a096..a6261fadb92b 100644

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

kernel/time/timer_migration.c +6 -2
index 72538baa7a1f..e8cc341c8500 100644

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

kernel/trace/trace_probe.c +0 -2
index 6d73a56c42a9..a433912b202b 100644

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

mm/backing-dev.c +5 -0
index bf0594ceb3ff..956a7e23b5d6 100644

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

mm/damon/ops-common.c +2 -2
index d511be201c4c..d64bd40ae884 100644

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

mm/huge_memory.c +2 -0
index 2065374c7e9e..e60c21b92464 100644

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

mm/hugetlb.c +39 -31

70 lines not on this page · raw message

mm/memory-failure.c +10 -9
index efebd0a397cb..2dfbc8a8d505 100644

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

net/6lowpan/iphc.c +2 -2
index e116d308a8df..37eaff3f7b69 100644

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

net/802/garp.c +1 -1
index 27f0ab146026..d2dcdef85d39 100644

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

net/802/mrp.c +9 -0
index e0c96d0da8d5..8d08ace05fb8 100644

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

net/bluetooth/bnep/core.c +36 -14

50 lines not on this page · raw message

net/bluetooth/hci_conn.c +24 -7
index f89af453cb3b..d34c66b92fbc 100644

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

net/bluetooth/hci_core.c +15 -1
index 677f51edb277..e96ccdd7ef15 100644

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

net/bluetooth/hci_sync.c +22 -3
index 535fd7de9b1a..9e5c26c41f6e 100644

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

net/bluetooth/hci_sysfs.c +4 -2
index 4b54dbbf0729..60350c6723cb 100644

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

net/bluetooth/iso.c +52 -19

71 lines not on this page · raw message

net/bluetooth/l2cap_core.c +46 -0

46 lines not on this page · raw message

net/bluetooth/mgmt.c +9 -8
index a2bdf25a77ae..f494eda5cc81 100644

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

net/bluetooth/rfcomm/core.c +49 -18

67 lines not on this page · raw message

net/bluetooth/rfcomm/sock.c +22 -4
index 3052436e9c6d..2286efef62f5 100644

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

net/bridge/netfilter/ebt_dnat.c +3 -1
index 3fda71a8579d..73f185cccd63 100644

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

net/bridge/netfilter/ebt_redirect.c +11 -5
index 307790562b49..83486cd4d564 100644

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

net/bridge/netfilter/ebt_snat.c +3 -0
index 7dfbcdfc30e5..c9e229af0366 100644

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

net/core/filter.c +12 -3
index 193ecaa7425e..3d71a5907253 100644

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

net/core/gro.c +5 -0
index e4cebf162efb..4e7b9848771e 100644

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

net/core/netdev-genl.c +1 -3
index 0fe537781bc4..6d4db55e90ed 100644

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

net/core/secure_seq.c +29 -51

80 lines not on this page · raw message

net/core/skbuff.c +3 -3
index fba5f06b94d9..4be699bd3a17 100644

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

net/core/sock.c +11 -2
index 58f3f0d97954..4a09e780406f 100644

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

net/devlink/core.c +2 -0
index 7203c39532fc..5f62fe5d2aa8 100644

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

net/hsr/hsr_framereg.c +1 -3
index 47faa8b4aaa9..2ba586cb829f 100644

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

net/ieee802154/6lowpan/tx.c +5 -0
index 0c07662b44c0..4df76ff50699 100644

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

net/ipv4/inet_fragment.c +3 -0
index f9cf20b21a07..21a002750e16 100644

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

net/ipv4/ip_fragment.c +0 -3
index 124c0d64d420..d3abc84a6c02 100644

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

net/ipv4/ip_options.c +4 -0
index 3d154bc7e1f2..6527c3e88de3 100644

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

net/ipv4/netfilter/arp_tables.c +6 -9
index 97ead883e4a1..b752c9eac998 100644

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

net/ipv4/netfilter/ip_tables.c +6 -9
index 3d101613f27f..0ba456c4c634 100644

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

net/ipv4/netfilter/nf_nat_h323.c +2 -0
index faee20af4856..10e1b0837731 100644

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

net/ipv4/netfilter/nft_fib_ipv4.c +1 -1
index f514eb52b8d4..1c22ee4e40ae 100644

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

net/ipv4/syncookies.c +12 -7
index 640fc3b54277..facf0fa7d659 100644

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

net/ipv4/tcp.c +22 -22

44 lines not on this page · raw message

net/ipv4/tcp_fastopen.c +1 -1
index f9460e7531ba..947109f01db6 100644

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

net/ipv4/tcp_input.c +13 -9
index 60c42d612d18..e57917aefd50 100644

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

net/ipv4/tcp_ipv4.c +40 -44

84 lines not on this page · raw message

net/ipv4/tcp_minisocks.c +5 -6
index adddfb7d934c..1badb78baa7f 100644

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

net/ipv4/tcp_output.c +6 -6
index c76672f544be..59f0ddd0ffce 100644

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

net/ipv4/tcp_timer.c +2 -2
index 0cc8f19bc102..16a410386ffa 100644

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

net/ipv4/udp.c +8 -0
index 865803caed74..a891504a9652 100644

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

net/ipv4/xfrm4_input.c +4 -1
index 12a1a0f42195..adf21d6b6076 100644

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

net/ipv6/addrconf.c +4 -2
index e104ec8efe1c..c6fcdb60dfee 100644

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

net/ipv6/ip6_vti.c +2 -0
index 2ac88593a954..6fe696939d04 100644

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

net/ipv6/mcast.c +4 -4
index e2a11a2f3b25..b769e856a068 100644

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

net/ipv6/netfilter/ip6_tables.c +6 -9
index 7d5602950ae7..6c5022242cf0 100644

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

net/ipv6/netfilter/ip6t_eui64.c +5 -2
index da69a27e8332..bbb684f9964c 100644

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

net/ipv6/netfilter/nft_fib_ipv6.c +1 -1
index 421036a3605b..3005dfbca615 100644

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

net/ipv6/sit.c +1 -0
index 3c15a0ae228e..5c1982358aca 100644

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

net/ipv6/syncookies.c +8 -3
index 9d83eadd308b..b60bbc119c51 100644

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

net/ipv6/tcp_ipv6.c +17 -20
index a79cd20d3d31..f1e0c2c232c9 100644

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

net/ipv6/xfrm6_input.c +4 -1
index 9005fc156a20..699a001ac166 100644

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

net/l2tp/l2tp_ppp.c +50 -32

82 lines not on this page · raw message

net/mac80211/tx.c +3 -1
index 0458cbba232e..b82c7884a92d 100644

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

net/mptcp/options.c +32 -41

73 lines not on this page · raw message

net/mptcp/pm.c +4 -11
index b601dab95a42..3a27afcb4ec8 100644

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

net/mptcp/pm_userspace.c +8 -5
index bb76295d04c5..bc3eb242f298 100644

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

net/mptcp/protocol.c +9 -1
index 38550c44a201..a6410a50f0e3 100644

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

net/mptcp/protocol.h +3 -4
index 8ba3b0244bad..ad30b4b48143 100644

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

net/mptcp/sockopt.c +6 -2
index acaaf3174ee0..d0b203c3e7d7 100644

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

net/netfilter/ipset/ip_set_bitmap_ipmac.c +3 -2
index 2c625e0f49ec..752f59ef8744 100644

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

net/netfilter/ipset/ip_set_hash_ipmac.c +5 -4
index 467c59a83c0a..b9a2681e2488 100644

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

net/netfilter/ipset/ip_set_hash_mac.c +3 -2
index 718814730acf..41a122591fe2 100644

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

net/netfilter/ipvs/ip_vs_ctl.c +8 -5
index efa845ce616d..fb638758594d 100644

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

net/netfilter/ipvs/ip_vs_proto_sctp.c +6 -12
index 83e452916403..63c78a1f3918 100644

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

net/netfilter/ipvs/ip_vs_proto_tcp.c +7 -14
index 7da51390cea6..ede4fa3b63f5 100644

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

net/netfilter/ipvs/ip_vs_proto_udp.c +7 -13
index 68260d91c988..ffbebda547fc 100644

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

net/netfilter/ipvs/ip_vs_sched.c +7 -7
index d4903723be7e..49b2e5d2b2c8 100644

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

net/netfilter/nf_conntrack_ecache.c +2 -0
index 69948e1d6974..6526bdcca580 100644

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

net/netfilter/nf_conntrack_expect.c +9 -1
index f5c45989df57..bb8b87f9ee50 100644

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

net/netfilter/nf_conntrack_helper.c +19 -0
index a715304a53d8..9150bcfd7ca8 100644

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

net/netfilter/nf_conntrack_irc.c +2 -2
index 5703846bea3b..0f50ea92ced9 100644

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

net/netfilter/nf_conntrack_netlink.c +19 -9
index f51cdfba68fb..507f17722f37 100644

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

net/netfilter/nf_log_syslog.c +9 -3
index 58402226045e..11325bad19b3 100644

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

net/netfilter/nf_nat_core.c +2 -0
index 746acd124ea2..6ba7733355df 100644

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

net/netfilter/nf_nat_sip.c +1 -0
index 9fbfc6bff0c2..00838c0cc5bb 100644

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

net/netfilter/nf_synproxy_core.c +18 -6
index 6a851ac4dd04..a277b2bd3275 100644

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

net/netfilter/nfnetlink_log.c +19 -4
index 3da32d2f68e0..cfd68bc005d2 100644

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

net/netfilter/nfnetlink_queue.c +56 -8

64 lines not on this page · raw message

net/netfilter/nft_ct.c +3 -5
index 5310c3dca832..65fbbf4a219e 100644

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

net/netfilter/nft_ct_fast.c +1 -1
index e684c8a91848..ecf7b3a404be 100644

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

net/netfilter/nft_exthdr.c +3 -0
index c74012c99125..1fc2a948d00a 100644

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

net/netfilter/nft_fib.c +6 -0
index 96e02a83c045..22846136c754 100644

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

net/netfilter/nft_tunnel.c +1 -1
index e18d322290fb..714b6a5e8b0c 100644

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

net/netfilter/xt_NFQUEUE.c +1 -1
index 466da23e36ff..b32d153e3a18 100644

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

net/netfilter/xt_mac.c +1 -3
index bd2354760895..7fc5156825e4 100644

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

net/netlabel/netlabel_unlabeled.c +10 -20
index 9996883bf2b7..6007cb000da6 100644

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

net/openvswitch/datapath.c +1 -0
index 607b5ca70ea5..260d1af64afc 100644

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

net/qrtr/af_qrtr.c +2 -2
index b703e4c64585..2c009793f193 100644

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

net/rds/ib_cm.c +1 -0
index 26b069e1999d..5289afbb61aa 100644

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

net/rds/ib_send.c +2 -0
index 4190b90ff3b1..1909cd440a4b 100644

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

net/rds/info.c +1 -1
index b6b46a8214a0..b3ee5f8238c4 100644

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

net/sched/act_api.c +1 -6
index eecad65fec92..7d903f060743 100644

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

net/sched/act_pedit.c +51 -46

97 lines not on this page · raw message

net/sctp/diag.c +9 -8
index 5a43f25478d0..ff4f8a679ffc 100644

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

net/sctp/input.c +8 -0
index 032a10d82302..df5b2187b8fa 100644

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

net/sctp/sm_statefuns.c +1 -5
index 376d4ce5ebb3..613c5c3fa846 100644

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

net/sctp/stream.c +5 -1
index bfcff6d6a438..e8922f350baf 100644

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

net/smc/af_smc.c +8 -9
index 6f3469ad54a1..8d740f588a77 100644

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

net/socket.c +6 -5
index 878155076bc0..5c5dd9f6605a 100644

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

net/vmw_vsock/virtio_transport_common.c +10 -1
index b588ccd133ea..95170c7be758 100644

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

net/vmw_vsock/vmci_transport.c +3 -1
index 443125e48f24..75bf643ff6fa 100644

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

net/wireless/nl80211.c +3 -0
index ec8265f2d568..dc862ca02e43 100644

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

net/xfrm/espintcp.c +4 -0
index a591df925352..dbf8e71ca201 100644

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

net/xfrm/xfrm_input.c +17 -8
index 8edcb32735e5..5d3633ce6ba3 100644

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

net/xfrm/xfrm_policy.c +2 -11
index dab782dcc829..5a7ec72e17b0 100644

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

scripts/Makefile.compiler +1 -1
index 638e1e729986..75376b35c469 100644

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

scripts/generate_rust_target.rs +6 -2
index 32a4e6bfa047..ae5b3a1eeb89 100644

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

security/integrity/ima/ima_kexec.c +32 -14

46 lines not on this page · raw message

sound/core/pcm_native.c +3 -4
index 23708dc02401..a57123b1d336 100644

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

sound/core/seq/seq_dummy.c +9 -6
index 783fc72c2ef6..bc11e4d1edd9 100644

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

sound/core/timer.c +10 -7
index a0dcb4ebb059..5545e2178ec1 100644

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

sound/soc/codecs/wm_adsp.c +3 -0
index e69283195f36..5d5d1c0c9b93 100644

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

sound/soc/fsl/fsl_sai.c +1 -1
index 88547621bcdb..7596bd239d92 100644

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

tools/testing/selftests/ftrace/test.d/dynevent/eprobes_syntax_errors.tc +1 -1
index 4f5e8c665156..2a680c086047 100644

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

tools/testing/selftests/net/mptcp/mptcp_join.sh +4 -0
index f2c71361bd78..4555a392d5f0 100755

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

tools/testing/selftests/ptp/testptp.c +5 -57

62 lines not on this page · raw message

tools/verification/rv/src/in_kernel.c +1 -1
index ced72950cb1e..64ae847313f6 100644

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

virt/kvm/kvm_main.c +2 -1
index 833553e0f2cc..84e6b8684ef6 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.