Skip to contentSkip to conversation

Linux 5.10.42

DISCUSSION Greg Kroah-Hartman 2 participants 3 messages Jun 3, 2021 – Jun 5, 2021 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 5.10.42 kernel.

All users of the 5.10 kernel series must upgrade.

The updated 5.10.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.10.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/userspace-api/seccomp_filter.rst                     |   16 
 Makefile                                                           |    2 
 arch/arm64/include/asm/kvm_emulate.h                               |    5 
 arch/arm64/kvm/reset.c                                             |   28 +
 arch/mips/alchemy/board-xxs1500.c                                  |    1 
 arch/mips/ralink/of.c                                              |    2 
 arch/openrisc/include/asm/barrier.h                                |    9 
 arch/x86/kvm/x86.c                                                 |    2 
 drivers/acpi/acpi_apd.c                                            |    1 
 drivers/base/core.c                                                |   37 +
 drivers/char/hpet.c                                                |    2 
 drivers/crypto/cavium/nitrox/nitrox_main.c                         |    1 
 drivers/dma/qcom/hidma_mgmt.c                                      |   17 
 drivers/gpio/gpio-cadence.c                                        |    1 
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10_3.c               |   12 
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c                         |    1 
 drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c                             |    3 
 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c                            |    1 
 drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.c                             |    2 
 drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.c                             |    2 
 drivers/gpu/drm/amd/amdgpu/jpeg_v3_0.c                             |    2 
 drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c                             |    5 
 drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c                              |    6 
 drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c                              |    2 
 drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c                              |    2 
 drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c                              |    8 
 drivers/gpu/drm/amd/display/dc/core/dc_link.c                      |   18 
 drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c                    |    9 
 drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c            |   10 
 drivers/gpu/drm/i915/display/intel_dp.c                            |    2 
 drivers/gpu/drm/meson/meson_drv.c                                  |    9 
 drivers/i2c/busses/i2c-i801.c                                      |    6 
 drivers/i2c/busses/i2c-mt65xx.c                                    |    5 
 drivers/i2c/busses/i2c-s3c2410.c                                   |    3 
 drivers/i2c/busses/i2c-sh_mobile.c                                 |    2 
 drivers/iio/adc/ad7124.c                                           |   36 -
 drivers/iio/adc/ad7192.c                                           |   19 
 drivers/iio/adc/ad7768-1.c                                         |    8 
 drivers/iio/adc/ad7793.c                                           |    1 
 drivers/iio/adc/ad7923.c                                           |    4 
 drivers/iio/dac/ad5770r.c                                          |   16 
 drivers/iio/gyro/fxas21002c_core.c                                 |    2 
 drivers/interconnect/qcom/bcm-voter.c                              |    4 
 drivers/iommu/intel/dmar.c                                         |    4 
 drivers/iommu/intel/iommu.c                                        |    7 
 drivers/iommu/intel/pasid.c                                        |    3 
 drivers/iommu/virtio-iommu.c                                       |    1 
 drivers/isdn/hardware/mISDN/hfcsusb.c                              |   17 
 drivers/isdn/hardware/mISDN/mISDNinfineon.c                        |   21 -
 drivers/md/dm-snap.c                                               |    2 
 drivers/media/dvb-frontends/sp8870.c                               |    2 
 drivers/media/usb/gspca/cpia1.c                                    |    6 
 drivers/media/usb/gspca/m5602/m5602_mt9m111.c                      |   16 
 drivers/media/usb/gspca/m5602/m5602_po1030.c                       |   14 
 drivers/misc/kgdbts.c                                              |    3 
 drivers/misc/lis3lv02d/lis3lv02d.h                                 |    1 
 drivers/misc/mei/interrupt.c                                       |    3 
 drivers/net/caif/caif_serial.c                                     |    3 
 drivers/net/dsa/mt7530.c                                           |    8 
 drivers/net/dsa/sja1105/sja1105_dynamic_config.c                   |   23 -
 drivers/net/dsa/sja1105/sja1105_main.c                             |   75 ++-
 drivers/net/ethernet/broadcom/bnx2.c                               |    2 
 drivers/net/ethernet/broadcom/bnxt/bnxt.c                          |   12 
 drivers/net/ethernet/broadcom/bnxt/bnxt.h                          |   10 
 drivers/net/ethernet/cavium/liquidio/lio_main.c                    |   27 -
 drivers/net/ethernet/cavium/liquidio/lio_vf_main.c                 |   27 -
 drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c                  |    2 
 drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c                    |    2 
 drivers/net/ethernet/chelsio/inline_crypto/ch_ktls/chcr_ktls.c     |   80 +++
 drivers/net/ethernet/chelsio/inline_crypto/ch_ktls/chcr_ktls.h     |    2 
 drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_io.c        |    6 
 drivers/net/ethernet/freescale/fec_main.c                          |   11 
 drivers/net/ethernet/fujitsu/fmvj18x_cs.c                          |    4 
 drivers/net/ethernet/google/gve/gve_main.c                         |   21 -
 drivers/net/ethernet/google/gve/gve_tx.c                           |    8 
 drivers/net/ethernet/hisilicon/hns3/hns3_enet.c                    |   26 -
 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c             |    4 
 drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c                     |   16 
 drivers/net/ethernet/lantiq_xrx200.c                               |   14 
 drivers/net/ethernet/marvell/mvpp2/mvpp2.h                         |   22 +
 drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c                    |   54 ++
 drivers/net/ethernet/mediatek/mtk_eth_soc.c                        |   67 ++-
 drivers/net/ethernet/mediatek/mtk_eth_soc.h                        |   24 +
 drivers/net/ethernet/mellanox/mlx4/en_ethtool.c                    |    4 
 drivers/net/ethernet/mellanox/mlx4/port.c                          |  107 +++++
 drivers/net/ethernet/mellanox/mlx5/core/en/rep/bond.c              |    2 
 drivers/net/ethernet/mellanox/mlx5/core/en/rep/tc.c                |    2 
 drivers/net/ethernet/mellanox/mlx5/core/en_fs.c                    |    1 
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c                  |    9 
 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c                    |   10 
 drivers/net/ethernet/mellanox/mlx5/core/eswitch.c                  |    1 
 drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_termtbl.c |   38 -
 drivers/net/ethernet/mellanox/mlx5/core/lag_mp.c                   |    6 
 drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.c                 |    3 
 drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.h                 |    5 
 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c                  |    9 
 drivers/net/ethernet/ti/netcp_core.c                               |    4 
 drivers/net/ipa/ipa.h                                              |    2 
 drivers/net/ipa/ipa_mem.c                                          |    3 
 drivers/net/mdio/mdio-octeon.c                                     |    2 
 drivers/net/mdio/mdio-thunder.c                                    |    1 
 drivers/net/usb/hso.c                                              |   45 +-
 drivers/net/usb/smsc75xx.c                                         |    8 
 drivers/net/wireless/ath/ath10k/htt.h                              |    1 
 drivers/net/wireless/ath/ath10k/htt_rx.c                           |  201 +++++++++-
 drivers/net/wireless/ath/ath10k/rx_desc.h                          |   14 
 drivers/net/wireless/ath/ath11k/dp_rx.c                            |   18 
 drivers/net/wireless/ath/ath11k/dp_rx.h                            |    1 
 drivers/net/wireless/ath/ath11k/mac.c                              |    6 
 drivers/net/wireless/ath/ath6kl/debug.c                            |    5 
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c          |    8 
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bus.h             |   19 
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c            |   42 --
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c            |    9 
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.h            |    5 
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c             |    8 
 drivers/net/wireless/marvell/libertas/mesh.c                       |   33 -
 drivers/nvme/target/tcp.c                                          |    2 
 drivers/platform/x86/hp-wireless.c                                 |    2 
 drivers/platform/x86/hp_accel.c                                    |   22 +
 drivers/platform/x86/intel_punit_ipc.c                             |    1 
 drivers/platform/x86/touchscreen_dmi.c                             |   43 ++
 drivers/s390/cio/vfio_ccw_cp.c                                     |    4 
 drivers/scsi/BusLogic.c                                            |    6 
 drivers/scsi/BusLogic.h                                            |    2 
 drivers/scsi/libsas/sas_port.c                                     |    4 
 drivers/scsi/pm8001/pm8001_hwi.c                                   |   10 
 drivers/scsi/pm8001/pm8001_init.c                                  |    2 
 drivers/scsi/pm8001/pm8001_sas.c                                   |    7 
 drivers/scsi/pm8001/pm80xx_hwi.c                                   |   12 
 drivers/scsi/ufs/ufs-mediatek.c                                    |    4 
 drivers/spi/spi-fsl-dspi.c                                         |    4 
 drivers/spi/spi.c                                                  |   23 -
 drivers/staging/emxx_udc/emxx_udc.c                                |    4 
 drivers/staging/iio/cdc/ad7746.c                                   |    1 
 drivers/thermal/intel/int340x_thermal/int340x_thermal_zone.c       |    4 
 drivers/thermal/intel/x86_pkg_temp_thermal.c                       |    2 
 drivers/thunderbolt/dma_port.c                                     |   11 
 drivers/thunderbolt/usb4.c                                         |    9 
 drivers/tty/serial/8250/8250.h                                     |    1 
 drivers/tty/serial/8250/8250_aspeed_vuart.c                        |    1 
 drivers/tty/serial/8250/8250_dw.c                                  |    1 
 drivers/tty/serial/8250/8250_pci.c                                 |   47 +-
 drivers/tty/serial/8250/8250_port.c                                |   12 
 drivers/tty/serial/max310x.c                                       |    2 
 drivers/tty/serial/rp2.c                                           |   52 --
 drivers/tty/serial/serial-tegra.c                                  |    2 
 drivers/tty/serial/serial_core.c                                   |    8 
 drivers/tty/serial/sh-sci.c                                        |    4 
 drivers/usb/core/devio.c                                           |   11 
 drivers/usb/core/hub.h                                             |    6 
 drivers/usb/dwc3/gadget.c                                          |   13 
 drivers/usb/gadget/udc/renesas_usb3.c                              |    5 
 drivers/usb/misc/trancevibrator.c                                  |    4 
 drivers/usb/misc/uss720.c                                          |    1 
 drivers/usb/serial/ftdi_sio.c                                      |    3 
 drivers/usb/serial/ftdi_sio_ids.h                                  |    7 
 drivers/usb/serial/option.c                                        |    4 
 drivers/usb/serial/pl2303.c                                        |    1 
 drivers/usb/serial/pl2303.h                                        |    1 
 drivers/usb/serial/ti_usb_3410_5052.c                              |    3 
 drivers/usb/typec/mux.c                                            |    7 
 drivers/vdpa/mlx5/net/mlx5_vnet.c                                  |   19 
 fs/afs/dir.c                                                       |    4 
 fs/block_dev.c                                                     |    3 
 fs/btrfs/extent_io.c                                               |    7 
 fs/btrfs/reflink.c                                                 |    5 
 fs/btrfs/tree-log.c                                                |    2 
 fs/cifs/smb2pdu.c                                                  |   13 
 fs/nfs/filelayout/filelayout.c                                     |    2 
 fs/nfs/nfs4file.c                                                  |    2 
 fs/nfs/nfs4proc.c                                                  |    4 
 fs/nfs/pagelist.c                                                  |   21 -
 fs/nfs/pnfs.c                                                      |   15 
 fs/proc/base.c                                                     |    4 
 include/linux/bits.h                                               |    2 
 include/linux/const.h                                              |    8 
 include/linux/device.h                                             |    6 
 include/linux/minmax.h                                             |   10 
 include/linux/mlx5/mpfs.h                                          |   18 
 include/linux/sunrpc/xprt.h                                        |    2 
 include/net/cfg80211.h                                             |    4 
 include/net/netfilter/nf_flow_table.h                              |    1 
 include/net/pkt_cls.h                                              |   11 
 include/net/pkt_sched.h                                            |    7 
 include/net/sch_generic.h                                          |   35 +
 include/net/sock.h                                                 |    4 
 kernel/bpf/verifier.c                                              |   12 
 kernel/seccomp.c                                                   |   30 -
 net/bluetooth/cmtp/core.c                                          |    5 
 net/core/dev.c                                                     |   29 +
 net/core/filter.c                                                  |    1 
 net/core/neighbour.c                                               |    4 
 net/core/sock.c                                                    |    8 
 net/dsa/master.c                                                   |    5 
 net/dsa/slave.c                                                    |   12 
 net/hsr/hsr_device.c                                               |    2 
 net/hsr/hsr_forward.c                                              |   30 +
 net/hsr/hsr_forward.h                                              |    8 
 net/hsr/hsr_main.h                                                 |    4 
 net/hsr/hsr_slave.c                                                |   11 
 net/ipv6/mcast.c                                                   |    3 
 net/ipv6/reassembly.c                                              |    4 
 net/mac80211/ieee80211_i.h                                         |   36 -
 net/mac80211/iface.c                                               |   11 
 net/mac80211/key.c                                                 |    7 
 net/mac80211/key.h                                                 |    2 
 net/mac80211/rx.c                                                  |  150 +++++--
 net/mac80211/sta_info.c                                            |    6 
 net/mac80211/sta_info.h                                            |   33 +
 net/mac80211/wpa.c                                                 |   13 
 net/mptcp/options.c                                                |    1 
 net/mptcp/protocol.c                                               |    6 
 net/mptcp/subflow.c                                                |    1 
 net/netfilter/nf_flow_table_core.c                                 |    3 
 net/netfilter/nf_flow_table_offload.c                              |    7 
 net/netfilter/nft_set_pipapo.c                                     |    4 
 net/netfilter/nft_set_pipapo.h                                     |    2 
 net/netfilter/nft_set_pipapo_avx2.c                                |    3 
 net/openvswitch/meter.c                                            |    8 
 net/packet/af_packet.c                                             |   10 
 net/sched/cls_api.c                                                |    2 
 net/sched/sch_dsmark.c                                             |    3 
 net/sched/sch_fq_pie.c                                             |   19 
 net/sched/sch_generic.c                                            |   50 ++
 net/smc/smc_ism.c                                                  |   26 -
 net/sunrpc/clnt.c                                                  |    7 
 net/sunrpc/xprt.c                                                  |   40 +
 net/sunrpc/xprtrdma/transport.c                                    |   12 
 net/sunrpc/xprtrdma/verbs.c                                        |   18 
 net/sunrpc/xprtrdma/xprt_rdma.h                                    |    1 
 net/tipc/core.c                                                    |    2 
 net/tipc/core.h                                                    |    2 
 net/tipc/msg.c                                                     |    9 
 net/tipc/socket.c                                                  |    5 
 net/tipc/udp_media.c                                               |    2 
 net/tls/tls_sw.c                                                   |   11 
 net/wireless/util.c                                                |    7 
 samples/bpf/xdpsock_user.c                                         |    2 
 scripts/clang-tools/gen_compile_commands.py                        |    2 
 scripts/clang-tools/run-clang-tools.py                             |    2 
 sound/isa/gus/gus_main.c                                           |   13 
 sound/isa/sb/sb16_main.c                                           |   10 
 sound/pci/hda/patch_realtek.c                                      |   46 ++
 sound/soc/codecs/cs35l33.c                                         |    1 
 sound/soc/codecs/cs42l42.c                                         |    3 
 sound/soc/codecs/cs43130.c                                         |   28 -
 sound/soc/qcom/lpass-cpu.c                                         |   12 
 sound/usb/mixer_quirks.c                                           |    2 
 sound/usb/mixer_scarlett_gen2.c                                    |   81 ++--
 sound/usb/mixer_scarlett_gen2.h                                    |    2 
 tools/bpf/bpftool/Documentation/bpftool-cgroup.rst                 |    4 
 tools/bpf/bpftool/Documentation/bpftool-prog.rst                   |    2 
 tools/bpf/bpftool/bash-completion/bpftool                          |    6 
 tools/bpf/bpftool/cgroup.c                                         |    3 
 tools/bpf/bpftool/prog.c                                           |    2 
 tools/include/linux/bits.h                                         |    2 
 tools/include/linux/const.h                                        |    8 
 tools/perf/pmu-events/jevents.c                                    |    2 
 tools/perf/scripts/python/exported-sql-viewer.py                   |   12 
 tools/perf/util/intel-pt-decoder/intel-pt-decoder.c                |    6 
 tools/perf/util/intel-pt.c                                         |    5 
 tools/testing/selftests/gpio/Makefile                              |   24 -
 tools/testing/selftests/tc-testing/tc-tests/qdiscs/fq_pie.json     |    8 
 virt/lib/irqbypass.c                                               |   16 
 265 files changed, 2244 insertions(+), 937 deletions(-)

Adrian Hunter (5):
perf intel-pt: Fix sample instruction bytes
perf intel-pt: Fix transaction abort handling
perf scripts python: exported-sql-viewer.py: Fix copy to clipboard from Top Calls by elapsed Time report perf scripts python: exported-sql-viewer.py: Fix Array TypeError
perf scripts python: exported-sql-viewer.py: Fix warning display

Ajish Koshy (1):

      scsi: pm80xx: Fix drives missing during rmmod/insmod loop

Alaa Emad (2):
media: dvb: Add check on sp8870_readreg return
media: gspca: mt9m111: Check write_bridge for timeout

Alan Stern (1):
USB: usbfs: Don't WARN about excessively large memory allocations

Aleksander Jan Bajkowski (1):
net: lantiq: fix memory corruption in RX ring

Alex Elder (1):
net: ipa: memory region array is variable size

Alexander Usyskin (1):
mei: request autosuspend after sending rx flow control

Alexandru Ardelean (1):
iio: adc: ad7192: handle regulator voltage error first

Andrew Jeffery (1):
serial: 8250: Add UART_BUG_TXRACE workaround for Aspeed VUART

Andy Gospodarek (1):
bnxt_en: Include new P5 HV definition in VF check.

Andy Shevchenko (3):
iio: dac: ad5770r: Put fwnode in error case during ->probe() platform/x86: intel_punit_ipc: Append MODULE_DEVICE_TABLE for ACPI
spi: Assume GPIO CS active high in ACPI case

Anirudh Rayabharam (3):
net: fujitsu: fix potential null-ptr-deref net/smc: properly handle workqueue allocation failure
ath6kl: return error code in ath6kl_wmi_set_roam_lrssi_cmd()

Anna Schumaker (1):
NFSv4: Fix a NULL pointer dereference in pnfs_mark_matching_lsegs_return()

Ariel Levkovich (1):
net/mlx5: Set term table as an unmanaged flow table

Atul Gopinathan (1):

      serial: max310x: unregister uart driver in case of failure and abort

Aurelien Aptel (1):

      cifs: set server->cipher_type to AES-128-CCM for SMB3.0

Aya Levin (1):
net/mlx5e: Fix error path of updating netdev queues

Ayush Sawal (1):
cxgb4/ch_ktls: Clear resources when pf4 device is removed

Bixuan Cui (1):
iommu/virtio: Add missing MODULE_DEVICE_TABLE

Bjorn Andersson (1):
usb: typec: mux: Fix matching with typec_altmode_desc

Boris Burkov (1):
btrfs: return whole extents in fiemap

Catherine Sullivan (2):
gve: Check TX QPL was actually assigned
gve: Upgrade memory barrier in poll routine

Chinmay Agarwal (1):
neighbour: Prevent Race condition in neighbour subsytem

Chris Park (1):
drm/amd/display: Disconnect non-DP with no EDID

Christian Gmeiner (1):
serial: 8250_pci: handle FL_NOIRQ board flag

Christian König (1):
drm/amdgpu: stop touching sched.ready in the backend

Christophe JAILLET (4):
spi: spi-fsl-dspi: Fix a resource leak in an error handling path
net: netcp: Fix an error message
net: mdio: thunder: Fix a double free issue in the .remove function
net: mdio: octeon: Fix some double free issues

Chunfeng Yun (1):
usb: core: reduce power-on-good delay time of root hub

Colin Ian King (1):
serial: tegra: Fix a mask operation that is always true

DENG Qingfang (1):
net: dsa: mt7530: fix VLAN traffic leaks

Dan Carpenter (7):
NFS: fix an incorrect limit in filelayout_decode_layout()
net: dsa: fix a crash if ->get_sset_count() fails chelsio/chtls: unlock on error in chtls_pt_recvmsg()
net: hso: check for allocation failure in hso_create_bulk_serial_device()
staging: emxx_udc: fix loop in _nbu2ss_nuke()
ASoC: cs35l33: fix an error code in probe()
scsi: libsas: Use _safe() loop in sas_resume_port()

Daniele Palmas (1):

      USB: serial: option: add Telit LE910-S1 compositions 0x7010, 0x7011

David Awogbemila (3):
gve: Update mgmt_msix_idx if num_ntfy changes
gve: Add NULL pointer checks when freeing irqs.
gve: Correct SKB queue index validation.

David Howells (1):
afs: Fix the nlink handling of dir-over-dir rename

Davide Caratti (2):
net/sched: fq_pie: re-factor fix for fq_pie endless loop net/sched: fq_pie: fix OOB access in the traffic path

Dima Chumak (2):
net/mlx5e: Fix multipath lag activation net/mlx5e: Fix nullptr in add_vlan_push_action()

Dominik Andreas Schorpp (1):
USB: serial: ftdi_sio: add IDs for IDS GmbH Products

Dongliang Mu (1):
misc/uss720: fix memory leak in uss720_probe

Du Cheng (1):

      net: caif: remove BUG_ON(dev == NULL) in caif_xmit

Eli Cohen (1):
{net,vdpa}/mlx5: Configure interface MAC into mpfs L2 table

Eric Farman (1):
vfio-ccw: Check initialized flag in cp_init()

Evan Quan (1):
drm/amd/pm: correct MGpuFanBoost setting

Felix Fietkau (1):
perf jevents: Fix getting maximum number of fds

Filipe Manana (1):
btrfs: release path before starting transaction when cloning inline extent

Francesco Ruggeri (1):
ipv6: record frag_max_size in atomic fragments in input path

Fugang Duan (1):
net: fec: fix the potential memory leak in fec_enet_init()

Geert Uytterhoeven (2):
serial: sh-sci: Fix off-by-one error in FIFO threshold register setting
i2c: sh_mobile: Use new clock calculation formulas for RZ/G2E

Geoffrey D. Bennett (2):
ALSA: usb-audio: scarlett2: Fix device hang with ehci-pci
ALSA: usb-audio: scarlett2: Improve driver startup messages

George McCollister (1):
net: hsr: fix mac_len checks

Greg Kroah-Hartman (29):
kgdb: fix gcc-11 warnings harder
Revert "crypto: cavium/nitrox - add an error message to explain the failure of pci_request_mem_regions" Revert "media: usb: gspca: add a missed check for goto_low_power"
Revert "ALSA: sb: fix a missing check of snd_ctl_add"
Revert "serial: max310x: pass return value of spi_register_driver"
Revert "net: fujitsu: fix a potential NULL pointer dereference"
Revert "net/smc: fix a NULL pointer dereference"
Revert "net: caif: replace BUG_ON with recovery code"
Revert "char: hpet: fix a missing check of ioremap"
Revert "ALSA: gus: add a check of the status of snd_ctl_add"
Revert "ALSA: usx2y: Fix potential NULL pointer dereference"
Revert "isdn: mISDNinfineon: fix potential NULL pointer dereference"
Revert "ath6kl: return error code in ath6kl_wmi_set_roam_lrssi_cmd()"
Revert "isdn: mISDN: Fix potential NULL pointer dereference of kzalloc"
Revert "dmaengine: qcom_hidma: Check for driver register failure"
Revert "libertas: add checks for the return value of sysfs_create_group"
libertas: register sysfs groups properly
Revert "ASoC: cs43130: fix a NULL pointer dereference"
ASoC: cs43130: handle errors in cs43130_probe() properly
Revert "media: dvb: Add check on sp8870_readreg"
Revert "media: gspca: mt9m111: Check write_bridge for timeout"
Revert "media: gspca: Check the return value of write_bridge for timeout"
media: gspca: properly check for errors in po1030_probe()
Revert "net: liquidio: fix a NULL pointer dereference"
Revert "brcmfmac: add a check for the status of usb_register"
brcmfmac: properly check for bus register errors
i915: fix build warning in intel_dp_get_link_status()
Revert "Revert "ALSA: usx2y: Fix potential NULL pointer dereference""
Linux 5.10.42

Gulam Mohamed (1):
block: fix a race between del_gendisk and BLKRRPART

Hans de Goede (1):
platform/x86: touchscreen_dmi: Add info for the Chuwi Hi10 Pro (CWI529) tablet

Hoang Le (1):
Revert "net:tipc: Fix a double free in tipc_sk_mcast_rcv"

Hou Pu (1):
nvmet-tcp: fix inline data size comparison in nvmet_tcp_queue_response

Hui Wang (2):
ALSA: hda/realtek: the bass speaker can't output sound on Yoga 9i
ALSA: hda/realtek: Headphone volume is controlled by Front mixer

James Zhu (4):
drm/amdgpu/vcn1: add cancel_delayed_work_sync before power gate drm/amdgpu/vcn2.0: add cancel_delayed_work_sync before power gate drm/amdgpu/vcn2.5: add cancel_delayed_work_sync before power gate drm/amdgpu/jpeg2.0: add cancel_delayed_work_sync before power gate

Jean Delvare (1):
i2c: i801: Don't generate an interrupt on bus reset

Jeremy Szu (4):
ALSA: hda/realtek: fix mute/micmute LEDs for HP 855 G8
ALSA: hda/realtek: fix mute/micmute LEDs and speaker for HP Zbook G8
ALSA: hda/realtek: fix mute/micmute LEDs and speaker for HP Zbook Fury 15 G8
ALSA: hda/realtek: fix mute/micmute LEDs and speaker for HP Zbook Fury 17 G8

Jesse Brandeburg (1):
ixgbe: fix large MTU request from VF

Jian Shen (1):
net: hns3: put off calling register_netdev() until client initialize complete

Jianbo Liu (1):
net/mlx5: Set reformat action when needed for termination rules

Jiaran Zhang (1):
net: hns3: fix incorrect resp_msg issue

Jim Ma (1):
tls splice: check SPLICE_F_NONBLOCK instead of MSG_DONTWAIT

Jingwen Chen (1):
drm/amd/amdgpu: fix refcount leak

Joakim Zhang (1):
net: stmmac: Fix MAC WoL not working if PHY does not support WoL

Johan Hovold (3):
net: hso: fix control-request directions
USB: trancevibrator: fix control-request direction
net: hso: bail out on interrupt URB allocation failure

Johannes Berg (5):
mac80211: drop A-MSDUs on old ciphers
mac80211: add fragment cache to sta_info
mac80211: check defrag PN against current frame
mac80211: prevent attacks on TKIP/WEP as well
mac80211: do not accept/forward invalid EAPOL frames

Jonathan Cameron (5):
iio: adc: ad7768-1: Fix too small buffer passed to iio_push_to_buffers_with_timestamp()
iio: adc: ad7124: Fix missbalanced regulator enable / disable on error.
iio: adc: ad7124: Fix potential overflow due to non sequential channel numbers
iio: adc: ad7923: Fix undersized rx buffer.
iio: adc: ad7192: Avoid disabling a clock that was never enabled.

Josef Bacik (1):
btrfs: do not BUG_ON in link_to_fixup_dir

Julian Wiedmann (1):
net/smc: remove device from smcd_dev_list after failed device_add()

Jussi Maki (1):
bpf: Set mac_len in bpf_skb_change_head

Kai-Heng Feng (1):
platform/x86: hp_accel: Avoid invoking _INI to speed up resume

Kees Cook (1):
proc: Check /proc/$pid/attr/ writes against file opener

Kevin Wang (1):
drm/amdkfd: correct sienna_cichlid SDMA RLC register offset error

Krzysztof Kozlowski (1):
i2c: s3c2410: fix possible NULL pointer deref on read message after write

Lang Yu (1):
drm/amd/amdgpu: fix a potential deadlock in gpu reset

Liu Jian (1):
bpftool: Add sock_release help info for cgroup attach/prog load command

Lu Baolu (1):
iommu/vt-d: Use user privilege for RID2PASID translation

Lucas Stankus (1):
staging: iio: cdc: ad7746: avoid overwrite of num_channels

Magnus Karlsson (1):
samples/bpf: Consider frame size in tx_only of xdpsock sample

Marc Zyngier (1):
KVM: arm64: Prevent mixed-width VM creation

Masahiro Yamada (1):
scripts/clang-tools: switch explicitly to Python 3

Mathias Nyman (2):
thunderbolt: usb4: Fix NVM read buffer bounds and offset issue
thunderbolt: dma_port: Fix NVM read buffer bounds and offset issue

Mathy Vanhoef (4):
mac80211: assure all fragments are encrypted
mac80211: prevent mixed key and fragment cache attacks
mac80211: properly handle A-MSDUs that start with an RFC 1042 header
cfg80211: mitigate A-MSDU aggregation attacks

Matt Wang (1):
scsi: BusLogic: Fix 64-bit system enumeration error for Buslogic

Maximilian Luz (1):
serial: 8250_dw: Add device HID for new AMD UART controller

Michael Chan (1):
bnxt_en: Fix context memory setup for 64K page size.

Michael Ellerman (3):
selftests/gpio: Use TEST_GEN_PROGS_EXTENDED selftests/gpio: Move include of lib.mk up selftests/gpio: Fix build when source tree is read only

Mikulas Patocka (1):
dm snapshot: properly fix a crash when an origin has no snapshots

Neil Armstrong (1):
drm/meson: fix shutdown crash when component not probed

NeilBrown (1):
SUNRPC in case of backlog, hand free slots directly to waiting task

Ondrej Mosnacek (1):
serial: core: fix suspicious security_locked_down() call

Paolo Abeni (4):
mptcp: avoid error message on infinite mapping
mptcp: drop unconditional pr_warn on bad opt
mptcp: fix data stream corruption
net: really orphan skbs tied to closing sk

Pavel Skripkin (1):
net: usb: fix memory leak in smsc75xx_bind

Peter Ujfalusi (1):
ALSA: hda/realtek: Chain in pop reduction fixup for ThinkStation P340

Peter Wang (1):
scsi: ufs: ufs-mediatek: Fix power down spec violation

Peter Zijlstra (1):
openrisc: Define memory barrier mb

Phillip Potter (3):
isdn: mISDNinfineon: check/cleanup ioremap failure correctly in setup_io
isdn: mISDN: correctly handle ph_info allocation failure in hfcsusb_ph_info
dmaengine: qcom_hidma: comment platform_driver_register call

Qii Wang (1):
i2c: mediatek: Disable i2c start_en and clear intr_stat brfore reset

Rafael J. Wysocki (1):
drivers: base: Fix device link removal

Raju Rangoju (1):
cxgb4: avoid accessing registers when clearing filters

Randy Dunlap (2):
MIPS: alchemy: xxs1500: add gpio-au1000.h header file
MIPS: ralink: export rt_sysc_membase for rt2880_wdt.c

Randy Wright (1):
serial: 8250_pci: Add support for new HPE serial device

Richard Fitzgerald (1):
ASoC: cs42l42: Regmap must use_single_read/write

Richard Sanger (1):
net: packetmmap: fix only tx timestamp on request

Rikard Falkeborn (1):
linux/bits.h: fix compilation error with GENMASK

Roi Dayan (2):
net/mlx5e: Fix null deref accessing lag dev
netfilter: flowtable: Remove redundant hw refresh bit

Rolf Eike Beer (1):
iommu/vt-d: Fix sysfs leak in alloc_iommu()

Rui Miguel Silva (1):
iio: gyro: fxas21002c: balance runtime power in error path

Saeed Mahameed (1):
net/mlx5e: reset XPS on error flow if netdev isn't registered yet

Sargun Dhillon (2):
Documentation: seccomp: Fix user notification documentation
seccomp: Refactor notification handler to prepare for new semantics

Sean MacLennan (1):

      USB: serial: ti_usb_3410_5052: add startech.com device id

Shyam Sundar S K (1):
platform/x86: hp-wireless: add AMD's hardware id to the supported list

Srinivas Pandruvada (1):
thermal/drivers/intel: Initialize RW trip to THERMAL_TEMP_INVALID

Sriram R (2):
ath10k: Validate first subframe of A-MSDU before processing the list
ath11k: Clear the fragment cache during key install

Stefan Chulski (1):
net: mvpp2: add buffer header handling in RX

Stefan Roese (1):
net: ethernet: mtk_eth_soc: Fix packet statistics support for MT7628/88

Stefano Brivio (1):
netfilter: nft_set_pipapo_avx2: Add irq_fpu_usable() check, fallback to non-AVX2 version

Stephen Boyd (1):
ASoC: qcom: lpass-cpu: Use optional clk APIs

Steve French (1):
SMB3: incorrect file id in requests compounded with open

Subbaraman Narayanamurthy (1):
interconnect: qcom: bcm-voter: add a missing of_node_put()

Taehee Yoo (2):
mld: fix panic in mld_newpack()
sch_dsmark: fix a NULL deref in qdisc_reset()

Tao Liu (1):
openvswitch: meter: fix race when getting now_ms.

Teava Radu (1):
platform/x86: touchscreen_dmi: Add info for the Mediacom Winpad 7.0 W700 tablet

Thadeu Lima de Souza Cascardo (1):
Bluetooth: cmtp: fix file refcount when cmtp_attach_device fails

Thinh Nguyen (1):
usb: dwc3: gadget: Properly track pending and queued SG

Tom Seewald (2):
char: hpet: add checks after calling ioremap
net: liquidio: Add missing null pointer checks

Trond Myklebust (3):
NFS: Fix an Oopsable condition in __nfs_pageio_add_request()
NFS: Don't corrupt the value of pg_bytes_written in nfs_do_recoalesce()
SUNRPC: More fixes for backlog congestion

Vlad Buslov (1):
net: zero-initialize tc skb extension on allocation

Vladimir Oltean (7):
net: dsa: sja1105: update existing VLANs from the bridge VLAN list
net: dsa: sja1105: use 4095 as the private VLAN for untagged traffic
net: dsa: sja1105: error out on unsupported PHY mode
net: dsa: sja1105: add error handling in sja1105_setup()
net: dsa: sja1105: call dsa_unregister_switch when allocating memory fails
net: dsa: sja1105: fix VL lookup command packing for P/Q/R/S
net: dsa: fix error code getting shifted with 4 in dsa_slave_get_sset_count

Vladyslav Tarasiuk (1):
net/mlx4: Fix EEPROM dump support

Wanpeng Li (1):
KVM: X86: Fix vCPU preempted state from guest's point of view

Wen Gong (6):
mac80211: extend protection against mixed key and fragment cache attacks
ath10k: add CCMP PN replay protection for fragmented frames for PCIe
ath10k: drop fragments with multicast DA for PCIe
ath10k: drop fragments with multicast DA for SDIO
ath10k: drop MPDU which has discard flag set by firmware for SDIO
ath10k: Fix TKIP Michael MIC verification for PCIe

Xin Long (2):
tipc: wait and exit until all work queues are done
tipc: skb_linearize the head skb when reassembling msgs

Yinjun Zhang (1):
bpf, offload: Reorder offload callback 'prepare' in verifier

Yoshihiro Shimoda (1):
usb: gadget: udc: renesas_usb3: Fix a race in usb3_start_pipen()

YueHaibing (1):
iio: adc: ad7793: Add missing error code in ad7793_setup()

Yunsheng Lin (4):
net: sched: fix packet stuck problem for lockless qdisc
net: sched: fix tx action rescheduling issue during deactivation
net: sched: fix tx action reschedule issue with stopped queue
net: hns3: check the return of skb_checksum_help()

Zhang Xiaoxu (1):
NFSv4: Fix v4.0/v4.1 SEEK_DATA return -ENOTSUPP when set NFS_V4_2 config

Zhen Lei (1):
net: bnx2: Fix error return code in bnx2_init_board()

Zheyu Ma (1):
serial: rp2: use 'request_firmware' instead of 'request_firmware_nowait'

Zhu Lingshan (1):
Revert "irqbypass: do not start cons/prod when failed connect"

Zolton Jheng (1):
USB: serial: pl2303: add device id for ADLINK ND-6530 GC

Zou Wei (2):
gpio: cadence: Add missing MODULE_DEVICE_TABLE
interconnect: qcom: Add missing MODULE_DEVICE_TABLE

kernel test robot (1):
ALSA: usb-audio: scarlett2: snd_scarlett_gen2_controls_create() can be static

xinhui pan (1):
drm/amdgpu: Fix a use-after-free

zhouchuangao (1):
fs/nfs: Use fatal_signal_pending instead of signal_pending

author maintainer
#1 lore raw
Documentation/userspace-api/seccomp_filter.rst +8 -8
index bd9165241b6c..6efb41cc8072 100644
@@ -250,14 +250,14 @@ Users can read via ``ioctl(SECCOMP_IOCTL_NOTIF_RECV)``  (or ``poll()``) on a
 seccomp notification fd to receive a ``struct seccomp_notif``, which contains
 five members: the input length of the structure, a unique-per-filter ``id``,
 the ``pid`` of the task which triggered this request (which may be 0 if the
-task is in a pid ns not visible from the listener's pid namespace), a ``flags``
-member which for now only has ``SECCOMP_NOTIF_FLAG_SIGNALED``, representing
-whether or not the notification is a result of a non-fatal signal, and the
-``data`` passed to seccomp. Userspace can then make a decision based on this
-information about what to do, and ``ioctl(SECCOMP_IOCTL_NOTIF_SEND)`` a
-response, indicating what should be returned to userspace. The ``id`` member of
-``struct seccomp_notif_resp`` should be the same ``id`` as in ``struct
-seccomp_notif``.
+task is in a pid ns not visible from the listener's pid namespace). The
+notification also contains the ``data`` passed to seccomp, and a filters flag.
+The structure should be zeroed out prior to calling the ioctl.
+
+Userspace can then make a decision based on this information about what to do,
+and ``ioctl(SECCOMP_IOCTL_NOTIF_SEND)`` a response, indicating what should be
+returned to userspace. The ``id`` member of ``struct seccomp_notif_resp`` should
+be the same ``id`` as in ``struct seccomp_notif``.
 
 It is worth noting that ``struct seccomp_data`` contains the values of register
 arguments to the syscall, but does not contain pointers to memory. The task's
Makefile +1 -1
index 81011c92dd46..290903d0e7da 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 10
-SUBLEVEL = 41
+SUBLEVEL = 42
 EXTRAVERSION =
 NAME = Dare mighty things
 
arch/arm64/include/asm/kvm_emulate.h +5 -0
index 00bc6f1234ba..472122d731b0 100644
@@ -505,4 +505,9 @@ static __always_inline void __kvm_skip_instr(struct kvm_vcpu *vcpu)
 	write_sysreg_el2(*vcpu_pc(vcpu), SYS_ELR);
 }
 
+static inline bool vcpu_has_feature(struct kvm_vcpu *vcpu, int feature)
+{
+	return test_bit(feature, vcpu->arch.features);
+}
+
 #endif /* __ARM64_KVM_EMULATE_H__ */
arch/arm64/kvm/reset.c +24 -4
index 53a127d3e460..b969c2157ad2 100644
@@ -223,6 +223,25 @@ static int kvm_vcpu_enable_ptrauth(struct kvm_vcpu *vcpu)
 	return 0;
 }
 
+static bool vcpu_allowed_register_width(struct kvm_vcpu *vcpu)
+{
+	struct kvm_vcpu *tmp;
+	bool is32bit;
+	int i;
+
+	is32bit = vcpu_has_feature(vcpu, KVM_ARM_VCPU_EL1_32BIT);
+	if (!cpus_have_const_cap(ARM64_HAS_32BIT_EL1) && is32bit)
+		return false;
+
+	/* Check that the vcpus are either all 32bit or all 64bit */
+	kvm_for_each_vcpu(i, tmp, vcpu->kvm) {
+		if (vcpu_has_feature(tmp, KVM_ARM_VCPU_EL1_32BIT) != is32bit)
+			return false;
+	}
+
+	return true;
+}
+
 /**
  * kvm_reset_vcpu - sets core registers and sys_regs to reset value
  * @vcpu: The VCPU pointer
@@ -274,13 +293,14 @@ int kvm_reset_vcpu(struct kvm_vcpu *vcpu)
 		}
 	}
 
+	if (!vcpu_allowed_register_width(vcpu)) {
+		ret = -EINVAL;
+		goto out;
+	}
+
 	switch (vcpu->arch.target) {
 	default:
 		if (test_bit(KVM_ARM_VCPU_EL1_32BIT, vcpu->arch.features)) {
-			if (!cpus_have_const_cap(ARM64_HAS_32BIT_EL1)) {
-				ret = -EINVAL;
-				goto out;
-			}
 			pstate = VCPU_RESET_PSTATE_SVC;
 		} else {
 			pstate = VCPU_RESET_PSTATE_EL1;
arch/mips/alchemy/board-xxs1500.c +1 -0
index b184baa4e56a..f175bce2987f 100644
@@ -18,6 +18,7 @@
 #include <asm/reboot.h>
 #include <asm/setup.h>
 #include <asm/mach-au1x00/au1000.h>
+#include <asm/mach-au1x00/gpio-au1000.h>
 #include <prom.h>
 
 const char *get_system_type(void)
arch/mips/ralink/of.c +2 -0
index cbae9d23ab7f..a971f1aca096 100644
@@ -8,6 +8,7 @@
 
 #include <linux/io.h>
 #include <linux/clk.h>
+#include <linux/export.h>
 #include <linux/init.h>
 #include <linux/sizes.h>
 #include <linux/of_fdt.h>
@@ -25,6 +26,7 @@
 
 __iomem void *rt_sysc_membase;
 __iomem void *rt_memc_membase;
+EXPORT_SYMBOL_GPL(rt_sysc_membase);
 
 __iomem void *plat_of_remap_node(const char *node)
 {
arch/openrisc/include/asm/barrier.h new file +9 -0
new file mode 100644
index 000000000000..7538294721be
@@ -0,0 +1,9 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef __ASM_BARRIER_H
+#define __ASM_BARRIER_H
+
+#define mb() asm volatile ("l.msync" ::: "memory")
+
+#include <asm-generic/barrier.h>
+
+#endif /* __ASM_BARRIER_H */
arch/x86/kvm/x86.c +2 -0
index 7f767d59b09d..109041630d30 100644
@@ -3006,6 +3006,8 @@ static void record_steal_time(struct kvm_vcpu *vcpu)
 				       st->preempted & KVM_VCPU_FLUSH_TLB);
 		if (xchg(&st->preempted, 0) & KVM_VCPU_FLUSH_TLB)
 			kvm_vcpu_flush_tlb_guest(vcpu);
+	} else {
+		st->preempted = 0;
 	}
 
 	vcpu->arch.st.preempted = 0;
drivers/acpi/acpi_apd.c +1 -0
index 39359ce0eb2c..645e82a66bb0 100644
@@ -226,6 +226,7 @@ static const struct acpi_device_id acpi_apd_device_ids[] = {
 	{ "AMDI0010", APD_ADDR(wt_i2c_desc) },
 	{ "AMD0020", APD_ADDR(cz_uart_desc) },
 	{ "AMDI0020", APD_ADDR(cz_uart_desc) },
+	{ "AMDI0022", APD_ADDR(cz_uart_desc) },
 	{ "AMD0030", },
 	{ "AMD0040", APD_ADDR(fch_misc_desc)},
 	{ "HYGO0010", APD_ADDR(wt_i2c_desc) },
drivers/base/core.c +23 -14
index 96f73aaf71da..8b3c3fcf35a9 100644
@@ -83,6 +83,11 @@ int device_links_read_lock_held(void)
 {
 	return srcu_read_lock_held(&device_links_srcu);
 }
+
+static void device_link_synchronize_removal(void)
+{
+	synchronize_srcu(&device_links_srcu);
+}
 #else /* !CONFIG_SRCU */
 static DECLARE_RWSEM(device_links_lock);
 
@@ -113,6 +118,10 @@ int device_links_read_lock_held(void)
 	return lockdep_is_held(&device_links_lock);
 }
 #endif
+
+static inline void device_link_synchronize_removal(void)
+{
+}
 #endif /* !CONFIG_SRCU */
 
 static bool device_is_ancestor(struct device *dev, struct device *target)
@@ -332,8 +341,13 @@ static struct attribute *devlink_attrs[] = {
 };
 ATTRIBUTE_GROUPS(devlink);
 
-static void device_link_free(struct device_link *link)
+static void device_link_release_fn(struct work_struct *work)
 {
+	struct device_link *link = container_of(work, struct device_link, rm_work);
+
+	/* Ensure that all references to the link object have been dropped. */
+	device_link_synchronize_removal();
+
 	while (refcount_dec_not_one(&link->rpm_active))
 		pm_runtime_put(link->supplier);
 
@@ -342,24 +356,19 @@ static void device_link_free(struct device_link *link)
 	kfree(link);
 }
 
-#ifdef CONFIG_SRCU
-static void __device_link_free_srcu(struct rcu_head *rhead)
-{
-	device_link_free(container_of(rhead, struct device_link, rcu_head));
-}
-
 static void devlink_dev_release(struct device *dev)
 {
 	struct device_link *link = to_devlink(dev);
 
-	call_srcu(&device_links_srcu, &link->rcu_head, __device_link_free_srcu);
-}
-#else
-static void devlink_dev_release(struct device *dev)
-{
-	device_link_free(to_devlink(dev));
+	INIT_WORK(&link->rm_work, device_link_release_fn);
+	/*
+	 * It may take a while to complete this work because of the SRCU
+	 * synchronization in device_link_release_fn() and if the consumer or
+	 * supplier devices get deleted when it runs, so put it into the "long"
+	 * workqueue.
+	 */
+	queue_work(system_long_wq, &link->rm_work);
 }
-#endif
 
 static struct class devlink_class = {
 	.name = "devlink",
drivers/char/hpet.c +2 -0
index ed3b7dab678d..8b55085650ad 100644
@@ -984,6 +984,8 @@ static acpi_status hpet_resources(struct acpi_resource *res, void *data)
 		hdp->hd_phys_address = fixmem32->address;
 		hdp->hd_address = ioremap(fixmem32->address,
 						HPET_RANGE_SIZE);
+		if (!hdp->hd_address)
+			return AE_ERROR;
 
 		if (hpet_is_known(hdp)) {
 			iounmap(hdp->hd_address);
drivers/crypto/cavium/nitrox/nitrox_main.c +0 -1
index 9d14be97e381..cee2a2713038 100644
@@ -451,7 +451,6 @@ static int nitrox_probe(struct pci_dev *pdev,
 	err = pci_request_mem_regions(pdev, nitrox_driver_name);
 	if (err) {
 		pci_disable_device(pdev);
-		dev_err(&pdev->dev, "Failed to request mem regions!\n");
 		return err;
 	}
 	pci_set_master(pdev);
drivers/dma/qcom/hidma_mgmt.c +16 -1
index 806ca02c52d7..62026607f3f8 100644
@@ -418,8 +418,23 @@ static int __init hidma_mgmt_init(void)
 		hidma_mgmt_of_populate_channels(child);
 	}
 #endif
-	return platform_driver_register(&hidma_mgmt_driver);
+	/*
+	 * We do not check for return value here, as it is assumed that
+	 * platform_driver_register must not fail. The reason for this is that
+	 * the (potential) hidma_mgmt_of_populate_channels calls above are not
+	 * cleaned up if it does fail, and to do this work is quite
+	 * complicated. In particular, various calls of of_address_to_resource,
+	 * of_irq_to_resource, platform_device_register_full, of_dma_configure,
+	 * and of_msi_configure which then call other functions and so on, must
+	 * be cleaned up - this is not a trivial exercise.
+	 *
+	 * Currently, this module is not intended to be unloaded, and there is
+	 * no module_exit function defined which does the needed cleanup. For
+	 * this reason, we have to assume success here.
+	 */
+	platform_driver_register(&hidma_mgmt_driver);
 
+	return 0;
 }
 module_init(hidma_mgmt_init);
 MODULE_LICENSE("GPL v2");
drivers/gpio/gpio-cadence.c +1 -0
index a4d3239d2594..4ab3fcd9b9ba 100644
@@ -278,6 +278,7 @@ static const struct of_device_id cdns_of_ids[] = {
 	{ .compatible = "cdns,gpio-r1p02" },
 	{ /* sentinel */ },
 };
+MODULE_DEVICE_TABLE(of, cdns_of_ids);
 
 static struct platform_driver cdns_gpio_driver = {
 	.driver = {
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10_3.c +6 -6
index 50016bf9c427..8346caec771f 100644
@@ -157,16 +157,16 @@ static uint32_t get_sdma_rlc_reg_offset(struct amdgpu_device *adev,
 				mmSDMA0_RLC0_RB_CNTL) - mmSDMA0_RLC0_RB_CNTL;
 		break;
 	case 1:
-		sdma_engine_reg_base = SOC15_REG_OFFSET(SDMA1, 0,
+		sdma_engine_reg_base = SOC15_REG_OFFSET(SDMA0, 0,
 				mmSDMA1_RLC0_RB_CNTL) - mmSDMA0_RLC0_RB_CNTL;
 		break;
 	case 2:
-		sdma_engine_reg_base = SOC15_REG_OFFSET(SDMA2, 0,
-				mmSDMA2_RLC0_RB_CNTL) - mmSDMA2_RLC0_RB_CNTL;
+		sdma_engine_reg_base = SOC15_REG_OFFSET(SDMA0, 0,
+				mmSDMA2_RLC0_RB_CNTL) - mmSDMA0_RLC0_RB_CNTL;
 		break;
 	case 3:
-		sdma_engine_reg_base = SOC15_REG_OFFSET(SDMA3, 0,
-				mmSDMA3_RLC0_RB_CNTL) - mmSDMA2_RLC0_RB_CNTL;
+		sdma_engine_reg_base = SOC15_REG_OFFSET(SDMA0, 0,
+				mmSDMA3_RLC0_RB_CNTL) - mmSDMA0_RLC0_RB_CNTL;
 		break;
 	}
 
@@ -451,7 +451,7 @@ static int hqd_sdma_dump_v10_3(struct kgd_dev *kgd,
 			engine_id, queue_id);
 	uint32_t i = 0, reg;
 #undef HQD_N_REGS
-#define HQD_N_REGS (19+6+7+10)
+#define HQD_N_REGS (19+6+7+12)
 
 	*dump = kmalloc(HQD_N_REGS*2*sizeof(uint32_t), GFP_KERNEL);
 	if (*dump == NULL)
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +0 -1
index 7f2689d4b86d..87c7c45f1bb7 100644
@@ -4368,7 +4368,6 @@ static int amdgpu_do_asic_reset(struct amdgpu_hive_info *hive,
 			r = amdgpu_ib_ring_tests(tmp_adev);
 			if (r) {
 				dev_err(tmp_adev->dev, "ib ring test failed (%d).\n", r);
-				r = amdgpu_device_ip_suspend(tmp_adev);
 				need_full_reset = true;
 				r = -EAGAIN;
 				goto end;
drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c +3 -0
index 1ea8af48ae2f..43f29ee0e3b0 100644
@@ -289,10 +289,13 @@ static int amdgpufb_create(struct drm_fb_helper *helper,
 static int amdgpu_fbdev_destroy(struct drm_device *dev, struct amdgpu_fbdev *rfbdev)
 {
 	struct amdgpu_framebuffer *rfb = &rfbdev->rfb;
+	int i;
 
 	drm_fb_helper_unregister_fbi(&rfbdev->helper);
 
 	if (rfb->base.obj[0]) {
+		for (i = 0; i < rfb->base.format->num_planes; i++)
+			drm_gem_object_put(rfb->base.obj[0]);
 		amdgpufb_destroy_pinned_object(rfb->base.obj[0]);
 		rfb->base.obj[0] = NULL;
 		drm_framebuffer_unregister_private(&rfb->base);
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +1 -0
index 532250c2b19e..5207ad654f18 100644
@@ -1381,6 +1381,7 @@ static void amdgpu_ttm_tt_unpopulate(struct ttm_bo_device *bdev, struct ttm_tt *
 	if (gtt && gtt->userptr) {
 		amdgpu_ttm_tt_set_user_pages(ttm, NULL);
 		kfree(ttm->sg);
+		ttm->sg = NULL;
 		ttm->page_flags &= ~TTM_PAGE_FLAG_SG;
 		return;
 	}
drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.c +2 -0
index 94caf5204c8b..ae8c0f897d59 100644
@@ -172,6 +172,8 @@ static int jpeg_v2_0_hw_fini(void *handle)
 {
 	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
 
+	cancel_delayed_work_sync(&adev->vcn.idle_work);
+
 	if (adev->jpeg.cur_state != AMD_PG_STATE_GATE &&
 	      RREG32_SOC15(JPEG, 0, mmUVD_JRBC_STATUS))
 		jpeg_v2_0_set_powergating_state(adev, AMD_PG_STATE_GATE);
drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.c +0 -2
index 845306f63cdb..63b350182389 100644
@@ -198,8 +198,6 @@ static int jpeg_v2_5_hw_fini(void *handle)
 		if (adev->jpeg.cur_state != AMD_PG_STATE_GATE &&
 		      RREG32_SOC15(JPEG, i, mmUVD_JRBC_STATUS))
 			jpeg_v2_5_set_powergating_state(adev, AMD_PG_STATE_GATE);
-
-		ring->sched.ready = false;
 	}
 
 	return 0;
drivers/gpu/drm/amd/amdgpu/jpeg_v3_0.c +0 -2
index 3a0dff53654d..9259e35f0f55 100644
@@ -166,8 +166,6 @@ static int jpeg_v3_0_hw_fini(void *handle)
 	      RREG32_SOC15(JPEG, 0, mmUVD_JRBC_STATUS))
 		jpeg_v3_0_set_powergating_state(adev, AMD_PG_STATE_GATE);
 
-	ring->sched.ready = false;
-
 	return 0;
 }
 
drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c +0 -5
index 2a485052e3ab..1bd330d43147 100644
@@ -476,11 +476,6 @@ static void sdma_v5_2_gfx_stop(struct amdgpu_device *adev)
 		ib_cntl = REG_SET_FIELD(ib_cntl, SDMA0_GFX_IB_CNTL, IB_ENABLE, 0);
 		WREG32(sdma_v5_2_get_reg_offset(adev, i, mmSDMA0_GFX_IB_CNTL), ib_cntl);
 	}
-
-	sdma0->sched.ready = false;
-	sdma1->sched.ready = false;
-	sdma2->sched.ready = false;
-	sdma3->sched.ready = false;
 }
 
 /**
drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c +5 -1
index 86e1ef732ebe..aa8ae0ca62f9 100644
@@ -232,9 +232,13 @@ static int vcn_v1_0_hw_fini(void *handle)
 {
 	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
 
+	cancel_delayed_work_sync(&adev->vcn.idle_work);
+
 	if ((adev->pg_flags & AMD_PG_SUPPORT_VCN_DPG) ||
-		RREG32_SOC15(VCN, 0, mmUVD_STATUS))
+		(adev->vcn.cur_state != AMD_PG_STATE_GATE &&
+		 RREG32_SOC15(VCN, 0, mmUVD_STATUS))) {
 		vcn_v1_0_set_powergating_state(adev, AMD_PG_STATE_GATE);
+	}
 
 	return 0;
 }
drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c +2 -0
index e5d29dee0c88..fc939d4f4841 100644
@@ -262,6 +262,8 @@ static int vcn_v2_0_hw_fini(void *handle)
 {
 	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
 
+	cancel_delayed_work_sync(&adev->vcn.idle_work);
+
 	if ((adev->pg_flags & AMD_PG_SUPPORT_VCN_DPG) ||
 	    (adev->vcn.cur_state != AMD_PG_STATE_GATE &&
 	      RREG32_SOC15(VCN, 0, mmUVD_STATUS)))
drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c +2 -0
index 0f1d3ef8baa7..2c328362eee3 100644
@@ -321,6 +321,8 @@ static int vcn_v2_5_hw_fini(void *handle)
 	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
 	int i;
 
+	cancel_delayed_work_sync(&adev->vcn.idle_work);
+
 	for (i = 0; i < adev->vcn.num_vcn_inst; ++i) {
 		if (adev->vcn.harvest_config & (1 << i))
 			continue;
drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c +1 -7
index b5f8f3d731cb..700621ddc02e 100644
@@ -346,7 +346,7 @@ static int vcn_v3_0_hw_fini(void *handle)
 {
 	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
 	struct amdgpu_ring *ring;
-	int i, j;
+	int i;
 
 	for (i = 0; i < adev->vcn.num_vcn_inst; ++i) {
 		if (adev->vcn.harvest_config & (1 << i))
@@ -361,12 +361,6 @@ static int vcn_v3_0_hw_fini(void *handle)
 				vcn_v3_0_set_powergating_state(adev, AMD_PG_STATE_GATE);
 			}
 		}
-		ring->sched.ready = false;
-
-		for (j = 0; j < adev->vcn.num_enc_rings; ++j) {
-			ring = &adev->vcn.inst[i].ring_enc[j];
-			ring->sched.ready = false;
-		}
 	}
 
 	return 0;
drivers/gpu/drm/amd/display/dc/core/dc_link.c +18 -0
index f0039599e02f..62778ccea055 100644
@@ -1049,6 +1049,24 @@ static bool dc_link_detect_helper(struct dc_link *link,
 			    dc_is_dvi_signal(link->connector_signal)) {
 				if (prev_sink)
 					dc_sink_release(prev_sink);
+				link_disconnect_sink(link);
+
+				return false;
+			}
+			/*
+			 * Abort detection for DP connectors if we have
+			 * no EDID and connector is active converter
+			 * as there are no display downstream
+			 *
+			 */
+			if (dc_is_dp_sst_signal(link->connector_signal) &&
+				(link->dpcd_caps.dongle_type ==
+						DISPLAY_DONGLE_DP_VGA_CONVERTER ||
+				link->dpcd_caps.dongle_type ==
+						DISPLAY_DONGLE_DP_DVI_CONVERTER)) {
+				if (prev_sink)
+					dc_sink_release(prev_sink);
+				link_disconnect_sink(link);
 
 				return false;
 			}
drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c +9 -0
index 52df6202a954..2937784bc824 100644
@@ -2606,6 +2606,8 @@ static ssize_t navi10_get_gpu_metrics(struct smu_context *smu,
 
 static int navi10_enable_mgpu_fan_boost(struct smu_context *smu)
 {
+	struct smu_table_context *table_context = &smu->smu_table;
+	PPTable_t *smc_pptable = table_context->driver_pptable;
 	struct amdgpu_device *adev = smu->adev;
 	uint32_t param = 0;
 
@@ -2613,6 +2615,13 @@ static int navi10_enable_mgpu_fan_boost(struct smu_context *smu)
 	if (adev->asic_type == CHIP_NAVI12)
 		return 0;
 
+	/*
+	 * Skip the MGpuFanBoost setting for those ASICs
+	 * which do not support it
+	 */
+	if (!smc_pptable->MGpuFanBoostLimitRpm)
+		return 0;
+
 	/* Workaround for WS SKU */
 	if (adev->pdev->device == 0x7312 &&
 	    adev->pdev->revision == 0)
drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c +10 -0
index 471bbb78884b..8556c229ff59 100644
@@ -2715,6 +2715,16 @@ static ssize_t sienna_cichlid_get_gpu_metrics(struct smu_context *smu,
 
 static int sienna_cichlid_enable_mgpu_fan_boost(struct smu_context *smu)
 {
+	struct smu_table_context *table_context = &smu->smu_table;
+	PPTable_t *smc_pptable = table_context->driver_pptable;
+
+	/*
+	 * Skip the MGpuFanBoost setting for those ASICs
+	 * which do not support it
+	 */
+	if (!smc_pptable->MGpuFanBoostLimitRpm)
+		return 0;
+
 	return smu_cmn_send_smc_msg_with_param(smu,
 					       SMU_MSG_SetMGpuFanBoostLimitRpm,
 					       0,
drivers/gpu/drm/i915/display/intel_dp.c +1 -1
index 6f52f8133924..eb02ecb6e345 100644
@@ -4136,7 +4136,7 @@ static void chv_dp_post_pll_disable(struct intel_atomic_state *state,
  * link status information
  */
 bool
-intel_dp_get_link_status(struct intel_dp *intel_dp, u8 link_status[DP_LINK_STATUS_SIZE])
+intel_dp_get_link_status(struct intel_dp *intel_dp, u8 *link_status)
 {
 	return drm_dp_dpcd_read(&intel_dp->aux, DP_LANE0_1_STATUS, link_status,
 				DP_LINK_STATUS_SIZE) == DP_LINK_STATUS_SIZE;
drivers/gpu/drm/meson/meson_drv.c +5 -4
index db56732bdd26..2753067c08e6 100644
@@ -485,11 +485,12 @@ static int meson_probe_remote(struct platform_device *pdev,
 static void meson_drv_shutdown(struct platform_device *pdev)
 {
 	struct meson_drm *priv = dev_get_drvdata(&pdev->dev);
-	struct drm_device *drm = priv->drm;
 
-	DRM_DEBUG_DRIVER("\n");
-	drm_kms_helper_poll_fini(drm);
-	drm_atomic_helper_shutdown(drm);
+	if (!priv)
+		return;
+
+	drm_kms_helper_poll_fini(priv->drm);
+	drm_atomic_helper_shutdown(priv->drm);
 }
 
 static int meson_drv_probe(struct platform_device *pdev)
drivers/i2c/busses/i2c-i801.c +2 -4
index 877fe3733a42..e42b87e96f74 100644
@@ -391,11 +391,9 @@ static int i801_check_post(struct i801_priv *priv, int status)
 		dev_err(&priv->pci_dev->dev, "Transaction timeout\n");
 		/* try to stop the current command */
 		dev_dbg(&priv->pci_dev->dev, "Terminating the current operation\n");
-		outb_p(inb_p(SMBHSTCNT(priv)) | SMBHSTCNT_KILL,
-		       SMBHSTCNT(priv));
+		outb_p(SMBHSTCNT_KILL, SMBHSTCNT(priv));
 		usleep_range(1000, 2000);
-		outb_p(inb_p(SMBHSTCNT(priv)) & (~SMBHSTCNT_KILL),
-		       SMBHSTCNT(priv));
+		outb_p(0, SMBHSTCNT(priv));
 
 		/* Check if it worked */
 		status = inb_p(SMBHSTSTS(priv));
drivers/i2c/busses/i2c-mt65xx.c +5 -0
index bf25acba2ed5..dcde71ae6341 100644
@@ -478,6 +478,11 @@ static void mtk_i2c_clock_disable(struct mtk_i2c *i2c)
 static void mtk_i2c_init_hw(struct mtk_i2c *i2c)
 {
 	u16 control_reg;
+	u16 intr_stat_reg;
+
+	mtk_i2c_writew(i2c, I2C_CHN_CLR_FLAG, OFFSET_START);
+	intr_stat_reg = mtk_i2c_readw(i2c, OFFSET_INTR_STAT);
+	mtk_i2c_writew(i2c, intr_stat_reg, OFFSET_INTR_STAT);
 
 	if (i2c->dev_comp->apdma_sync) {
 		writel(I2C_DMA_WARM_RST, i2c->pdmabase + OFFSET_RST);
drivers/i2c/busses/i2c-s3c2410.c +3 -0
index 3eafe0eb3e4c..40fa9e4af5d1 100644
@@ -483,7 +483,10 @@ static int i2c_s3c_irq_nextbyte(struct s3c24xx_i2c *i2c, unsigned long iicstat)
 					 * forces us to send a new START
 					 * when we change direction
 					 */
+					dev_dbg(i2c->dev,
+						"missing START before write->read\n");
 					s3c24xx_i2c_stop(i2c, -EINVAL);
+					break;
 				}
 
 				goto retry_write;
drivers/i2c/busses/i2c-sh_mobile.c +1 -1
index bdd60770779a..c253535dc18e 100644
@@ -807,7 +807,7 @@ static const struct sh_mobile_dt_config r8a7740_dt_config = {
 static const struct of_device_id sh_mobile_i2c_dt_ids[] = {
 	{ .compatible = "renesas,iic-r8a73a4", .data = &fast_clock_dt_config },
 	{ .compatible = "renesas,iic-r8a7740", .data = &r8a7740_dt_config },
-	{ .compatible = "renesas,iic-r8a774c0", .data = &fast_clock_dt_config },
+	{ .compatible = "renesas,iic-r8a774c0", .data = &v2_freq_calc_dt_config },
 	{ .compatible = "renesas,iic-r8a7790", .data = &v2_freq_calc_dt_config },
 	{ .compatible = "renesas,iic-r8a7791", .data = &v2_freq_calc_dt_config },
 	{ .compatible = "renesas,iic-r8a7792", .data = &v2_freq_calc_dt_config },
drivers/iio/adc/ad7124.c +20 -16
index 766c73333604..9c2401c5848e 100644
@@ -616,6 +616,13 @@ static int ad7124_of_parse_channel_config(struct iio_dev *indio_dev,
 		if (ret)
 			goto err;
 
+		if (channel >= indio_dev->num_channels) {
+			dev_err(indio_dev->dev.parent,
+				"Channel index >= number of channels\n");
+			ret = -EINVAL;
+			goto err;
+		}
+
 		ret = of_property_read_u32_array(child, "diff-channels",
 						 ain, 2);
 		if (ret)
@@ -707,6 +714,11 @@ static int ad7124_setup(struct ad7124_state *st)
 	return ret;
 }
 
+static void ad7124_reg_disable(void *r)
+{
+	regulator_disable(r);
+}
+
 static int ad7124_probe(struct spi_device *spi)
 {
 	const struct ad7124_chip_info *info;
@@ -752,17 +764,20 @@ static int ad7124_probe(struct spi_device *spi)
 		ret = regulator_enable(st->vref[i]);
 		if (ret)
 			return ret;
+
+		ret = devm_add_action_or_reset(&spi->dev, ad7124_reg_disable,
+					       st->vref[i]);
+		if (ret)
+			return ret;
 	}
 
 	st->mclk = devm_clk_get(&spi->dev, "mclk");
-	if (IS_ERR(st->mclk)) {
-		ret = PTR_ERR(st->mclk);
-		goto error_regulator_disable;
-	}
+	if (IS_ERR(st->mclk))
+		return PTR_ERR(st->mclk);
 
 	ret = clk_prepare_enable(st->mclk);
 	if (ret < 0)
-		goto error_regulator_disable;
+		return ret;
 
 	ret = ad7124_soft_reset(st);
 	if (ret < 0)
@@ -792,11 +807,6 @@ static int ad7124_probe(struct spi_device *spi)
 	ad_sd_cleanup_buffer_and_trigger(indio_dev);
 error_clk_disable_unprepare:
 	clk_disable_unprepare(st->mclk);
-error_regulator_disable:
-	for (i = ARRAY_SIZE(st->vref) - 1; i >= 0; i--) {
-		if (!IS_ERR_OR_NULL(st->vref[i]))
-			regulator_disable(st->vref[i]);
-	}
 
 	return ret;
 }
@@ -805,17 +815,11 @@ static int ad7124_remove(struct spi_device *spi)
 {
 	struct iio_dev *indio_dev = spi_get_drvdata(spi);
 	struct ad7124_state *st = iio_priv(indio_dev);
-	int i;
 
 	iio_device_unregister(indio_dev);
 	ad_sd_cleanup_buffer_and_trigger(indio_dev);
 	clk_disable_unprepare(st->mclk);
 
-	for (i = ARRAY_SIZE(st->vref) - 1; i >= 0; i--) {
-		if (!IS_ERR_OR_NULL(st->vref[i]))
-			regulator_disable(st->vref[i]);
-	}
-
 	return 0;
 }
 
drivers/iio/adc/ad7192.c +10 -9
index 2ed580521d81..1141cc13a124 100644
@@ -912,7 +912,7 @@ static int ad7192_probe(struct spi_device *spi)
 {
 	struct ad7192_state *st;
 	struct iio_dev *indio_dev;
-	int ret, voltage_uv = 0;
+	int ret;
 
 	if (!spi->irq) {
 		dev_err(&spi->dev, "no IRQ?\n");
@@ -949,15 +949,12 @@ static int ad7192_probe(struct spi_device *spi)
 		goto error_disable_avdd;
 	}
 
-	voltage_uv = regulator_get_voltage(st->avdd);
-
-	if (voltage_uv > 0) {
-		st->int_vref_mv = voltage_uv / 1000;
-	} else {
-		ret = voltage_uv;
+	ret = regulator_get_voltage(st->avdd);
+	if (ret < 0) {
 		dev_err(&spi->dev, "Device tree error, reference voltage undefined\n");
 		goto error_disable_avdd;
 	}
+	st->int_vref_mv = ret / 1000;
 
 	spi_set_drvdata(spi, indio_dev);
 	st->chip_info = of_device_get_match_data(&spi->dev);
@@ -1014,7 +1011,9 @@ static int ad7192_probe(struct spi_device *spi)
 	return 0;
 
 error_disable_clk:
-	clk_disable_unprepare(st->mclk);
+	if (st->clock_sel == AD7192_CLK_EXT_MCLK1_2 ||
+	    st->clock_sel == AD7192_CLK_EXT_MCLK2)
+		clk_disable_unprepare(st->mclk);
 error_remove_trigger:
 	ad_sd_cleanup_buffer_and_trigger(indio_dev);
 error_disable_dvdd:
@@ -1031,7 +1030,9 @@ static int ad7192_remove(struct spi_device *spi)
 	struct ad7192_state *st = iio_priv(indio_dev);
 
 	iio_device_unregister(indio_dev);
-	clk_disable_unprepare(st->mclk);
+	if (st->clock_sel == AD7192_CLK_EXT_MCLK1_2 ||
+	    st->clock_sel == AD7192_CLK_EXT_MCLK2)
+		clk_disable_unprepare(st->mclk);
 	ad_sd_cleanup_buffer_and_trigger(indio_dev);
 
 	regulator_disable(st->dvdd);
drivers/iio/adc/ad7768-1.c +6 -2
index 0e93b0766eb4..c7e15c45140a 100644
@@ -166,6 +166,10 @@ struct ad7768_state {
 	 * transfer buffers to live in their own cache lines.
 	 */
 	union {
+		struct {
+			__be32 chan;
+			s64 timestamp;
+		} scan;
 		__be32 d32;
 		u8 d8[2];
 	} data ____cacheline_aligned;
@@ -459,11 +463,11 @@ static irqreturn_t ad7768_trigger_handler(int irq, void *p)
 
 	mutex_lock(&st->lock);
 
-	ret = spi_read(st->spi, &st->data.d32, 3);
+	ret = spi_read(st->spi, &st->data.scan.chan, 3);
 	if (ret < 0)
 		goto err_unlock;
 
-	iio_push_to_buffers_with_timestamp(indio_dev, &st->data.d32,
+	iio_push_to_buffers_with_timestamp(indio_dev, &st->data.scan,
 					   iio_get_time_ns(indio_dev));
 
 	iio_trigger_notify_done(indio_dev->trig);
drivers/iio/adc/ad7793.c +1 -0
index 5e980a06258e..440ef4c7be07 100644
@@ -279,6 +279,7 @@ static int ad7793_setup(struct iio_dev *indio_dev,
 	id &= AD7793_ID_MASK;
 
 	if (id != st->chip_info->id) {
+		ret = -ENODEV;
 		dev_err(&st->sd.spi->dev, "device ID query failed\n");
 		goto out;
 	}
drivers/iio/adc/ad7923.c +3 -1
index a2cc96658054..8c1e866f72e8 100644
@@ -59,8 +59,10 @@ struct ad7923_state {
 	/*
 	 * DMA (thus cache coherency maintenance) requires the
 	 * transfer buffers to live in their own cache lines.
+	 * Ensure rx_buf can be directly used in iio_push_to_buffers_with_timetamp
+	 * Length = 8 channels + 4 extra for 8 byte timestamp
 	 */
-	__be16				rx_buf[4] ____cacheline_aligned;
+	__be16				rx_buf[12] ____cacheline_aligned;
 	__be16				tx_buf[4];
 };
 
drivers/iio/dac/ad5770r.c +11 -5
index 84dcf149261f..42decba1463c 100644
@@ -524,23 +524,29 @@ static int ad5770r_channel_config(struct ad5770r_state *st)
 	device_for_each_child_node(&st->spi->dev, child) {
 		ret = fwnode_property_read_u32(child, "num", &num);
 		if (ret)
-			return ret;
-		if (num >= AD5770R_MAX_CHANNELS)
-			return -EINVAL;
+			goto err_child_out;
+		if (num >= AD5770R_MAX_CHANNELS) {
+			ret = -EINVAL;
+			goto err_child_out;
+		}
 
 		ret = fwnode_property_read_u32_array(child,
 						     "adi,range-microamp",
 						     tmp, 2);
 		if (ret)
-			return ret;
+			goto err_child_out;
 
 		min = tmp[0] / 1000;
 		max = tmp[1] / 1000;
 		ret = ad5770r_store_output_range(st, min, max, num);
 		if (ret)
-			return ret;
+			goto err_child_out;
 	}
 
+	return 0;
+
+err_child_out:
+	fwnode_handle_put(child);
 	return ret;
 }
 
drivers/iio/gyro/fxas21002c_core.c +2 -0
index 129eead8febc..b7523357d8eb 100644
@@ -399,6 +399,7 @@ static int fxas21002c_temp_get(struct fxas21002c_data *data, int *val)
 	ret = regmap_field_read(data->regmap_fields[F_TEMP], &temp);
 	if (ret < 0) {
 		dev_err(dev, "failed to read temp: %d\n", ret);
+		fxas21002c_pm_put(data);
 		goto data_unlock;
 	}
 
@@ -432,6 +433,7 @@ static int fxas21002c_axis_get(struct fxas21002c_data *data,
 			       &axis_be, sizeof(axis_be));
 	if (ret < 0) {
 		dev_err(dev, "failed to read axis: %d: %d\n", index, ret);
+		fxas21002c_pm_put(data);
 		goto data_unlock;
 	}
 
drivers/interconnect/qcom/bcm-voter.c +3 -1
index 887d13721e52..dd0e3bd50b94 100644
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (c) 2020, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
  */
 
 #include <asm/div64.h>
@@ -212,6 +212,7 @@ struct bcm_voter *of_bcm_voter_get(struct device *dev, const char *name)
 	}
 	mutex_unlock(&bcm_voter_lock);
 
+	of_node_put(node);
 	return voter;
 }
 EXPORT_SYMBOL_GPL(of_bcm_voter_get);
@@ -369,6 +370,7 @@ static const struct of_device_id bcm_voter_of_match[] = {
 	{ .compatible = "qcom,bcm-voter" },
 	{ }
 };
+MODULE_DEVICE_TABLE(of, bcm_voter_of_match);
 
 static struct platform_driver qcom_icc_bcm_voter_driver = {
 	.probe = qcom_icc_bcm_voter_probe,
drivers/iommu/intel/dmar.c +3 -1
index 02e7c10a4224..b8d0b56a7575 100644
@@ -1137,7 +1137,7 @@ static int alloc_iommu(struct dmar_drhd_unit *drhd)
 
 		err = iommu_device_register(&iommu->iommu);
 		if (err)
-			goto err_unmap;
+			goto err_sysfs;
 	}
 
 	drhd->iommu = iommu;
@@ -1145,6 +1145,8 @@ static int alloc_iommu(struct dmar_drhd_unit *drhd)
 
 	return 0;
 
+err_sysfs:
+	iommu_device_sysfs_remove(&iommu->iommu);
 err_unmap:
 	unmap_iommu(iommu);
 error_free_seq_id:
drivers/iommu/intel/iommu.c +5 -2
index eececdeaa40f..b21c8224b1c8 100644
@@ -2606,9 +2606,9 @@ static int domain_setup_first_level(struct intel_iommu *iommu,
 				    struct device *dev,
 				    u32 pasid)
 {
-	int flags = PASID_FLAG_SUPERVISOR_MODE;
 	struct dma_pte *pgd = domain->pgd;
 	int agaw, level;
+	int flags = 0;
 
 	/*
 	 * Skip top levels of page tables for iommu which has
@@ -2624,7 +2624,10 @@ static int domain_setup_first_level(struct intel_iommu *iommu,
 	if (level != 4 && level != 5)
 		return -EINVAL;
 
-	flags |= (level == 5) ? PASID_FLAG_FL5LP : 0;
+	if (pasid != PASID_RID2PASID)
+		flags |= PASID_FLAG_SUPERVISOR_MODE;
+	if (level == 5)
+		flags |= PASID_FLAG_FL5LP;
 
 	if (domain->domain.type == IOMMU_DOMAIN_UNMANAGED)
 		flags |= PASID_FLAG_PAGE_SNOOP;
drivers/iommu/intel/pasid.c +2 -1
index ce4ef2d245e3..1e7c17989084 100644
@@ -677,7 +677,8 @@ int intel_pasid_setup_second_level(struct intel_iommu *iommu,
 	 * Since it is a second level only translation setup, we should
 	 * set SRE bit as well (addresses are expected to be GPAs).
 	 */
-	pasid_set_sre(pte);
+	if (pasid != PASID_RID2PASID)
+		pasid_set_sre(pte);
 	pasid_set_present(pte);
 	pasid_flush_caches(iommu, pte, pasid, did);
 
drivers/iommu/virtio-iommu.c +1 -0
index 2bfdd5734844..81dea4caf561 100644
@@ -1138,6 +1138,7 @@ static struct virtio_device_id id_table[] = {
 	{ VIRTIO_ID_IOMMU, VIRTIO_DEV_ANY_ID },
 	{ 0 },
 };
+MODULE_DEVICE_TABLE(virtio, id_table);
 
 static struct virtio_driver virtio_iommu_drv = {
 	.driver.name		= KBUILD_MODNAME,
drivers/isdn/hardware/mISDN/hfcsusb.c +8 -9
index 70061991915a..cd5642cef01f 100644
@@ -46,7 +46,7 @@ static void hfcsusb_start_endpoint(struct hfcsusb *hw, int channel);
 static void hfcsusb_stop_endpoint(struct hfcsusb *hw, int channel);
 static int  hfcsusb_setup_bch(struct bchannel *bch, int protocol);
 static void deactivate_bchannel(struct bchannel *bch);
-static void hfcsusb_ph_info(struct hfcsusb *hw);
+static int  hfcsusb_ph_info(struct hfcsusb *hw);
 
 /* start next background transfer for control channel */
 static void
@@ -241,7 +241,7 @@ hfcusb_l2l1B(struct mISDNchannel *ch, struct sk_buff *skb)
  * send full D/B channel status information
  * as MPH_INFORMATION_IND
  */
-static void
+static int
 hfcsusb_ph_info(struct hfcsusb *hw)
 {
 	struct ph_info *phi;
@@ -250,7 +250,7 @@ hfcsusb_ph_info(struct hfcsusb *hw)
 
 	phi = kzalloc(struct_size(phi, bch, dch->dev.nrbchan), GFP_ATOMIC);
 	if (!phi)
-		return;
+		return -ENOMEM;
 
 	phi->dch.ch.protocol = hw->protocol;
 	phi->dch.ch.Flags = dch->Flags;
@@ -263,6 +263,8 @@ hfcsusb_ph_info(struct hfcsusb *hw)
 	_queue_data(&dch->dev.D, MPH_INFORMATION_IND, MISDN_ID_ANY,
 		    struct_size(phi, bch, dch->dev.nrbchan), phi, GFP_ATOMIC);
 	kfree(phi);
+
+	return 0;
 }
 
 /*
@@ -347,8 +349,7 @@ hfcusb_l2l1D(struct mISDNchannel *ch, struct sk_buff *skb)
 			ret = l1_event(dch->l1, hh->prim);
 		break;
 	case MPH_INFORMATION_REQ:
-		hfcsusb_ph_info(hw);
-		ret = 0;
+		ret = hfcsusb_ph_info(hw);
 		break;
 	}
 
@@ -403,8 +404,7 @@ hfc_l1callback(struct dchannel *dch, u_int cmd)
 			       hw->name, __func__, cmd);
 		return -1;
 	}
-	hfcsusb_ph_info(hw);
-	return 0;
+	return hfcsusb_ph_info(hw);
 }
 
 static int
@@ -746,8 +746,7 @@ hfcsusb_setup_bch(struct bchannel *bch, int protocol)
 			handle_led(hw, (bch->nr == 1) ? LED_B1_OFF :
 				   LED_B2_OFF);
 	}
-	hfcsusb_ph_info(hw);
-	return 0;
+	return hfcsusb_ph_info(hw);
 }
 
 static void
drivers/isdn/hardware/mISDN/mISDNinfineon.c +13 -8
index a16c7a2a7f3d..88d592bafdb0 100644
@@ -630,17 +630,19 @@ static void
 release_io(struct inf_hw *hw)
 {
 	if (hw->cfg.mode) {
-		if (hw->cfg.p) {
+		if (hw->cfg.mode == AM_MEMIO) {
 			release_mem_region(hw->cfg.start, hw->cfg.size);
-			iounmap(hw->cfg.p);
+			if (hw->cfg.p)
+				iounmap(hw->cfg.p);
 		} else
 			release_region(hw->cfg.start, hw->cfg.size);
 		hw->cfg.mode = AM_NONE;
 	}
 	if (hw->addr.mode) {
-		if (hw->addr.p) {
+		if (hw->addr.mode == AM_MEMIO) {
 			release_mem_region(hw->addr.start, hw->addr.size);
-			iounmap(hw->addr.p);
+			if (hw->addr.p)
+				iounmap(hw->addr.p);
 		} else
 			release_region(hw->addr.start, hw->addr.size);
 		hw->addr.mode = AM_NONE;
@@ -670,9 +672,12 @@ setup_io(struct inf_hw *hw)
 				(ulong)hw->cfg.start, (ulong)hw->cfg.size);
 			return err;
 		}
-		if (hw->ci->cfg_mode == AM_MEMIO)
-			hw->cfg.p = ioremap(hw->cfg.start, hw->cfg.size);
 		hw->cfg.mode = hw->ci->cfg_mode;
+		if (hw->ci->cfg_mode == AM_MEMIO) {
+			hw->cfg.p = ioremap(hw->cfg.start, hw->cfg.size);
+			if (!hw->cfg.p)
+				return -ENOMEM;
+		}
 		if (debug & DEBUG_HW)
 			pr_notice("%s: IO cfg %lx (%lu bytes) mode%d\n",
 				  hw->name, (ulong)hw->cfg.start,
@@ -697,12 +702,12 @@ setup_io(struct inf_hw *hw)
 				(ulong)hw->addr.start, (ulong)hw->addr.size);
 			return err;
 		}
+		hw->addr.mode = hw->ci->addr_mode;
 		if (hw->ci->addr_mode == AM_MEMIO) {
 			hw->addr.p = ioremap(hw->addr.start, hw->addr.size);
-			if (unlikely(!hw->addr.p))
+			if (!hw->addr.p)
 				return -ENOMEM;
 		}
-		hw->addr.mode = hw->ci->addr_mode;
 		if (debug & DEBUG_HW)
 			pr_notice("%s: IO addr %lx (%lu bytes) mode%d\n",
 				  hw->name, (ulong)hw->addr.start,
drivers/md/dm-snap.c +1 -1
index 962f7df0691e..41735a25d50a 100644
@@ -854,7 +854,7 @@ static int dm_add_exception(void *context, chunk_t old, chunk_t new)
 static uint32_t __minimum_chunk_size(struct origin *o)
 {
 	struct dm_snapshot *snap;
-	unsigned chunk_size = 0;
+	unsigned chunk_size = rounddown_pow_of_two(UINT_MAX);
 
 	if (o)
 		list_for_each_entry(snap, &o->snapshots, list)
drivers/media/dvb-frontends/sp8870.c +1 -1
index 655db8272268..9767159aeb9b 100644
@@ -281,7 +281,7 @@ static int sp8870_set_frontend_parameters(struct dvb_frontend *fe)
 
 	// read status reg in order to clear pending irqs
 	err = sp8870_readreg(state, 0x200);
-	if (err)
+	if (err < 0)
 		return err;
 
 	// system controller start
drivers/media/usb/gspca/cpia1.c +1 -5
index a4f7431486f3..d93d384286c1 100644
@@ -1424,7 +1424,6 @@ static int sd_config(struct gspca_dev *gspca_dev,
 {
 	struct sd *sd = (struct sd *) gspca_dev;
 	struct cam *cam;
-	int ret;
 
 	sd->mainsFreq = FREQ_DEF == V4L2_CID_POWER_LINE_FREQUENCY_60HZ;
 	reset_camera_params(gspca_dev);
@@ -1436,10 +1435,7 @@ static int sd_config(struct gspca_dev *gspca_dev,
 	cam->cam_mode = mode;
 	cam->nmodes = ARRAY_SIZE(mode);
 
-	ret = goto_low_power(gspca_dev);
-	if (ret)
-		gspca_err(gspca_dev, "Cannot go to low power mode: %d\n",
-			  ret);
+	goto_low_power(gspca_dev);
 	/* Check the firmware version. */
 	sd->params.version.firmwareVersion = 0;
 	get_version_information(gspca_dev);
drivers/media/usb/gspca/m5602/m5602_mt9m111.c +8 -8
index bfa3b381d8a2..bf1af6ed9131 100644
@@ -195,7 +195,7 @@ static const struct v4l2_ctrl_config mt9m111_greenbal_cfg = {
 int mt9m111_probe(struct sd *sd)
 {
 	u8 data[2] = {0x00, 0x00};
-	int i, rc = 0;
+	int i, err;
 	struct gspca_dev *gspca_dev = (struct gspca_dev *)sd;
 
 	if (force_sensor) {
@@ -213,18 +213,18 @@ int mt9m111_probe(struct sd *sd)
 	/* Do the preinit */
 	for (i = 0; i < ARRAY_SIZE(preinit_mt9m111); i++) {
 		if (preinit_mt9m111[i][0] == BRIDGE) {
-			rc |= m5602_write_bridge(sd,
-				preinit_mt9m111[i][1],
-				preinit_mt9m111[i][2]);
+			err = m5602_write_bridge(sd,
+					preinit_mt9m111[i][1],
+					preinit_mt9m111[i][2]);
 		} else {
 			data[0] = preinit_mt9m111[i][2];
 			data[1] = preinit_mt9m111[i][3];
-			rc |= m5602_write_sensor(sd,
-				preinit_mt9m111[i][1], data, 2);
+			err = m5602_write_sensor(sd,
+					preinit_mt9m111[i][1], data, 2);
 		}
+		if (err < 0)
+			return err;
 	}
-	if (rc < 0)
-		return rc;
 
 	if (m5602_read_sensor(sd, MT9M111_SC_CHIPVER, data, 2))
 		return -ENODEV;
drivers/media/usb/gspca/m5602/m5602_po1030.c +7 -7
index d680b777f097..8fd99ceee4b6 100644
@@ -154,8 +154,8 @@ static const struct v4l2_ctrl_config po1030_greenbal_cfg = {
 
 int po1030_probe(struct sd *sd)
 {
-	int rc = 0;
 	u8 dev_id_h = 0, i;
+	int err;
 	struct gspca_dev *gspca_dev = (struct gspca_dev *)sd;
 
 	if (force_sensor) {
@@ -174,14 +174,14 @@ int po1030_probe(struct sd *sd)
 	for (i = 0; i < ARRAY_SIZE(preinit_po1030); i++) {
 		u8 data = preinit_po1030[i][2];
 		if (preinit_po1030[i][0] == SENSOR)
-			rc |= m5602_write_sensor(sd,
-				preinit_po1030[i][1], &data, 1);
+			err = m5602_write_sensor(sd, preinit_po1030[i][1],
+						 &data, 1);
 		else
-			rc |= m5602_write_bridge(sd, preinit_po1030[i][1],
-						data);
+			err = m5602_write_bridge(sd, preinit_po1030[i][1],
+						 data);
+		if (err < 0)
+			return err;
 	}
-	if (rc < 0)
-		return rc;
 
 	if (m5602_read_sensor(sd, PO1030_DEVID_H, &dev_id_h, 1))
 		return -ENODEV;
drivers/misc/kgdbts.c +2 -1
index 2e081a58da6c..49489153cd16 100644
@@ -100,8 +100,9 @@
 		printk(KERN_INFO a);	\
 } while (0)
 #define v2printk(a...) do {		\
-	if (verbose > 1)		\
+	if (verbose > 1) {		\
 		printk(KERN_INFO a);	\
+	}				\
 	touch_nmi_watchdog();		\
 } while (0)
 #define eprintk(a...) do {		\
drivers/misc/lis3lv02d/lis3lv02d.h +1 -0
index c394c0b08519..7ac788fae1b8 100644
@@ -271,6 +271,7 @@ struct lis3lv02d {
 	int			regs_size;
 	u8                      *reg_cache;
 	bool			regs_stored;
+	bool			init_required;
 	u8                      odr_mask;  /* ODR bit mask */
 	u8			whoami;    /* indicates measurement precision */
 	s16 (*read_data) (struct lis3lv02d *lis3, int reg);
drivers/misc/mei/interrupt.c +3 -0
index 2161c1234ad7..fee603039e87 100644
@@ -277,6 +277,9 @@ static int mei_cl_irq_read(struct mei_cl *cl, struct mei_cl_cb *cb,
 		return ret;
 	}
 
+	pm_runtime_mark_last_busy(dev->dev);
+	pm_request_autosuspend(dev->dev);
+
 	list_move_tail(&cb->list, &cl->rd_pending);
 
 	return 0;
drivers/net/caif/caif_serial.c +0 -3
index bcc14c5875bf..d025ea434933 100644
@@ -270,9 +270,6 @@ static netdev_tx_t caif_xmit(struct sk_buff *skb, struct net_device *dev)
 {
 	struct ser_device *ser;
 
-	if (WARN_ON(!dev))
-		return -EINVAL;
-
 	ser = netdev_priv(dev);
 
 	/* Send flow off once, on high water mark */
drivers/net/dsa/mt7530.c +0 -8
index de7692b763d8..190025a0a98e 100644
@@ -1128,14 +1128,6 @@ mt7530_port_set_vlan_aware(struct dsa_switch *ds, int port)
 {
 	struct mt7530_priv *priv = ds->priv;
 
-	/* The real fabric path would be decided on the membership in the
-	 * entry of VLAN table. PCR_MATRIX set up here with ALL_MEMBERS
-	 * means potential VLAN can be consisting of certain subset of all
-	 * ports.
-	 */
-	mt7530_rmw(priv, MT7530_PCR_P(port),
-		   PCR_MATRIX_MASK, PCR_MATRIX(MT7530_ALL_MEMBERS));
-
 	/* Trapped into security mode allows packet forwarding through VLAN
 	 * table lookup. CPU port is set to fallback mode to let untagged
 	 * frames pass through.
drivers/net/dsa/sja1105/sja1105_dynamic_config.c +19 -4
index b777d3f37573..12cd04b56803 100644
@@ -167,9 +167,10 @@ enum sja1105_hostcmd {
 	SJA1105_HOSTCMD_INVALIDATE = 4,
 };
 
+/* Command and entry overlap */
 static void
-sja1105_vl_lookup_cmd_packing(void *buf, struct sja1105_dyn_cmd *cmd,
-			      enum packing_op op)
+sja1105et_vl_lookup_cmd_packing(void *buf, struct sja1105_dyn_cmd *cmd,
+				enum packing_op op)
 {
 	const int size = SJA1105_SIZE_DYN_CMD;
 
@@ -179,6 +180,20 @@ sja1105_vl_lookup_cmd_packing(void *buf, struct sja1105_dyn_cmd *cmd,
 	sja1105_packing(buf, &cmd->index,    9,  0, size, op);
 }
 
+/* Command and entry are separate */
+static void
+sja1105pqrs_vl_lookup_cmd_packing(void *buf, struct sja1105_dyn_cmd *cmd,
+				  enum packing_op op)
+{
+	u8 *p = buf + SJA1105_SIZE_VL_LOOKUP_ENTRY;
+	const int size = SJA1105_SIZE_DYN_CMD;
+
+	sja1105_packing(p, &cmd->valid,   31, 31, size, op);
+	sja1105_packing(p, &cmd->errors,  30, 30, size, op);
+	sja1105_packing(p, &cmd->rdwrset, 29, 29, size, op);
+	sja1105_packing(p, &cmd->index,    9,  0, size, op);
+}
+
 static size_t sja1105et_vl_lookup_entry_packing(void *buf, void *entry_ptr,
 						enum packing_op op)
 {
@@ -641,7 +656,7 @@ static size_t sja1105pqrs_cbs_entry_packing(void *buf, void *entry_ptr,
 const struct sja1105_dynamic_table_ops sja1105et_dyn_ops[BLK_IDX_MAX_DYN] = {
 	[BLK_IDX_VL_LOOKUP] = {
 		.entry_packing = sja1105et_vl_lookup_entry_packing,
-		.cmd_packing = sja1105_vl_lookup_cmd_packing,
+		.cmd_packing = sja1105et_vl_lookup_cmd_packing,
 		.access = OP_WRITE,
 		.max_entry_count = SJA1105_MAX_VL_LOOKUP_COUNT,
 		.packed_size = SJA1105ET_SIZE_VL_LOOKUP_DYN_CMD,
@@ -725,7 +740,7 @@ const struct sja1105_dynamic_table_ops sja1105et_dyn_ops[BLK_IDX_MAX_DYN] = {
 const struct sja1105_dynamic_table_ops sja1105pqrs_dyn_ops[BLK_IDX_MAX_DYN] = {
 	[BLK_IDX_VL_LOOKUP] = {
 		.entry_packing = sja1105_vl_lookup_entry_packing,
-		.cmd_packing = sja1105_vl_lookup_cmd_packing,
+		.cmd_packing = sja1105pqrs_vl_lookup_cmd_packing,
 		.access = (OP_READ | OP_WRITE),
 		.max_entry_count = SJA1105_MAX_VL_LOOKUP_COUNT,
 		.packed_size = SJA1105PQRS_SIZE_VL_LOOKUP_DYN_CMD,
drivers/net/dsa/sja1105/sja1105_main.c +52 -23

176 lines not on this page · raw message

drivers/net/ethernet/broadcom/bnx2.c +1 -1
index 3e8a179f39db..633b10389653 100644
@@ -8247,9 +8247,9 @@ bnx2_init_board(struct pci_dev *pdev, struct net_device *dev)
 		BNX2_WR(bp, PCI_COMMAND, reg);
 	} else if ((BNX2_CHIP_ID(bp) == BNX2_CHIP_ID_5706_A1) &&
 		!(bp->flags & BNX2_FLAG_PCIX)) {
-
 		dev_err(&pdev->dev,
 			"5706 A1 can only be used in a PCIX bus, aborting\n");
+		rc = -EPERM;
 		goto err_out_unmap;
 	}
 
drivers/net/ethernet/broadcom/bnxt/bnxt.c +3 -9
index 4385b42a2b63..adfaa9a850dd 100644
@@ -280,7 +280,8 @@ static bool bnxt_vf_pciid(enum board_idx idx)
 {
 	return (idx == NETXTREME_C_VF || idx == NETXTREME_E_VF ||
 		idx == NETXTREME_S_VF || idx == NETXTREME_C_VF_HV ||
-		idx == NETXTREME_E_VF_HV || idx == NETXTREME_E_P5_VF);
+		idx == NETXTREME_E_VF_HV || idx == NETXTREME_E_P5_VF ||
+		idx == NETXTREME_E_P5_VF_HV);
 }
 
 #define DB_CP_REARM_FLAGS	(DB_KEY_CP | DB_IDX_VALID)
@@ -6833,14 +6834,7 @@ static int bnxt_hwrm_func_backing_store_qcaps(struct bnxt *bp)
 static void bnxt_hwrm_set_pg_attr(struct bnxt_ring_mem_info *rmem, u8 *pg_attr,
 				  __le64 *pg_dir)
 {
-	u8 pg_size = 0;
-
-	if (BNXT_PAGE_SHIFT == 13)
-		pg_size = 1 << 4;
-	else if (BNXT_PAGE_SIZE == 16)
-		pg_size = 2 << 4;
-
-	*pg_attr = pg_size;
+	BNXT_SET_CTX_PAGE_ATTR(*pg_attr);
 	if (rmem->depth >= 1) {
 		if (rmem->depth == 2)
 			*pg_attr |= 2;
drivers/net/ethernet/broadcom/bnxt/bnxt.h +10 -0
index e4e926c65118..a95c5afa2f01 100644
@@ -1440,6 +1440,16 @@ struct bnxt_ctx_pg_info {
 #define BNXT_MAX_TQM_RINGS		\
 	(BNXT_MAX_TQM_SP_RINGS + BNXT_MAX_TQM_FP_RINGS)
 
+#define BNXT_SET_CTX_PAGE_ATTR(attr)					\
+do {									\
+	if (BNXT_PAGE_SIZE == 0x2000)					\
+		attr = FUNC_BACKING_STORE_CFG_REQ_SRQ_PG_SIZE_PG_8K;	\
+	else if (BNXT_PAGE_SIZE == 0x10000)				\
+		attr = FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_64K;	\
+	else								\
+		attr = FUNC_BACKING_STORE_CFG_REQ_QPC_PG_SIZE_PG_4K;	\
+} while (0)
+
 struct bnxt_ctx_mem_info {
 	u32	qp_max_entries;
 	u16	qp_min_qp1_entries;
drivers/net/ethernet/cavium/liquidio/lio_main.c +17 -10
index 7d00d3a8ded4..e0d18e917108 100644
@@ -1153,7 +1153,7 @@ static void octeon_destroy_resources(struct octeon_device *oct)
  * @lio: per-network private data
  * @start_stop: whether to start or stop
  */
-static void send_rx_ctrl_cmd(struct lio *lio, int start_stop)
+static int send_rx_ctrl_cmd(struct lio *lio, int start_stop)
 {
 	struct octeon_soft_command *sc;
 	union octnet_cmd *ncmd;
@@ -1161,15 +1161,15 @@ static void send_rx_ctrl_cmd(struct lio *lio, int start_stop)
 	int retval;
 
 	if (oct->props[lio->ifidx].rx_on == start_stop)
-		return;
+		return 0;
 
 	sc = (struct octeon_soft_command *)
 		octeon_alloc_soft_command(oct, OCTNET_CMD_SIZE,
 					  16, 0);
 	if (!sc) {
 		netif_info(lio, rx_err, lio->netdev,
-			   "Failed to allocate octeon_soft_command\n");
-		return;
+			   "Failed to allocate octeon_soft_command struct\n");
+		return -ENOMEM;
 	}
 
 	ncmd = (union octnet_cmd *)sc->virtdptr;
@@ -1192,18 +1192,19 @@ static void send_rx_ctrl_cmd(struct lio *lio, int start_stop)
 	if (retval == IQ_SEND_FAILED) {
 		netif_info(lio, rx_err, lio->netdev, "Failed to send RX Control message\n");
 		octeon_free_soft_command(oct, sc);
-		return;
 	} else {
 		/* Sleep on a wait queue till the cond flag indicates that the
 		 * response arrived or timed-out.
 		 */
 		retval = wait_for_sc_completion_timeout(oct, sc, 0);
 		if (retval)
-			return;
+			return retval;
 
 		oct->props[lio->ifidx].rx_on = start_stop;
 		WRITE_ONCE(sc->caller_is_done, true);
 	}
+
+	return retval;
 }
 
 /**
@@ -1778,6 +1779,7 @@ static int liquidio_open(struct net_device *netdev)
 	struct octeon_device_priv *oct_priv =
 		(struct octeon_device_priv *)oct->priv;
 	struct napi_struct *napi, *n;
+	int ret = 0;
 
 	if (oct->props[lio->ifidx].napi_enabled == 0) {
 		tasklet_disable(&oct_priv->droq_tasklet);
@@ -1813,7 +1815,9 @@ static int liquidio_open(struct net_device *netdev)
 	netif_info(lio, ifup, lio->netdev, "Interface Open, ready for traffic\n");
 
 	/* tell Octeon to start forwarding packets to host */
-	send_rx_ctrl_cmd(lio, 1);
+	ret = send_rx_ctrl_cmd(lio, 1);
+	if (ret)
+		return ret;
 
 	/* start periodical statistics fetch */
 	INIT_DELAYED_WORK(&lio->stats_wk.work, lio_fetch_stats);
@@ -1824,7 +1828,7 @@ static int liquidio_open(struct net_device *netdev)
 	dev_info(&oct->pci_dev->dev, "%s interface is opened\n",
 		 netdev->name);
 
-	return 0;
+	return ret;
 }
 
 /**
@@ -1838,6 +1842,7 @@ static int liquidio_stop(struct net_device *netdev)
 	struct octeon_device_priv *oct_priv =
 		(struct octeon_device_priv *)oct->priv;
 	struct napi_struct *napi, *n;
+	int ret = 0;
 
 	ifstate_reset(lio, LIO_IFSTATE_RUNNING);
 
@@ -1854,7 +1859,9 @@ static int liquidio_stop(struct net_device *netdev)
 	lio->link_changes++;
 
 	/* Tell Octeon that nic interface is down. */
-	send_rx_ctrl_cmd(lio, 0);
+	ret = send_rx_ctrl_cmd(lio, 0);
+	if (ret)
+		return ret;
 
 	if (OCTEON_CN23XX_PF(oct)) {
 		if (!oct->msix_on)
@@ -1889,7 +1896,7 @@ static int liquidio_stop(struct net_device *netdev)
 
 	dev_info(&oct->pci_dev->dev, "%s interface is stopped\n", netdev->name);
 
-	return 0;
+	return ret;
 }
 
 /**
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c +20 -7
index 103440f97bc8..226a7842d2fd 100644
@@ -595,7 +595,7 @@ static void octeon_destroy_resources(struct octeon_device *oct)
  * @lio: per-network private data
  * @start_stop: whether to start or stop
  */
-static void send_rx_ctrl_cmd(struct lio *lio, int start_stop)
+static int send_rx_ctrl_cmd(struct lio *lio, int start_stop)
 {
 	struct octeon_device *oct = (struct octeon_device *)lio->oct_dev;
 	struct octeon_soft_command *sc;
@@ -603,11 +603,16 @@ static void send_rx_ctrl_cmd(struct lio *lio, int start_stop)
 	int retval;
 
 	if (oct->props[lio->ifidx].rx_on == start_stop)
-		return;
+		return 0;
 
 	sc = (struct octeon_soft_command *)
 		octeon_alloc_soft_command(oct, OCTNET_CMD_SIZE,
 					  16, 0);
+	if (!sc) {
+		netif_info(lio, rx_err, lio->netdev,
+			   "Failed to allocate octeon_soft_command struct\n");
+		return -ENOMEM;
+	}
 
 	ncmd = (union octnet_cmd *)sc->virtdptr;
 
@@ -635,11 +640,13 @@ static void send_rx_ctrl_cmd(struct lio *lio, int start_stop)
 		 */
 		retval = wait_for_sc_completion_timeout(oct, sc, 0);
 		if (retval)
-			return;
+			return retval;
 
 		oct->props[lio->ifidx].rx_on = start_stop;
 		WRITE_ONCE(sc->caller_is_done, true);
 	}
+
+	return retval;
 }
 
 /**
@@ -906,6 +913,7 @@ static int liquidio_open(struct net_device *netdev)
 	struct octeon_device_priv *oct_priv =
 		(struct octeon_device_priv *)oct->priv;
 	struct napi_struct *napi, *n;
+	int ret = 0;
 
 	if (!oct->props[lio->ifidx].napi_enabled) {
 		tasklet_disable(&oct_priv->droq_tasklet);
@@ -932,11 +940,13 @@ static int liquidio_open(struct net_device *netdev)
 					(LIQUIDIO_NDEV_STATS_POLL_TIME_MS));
 
 	/* tell Octeon to start forwarding packets to host */
-	send_rx_ctrl_cmd(lio, 1);
+	ret = send_rx_ctrl_cmd(lio, 1);
+	if (ret)
+		return ret;
 
 	dev_info(&oct->pci_dev->dev, "%s interface is opened\n", netdev->name);
 
-	return 0;
+	return ret;
 }
 
 /**
@@ -950,9 +960,12 @@ static int liquidio_stop(struct net_device *netdev)
 	struct octeon_device_priv *oct_priv =
 		(struct octeon_device_priv *)oct->priv;
 	struct napi_struct *napi, *n;
+	int ret = 0;
 
 	/* tell Octeon to stop forwarding packets to host */
-	send_rx_ctrl_cmd(lio, 0);
+	ret = send_rx_ctrl_cmd(lio, 0);
+	if (ret)
+		return ret;
 
 	netif_info(lio, ifdown, lio->netdev, "Stopping interface!\n");
 	/* Inform that netif carrier is down */
@@ -986,7 +999,7 @@ static int liquidio_stop(struct net_device *netdev)
 
 	dev_info(&oct->pci_dev->dev, "%s interface is stopped\n", netdev->name);
 
-	return 0;
+	return ret;
 }
 
 /**
drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c +1 -1
index bde8494215c4..e664e05b9f02 100644
@@ -1042,7 +1042,7 @@ void clear_all_filters(struct adapter *adapter)
 				cxgb4_del_filter(dev, f->tid, &f->fs);
 		}
 
-		sb = t4_read_reg(adapter, LE_DB_SRVR_START_INDEX_A);
+		sb = adapter->tids.stid_base;
 		for (i = 0; i < sb; i++) {
 			f = (struct filter_entry *)adapter->tids.tid_tab[i];
 
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c +1 -1
index 7fd264a6d085..23c13f34a572 100644
@@ -6484,9 +6484,9 @@ static void cxgb4_ktls_dev_del(struct net_device *netdev,
 
 	adap->uld[CXGB4_ULD_KTLS].tlsdev_ops->tls_dev_del(netdev, tls_ctx,
 							  direction);
-	cxgb4_set_ktls_feature(adap, FW_PARAMS_PARAM_DEV_KTLS_HW_DISABLE);
 
 out_unlock:
+	cxgb4_set_ktls_feature(adap, FW_PARAMS_PARAM_DEV_KTLS_HW_DISABLE);
 	mutex_unlock(&uld_mutex);
 }
 
drivers/net/ethernet/chelsio/inline_crypto/ch_ktls/chcr_ktls.c +79 -1

172 lines not on this page · raw message

drivers/net/ethernet/chelsio/inline_crypto/ch_ktls/chcr_ktls.h +2 -0
index 18b3b1f02415..10572dc55365 100644
@@ -75,6 +75,8 @@ struct chcr_ktls_ofld_ctx_tx {
 struct chcr_ktls_uld_ctx {
 	struct list_head entry;
 	struct cxgb4_lld_info lldi;
+	struct xarray tid_list;
+	bool detach;
 };
 
 static inline struct chcr_ktls_ofld_ctx_tx *
drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_io.c +4 -2
index 188d871f6b8c..c320cc8ca68d 100644
@@ -1564,8 +1564,10 @@ static int chtls_pt_recvmsg(struct sock *sk, struct msghdr *msg, size_t len,
 			cerr = put_cmsg(msg, SOL_TLS, TLS_GET_RECORD_TYPE,
 					sizeof(thdr->type), &thdr->type);
 
-			if (cerr && thdr->type != TLS_RECORD_TYPE_DATA)
-				return -EIO;
+			if (cerr && thdr->type != TLS_RECORD_TYPE_DATA) {
+				copied = -EIO;
+				break;
+			}
 			/*  don't send tls header, skip copy */
 			goto skip_copy;
 		}
drivers/net/ethernet/freescale/fec_main.c +9 -2
index 55c28fbc5f9e..960def41cc55 100644
@@ -3277,7 +3277,9 @@ static int fec_enet_init(struct net_device *ndev)
 		return ret;
 	}
 
-	fec_enet_alloc_queue(ndev);
+	ret = fec_enet_alloc_queue(ndev);
+	if (ret)
+		return ret;
 
 	bd_size = (fep->total_tx_ring_size + fep->total_rx_ring_size) * dsize;
 
@@ -3285,7 +3287,8 @@ static int fec_enet_init(struct net_device *ndev)
 	cbd_base = dmam_alloc_coherent(&fep->pdev->dev, bd_size, &bd_dma,
 				       GFP_KERNEL);
 	if (!cbd_base) {
-		return -ENOMEM;
+		ret = -ENOMEM;
+		goto free_queue_mem;
 	}
 
 	/* Get the Ethernet address */
@@ -3363,6 +3366,10 @@ static int fec_enet_init(struct net_device *ndev)
 		fec_enet_update_ethtool_stats(ndev);
 
 	return 0;
+
+free_queue_mem:
+	fec_enet_free_queue(ndev);
+	return ret;
 }
 
 #ifdef CONFIG_OF
drivers/net/ethernet/fujitsu/fmvj18x_cs.c +2 -2
index a7b7a4aace79..b0c0504950d8 100644
@@ -548,8 +548,8 @@ static int fmvj18x_get_hwinfo(struct pcmcia_device *link, u_char *node_id)
 
     base = ioremap(link->resource[2]->start, resource_size(link->resource[2]));
     if (!base) {
-	    pcmcia_release_window(link, link->resource[2]);
-	    return -ENOMEM;
+	pcmcia_release_window(link, link->resource[2]);
+	return -1;
     }
 
     pcmcia_map_mem_page(link, link->resource[2], 0);
drivers/net/ethernet/google/gve/gve_main.c +12 -9
index 02e7d74779f4..d6e35421d8f7 100644
@@ -180,7 +180,7 @@ static int gve_napi_poll(struct napi_struct *napi, int budget)
 	/* Double check we have no extra work.
 	 * Ensure unmask synchronizes with checking for work.
 	 */
-	dma_rmb();
+	mb();
 	if (block->tx)
 		reschedule |= gve_tx_poll(block, -1);
 	if (block->rx)
@@ -220,6 +220,7 @@ static int gve_alloc_notify_blocks(struct gve_priv *priv)
 		int vecs_left = new_num_ntfy_blks % 2;
 
 		priv->num_ntfy_blks = new_num_ntfy_blks;
+		priv->mgmt_msix_idx = priv->num_ntfy_blks;
 		priv->tx_cfg.max_queues = min_t(int, priv->tx_cfg.max_queues,
 						vecs_per_type);
 		priv->rx_cfg.max_queues = min_t(int, priv->rx_cfg.max_queues,
@@ -300,20 +301,22 @@ static void gve_free_notify_blocks(struct gve_priv *priv)
 {
 	int i;
 
-	/* Free the irqs */
-	for (i = 0; i < priv->num_ntfy_blks; i++) {
-		struct gve_notify_block *block = &priv->ntfy_blocks[i];
-		int msix_idx = i;
+	if (priv->msix_vectors) {
+		/* Free the irqs */
+		for (i = 0; i < priv->num_ntfy_blks; i++) {
+			struct gve_notify_block *block = &priv->ntfy_blocks[i];
+			int msix_idx = i;
 
-		irq_set_affinity_hint(priv->msix_vectors[msix_idx].vector,
-				      NULL);
-		free_irq(priv->msix_vectors[msix_idx].vector, block);
+			irq_set_affinity_hint(priv->msix_vectors[msix_idx].vector,
+					      NULL);
+			free_irq(priv->msix_vectors[msix_idx].vector, block);
+		}
+		free_irq(priv->msix_vectors[priv->mgmt_msix_idx].vector, priv);
 	}
 	dma_free_coherent(&priv->pdev->dev,
 			  priv->num_ntfy_blks * sizeof(*priv->ntfy_blocks),
 			  priv->ntfy_blocks, priv->ntfy_block_bus);
 	priv->ntfy_blocks = NULL;
-	free_irq(priv->msix_vectors[priv->mgmt_msix_idx].vector, priv);
 	pci_disable_msix(priv->pdev);
 	kvfree(priv->msix_vectors);
 	priv->msix_vectors = NULL;
drivers/net/ethernet/google/gve/gve_tx.c +6 -2
index d0244feb0301..b653197b34d1 100644
@@ -207,10 +207,12 @@ static int gve_tx_alloc_ring(struct gve_priv *priv, int idx)
 		goto abort_with_info;
 
 	tx->tx_fifo.qpl = gve_assign_tx_qpl(priv);
+	if (!tx->tx_fifo.qpl)
+		goto abort_with_desc;
 
 	/* map Tx FIFO */
 	if (gve_tx_fifo_init(priv, &tx->tx_fifo))
-		goto abort_with_desc;
+		goto abort_with_qpl;
 
 	tx->q_resources =
 		dma_alloc_coherent(hdev,
@@ -229,6 +231,8 @@ static int gve_tx_alloc_ring(struct gve_priv *priv, int idx)
 
 abort_with_fifo:
 	gve_tx_fifo_release(priv, &tx->tx_fifo);
+abort_with_qpl:
+	gve_unassign_qpl(priv, tx->tx_fifo.qpl->id);
 abort_with_desc:
 	dma_free_coherent(hdev, bytes, tx->desc, tx->bus);
 	tx->desc = NULL;
@@ -478,7 +482,7 @@ netdev_tx_t gve_tx(struct sk_buff *skb, struct net_device *dev)
 	struct gve_tx_ring *tx;
 	int nsegs;
 
-	WARN(skb_get_queue_mapping(skb) > priv->tx_cfg.num_queues,
+	WARN(skb_get_queue_mapping(skb) >= priv->tx_cfg.num_queues,
 	     "skb queue index out of range");
 	tx = &priv->tx[skb_get_queue_mapping(skb)];
 	if (unlikely(gve_maybe_stop_tx(tx, skb))) {
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c +11 -15
index ef3148919970..92ca3b21968f 100644
@@ -792,8 +792,6 @@ static bool hns3_tunnel_csum_bug(struct sk_buff *skb)
 	      l4.udp->dest == htons(4790))))
 		return false;
 
-	skb_checksum_help(skb);
-
 	return true;
 }
 
@@ -871,8 +869,7 @@ static int hns3_set_l2l3l4(struct sk_buff *skb, u8 ol4_proto,
 			/* the stack computes the IP header already,
 			 * driver calculate l4 checksum when not TSO.
 			 */
-			skb_checksum_help(skb);
-			return 0;
+			return skb_checksum_help(skb);
 		}
 
 		hns3_set_outer_l2l3l4(skb, ol4_proto, ol_type_vlan_len_msec);
@@ -917,7 +914,7 @@ static int hns3_set_l2l3l4(struct sk_buff *skb, u8 ol4_proto,
 		break;
 	case IPPROTO_UDP:
 		if (hns3_tunnel_csum_bug(skb))
-			break;
+			return skb_checksum_help(skb);
 
 		hns3_set_field(*type_cs_vlan_tso, HNS3_TXD_L4CS_B, 1);
 		hns3_set_field(*type_cs_vlan_tso, HNS3_TXD_L4T_S,
@@ -942,8 +939,7 @@ static int hns3_set_l2l3l4(struct sk_buff *skb, u8 ol4_proto,
 		/* the stack computes the IP header already,
 		 * driver calculate l4 checksum when not TSO.
 		 */
-		skb_checksum_help(skb);
-		return 0;
+		return skb_checksum_help(skb);
 	}
 
 	return 0;
@@ -4113,12 +4109,6 @@ static int hns3_client_init(struct hnae3_handle *handle)
 	if (ret)
 		goto out_init_phy;
 
-	ret = register_netdev(netdev);
-	if (ret) {
-		dev_err(priv->dev, "probe register netdev fail!\n");
-		goto out_reg_netdev_fail;
-	}
-
 	/* the device can work without cpu rmap, only aRFS needs it */
 	ret = hns3_set_rx_cpu_rmap(netdev);
 	if (ret)
@@ -4146,17 +4136,23 @@ static int hns3_client_init(struct hnae3_handle *handle)
 
 	set_bit(HNS3_NIC_STATE_INITED, &priv->state);
 
+	ret = register_netdev(netdev);
+	if (ret) {
+		dev_err(priv->dev, "probe register netdev fail!\n");
+		goto out_reg_netdev_fail;
+	}
+
 	if (netif_msg_drv(handle))
 		hns3_info_show(priv);
 
 	return ret;
 
+out_reg_netdev_fail:
+	hns3_dbg_uninit(handle);
 out_client_start:
 	hns3_free_rx_cpu_rmap(netdev);
 	hns3_nic_uninit_irq(priv);
 out_init_irq_fail:
-	unregister_netdev(netdev);
-out_reg_netdev_fail:
 	hns3_uninit_phy(netdev);
 out_init_phy:
 	hns3_uninit_all_ring(priv);
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c +3 -1
index e0254672831f..2c2d53f5c56e 100644
@@ -678,7 +678,6 @@ void hclge_mbx_handler(struct hclge_dev *hdev)
 	unsigned int flag;
 	int ret = 0;
 
-	memset(&resp_msg, 0, sizeof(resp_msg));
 	/* handle all the mailbox requests in the queue */
 	while (!hclge_cmd_crq_empty(&hdev->hw)) {
 		if (test_bit(HCLGE_STATE_CMD_DISABLE, &hdev->state)) {
@@ -706,6 +705,9 @@ void hclge_mbx_handler(struct hclge_dev *hdev)
 
 		trace_hclge_pf_mbx_get(hdev, req);
 
+		/* clear the resp_msg before processing every mailbox message */
+		memset(&resp_msg, 0, sizeof(resp_msg));
+
 		switch (req->msg.code) {
 		case HCLGE_MBX_MAP_RING_TO_VECTOR:
 			ret = hclge_map_unmap_ring_to_vf_vector(vport, true,
drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c +7 -9
index 988db46bff0e..214a38de3f41 100644
@@ -467,12 +467,16 @@ static int ixgbe_set_vf_vlan(struct ixgbe_adapter *adapter, int add, int vid,
 	return err;
 }
 
-static s32 ixgbe_set_vf_lpe(struct ixgbe_adapter *adapter, u32 *msgbuf, u32 vf)
+static int ixgbe_set_vf_lpe(struct ixgbe_adapter *adapter, u32 max_frame, u32 vf)
 {
 	struct ixgbe_hw *hw = &adapter->hw;
-	int max_frame = msgbuf[1];
 	u32 max_frs;
 
+	if (max_frame < ETH_MIN_MTU || max_frame > IXGBE_MAX_JUMBO_FRAME_SIZE) {
+		e_err(drv, "VF max_frame %d out of range\n", max_frame);
+		return -EINVAL;
+	}
+
 	/*
 	 * For 82599EB we have to keep all PFs and VFs operating with
 	 * the same max_frame value in order to avoid sending an oversize
@@ -533,12 +537,6 @@ static s32 ixgbe_set_vf_lpe(struct ixgbe_adapter *adapter, u32 *msgbuf, u32 vf)
 		}
 	}
 
-	/* MTU < 68 is an error and causes problems on some kernels */
-	if (max_frame > IXGBE_MAX_JUMBO_FRAME_SIZE) {
-		e_err(drv, "VF max_frame %d out of range\n", max_frame);
-		return -EINVAL;
-	}
-
 	/* pull current max frame size from hardware */
 	max_frs = IXGBE_READ_REG(hw, IXGBE_MAXFRS);
 	max_frs &= IXGBE_MHADD_MFS_MASK;
@@ -1249,7 +1247,7 @@ static int ixgbe_rcv_msg_from_vf(struct ixgbe_adapter *adapter, u32 vf)
 		retval = ixgbe_set_vf_vlan_msg(adapter, msgbuf, vf);
 		break;
 	case IXGBE_VF_SET_LPE:
-		retval = ixgbe_set_vf_lpe(adapter, msgbuf, vf);
+		retval = ixgbe_set_vf_lpe(adapter, msgbuf[1], vf);
 		break;
 	case IXGBE_VF_SET_MACVLAN:
 		retval = ixgbe_set_vf_macvlan_msg(adapter, msgbuf, vf);
drivers/net/ethernet/lantiq_xrx200.c +9 -5
index 51ed8a54d380..135ba5b6ae98 100644
@@ -154,6 +154,7 @@ static int xrx200_close(struct net_device *net_dev)
 
 static int xrx200_alloc_skb(struct xrx200_chan *ch)
 {
+	dma_addr_t mapping;
 	int ret = 0;
 
 	ch->skb[ch->dma.desc] = netdev_alloc_skb_ip_align(ch->priv->net_dev,
@@ -163,16 +164,17 @@ static int xrx200_alloc_skb(struct xrx200_chan *ch)
 		goto skip;
 	}
 
-	ch->dma.desc_base[ch->dma.desc].addr = dma_map_single(ch->priv->dev,
-			ch->skb[ch->dma.desc]->data, XRX200_DMA_DATA_LEN,
-			DMA_FROM_DEVICE);
-	if (unlikely(dma_mapping_error(ch->priv->dev,
-				       ch->dma.desc_base[ch->dma.desc].addr))) {
+	mapping = dma_map_single(ch->priv->dev, ch->skb[ch->dma.desc]->data,
+				 XRX200_DMA_DATA_LEN, DMA_FROM_DEVICE);
+	if (unlikely(dma_mapping_error(ch->priv->dev, mapping))) {
 		dev_kfree_skb_any(ch->skb[ch->dma.desc]);
 		ret = -ENOMEM;
 		goto skip;
 	}
 
+	ch->dma.desc_base[ch->dma.desc].addr = mapping;
+	/* Make sure the address is written before we give it to HW */
+	wmb();
 skip:
 	ch->dma.desc_base[ch->dma.desc].ctl =
 		LTQ_DMA_OWN | LTQ_DMA_RX_OFFSET(NET_IP_ALIGN) |
@@ -196,6 +198,8 @@ static int xrx200_hw_receive(struct xrx200_chan *ch)
 	ch->dma.desc %= LTQ_DESC_NUM;
 
 	if (ret) {
+		ch->skb[ch->dma.desc] = skb;
+		net_dev->stats.rx_dropped++;
 		netdev_err(net_dev, "failed to allocate new rx buffer\n");
 		return ret;
 	}
drivers/net/ethernet/marvell/mvpp2/mvpp2.h +22 -0
index 834775843067..a1aefce55e65 100644
@@ -909,6 +909,14 @@ enum mvpp22_ptp_packet_format {
 
 #define MVPP2_DESC_DMA_MASK	DMA_BIT_MASK(40)
 
+/* Buffer header info bits */
+#define MVPP2_B_HDR_INFO_MC_ID_MASK	0xfff
+#define MVPP2_B_HDR_INFO_MC_ID(info)	((info) & MVPP2_B_HDR_INFO_MC_ID_MASK)
+#define MVPP2_B_HDR_INFO_LAST_OFFS	12
+#define MVPP2_B_HDR_INFO_LAST_MASK	BIT(12)
+#define MVPP2_B_HDR_INFO_IS_LAST(info) \
+	   (((info) & MVPP2_B_HDR_INFO_LAST_MASK) >> MVPP2_B_HDR_INFO_LAST_OFFS)
+
 struct mvpp2_tai;
 
 /* Definitions */
@@ -918,6 +926,20 @@ struct mvpp2_rss_table {
 	u32 indir[MVPP22_RSS_TABLE_ENTRIES];
 };
 
+struct mvpp2_buff_hdr {
+	__le32 next_phys_addr;
+	__le32 next_dma_addr;
+	__le16 byte_count;
+	__le16 info;
+	__le16 reserved1;	/* bm_qset (for future use, BM) */
+	u8 next_phys_addr_high;
+	u8 next_dma_addr_high;
+	__le16 reserved2;
+	__le16 reserved3;
+	__le16 reserved4;
+	__le16 reserved5;
+};
+
 /* Shared Packet Processor resources */
 struct mvpp2 {
 	/* Shared registers' base addresses */
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +45 -9

78 lines not on this page · raw message

drivers/net/ethernet/mediatek/mtk_eth_soc.c +44 -23

76 lines not on this page · raw message

drivers/net/ethernet/mediatek/mtk_eth_soc.h +22 -2
index 73ce1f0f307a..54a7cd93cc0f 100644
@@ -266,8 +266,21 @@
 /* QDMA FQ Free Page Buffer Length Register */
 #define MTK_QDMA_FQ_BLEN	0x1B2C
 
-/* GMA1 Received Good Byte Count Register */
-#define MTK_GDM1_TX_GBCNT	0x2400
+/* GMA1 counter / statics register */
+#define MTK_GDM1_RX_GBCNT_L	0x2400
+#define MTK_GDM1_RX_GBCNT_H	0x2404
+#define MTK_GDM1_RX_GPCNT	0x2408
+#define MTK_GDM1_RX_OERCNT	0x2410
+#define MTK_GDM1_RX_FERCNT	0x2414
+#define MTK_GDM1_RX_SERCNT	0x2418
+#define MTK_GDM1_RX_LENCNT	0x241c
+#define MTK_GDM1_RX_CERCNT	0x2420
+#define MTK_GDM1_RX_FCCNT	0x2424
+#define MTK_GDM1_TX_SKIPCNT	0x2428
+#define MTK_GDM1_TX_COLCNT	0x242c
+#define MTK_GDM1_TX_GBCNT_L	0x2430
+#define MTK_GDM1_TX_GBCNT_H	0x2434
+#define MTK_GDM1_TX_GPCNT	0x2438
 #define MTK_STAT_OFFSET		0x40
 
 /* QDMA descriptor txd4 */
@@ -478,6 +491,13 @@
 #define MT7628_SDM_MAC_ADRL	(MT7628_SDM_OFFSET + 0x0c)
 #define MT7628_SDM_MAC_ADRH	(MT7628_SDM_OFFSET + 0x10)
 
+/* Counter / stat register */
+#define MT7628_SDM_TPCNT	(MT7628_SDM_OFFSET + 0x100)
+#define MT7628_SDM_TBCNT	(MT7628_SDM_OFFSET + 0x104)
+#define MT7628_SDM_RPCNT	(MT7628_SDM_OFFSET + 0x108)
+#define MT7628_SDM_RBCNT	(MT7628_SDM_OFFSET + 0x10c)
+#define MT7628_SDM_CS_ERR	(MT7628_SDM_OFFSET + 0x110)
+
 struct mtk_rx_dma {
 	unsigned int rxd1;
 	unsigned int rxd2;
drivers/net/ethernet/mellanox/mlx4/en_ethtool.c +1 -3
index 1434df66fcf2..3616b77caa0a 100644
@@ -2027,8 +2027,6 @@ static int mlx4_en_set_tunable(struct net_device *dev,
 	return ret;
 }
 
-#define MLX4_EEPROM_PAGE_LEN 256
-
 static int mlx4_en_get_module_info(struct net_device *dev,
 				   struct ethtool_modinfo *modinfo)
 {
@@ -2063,7 +2061,7 @@ static int mlx4_en_get_module_info(struct net_device *dev,
 		break;
 	case MLX4_MODULE_ID_SFP:
 		modinfo->type = ETH_MODULE_SFF_8472;
-		modinfo->eeprom_len = MLX4_EEPROM_PAGE_LEN;
+		modinfo->eeprom_len = ETH_MODULE_SFF_8472_LEN;
 		break;
 	default:
 		return -EINVAL;
drivers/net/ethernet/mellanox/mlx4/port.c +103 -4

138 lines not on this page · raw message

drivers/net/ethernet/mellanox/mlx5/core/en/rep/bond.c +2 -0
index 95f2b26a3ee3..9c076aa20306 100644
@@ -223,6 +223,8 @@ static void mlx5e_rep_changelowerstate_event(struct net_device *netdev, void *pt
 	rpriv = priv->ppriv;
 	fwd_vport_num = rpriv->rep->vport;
 	lag_dev = netdev_master_upper_dev_get(netdev);
+	if (!lag_dev)
+		return;
 
 	netdev_dbg(netdev, "lag_dev(%s)'s slave vport(%d) is txable(%d)\n",
 		   lag_dev->name, fwd_vport_num, net_lag_port_dev_txable(netdev));
drivers/net/ethernet/mellanox/mlx5/core/en/rep/tc.c +1 -1
index 76177f7c5ec2..e6f782743fbe 100644
@@ -643,7 +643,7 @@ bool mlx5e_rep_tc_update_skb(struct mlx5_cqe64 *cqe,
 	}
 
 	if (chain) {
-		tc_skb_ext = skb_ext_add(skb, TC_SKB_EXT);
+		tc_skb_ext = tc_skb_ext_alloc(skb);
 		if (!tc_skb_ext) {
 			WARN_ON(1);
 			return false;
drivers/net/ethernet/mellanox/mlx5/core/en_fs.c +1 -0
index 7ad332d8625b..93877becfae2 100644
@@ -35,6 +35,7 @@
 #include <linux/ipv6.h>
 #include <linux/tcp.h>
 #include <linux/mlx5/fs.h>
+#include <linux/mlx5/mpfs.h>
 #include "en.h"
 #include "lib/mpfs.h"
 
drivers/net/ethernet/mellanox/mlx5/core/en_main.c +8 -1
index 9a12df43becc..f18b52be32e9 100644
@@ -2920,7 +2920,7 @@ static int mlx5e_update_netdev_queues(struct mlx5e_priv *priv)
 	int err;
 
 	old_num_txqs = netdev->real_num_tx_queues;
-	old_ntc = netdev->num_tc;
+	old_ntc = netdev->num_tc ? : 1;
 
 	nch = priv->channels.params.num_channels;
 	ntc = priv->channels.params.num_tc;
@@ -5385,6 +5385,11 @@ struct net_device *mlx5e_create_netdev(struct mlx5_core_dev *mdev,
 	return NULL;
 }
 
+static void mlx5e_reset_channels(struct net_device *netdev)
+{
+	netdev_reset_tc(netdev);
+}
+
 int mlx5e_attach_netdev(struct mlx5e_priv *priv)
 {
 	const bool take_rtnl = priv->netdev->reg_state == NETREG_REGISTERED;
@@ -5438,6 +5443,7 @@ int mlx5e_attach_netdev(struct mlx5e_priv *priv)
 	profile->cleanup_tx(priv);
 
 out:
+	mlx5e_reset_channels(priv->netdev);
 	set_bit(MLX5E_STATE_DESTROYING, &priv->state);
 	cancel_work_sync(&priv->update_stats_work);
 	return err;
@@ -5455,6 +5461,7 @@ void mlx5e_detach_netdev(struct mlx5e_priv *priv)
 
 	profile->cleanup_rx(priv);
 	profile->cleanup_tx(priv);
+	mlx5e_reset_channels(priv->netdev);
 	cancel_work_sync(&priv->update_stats_work);
 }
 
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c +7 -3
index 3079a82f1f41..1bdeb948f56d 100644
@@ -4025,8 +4025,12 @@ static int add_vlan_push_action(struct mlx5e_priv *priv,
 	if (err)
 		return err;
 
-	*out_dev = dev_get_by_index_rcu(dev_net(vlan_dev),
-					dev_get_iflink(vlan_dev));
+	rcu_read_lock();
+	*out_dev = dev_get_by_index_rcu(dev_net(vlan_dev), dev_get_iflink(vlan_dev));
+	rcu_read_unlock();
+	if (!*out_dev)
+		return -ENODEV;
+
 	if (is_vlan_dev(*out_dev))
 		err = add_vlan_push_action(priv, attr, out_dev, action);
 
@@ -5490,7 +5494,7 @@ bool mlx5e_tc_update_skb(struct mlx5_cqe64 *cqe,
 	}
 
 	if (chain) {
-		tc_skb_ext = skb_ext_add(skb, TC_SKB_EXT);
+		tc_skb_ext = tc_skb_ext_alloc(skb);
 		if (WARN_ON(!tc_skb_ext))
 			return false;
 
drivers/net/ethernet/mellanox/mlx5/core/eswitch.c +1 -0
index d4ee0a9c03db..d61539b5567c 100644
@@ -35,6 +35,7 @@
 #include <linux/mlx5/mlx5_ifc.h>
 #include <linux/mlx5/vport.h>
 #include <linux/mlx5/fs.h>
+#include <linux/mlx5/mpfs.h>
 #include "esw/acl/lgcy.h"
 #include "mlx5_core.h"
 #include "lib/eq.h"
drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_termtbl.c +15 -23
index ec679560a95d..1cbb330b9f42 100644
@@ -76,10 +76,11 @@ mlx5_eswitch_termtbl_create(struct mlx5_core_dev *dev,
 	/* As this is the terminating action then the termination table is the
 	 * same prio as the slow path
 	 */
-	ft_attr.flags = MLX5_FLOW_TABLE_TERMINATION |
+	ft_attr.flags = MLX5_FLOW_TABLE_TERMINATION | MLX5_FLOW_TABLE_UNMANAGED |
 			MLX5_FLOW_TABLE_TUNNEL_EN_REFORMAT;
-	ft_attr.prio = FDB_SLOW_PATH;
+	ft_attr.prio = FDB_TC_OFFLOAD;
 	ft_attr.max_fte = 1;
+	ft_attr.level = 1;
 	ft_attr.autogroup.max_num_groups = 1;
 	tt->termtbl = mlx5_create_auto_grouped_flow_table(root_ns, &ft_attr);
 	if (IS_ERR(tt->termtbl)) {
@@ -171,19 +172,6 @@ mlx5_eswitch_termtbl_put(struct mlx5_eswitch *esw,
 	}
 }
 
-static bool mlx5_eswitch_termtbl_is_encap_reformat(struct mlx5_pkt_reformat *rt)
-{
-	switch (rt->reformat_type) {
-	case MLX5_REFORMAT_TYPE_L2_TO_VXLAN:
-	case MLX5_REFORMAT_TYPE_L2_TO_NVGRE:
-	case MLX5_REFORMAT_TYPE_L2_TO_L2_TUNNEL:
-	case MLX5_REFORMAT_TYPE_L2_TO_L3_TUNNEL:
-		return true;
-	default:
-		return false;
-	}
-}
-
 static void
 mlx5_eswitch_termtbl_actions_move(struct mlx5_flow_act *src,
 				  struct mlx5_flow_act *dst)
@@ -201,14 +189,6 @@ mlx5_eswitch_termtbl_actions_move(struct mlx5_flow_act *src,
 			memset(&src->vlan[1], 0, sizeof(src->vlan[1]));
 		}
 	}
-
-	if (src->action & MLX5_FLOW_CONTEXT_ACTION_PACKET_REFORMAT &&
-	    mlx5_eswitch_termtbl_is_encap_reformat(src->pkt_reformat)) {
-		src->action &= ~MLX5_FLOW_CONTEXT_ACTION_PACKET_REFORMAT;
-		dst->action |= MLX5_FLOW_CONTEXT_ACTION_PACKET_REFORMAT;
-		dst->pkt_reformat = src->pkt_reformat;
-		src->pkt_reformat = NULL;
-	}
 }
 
 static bool mlx5_eswitch_offload_is_uplink_port(const struct mlx5_eswitch *esw,
@@ -237,6 +217,7 @@ mlx5_eswitch_termtbl_required(struct mlx5_eswitch *esw,
 	int i;
 
 	if (!MLX5_CAP_ESW_FLOWTABLE_FDB(esw->dev, termination_table) ||
+	    !MLX5_CAP_ESW_FLOWTABLE_FDB(esw->dev, ignore_flow_level) ||
 	    attr->flags & MLX5_ESW_ATTR_FLAG_SLOW_PATH ||
 	    !mlx5_eswitch_offload_is_uplink_port(esw, spec))
 		return false;
@@ -278,6 +259,14 @@ mlx5_eswitch_add_termtbl_rule(struct mlx5_eswitch *esw,
 		if (dest[i].type != MLX5_FLOW_DESTINATION_TYPE_VPORT)
 			continue;
 
+		if (attr->dests[num_vport_dests].flags & MLX5_ESW_DEST_ENCAP) {
+			term_tbl_act.action |= MLX5_FLOW_CONTEXT_ACTION_PACKET_REFORMAT;
+			term_tbl_act.pkt_reformat = attr->dests[num_vport_dests].pkt_reformat;
+		} else {
+			term_tbl_act.action &= ~MLX5_FLOW_CONTEXT_ACTION_PACKET_REFORMAT;
+			term_tbl_act.pkt_reformat = NULL;
+		}
+
 		/* get the terminating table for the action list */
 		tt = mlx5_eswitch_termtbl_get_create(esw, &term_tbl_act,
 						     &dest[i], attr);
@@ -299,6 +288,9 @@ mlx5_eswitch_add_termtbl_rule(struct mlx5_eswitch *esw,
 		goto revert_changes;
 
 	/* create the FTE */
+	flow_act->action &= ~MLX5_FLOW_CONTEXT_ACTION_PACKET_REFORMAT;
+	flow_act->pkt_reformat = NULL;
+	flow_act->flags |= FLOW_ACT_IGNORE_FLOW_LEVEL;
 	rule = mlx5_add_flow_rules(fdb, spec, flow_act, dest, num_dest);
 	if (IS_ERR(rule))
 		goto revert_changes;
drivers/net/ethernet/mellanox/mlx5/core/lag_mp.c +6 -0
index 88e58ac902de..15c3a9058e72 100644
@@ -307,6 +307,11 @@ int mlx5_lag_mp_init(struct mlx5_lag *ldev)
 	struct lag_mp *mp = &ldev->lag_mp;
 	int err;
 
+	/* always clear mfi, as it might become stale when a route delete event
+	 * has been missed
+	 */
+	mp->mfi = NULL;
+
 	if (mp->fib_nb.notifier_call)
 		return 0;
 
@@ -335,4 +340,5 @@ void mlx5_lag_mp_cleanup(struct mlx5_lag *ldev)
 	unregister_fib_notifier(&init_net, &mp->fib_nb);
 	destroy_workqueue(mp->wq);
 	mp->fib_nb.notifier_call = NULL;
+	mp->mfi = NULL;
 }
drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.c +3 -0
index fd8449ff9e17..839a01da110f 100644
@@ -33,6 +33,7 @@
 #include <linux/etherdevice.h>
 #include <linux/mlx5/driver.h>
 #include <linux/mlx5/mlx5_ifc.h>
+#include <linux/mlx5/mpfs.h>
 #include <linux/mlx5/eswitch.h>
 #include "mlx5_core.h"
 #include "lib/mpfs.h"
@@ -175,6 +176,7 @@ int mlx5_mpfs_add_mac(struct mlx5_core_dev *dev, u8 *mac)
 	mutex_unlock(&mpfs->lock);
 	return err;
 }
+EXPORT_SYMBOL(mlx5_mpfs_add_mac);
 
 int mlx5_mpfs_del_mac(struct mlx5_core_dev *dev, u8 *mac)
 {
@@ -206,3 +208,4 @@ int mlx5_mpfs_del_mac(struct mlx5_core_dev *dev, u8 *mac)
 	mutex_unlock(&mpfs->lock);
 	return err;
 }
+EXPORT_SYMBOL(mlx5_mpfs_del_mac);
drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.h +1 -4
index 4a7b2c3203a7..4a293542a7aa 100644
@@ -84,12 +84,9 @@ struct l2addr_node {
 #ifdef CONFIG_MLX5_MPFS
 int  mlx5_mpfs_init(struct mlx5_core_dev *dev);
 void mlx5_mpfs_cleanup(struct mlx5_core_dev *dev);
-int  mlx5_mpfs_add_mac(struct mlx5_core_dev *dev, u8 *mac);
-int  mlx5_mpfs_del_mac(struct mlx5_core_dev *dev, u8 *mac);
 #else /* #ifndef CONFIG_MLX5_MPFS */
 static inline int  mlx5_mpfs_init(struct mlx5_core_dev *dev) { return 0; }
 static inline void mlx5_mpfs_cleanup(struct mlx5_core_dev *dev) {}
-static inline int  mlx5_mpfs_add_mac(struct mlx5_core_dev *dev, u8 *mac) { return 0; }
-static inline int  mlx5_mpfs_del_mac(struct mlx5_core_dev *dev, u8 *mac) { return 0; }
 #endif
+
 #endif
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +6 -3
index 4374ce4671ad..3134f7e669f8 100644
@@ -1052,7 +1052,6 @@ static void stmmac_check_pcs_mode(struct stmmac_priv *priv)
  */
 static int stmmac_init_phy(struct net_device *dev)
 {
-	struct ethtool_wolinfo wol = { .cmd = ETHTOOL_GWOL };
 	struct stmmac_priv *priv = netdev_priv(dev);
 	struct device_node *node;
 	int ret;
@@ -1078,8 +1077,12 @@ static int stmmac_init_phy(struct net_device *dev)
 		ret = phylink_connect_phy(priv->phylink, phydev);
 	}
 
-	phylink_ethtool_get_wol(priv->phylink, &wol);
-	device_set_wakeup_capable(priv->device, !!wol.supported);
+	if (!priv->plat->pmt) {
+		struct ethtool_wolinfo wol = { .cmd = ETHTOOL_GWOL };
+
+		phylink_ethtool_get_wol(priv->phylink, &wol);
+		device_set_wakeup_capable(priv->device, !!wol.supported);
+	}
 
 	return ret;
 }
drivers/net/ethernet/ti/netcp_core.c +2 -2
index d7a144b4a09f..dc50e948195d 100644
@@ -1350,8 +1350,8 @@ int netcp_txpipe_open(struct netcp_tx_pipe *tx_pipe)
 	tx_pipe->dma_queue = knav_queue_open(name, tx_pipe->dma_queue_id,
 					     KNAV_QUEUE_SHARED);
 	if (IS_ERR(tx_pipe->dma_queue)) {
-		dev_err(dev, "Could not open DMA queue for channel \"%s\": %d\n",
-			name, ret);
+		dev_err(dev, "Could not open DMA queue for channel \"%s\": %pe\n",
+			name, tx_pipe->dma_queue);
 		ret = PTR_ERR(tx_pipe->dma_queue);
 		goto err;
 	}
drivers/net/ipa/ipa.h +2 -0
index 6c2371084c55..da862db09d7b 100644
@@ -56,6 +56,7 @@ enum ipa_flag {
  * @mem_virt:		Virtual address of IPA-local memory space
  * @mem_offset:		Offset from @mem_virt used for access to IPA memory
  * @mem_size:		Total size (bytes) of memory at @mem_virt
+ * @mem_count:		Number of entries in the mem array
  * @mem:		Array of IPA-local memory region descriptors
  * @imem_iova:		I/O virtual address of IPA region in IMEM
  * @imem_size;		Size of IMEM region
@@ -102,6 +103,7 @@ struct ipa {
 	void *mem_virt;
 	u32 mem_offset;
 	u32 mem_size;
+	u32 mem_count;
 	const struct ipa_mem *mem;
 
 	unsigned long imem_iova;
drivers/net/ipa/ipa_mem.c +2 -1
index 2d45c444a67f..a78d66051a17 100644
@@ -181,7 +181,7 @@ int ipa_mem_config(struct ipa *ipa)
 	 * for the region, write "canary" values in the space prior to
 	 * the region's base address.
 	 */
-	for (mem_id = 0; mem_id < IPA_MEM_COUNT; mem_id++) {
+	for (mem_id = 0; mem_id < ipa->mem_count; mem_id++) {
 		const struct ipa_mem *mem = &ipa->mem[mem_id];
 		u16 canary_count;
 		__le32 *canary;
@@ -488,6 +488,7 @@ int ipa_mem_init(struct ipa *ipa, const struct ipa_mem_data *mem_data)
 	ipa->mem_size = resource_size(res);
 
 	/* The ipa->mem[] array is indexed by enum ipa_mem_id values */
+	ipa->mem_count = mem_data->local_count;
 	ipa->mem = mem_data->local;
 
 	ret = ipa_imem_init(ipa, mem_data->imem_addr, mem_data->imem_size);
drivers/net/mdio/mdio-octeon.c +0 -2
index d1e1009d51af..6faf39314ac9 100644
@@ -71,7 +71,6 @@ static int octeon_mdiobus_probe(struct platform_device *pdev)
 
 	return 0;
 fail_register:
-	mdiobus_free(bus->mii_bus);
 	smi_en.u64 = 0;
 	oct_mdio_writeq(smi_en.u64, bus->register_base + SMI_EN);
 	return err;
@@ -85,7 +84,6 @@ static int octeon_mdiobus_remove(struct platform_device *pdev)
 	bus = platform_get_drvdata(pdev);
 
 	mdiobus_unregister(bus->mii_bus);
-	mdiobus_free(bus->mii_bus);
 	smi_en.u64 = 0;
 	oct_mdio_writeq(smi_en.u64, bus->register_base + SMI_EN);
 	return 0;
drivers/net/mdio/mdio-thunder.c +0 -1
index 3d7eda99d34e..dd7430c998a2 100644
@@ -126,7 +126,6 @@ static void thunder_mdiobus_pci_remove(struct pci_dev *pdev)
 			continue;
 
 		mdiobus_unregister(bus->mii_bus);
-		mdiobus_free(bus->mii_bus);
 		oct_mdio_writeq(0, bus->register_base + SMI_EN);
 	}
 	pci_release_regions(pdev);
drivers/net/usb/hso.c +22 -23

68 lines not on this page · raw message

drivers/net/usb/smsc75xx.c +6 -2
index 8689835a5214..d44657b54d2b 100644
@@ -1483,7 +1483,7 @@ static int smsc75xx_bind(struct usbnet *dev, struct usb_interface *intf)
 	ret = smsc75xx_wait_ready(dev, 0);
 	if (ret < 0) {
 		netdev_warn(dev->net, "device not ready in smsc75xx_bind\n");
-		return ret;
+		goto err;
 	}
 
 	smsc75xx_init_mac_address(dev);
@@ -1492,7 +1492,7 @@ static int smsc75xx_bind(struct usbnet *dev, struct usb_interface *intf)
 	ret = smsc75xx_reset(dev);
 	if (ret < 0) {
 		netdev_warn(dev->net, "smsc75xx_reset error %d\n", ret);
-		return ret;
+		goto err;
 	}
 
 	dev->net->netdev_ops = &smsc75xx_netdev_ops;
@@ -1502,6 +1502,10 @@ static int smsc75xx_bind(struct usbnet *dev, struct usb_interface *intf)
 	dev->hard_mtu = dev->net->mtu + dev->net->hard_header_len;
 	dev->net->max_mtu = MAX_SINGLE_PACKET_SIZE;
 	return 0;
+
+err:
+	kfree(pdata);
+	return ret;
 }
 
 static void smsc75xx_unbind(struct usbnet *dev, struct usb_interface *intf)
drivers/net/wireless/ath/ath10k/htt.h +1 -0
index cad59494f175..2ee2c655d599 100644
@@ -845,6 +845,7 @@ enum htt_security_types {
 
 #define ATH10K_HTT_TXRX_PEER_SECURITY_MAX 2
 #define ATH10K_TXRX_NUM_EXT_TIDS 19
+#define ATH10K_TXRX_NON_QOS_TID 16
 
 enum htt_security_flags {
 #define HTT_SECURITY_TYPE_MASK 0x7F
drivers/net/wireless/ath/ath10k/htt_rx.c +191 -10

245 lines not on this page · raw message

drivers/net/wireless/ath/ath10k/rx_desc.h +13 -1
index dec1582005b9..13a1cae6b51b 100644

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

drivers/net/wireless/ath/ath11k/dp_rx.c +18 -0
index 3638501a0959..2bff8eb507d4 100644

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

drivers/net/wireless/ath/ath11k/dp_rx.h +1 -0
index fbea45f79c9b..6986752fc4b6 100644

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

drivers/net/wireless/ath/ath11k/mac.c +6 -0
index e9e6b0c4de22..0738c784616f 100644

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

drivers/net/wireless/ath/ath6kl/debug.c +4 -1
index 7506cea46f58..433a047f3747 100644

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

drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c +2 -6
index f9ebb98b0e3c..b6d0bc73923f 100644

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

drivers/net/wireless/broadcom/brcm80211/brcmfmac/bus.h +17 -2
index 08f9d47f2e5c..3f5da3bb6aa5 100644

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

drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c +18 -24

42 lines not on this page · raw message

drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c +2 -7
index d8db0dbcfe09..603aff421e38 100644

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

drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.h +0 -5
index d026401d2001..8e6c227e8315 100644

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

drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c +2 -6
index 586f4dfc638b..9fb68c2dc7e3 100644

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

drivers/net/wireless/marvell/libertas/mesh.c +4 -29
index f5b78257d551..c68814841583 100644

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

drivers/nvme/target/tcp.c +1 -1
index d958b5da9b88..4df4f37e6b89 100644

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

drivers/platform/x86/hp-wireless.c +2 -0
index 12c31fd5d5ae..0753ef18e721 100644

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

drivers/platform/x86/hp_accel.c +21 -1
index 799cbe2ffcf3..8c0867bda828 100644

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

drivers/platform/x86/intel_punit_ipc.c +1 -0
index 05cced59e251..f58b8543f6ac 100644

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

drivers/platform/x86/touchscreen_dmi.c +43 -0

43 lines not on this page · raw message

drivers/s390/cio/vfio_ccw_cp.c +4 -0
index b9febc581b1f..8d1b2771c1aa 100644

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

drivers/scsi/BusLogic.c +3 -3
index ccb061ab0a0a..7231de2767a9 100644

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

drivers/scsi/BusLogic.h +1 -1
index 6182cc8a0344..e081ad47d1cf 100644

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

drivers/scsi/libsas/sas_port.c +2 -2
index 19cf418928fa..e3d03d744713 100644

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

drivers/scsi/pm8001/pm8001_hwi.c +6 -4
index 355d1c5f2194..2114d2dd3501 100644

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

drivers/scsi/pm8001/pm8001_init.c +1 -1
index 7657d68e12d5..0c0c886c7371 100644

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

drivers/scsi/pm8001/pm8001_sas.c +6 -1
index 474468df2a78..39de9a9360d3 100644

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

drivers/scsi/pm8001/pm80xx_hwi.c +6 -6
index 27b354860a16..a203a4fc2674 100644

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

drivers/scsi/ufs/ufs-mediatek.c +4 -0
index 09d2ac20508b..aace13399a7f 100644

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

drivers/spi/spi-fsl-dspi.c +3 -1
index 028736687488..fb45e6af6638 100644

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

drivers/spi/spi.c +18 -5
index 419de3d40481..a6f1e94af13c 100644

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

drivers/staging/emxx_udc/emxx_udc.c +2 -2
index a30b4f5b199b..3897f8e8f5e0 100644

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

drivers/staging/iio/cdc/ad7746.c +0 -1
index dfd71e99e872..eab534dc4bcc 100644

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

drivers/thermal/intel/int340x_thermal/int340x_thermal_zone.c +4 -0
index 6e479deff76b..a337600d5bc4 100644

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

drivers/thermal/intel/x86_pkg_temp_thermal.c +1 -1
index b81c33202f41..4f5d97329ee3 100644

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

drivers/thunderbolt/dma_port.c +6 -5
index 847dd07a7b17..de219953c8b3 100644

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

drivers/thunderbolt/usb4.c +5 -4
index f2583b4053e4..c05ec6fad77f 100644

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

drivers/tty/serial/8250/8250.h +1 -0
index 52bb21205bb6..34aa2714f3c9 100644

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

drivers/tty/serial/8250/8250_aspeed_vuart.c +1 -0
index c33e02cbde93..ec0d1da71a20 100644

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

drivers/tty/serial/8250/8250_dw.c +1 -0
index 9e204f9b799a..a3a0154da567 100644

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

drivers/tty/serial/8250/8250_pci.c +35 -12

47 lines not on this page · raw message

drivers/tty/serial/8250/8250_port.c +12 -0
index b0af13074cd3..6e141429c980 100644

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

drivers/tty/serial/max310x.c +2 -0
index 8434bd5a8ec7..5bf8dd6198bb 100644

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

drivers/tty/serial/rp2.c +17 -35

52 lines not on this page · raw message

drivers/tty/serial/serial-tegra.c +1 -1
index bd13014a1c53..fdce1a799592 100644

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

drivers/tty/serial/serial_core.c +5 -3
index c6cbaccc19b0..68a0ff605476 100644

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

drivers/tty/serial/sh-sci.c +2 -2
index e1179e74a2b8..3b1aaa93d750 100644

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

drivers/usb/core/devio.c +8 -3
index 533236366a03..2218941d35a3 100644

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

drivers/usb/core/hub.h +4 -2
index 73f4482d833a..22ea1f4f2d66 100644

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

drivers/usb/dwc3/gadget.c +7 -6
index acf57a98969d..ead877e7c87f 100644

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

drivers/usb/gadget/udc/renesas_usb3.c +3 -2
index 0c418ce50ba0..f1b35a39d1ba 100644

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

drivers/usb/misc/trancevibrator.c +2 -2
index a3dfc77578ea..26baba3ab7d7 100644

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

drivers/usb/misc/uss720.c +1 -0
index b5d661644263..748139d26263 100644

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

drivers/usb/serial/ftdi_sio.c +3 -0
index 56cd70ba201c..7c64b6ee5c19 100644

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

drivers/usb/serial/ftdi_sio_ids.h +7 -0
index 3d47c6d72256..d854e04a4286 100644

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

drivers/usb/serial/option.c +4 -0
index c6969ca72839..61d94641ddc0 100644

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

drivers/usb/serial/pl2303.c +1 -0
index 29dda60e3bcd..1bbe18f3f9f1 100644

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

drivers/usb/serial/pl2303.h +1 -0
index 0f681ddbfd28..6097ee8fccb2 100644

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

drivers/usb/serial/ti_usb_3410_5052.c +3 -0
index 622e24b06b4b..afc4f960a2a5 100644

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

drivers/usb/typec/mux.c +4 -3
index cf720e944aaa..42acdc8b684f 100644

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

drivers/vdpa/mlx5/net/mlx5_vnet.c +18 -1
index 65cfbd377130..8af30d07f688 100644

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

fs/afs/dir.c +3 -1
index 628ba3fed36d..92d7fd7436cb 100644

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

fs/block_dev.c +3 -0
index cacea6bafc22..29f020c4b2d0 100644

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

fs/btrfs/extent_io.c +6 -1
index 30cf917a58e9..81e98a457130 100644

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

fs/btrfs/reflink.c +5 -0
index c4f87df53283..eeb66e797e0b 100644

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

fs/btrfs/tree-log.c +0 -2
index 8bc3e2f25e7d..9a0cfa0e124d 100644

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

fs/cifs/smb2pdu.c +10 -3
index d424f431263c..ab509965656e 100644

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

fs/nfs/filelayout/filelayout.c +1 -1
index 7f5aa0403e16..ae5ed3a07494 100644

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

fs/nfs/nfs4file.c +1 -1
index 57b3821d975a..a1e5c6b85ded 100644

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

fs/nfs/nfs4proc.c +2 -2
index 06b70de0cc0d..c92d6ff0fcea 100644

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

fs/nfs/pagelist.c +10 -11
index 78c9c4bdef2b..98b9c1ed366e 100644

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

fs/nfs/pnfs.c +7 -8
index 0a32d182dce4..4d20125e982a 100644

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

fs/proc/base.c +4 -0
index 55ce0ee9c5c7..297ea12b3cfd 100644

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

include/linux/bits.h +1 -1
index 7f475d59a097..87d112650dfb 100644

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

include/linux/const.h +8 -0
index 81b8aae5a855..435ddd72d2c4 100644

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

include/linux/device.h +2 -4
index 75a24b32fee8..8d97871631d0 100644

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

include/linux/minmax.h +2 -8
index c0f57b0c64d9..5433c08fcc68 100644

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

include/linux/mlx5/mpfs.h new file +18 -0
new file mode 100644
index 000000000000..bf700c8d5516

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

include/linux/sunrpc/xprt.h +2 -0
index 3ac5037d1c3d..cad1fa2b6baa 100644

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

include/net/cfg80211.h +2 -2
index d5ab8d99739f..8a1bf2dbadd0 100644

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

include/net/netfilter/nf_flow_table.h +0 -1
index 16e8b2f8d006..b338638f2279 100644

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

include/net/pkt_cls.h +11 -0
index d4d461236351..b608be532964 100644

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

include/net/pkt_sched.h +1 -6
index 4ed32e6b0201..2be90a54a404 100644

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

include/net/sch_generic.h +34 -1
index 3648164faa06..4dd2c9e34976 100644

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

include/net/sock.h +3 -1
index 261195598df3..f68184b8c0aa 100644

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

kernel/bpf/verifier.c +6 -6
index 364b9760d1a7..4f50d6f128be 100644

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

kernel/seccomp.c +16 -14
index 0ceaaba36c2e..0aabfcaf269a 100644

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

net/bluetooth/cmtp/core.c +5 -0
index 07cfa3249f83..0a2d78e811cf 100644

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

net/core/dev.c +24 -5
index 2f17a4ac82f0..0c9ce36afc8c 100644

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

net/core/filter.c +1 -0
index 9358bc4a3711..ef6bdbb63ecb 100644

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

net/core/neighbour.c +4 -0
index 8339978d46ff..a18c2973b8c6 100644

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

net/core/sock.c +4 -4
index c75c1e723a84..dee29f41beaf 100644

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

net/dsa/master.c +3 -2
index 3a44da35dfeb..45bd627b4e7b 100644

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

net/dsa/slave.c +7 -5
index c6806eef906f..9281c9c6a253 100644

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

net/hsr/hsr_device.c +2 -0
index 6f4c34b6a5d6..fec1b014c0a2 100644

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

net/hsr/hsr_forward.c +21 -9
index 90c72e4c0a8f..baf4765be6d7 100644

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

net/hsr/hsr_forward.h +4 -4
index 618140d484ad..008f45786f06 100644

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

net/hsr/hsr_main.h +2 -2
index f79ca55d6986..9a25a5d349ae 100644

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

net/hsr/hsr_slave.c +5 -6
index 36d5fcf09c61..aecc05a28fa1 100644

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

net/ipv6/mcast.c +0 -3
index 8cd2782a31e4..9fb5077f8e9a 100644

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

net/ipv6/reassembly.c +3 -1
index 47a0dc46cbdb..28e44782c94d 100644

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

net/mac80211/ieee80211_i.h +13 -23
index d6913784be2b..be40f6b16199 100644

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

net/mac80211/iface.c +3 -8
index f3c3557a9e4c..30589b4c09da 100644

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

net/mac80211/key.c +7 -0
index 8c5f829ff6d7..6a72c33679ba 100644

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

net/mac80211/key.h +2 -0
index 7ad72e9b4991..1e326c89d721 100644

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

net/mac80211/rx.c +117 -33

150 lines not on this page · raw message

net/mac80211/sta_info.c +5 -1
index ec6973ee88ef..f2fb69da9b6e 100644

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

net/mac80211/sta_info.h +32 -1
index 7afd07636b81..355e006432cc 100644

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

net/mac80211/wpa.c +9 -4
index 91bf32af55e9..bca47fad5a16 100644

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

net/mptcp/options.c +0 -1
index a044dd43411d..91034a221983 100644

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

net/mptcp/protocol.c +6 -0
index 27f6672589ce..7832b20baac2 100644

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

net/mptcp/subflow.c +0 -1
index 01a675fa2aa2..bdd6af38a9ae 100644

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

net/netfilter/nf_flow_table_core.c +1 -2
index b03feb6e1226..f4029fc2c884 100644

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

net/netfilter/nf_flow_table_offload.c +4 -3
index 1c5460e7bce8..92047cea3c17 100644

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

net/netfilter/nft_set_pipapo.c +2 -2
index 9944523f5c2c..2d73f265b12c 100644

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

net/netfilter/nft_set_pipapo.h +2 -0
index 25a75591583e..d84afb8fa79a 100644

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

net/netfilter/nft_set_pipapo_avx2.c +3 -0
index d65ae0e23028..eabdb8d552ee 100644

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

net/openvswitch/meter.c +8 -0
index 8fbefd52af7f..e594b4d6b58a 100644

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

net/packet/af_packet.c +8 -2
index 449625c2ccc7..ddb68aa836f7 100644

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

net/sched/cls_api.c +1 -1
index 9383dc29ead5..a281da07bb1d 100644

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

net/sched/sch_dsmark.c +2 -1
index 2b88710994d7..76ed1a05ded2 100644

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

net/sched/sch_fq_pie.c +13 -6
index 949163fe68af..cac684952edc 100644

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

net/sched/sch_generic.c +48 -2

50 lines not on this page · raw message

net/smc/smc_ism.c +18 -8
index 6abbdd09a580..8e33c0128d73 100644

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

net/sunrpc/clnt.c +0 -7
index 4a0e8e458a9a..84c8a534029c 100644

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

net/sunrpc/xprt.c +32 -8
index a85759d8cde8..9a50764be916 100644

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

net/sunrpc/xprtrdma/transport.c +6 -6
index f93ff4282bf4..c26db0a37996 100644

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

net/sunrpc/xprtrdma/verbs.c +15 -3
index 04325f0267c1..25554260a593 100644

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

net/sunrpc/xprtrdma/xprt_rdma.h +1 -0
index 3cacc6f4c527..702f0344523c 100644

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

net/tipc/core.c +2 -0
index c2ff42900b53..40c03085c0ea 100644

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

net/tipc/core.h +2 -0
index 1d57a4d3b05e..992924a849be 100644

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

net/tipc/msg.c +2 -7
index 32c79c59052b..88a3ed80094c 100644

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

net/tipc/socket.c +4 -1
index 5b18c6a46cfb..9f7cc9e1e4ef 100644

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

net/tipc/udp_media.c +2 -0
index 1d17f4470ee2..a23628108272 100644

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

net/tls/tls_sw.c +6 -5
index 845c628ac1b2..3abe5257f757 100644

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

net/wireless/util.c +5 -2
index e4247c354356..2731267fd0f9 100644

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

samples/bpf/xdpsock_user.c +1 -1
index 3edae9018893..2e4508a6cb3a 100644

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

scripts/clang-tools/gen_compile_commands.py +1 -1
index 19963708bcf8..8ddb5d099029 100755

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

scripts/clang-tools/run-clang-tools.py +1 -1
index fa7655c7cec0..f754415af398 100755

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

sound/isa/gus/gus_main.c +2 -11
index afc088f0377c..b7518122a10d 100644

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

sound/isa/sb/sb16_main.c +3 -7
index 38dc1fde25f3..aa4870531023 100644

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

sound/pci/hda/patch_realtek.c +45 -1

46 lines not on this page · raw message

sound/soc/codecs/cs35l33.c +1 -0
index 6042194d95d3..8894369e329a 100644

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

sound/soc/codecs/cs42l42.c +3 -0
index 4d82d24c7828..7c6b10bc0b8c 100644

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

sound/soc/codecs/cs43130.c +13 -15
index 7fb34422a2a4..8f70dee95878 100644

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

sound/soc/qcom/lpass-cpu.c +1 -11
index 4fb2ec7c8867..7a30a12519a7 100644

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

sound/usb/mixer_quirks.c +1 -1
index 5171b3dc1eb9..8297117f4766 100644

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

sound/usb/mixer_scarlett_gen2.c +51 -30

81 lines not on this page · raw message

sound/usb/mixer_scarlett_gen2.h +1 -1
index 52e1dad77afd..668c6b0cb50a 100644

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

tools/bpf/bpftool/Documentation/bpftool-cgroup.rst +3 -1
index 790944c35602..baee8591ac76 100644

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

tools/bpf/bpftool/Documentation/bpftool-prog.rst +1 -1
index 358c7309d419..fe1b38e7e887 100644

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

tools/bpf/bpftool/bash-completion/bpftool +3 -3
index 3f1da30c4da6..f783e7c5a8df 100644

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

tools/bpf/bpftool/cgroup.c +2 -1
index d901cc1b904a..6e53b1d393f4 100644

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

tools/bpf/bpftool/prog.c +1 -1
index acdb2c245f0a..14237ffb90ba 100644

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

tools/include/linux/bits.h +1 -1
index 7f475d59a097..87d112650dfb 100644

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

tools/include/linux/const.h +8 -0
index 81b8aae5a855..435ddd72d2c4 100644

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

tools/perf/pmu-events/jevents.c +1 -1
index e47644cab3fa..dcfdf6a322dc 100644

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

tools/perf/scripts/python/exported-sql-viewer.py +9 -3
index 7daa8bb70a5a..711d4f9f5645 100755

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

tools/perf/util/intel-pt-decoder/intel-pt-decoder.c +5 -1
index 197eb58a39cb..e6029d4c096f 100644

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

tools/perf/util/intel-pt.c +4 -1
index dc023b8c6003..e5aaf1337be9 100644

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

tools/testing/selftests/gpio/Makefile +13 -11
index 32bdc978a711..acf4088a9891 100644

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

tools/testing/selftests/tc-testing/tc-tests/qdiscs/fq_pie.json +4 -4
index 1cda2e11b3ad..773c5027553d 100644

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

virt/lib/irqbypass.c +6 -10
index c9bb3957f58a..28fda42e471b 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.

Tested-by Hulk Robot
#2 lore raw
In reply to Greg Kroah-Hartman
Quoted 4 lines · Greg Kroah-Hartman

I'm announcing the release of the 5.10.42 kernel.

All users of the 5.10 kernel series must upgrade.

Quoted 9 lines

The updated 5.10.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.10.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

Tested on arm64 and x86 for 5.10.42,

Kernel repo:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
Branch: linux-5.10.y
Version: 5.10.42
Commit: 65859eca4dff1af0db5e36d1cfbac15b834c6a65
Compiler: gcc version 7.3.0 (GCC)

arm64:
--------------------------------------------------------------------
Testcase Result Summary:
total: 8900
passed: 8900
failed: 0
timeout: 0
--------------------------------------------------------------------

x86:
--------------------------------------------------------------------
Testcase Result Summary:
total: 8900
passed: 8900
failed: 0
timeout: 0
--------------------------------------------------------------------