Skip to contentSkip to conversation

Linux 5.12.9

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Jun 3, 2021 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 5.12.9 kernel.

All users of the 5.12 kernel series must upgrade.

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

thanks,

greg k-h

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

 Documentation/userspace-api/seccomp_filter.rst                     |   16 
 Makefile                                                           |    2 
 arch/arm64/include/asm/kvm_asm.h                                   |    2 
 arch/arm64/include/asm/kvm_emulate.h                               |    5 
 arch/arm64/kvm/hyp/exception.c                                     |   18 
 arch/arm64/kvm/hyp/include/hyp/adjust_pc.h                         |   18 
 arch/arm64/kvm/hyp/nvhe/switch.c                                   |    3 
 arch/arm64/kvm/hyp/vhe/switch.c                                    |    3 
 arch/arm64/kvm/reset.c                                             |   28 +
 arch/arm64/kvm/sys_regs.c                                          |   42 +-
 arch/arm64/mm/mmu.c                                                |    3 
 arch/mips/alchemy/board-xxs1500.c                                  |    1 
 arch/mips/ralink/of.c                                              |    2 
 arch/openrisc/include/asm/barrier.h                                |    9 
 arch/riscv/kernel/stacktrace.c                                     |   14 
 arch/x86/kvm/hyperv.c                                              |    8 
 arch/x86/kvm/x86.c                                                 |   12 
 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_link_training.c              |   71 +--
 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/infiniband/hw/mlx5/mr.c                                    |    4 
 drivers/interconnect/qcom/bcm-voter.c                              |    4 
 drivers/iommu/amd/iommu.c                                          |    2 
 drivers/iommu/intel/dmar.c                                         |    4 
 drivers/iommu/intel/iommu.c                                        |    9 
 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/md/raid5.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/mtd/nand/raw/cs553x_nand.c                                 |   12 
 drivers/mtd/nand/raw/fsmc_nand.c                                   |   12 
 drivers/mtd/nand/raw/lpc32xx_slc.c                                 |   15 
 drivers/mtd/nand/raw/ndfc.c                                        |   12 
 drivers/mtd/nand/raw/sharpsl.c                                     |   12 
 drivers/mtd/nand/raw/tmio_nand.c                                   |    8 
 drivers/mtd/nand/raw/txx9ndfmc.c                                   |    5 
 drivers/net/caif/caif_serial.c                                     |    3 
 drivers/net/dsa/bcm_sf2.c                                          |    5 
 drivers/net/dsa/mt7530.c                                           |    8 
 drivers/net/dsa/sja1105/sja1105_dynamic_config.c                   |   23 -
 drivers/net/dsa/sja1105/sja1105_main.c                             |   74 ++-
 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                           |   10 
 drivers/net/ethernet/hisilicon/hns3/hns3_enet.c                    |  110 ++---
 drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c                 |   64 +--
 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/marvell/octeontx2/nic/otx2_ethtool.c          |    4 
 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/tc_tun_encap.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                    |   28 +
 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/mellanox/mlx5/core/main.c                     |   11 
 drivers/net/ethernet/mellanox/mlx5/core/sf/devlink.c               |   18 
 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/ptp/ptp_ocp.c                                              |    4 
 drivers/s390/block/dasd_diag.c                                     |    8 
 drivers/s390/block/dasd_fba.c                                      |    8 
 drivers/s390/block/dasd_int.h                                      |    1 
 drivers/s390/cio/vfio_ccw_cp.c                                     |    4 
 drivers/scsi/BusLogic.c                                            |    6 
 drivers/scsi/BusLogic.h                                            |    2 
 drivers/scsi/aic7xxx/scsi_message.h                                |   11 
 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                                                  |   32 +
 drivers/staging/emxx_udc/emxx_udc.c                                |    4 
 drivers/staging/iio/cdc/ad7746.c                                   |    1 
 drivers/target/target_core_transport.c                             |    2 
 drivers/thermal/intel/int340x_thermal/int340x_thermal_zone.c       |    4 
 drivers/thermal/intel/x86_pkg_temp_thermal.c                       |    2 
 drivers/thermal/qcom/qcom-spmi-adc-tm5.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/cdns3/cdnsp-gadget.c                                   |   14 
 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/host/xhci-ring.c                                       |   14 
 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/usb/typec/tcpm/tcpm.c                                      |   39 +
 drivers/usb/typec/ucsi/ucsi.c                                      |    2 
 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/cifs/trace.h                                                    |   29 -
 fs/debugfs/inode.c                                                 |    9 
 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/driver.h                                        |   44 +-
 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 
 include/uapi/linux/kvm.h                                           |    5 
 kernel/bpf/verifier.c                                              |   12 
 kernel/seccomp.c                                                   |   30 -
 net/bluetooth/cmtp/core.c                                          |    5 
 net/can/isotp.c                                                    |   49 +-
 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/sctp/socket.c                                                  |    1 
 net/sctp/sysctl.c                                                  |    2 
 net/smc/smc_ism.c                                                  |   26 -
 net/sunrpc/clnt.c                                                  |    7 
 net/sunrpc/xprt.c                                                  |   40 +
 net/sunrpc/xprtrdma/rpc_rdma.c                                     |   27 -
 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 
 sound/firewire/dice/dice-pcm.c                                     |    4 
 sound/firewire/dice/dice-stream.c                                  |    2 
 sound/firewire/dice/dice.c                                         |   24 +
 sound/firewire/dice/dice.h                                         |    3 
 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/format.c                                                 |    2 
 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/include/uapi/linux/kvm.h                                     |    5 
 tools/perf/perf.c                                                  |    4 
 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/kvm/include/kvm_util.h                     |    2 
 tools/testing/selftests/kvm/lib/kvm_util.c                         |    2 
 tools/testing/selftests/kvm/lib/perf_test_util.c                   |    4 
 tools/testing/selftests/kvm/memslot_modification_stress_test.c     |   18 
 tools/testing/selftests/tc-testing/tc-tests/qdiscs/fq_pie.json     |    8 
 virt/lib/irqbypass.c                                               |   16 
 317 files changed, 2738 insertions(+), 1248 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 (4):
iio: dac: ad5770r: Put fwnode in error case during ->probe()
usb: typec: tcpm: Use LE to CPU conversion when accessing msg->header 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 (2):
usb: typec: mux: Fix matching with typec_altmode_desc
usb: typec: ucsi: Clear pending after acking connector change

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

Chen Huang (1):
riscv: stacktrace: fix the riscv stacktrace when CONFIG_FRAME_POINTER enabled

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

Christoph Hellwig (1):
md/raid5: remove an incorrect assert in in_chunk_boundary

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

Chuck Lever (1):

      xprtrdma: Revert 586a0787ce35

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 (9):
NFS: fix an incorrect limit in filelayout_decode_layout()
net: dsa: fix a crash if ->get_sset_count() fails
octeontx2-pf: fix a buffer overflow in otx2_set_rxfh_context() chelsio/chtls: unlock on error in chtls_pt_recvmsg()
net: hso: check for allocation failure in hso_create_bulk_serial_device() iommu/vt-d: Check for allocation failure in aux_detach_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

David Matlack (1):
KVM: selftests: Fix 32-bit truncation of vm_get_max_gfn()

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 (3):
net/mlx5e: Fix multipath lag activation net/mlx5e: Fix nullptr in mlx5e_tc_add_fdb_flow() 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

Florian Fainelli (1):
net: dsa: bcm_sf2: Fix bcm_sf2_reg_rgmii_cntrl() call for non-RGMII port

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 (28):
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
Revert "Revert "ALSA: usx2y: Fix potential NULL pointer dereference""
Linux 5.12.9

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

Huazhong Tan (1):
net: hns3: fix user's coalesce configuration lost issue

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

Ian Rogers (1):
perf debug: Move debug initialization earlier

Imre Deak (1):
drm/i915: Reenable LTTPR non-transparent LT mode for DPCD_REV<1.4

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

Jean-Philippe Brucker (1):
iommu/amd: Clear DMA ops when switching domain

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

Jisheng Zhang (1):
arm64: mm: don't use CON and BLK mapping if KFENCE is enabled

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

Joe Richey (1):
KVM: X86: Use _BITUL() macro in UAPI headers

Johan Hovold (4):
ALSA: usb-audio: fix control-request direction
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

Kyle Tso (2):
usb: typec: tcpm: Properly interrupt VDM AMS
usb: typec: tcpm: Respond Not_Supported if no snk_vdo

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

Leilk Liu (1):
spi: take the SPI IO-mutex in the spi_set_cs_timing method

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

Maor Gottlieb (1):
{net, RDMA}/mlx5: Fix override of log_max_qp by other device

Marc Zyngier (3):
KVM: arm64: Move __adjust_pc out of line
KVM: arm64: Fix debug register indexing
KVM: arm64: Prevent mixed-width VM creation

Mathias Nyman (4):
thunderbolt: usb4: Fix NVM read buffer bounds and offset issue
thunderbolt: dma_port: Fix NVM read buffer bounds and offset issue
xhci: fix giving back URB with incorrect status regression in 5.12
xhci: Fix 5.12 regression of missing xHC cache clearing command after a Stall

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.

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

Miquel Raynal (7):
mtd: rawnand: cs553x: Fix external use of SW Hamming ECC helper
mtd: rawnand: txx9ndfmc: Fix external use of SW Hamming ECC helper
mtd: rawnand: sharpsl: Fix external use of SW Hamming ECC helper
mtd: rawnand: lpc32xx_slc: Fix external use of SW Hamming ECC helper
mtd: rawnand: ndfc: Fix external use of SW Hamming ECC helper
mtd: rawnand: tmio: Fix external use of SW Hamming ECC helper
mtd: rawnand: fsmc: Fix external use of SW Hamming ECC helper

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

Norbert Slusarek (1):
can: isotp: prevent race between isotp_bind() and isotp_setsockopt()

Ondrej Mosnacek (2):
debugfs: fix security_locked_down() call for SELinux
serial: core: fix suspicious security_locked_down() call

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

Parav Pandit (1):
net/mlx5: SF, Fix show state inactive when its inactivated

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

Pawel Laszczak (1):
usb: cdnsp: Fix lack of removing request from pending list.

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 (3):
net/mlx5e: Fix null deref accessing lag dev
netfilter: flowtable: Remove redundant hw refresh bit net/mlx5e: Make sure fib dev exists in fib event

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

Shin'ichiro Kawasaki (1):
scsi: target: core: Avoid smp_processor_id() in preemptible code

Shyam Prasad N (1):
cifs: fix string declarations and assignments in tracepoints

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 Haberland (1):
s390/dasd: add missing discipline function

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()

Takashi Sakamoto (1):
ALSA: dice: disable double_pcm_frames mode for M-Audio Profire 610, 2626 and Avid M-Box 3 Pro

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 Rix (1):
scsi: aic7xxx: Restore several defines for aic7xxx firmware build

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 (2):
net/mlx5e: Reject mirroring on source port change encap rules
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 (3):
KVM: X86: Fix vCPU preempted state from guest's point of view
KVM: X86: Fix warning caused by stale emulation context
KVM: X86: hyper-v: Task srcu lock when accessing kvm_memslots()

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 (4):
tipc: wait and exit until all work queues are done
tipc: skb_linearize the head skb when reassembling msgs
sctp: fix the proc_handler for sysctl encap_port
sctp: add the missing setting for asoc encap_port

Yang Yingliang (1):
thermal/drivers/qcom: Fix error code in adc_tm5_get_dt_channel_data()

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 a20afcb7d2bf..d53577db1085 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 12
-SUBLEVEL = 8
+SUBLEVEL = 9
 EXTRAVERSION =
 NAME = Frozen Wasteland
 
arch/arm64/include/asm/kvm_asm.h +2 -0
index a7ab84f781f7..a8578d650bb6 100644
@@ -192,6 +192,8 @@ extern void __kvm_timer_set_cntvoff(u64 cntvoff);
 
 extern int __kvm_vcpu_run(struct kvm_vcpu *vcpu);
 
+extern void __kvm_adjust_pc(struct kvm_vcpu *vcpu);
+
 extern u64 __vgic_v3_get_gic_config(void);
 extern u64 __vgic_v3_read_vmcr(void);
 extern void __vgic_v3_write_vmcr(u32 vmcr);
arch/arm64/include/asm/kvm_emulate.h +5 -0
index f612c090f2e4..01b9857757f2 100644
@@ -463,4 +463,9 @@ static __always_inline void kvm_incr_pc(struct kvm_vcpu *vcpu)
 	vcpu->arch.flags |= KVM_ARM64_INCREMENT_PC;
 }
 
+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/hyp/exception.c +17 -1
index 73629094f903..0812a496725f 100644
@@ -296,7 +296,7 @@ static void enter_exception32(struct kvm_vcpu *vcpu, u32 mode, u32 vect_offset)
 	*vcpu_pc(vcpu) = vect_offset;
 }
 
-void kvm_inject_exception(struct kvm_vcpu *vcpu)
+static void kvm_inject_exception(struct kvm_vcpu *vcpu)
 {
 	if (vcpu_el1_is_32bit(vcpu)) {
 		switch (vcpu->arch.flags & KVM_ARM64_EXCEPT_MASK) {
@@ -329,3 +329,19 @@ void kvm_inject_exception(struct kvm_vcpu *vcpu)
 		}
 	}
 }
+
+/*
+ * Adjust the guest PC on entry, depending on flags provided by EL1
+ * for the purpose of emulation (MMIO, sysreg) or exception injection.
+ */
+void __kvm_adjust_pc(struct kvm_vcpu *vcpu)
+{
+	if (vcpu->arch.flags & KVM_ARM64_PENDING_EXCEPTION) {
+		kvm_inject_exception(vcpu);
+		vcpu->arch.flags &= ~(KVM_ARM64_PENDING_EXCEPTION |
+				      KVM_ARM64_EXCEPT_MASK);
+	} else 	if (vcpu->arch.flags & KVM_ARM64_INCREMENT_PC) {
+		kvm_skip_instr(vcpu);
+		vcpu->arch.flags &= ~KVM_ARM64_INCREMENT_PC;
+	}
+}
arch/arm64/kvm/hyp/include/hyp/adjust_pc.h +0 -18
index 61716359035d..4fdfeabefeb4 100644
@@ -13,8 +13,6 @@
 #include <asm/kvm_emulate.h>
 #include <asm/kvm_host.h>
 
-void kvm_inject_exception(struct kvm_vcpu *vcpu);
-
 static inline void kvm_skip_instr(struct kvm_vcpu *vcpu)
 {
 	if (vcpu_mode_is_32bit(vcpu)) {
@@ -43,22 +41,6 @@ static inline void __kvm_skip_instr(struct kvm_vcpu *vcpu)
 	write_sysreg_el2(*vcpu_pc(vcpu), SYS_ELR);
 }
 
-/*
- * Adjust the guest PC on entry, depending on flags provided by EL1
- * for the purpose of emulation (MMIO, sysreg) or exception injection.
- */
-static inline void __adjust_pc(struct kvm_vcpu *vcpu)
-{
-	if (vcpu->arch.flags & KVM_ARM64_PENDING_EXCEPTION) {
-		kvm_inject_exception(vcpu);
-		vcpu->arch.flags &= ~(KVM_ARM64_PENDING_EXCEPTION |
-				      KVM_ARM64_EXCEPT_MASK);
-	} else 	if (vcpu->arch.flags & KVM_ARM64_INCREMENT_PC) {
-		kvm_skip_instr(vcpu);
-		vcpu->arch.flags &= ~KVM_ARM64_INCREMENT_PC;
-	}
-}
-
 /*
  * Skip an instruction while host sysregs are live.
  * Assumes host is always 64-bit.
arch/arm64/kvm/hyp/nvhe/switch.c +1 -2
index 68ab6b4d5141..a343ef11736f 100644
@@ -4,7 +4,6 @@
  * Author: Marc Zyngier <[email protected]>
  */
 
-#include <hyp/adjust_pc.h>
 #include <hyp/switch.h>
 #include <hyp/sysreg-sr.h>
 
@@ -201,7 +200,7 @@ int __kvm_vcpu_run(struct kvm_vcpu *vcpu)
 	 */
 	__debug_save_host_buffers_nvhe(vcpu);
 
-	__adjust_pc(vcpu);
+	__kvm_adjust_pc(vcpu);
 
 	/*
 	 * We must restore the 32-bit state before the sysregs, thanks
arch/arm64/kvm/hyp/vhe/switch.c +1 -2
index af8e940d0f03..ae65f6b5984e 100644
@@ -4,7 +4,6 @@
  * Author: Marc Zyngier <[email protected]>
  */
 
-#include <hyp/adjust_pc.h>
 #include <hyp/switch.h>
 
 #include <linux/arm-smccc.h>
@@ -134,7 +133,7 @@ static int __kvm_vcpu_run_vhe(struct kvm_vcpu *vcpu)
 	__load_guest_stage2(vcpu->arch.hw_mmu);
 	__activate_traps(vcpu);
 
-	__adjust_pc(vcpu);
+	__kvm_adjust_pc(vcpu);
 
 	sysreg_restore_guest_state_vhe(guest_ctxt);
 	__debug_switch_to_guest(vcpu);
arch/arm64/kvm/reset.c +24 -4
index 4b5acd84b8c8..dd207565cd99 100644
@@ -170,6 +170,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
@@ -221,13 +240,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/arm64/kvm/sys_regs.c +21 -21

162 lines not on this page · raw message

arch/arm64/mm/mmu.c +2 -1
index 5d9550fdb9cf..bd4739baa368 100644
@@ -492,7 +492,8 @@ static void __init map_mem(pgd_t *pgdp)
 	int flags = 0;
 	u64 i;
 
-	if (rodata_full || crash_mem_map || debug_pagealloc_enabled())
+	if (rodata_full || crash_mem_map || debug_pagealloc_enabled() ||
+	    IS_ENABLED(CONFIG_KFENCE))
 		flags = NO_BLOCK_MAPPINGS | NO_CONT_MAPPINGS;
 
 	/*
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 8286c3521476..3c3d07cd8066 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/riscv/kernel/stacktrace.c +7 -7
index 2b3e0cb90d78..bde85fc53357 100644
@@ -27,10 +27,10 @@ void notrace walk_stackframe(struct task_struct *task, struct pt_regs *regs,
 		fp = frame_pointer(regs);
 		sp = user_stack_pointer(regs);
 		pc = instruction_pointer(regs);
-	} else if (task == NULL || task == current) {
-		fp = (unsigned long)__builtin_frame_address(0);
-		sp = sp_in_global;
-		pc = (unsigned long)walk_stackframe;
+	} else if (task == current) {
+		fp = (unsigned long)__builtin_frame_address(1);
+		sp = (unsigned long)__builtin_frame_address(0);
+		pc = (unsigned long)__builtin_return_address(0);
 	} else {
 		/* task blocked in __switch_to */
 		fp = task->thread.s[0];
@@ -106,15 +106,15 @@ static bool print_trace_address(void *arg, unsigned long pc)
 	return true;
 }
 
-void dump_backtrace(struct pt_regs *regs, struct task_struct *task,
+noinline void dump_backtrace(struct pt_regs *regs, struct task_struct *task,
 		    const char *loglvl)
 {
-	pr_cont("%sCall Trace:\n", loglvl);
 	walk_stackframe(task, regs, print_trace_address, (void *)loglvl);
 }
 
 void show_stack(struct task_struct *task, unsigned long *sp, const char *loglvl)
 {
+	pr_cont("%sCall Trace:\n", loglvl);
 	dump_backtrace(NULL, task, loglvl);
 }
 
@@ -139,7 +139,7 @@ unsigned long get_wchan(struct task_struct *task)
 
 #ifdef CONFIG_STACKTRACE
 
-void arch_stack_walk(stack_trace_consume_fn consume_entry, void *cookie,
+noinline void arch_stack_walk(stack_trace_consume_fn consume_entry, void *cookie,
 		     struct task_struct *task, struct pt_regs *regs)
 {
 	walk_stackframe(task, regs, consume_entry, cookie);
arch/x86/kvm/hyperv.c +8 -0
index f98370a39936..f00830e5202f 100644
@@ -1172,6 +1172,7 @@ void kvm_hv_invalidate_tsc_page(struct kvm *kvm)
 {
 	struct kvm_hv *hv = to_kvm_hv(kvm);
 	u64 gfn;
+	int idx;
 
 	if (hv->hv_tsc_page_status == HV_TSC_PAGE_BROKEN ||
 	    hv->hv_tsc_page_status == HV_TSC_PAGE_UNSET ||
@@ -1190,9 +1191,16 @@ void kvm_hv_invalidate_tsc_page(struct kvm *kvm)
 	gfn = hv->hv_tsc_page >> HV_X64_MSR_TSC_REFERENCE_ADDRESS_SHIFT;
 
 	hv->tsc_ref.tsc_sequence = 0;
+
+	/*
+	 * Take the srcu lock as memslots will be accessed to check the gfn
+	 * cache generation against the memslots generation.
+	 */
+	idx = srcu_read_lock(&kvm->srcu);
 	if (kvm_write_guest(kvm, gfn_to_gpa(gfn),
 			    &hv->tsc_ref, sizeof(hv->tsc_ref.tsc_sequence)))
 		hv->hv_tsc_page_status = HV_TSC_PAGE_BROKEN;
+	srcu_read_unlock(&kvm->srcu, idx);
 
 out_unlock:
 	mutex_unlock(&hv->hv_lock);
arch/x86/kvm/x86.c +7 -5
index 86678f8b3502..822c23c3752c 100644
@@ -3015,6 +3015,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;
@@ -7113,6 +7115,11 @@ static void init_emulate_ctxt(struct kvm_vcpu *vcpu)
 	BUILD_BUG_ON(HF_SMM_MASK != X86EMUL_SMM_MASK);
 	BUILD_BUG_ON(HF_SMM_INSIDE_NMI_MASK != X86EMUL_SMM_INSIDE_NMI_MASK);
 
+	ctxt->interruptibility = 0;
+	ctxt->have_exception = false;
+	ctxt->exception.vector = -1;
+	ctxt->perm_ok = false;
+
 	init_decode_cache(ctxt);
 	vcpu->arch.emulate_regs_need_sync_from_vcpu = false;
 }
@@ -7448,11 +7455,6 @@ int x86_decode_emulated_instruction(struct kvm_vcpu *vcpu, int emulation_type,
 	    kvm_vcpu_check_breakpoint(vcpu, &r))
 		return r;
 
-	ctxt->interruptibility = 0;
-	ctxt->have_exception = false;
-	ctxt->exception.vector = -1;
-	ctxt->perm_ok = false;
-
 	ctxt->ud = emulation_type & EMULTYPE_TRAP_UD;
 
 	r = x86_decode_insn(ctxt, insn, insn_len);
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 f29839382f81..dd77e566f2aa 100644
@@ -192,6 +192,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);
 
@@ -222,6 +227,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)
@@ -443,8 +452,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);
 
@@ -453,24 +467,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 facc8e6bc580..d385daf2c71c 100644
@@ -442,7 +442,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 fad3b91f74f5..d39cff4a1fe3 100644
@@ -156,16 +156,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;
 	}
 
@@ -450,7 +450,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 5eee251e3335..85d90e857693 100644
@@ -4356,7 +4356,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 24010cacf7d0..813b96e233ba 100644
@@ -290,10 +290,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 6b14626c148e..13ac2f1dcc2c 100644
@@ -1287,6 +1287,7 @@ static void amdgpu_ttm_tt_unpopulate(struct ttm_bo_device *bdev,
 	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 3b22953aa62e..e1d3877ee301 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 c6724a0e0c43..dc947c8ffe21 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 e8fbb2a0de34..1d354245678d 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 690a5090475a..32c6aa03d267 100644
@@ -470,11 +470,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 6117931fa8d7..dd5eb61a5c90 100644
@@ -231,9 +231,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 d63198c945bf..0a84f0b5a363 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 b6e0f4ba6272..f09d37b90da9 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 9b844e9fb16f..ebbc04ff5da0 100644
@@ -368,7 +368,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))
@@ -383,12 +383,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 440bf0a0e12a..204928479c95 100644
@@ -1067,6 +1067,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 fbff3df72e6c..85cd69bbdec1 100644
@@ -2366,6 +2366,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;
 
@@ -2373,6 +2375,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 61438940c26e..e4761bc16112 100644
@@ -3015,6 +3015,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_link_training.c +33 -38

88 lines not on this page · raw message

drivers/gpu/drm/meson/meson_drv.c +5 -4
index 453d8b4c5763..07fcd12dca16 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 99d446763530..f9e1c2ceaac0 100644
@@ -395,11 +395,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 62a903fbe912..7fff57889ff2 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 3ae6ca21a02c..2d2e630fd438 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 5c0cbee03230..293d18f0b7fe 100644
@@ -167,6 +167,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;
@@ -469,11 +473,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/infiniband/hw/mlx5/mr.c +2 -2
index ea8f068a6da3..e0dec6f9d8d8 100644
@@ -764,10 +764,10 @@ int mlx5_mr_cache_init(struct mlx5_ib_dev *dev)
 		ent->xlt = (1 << ent->order) * sizeof(struct mlx5_mtt) /
 			   MLX5_IB_UMR_OCTOWORD;
 		ent->access_mode = MLX5_MKC_ACCESS_MODE_MTT;
-		if ((dev->mdev->profile->mask & MLX5_PROF_MASK_MR_CACHE) &&
+		if ((dev->mdev->profile.mask & MLX5_PROF_MASK_MR_CACHE) &&
 		    !dev->is_rep && mlx5_core_is_pf(dev->mdev) &&
 		    mlx5_ib_can_load_pas_with_umr(dev, 0))
-			ent->limit = dev->mdev->profile->mr_cache[i].limit;
+			ent->limit = dev->mdev->profile.mr_cache[i].limit;
 		else
 			ent->limit = 0;
 		spin_lock_irq(&ent->lock);
drivers/interconnect/qcom/bcm-voter.c +3 -1
index 1cc565bce2f4..1da6cea8ecbc 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>
@@ -205,6 +205,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);
@@ -362,6 +363,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/amd/iommu.c +2 -0
index a69a8b573e40..7de7a260706b 100644
@@ -1747,6 +1747,8 @@ static void amd_iommu_probe_finalize(struct device *dev)
 	domain = iommu_get_domain_for_dev(dev);
 	if (domain->type == IOMMU_DOMAIN_DMA)
 		iommu_setup_dma_ops(dev, IOVA_START_PFN << PAGE_SHIFT, 0);
+	else
+		set_dma_ops(dev, NULL);
 }
 
 static void amd_iommu_release_device(struct device *dev)
drivers/iommu/intel/dmar.c +3 -1
index d5c51b5c20af..c2bfccb19e24 100644
@@ -1144,7 +1144,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;
@@ -1152,6 +1152,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 +7 -2
index 7e551da6c1fb..56930e0b8f59 100644
@@ -2525,9 +2525,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
@@ -2543,7 +2543,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;
@@ -4626,6 +4629,8 @@ static int auxiliary_link_device(struct dmar_domain *domain,
 
 	if (!sinfo) {
 		sinfo = kzalloc(sizeof(*sinfo), GFP_ATOMIC);
+		if (!sinfo)
+			return -ENOMEM;
 		sinfo->domain = domain;
 		sinfo->pdev = dev;
 		list_add(&sinfo->link_phys, &info->subdevices);
drivers/iommu/intel/pasid.c +2 -1
index 5093d317ff1a..77fbe9908abd 100644
@@ -663,7 +663,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/md/raid5.c +0 -2
index 5d57a5bd171f..c959e0234871 100644
@@ -5310,8 +5310,6 @@ static int in_chunk_boundary(struct mddev *mddev, struct bio *bio)
 	unsigned int chunk_sectors;
 	unsigned int bio_sectors = bio_sectors(bio);
 
-	WARN_ON_ONCE(bio->bi_bdev->bd_partno);
-
 	chunk_sectors = min(conf->chunk_sectors, conf->prev_chunk_sectors);
 	return  chunk_sectors >=
 		((sector & (chunk_sectors - 1)) + bio_sectors);
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 a98f6b895af7..aab3ebfa9fc4 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/mtd/nand/raw/cs553x_nand.c +11 -1
index 6edf78c16fc8..df40927e5678 100644
@@ -18,6 +18,7 @@
 #include <linux/module.h>
 #include <linux/delay.h>
 #include <linux/mtd/mtd.h>
+#include <linux/mtd/nand-ecc-sw-hamming.h>
 #include <linux/mtd/rawnand.h>
 #include <linux/mtd/partitions.h>
 #include <linux/iopoll.h>
@@ -240,6 +241,15 @@ static int cs_calculate_ecc(struct nand_chip *this, const u_char *dat,
 	return 0;
 }
 
+static int cs553x_ecc_correct(struct nand_chip *chip,
+			      unsigned char *buf,
+			      unsigned char *read_ecc,
+			      unsigned char *calc_ecc)
+{
+	return ecc_sw_hamming_correct(buf, read_ecc, calc_ecc,
+				      chip->ecc.size, false);
+}
+
 static struct cs553x_nand_controller *controllers[4];
 
 static int cs553x_attach_chip(struct nand_chip *chip)
@@ -251,7 +261,7 @@ static int cs553x_attach_chip(struct nand_chip *chip)
 	chip->ecc.bytes = 3;
 	chip->ecc.hwctl  = cs_enable_hwecc;
 	chip->ecc.calculate = cs_calculate_ecc;
-	chip->ecc.correct  = rawnand_sw_hamming_correct;
+	chip->ecc.correct  = cs553x_ecc_correct;
 	chip->ecc.strength = 1;
 
 	return 0;
drivers/mtd/nand/raw/fsmc_nand.c +11 -1
index a24e2f57fa68..99a4dde9825a 100644
@@ -25,6 +25,7 @@
 #include <linux/sched.h>
 #include <linux/types.h>
 #include <linux/mtd/mtd.h>
+#include <linux/mtd/nand-ecc-sw-hamming.h>
 #include <linux/mtd/rawnand.h>
 #include <linux/platform_device.h>
 #include <linux/of.h>
@@ -432,6 +433,15 @@ static int fsmc_read_hwecc_ecc1(struct nand_chip *chip, const u8 *data,
 	return 0;
 }
 
+static int fsmc_correct_ecc1(struct nand_chip *chip,
+			     unsigned char *buf,
+			     unsigned char *read_ecc,
+			     unsigned char *calc_ecc)
+{
+	return ecc_sw_hamming_correct(buf, read_ecc, calc_ecc,
+				      chip->ecc.size, false);
+}
+
 /* Count the number of 0's in buff upto a max of max_bits */
 static int count_written_bits(u8 *buff, int size, int max_bits)
 {
@@ -917,7 +927,7 @@ static int fsmc_nand_attach_chip(struct nand_chip *nand)
 	case NAND_ECC_ENGINE_TYPE_ON_HOST:
 		dev_info(host->dev, "Using 1-bit HW ECC scheme\n");
 		nand->ecc.calculate = fsmc_read_hwecc_ecc1;
-		nand->ecc.correct = rawnand_sw_hamming_correct;
+		nand->ecc.correct = fsmc_correct_ecc1;
 		nand->ecc.hwctl = fsmc_enable_hwecc;
 		nand->ecc.bytes = 3;
 		nand->ecc.strength = 1;
drivers/mtd/nand/raw/lpc32xx_slc.c +14 -1
index 6b7269cfb7d8..d7dfc6fd85ca 100644
@@ -27,6 +27,7 @@
 #include <linux/of.h>
 #include <linux/of_gpio.h>
 #include <linux/mtd/lpc32xx_slc.h>
+#include <linux/mtd/nand-ecc-sw-hamming.h>
 
 #define LPC32XX_MODNAME		"lpc32xx-nand"
 
@@ -344,6 +345,18 @@ static int lpc32xx_nand_ecc_calculate(struct nand_chip *chip,
 	return 0;
 }
 
+/*
+ * Corrects the data
+ */
+static int lpc32xx_nand_ecc_correct(struct nand_chip *chip,
+				    unsigned char *buf,
+				    unsigned char *read_ecc,
+				    unsigned char *calc_ecc)
+{
+	return ecc_sw_hamming_correct(buf, read_ecc, calc_ecc,
+				      chip->ecc.size, false);
+}
+
 /*
  * Read a single byte from NAND device
  */
@@ -802,7 +815,7 @@ static int lpc32xx_nand_attach_chip(struct nand_chip *chip)
 	chip->ecc.write_oob = lpc32xx_nand_write_oob_syndrome;
 	chip->ecc.read_oob = lpc32xx_nand_read_oob_syndrome;
 	chip->ecc.calculate = lpc32xx_nand_ecc_calculate;
-	chip->ecc.correct = rawnand_sw_hamming_correct;
+	chip->ecc.correct = lpc32xx_nand_ecc_correct;
 	chip->ecc.hwctl = lpc32xx_nand_ecc_enable;
 
 	/*
drivers/mtd/nand/raw/ndfc.c +11 -1
index 338d6b1a189e..98d5a94c3a24 100644
@@ -22,6 +22,7 @@
 #include <linux/mtd/ndfc.h>
 #include <linux/slab.h>
 #include <linux/mtd/mtd.h>
+#include <linux/mtd/nand-ecc-sw-hamming.h>
 #include <linux/of_address.h>
 #include <linux/of_platform.h>
 #include <asm/io.h>
@@ -100,6 +101,15 @@ static int ndfc_calculate_ecc(struct nand_chip *chip,
 	return 0;
 }
 
+static int ndfc_correct_ecc(struct nand_chip *chip,
+			    unsigned char *buf,
+			    unsigned char *read_ecc,
+			    unsigned char *calc_ecc)
+{
+	return ecc_sw_hamming_correct(buf, read_ecc, calc_ecc,
+				      chip->ecc.size, false);
+}
+
 /*
  * Speedups for buffer read/write/verify
  *
@@ -145,7 +155,7 @@ static int ndfc_chip_init(struct ndfc_controller *ndfc,
 	chip->controller = &ndfc->ndfc_control;
 	chip->legacy.read_buf = ndfc_read_buf;
 	chip->legacy.write_buf = ndfc_write_buf;
-	chip->ecc.correct = rawnand_sw_hamming_correct;
+	chip->ecc.correct = ndfc_correct_ecc;
 	chip->ecc.hwctl = ndfc_enable_hwecc;
 	chip->ecc.calculate = ndfc_calculate_ecc;
 	chip->ecc.engine_type = NAND_ECC_ENGINE_TYPE_ON_HOST;
drivers/mtd/nand/raw/sharpsl.c +11 -1
index 5612ee628425..2f1fe464e663 100644
@@ -11,6 +11,7 @@
 #include <linux/module.h>
 #include <linux/delay.h>
 #include <linux/mtd/mtd.h>
+#include <linux/mtd/nand-ecc-sw-hamming.h>
 #include <linux/mtd/rawnand.h>
 #include <linux/mtd/partitions.h>
 #include <linux/mtd/sharpsl.h>
@@ -96,6 +97,15 @@ static int sharpsl_nand_calculate_ecc(struct nand_chip *chip,
 	return readb(sharpsl->io + ECCCNTR) != 0;
 }
 
+static int sharpsl_nand_correct_ecc(struct nand_chip *chip,
+				    unsigned char *buf,
+				    unsigned char *read_ecc,
+				    unsigned char *calc_ecc)
+{
+	return ecc_sw_hamming_correct(buf, read_ecc, calc_ecc,
+				      chip->ecc.size, false);
+}
+
 static int sharpsl_attach_chip(struct nand_chip *chip)
 {
 	if (chip->ecc.engine_type != NAND_ECC_ENGINE_TYPE_ON_HOST)
@@ -106,7 +116,7 @@ static int sharpsl_attach_chip(struct nand_chip *chip)
 	chip->ecc.strength = 1;
 	chip->ecc.hwctl = sharpsl_nand_enable_hwecc;
 	chip->ecc.calculate = sharpsl_nand_calculate_ecc;
-	chip->ecc.correct = rawnand_sw_hamming_correct;
+	chip->ecc.correct = sharpsl_nand_correct_ecc;
 
 	return 0;
 }
drivers/mtd/nand/raw/tmio_nand.c +5 -3
index de8e919d0ebe..6d93dd31969b 100644
@@ -34,6 +34,7 @@
 #include <linux/interrupt.h>
 #include <linux/ioport.h>
 #include <linux/mtd/mtd.h>
+#include <linux/mtd/nand-ecc-sw-hamming.h>
 #include <linux/mtd/rawnand.h>
 #include <linux/mtd/partitions.h>
 #include <linux/slab.h>
@@ -292,11 +293,12 @@ static int tmio_nand_correct_data(struct nand_chip *chip, unsigned char *buf,
 	int r0, r1;
 
 	/* assume ecc.size = 512 and ecc.bytes = 6 */
-	r0 = rawnand_sw_hamming_correct(chip, buf, read_ecc, calc_ecc);
+	r0 = ecc_sw_hamming_correct(buf, read_ecc, calc_ecc,
+				    chip->ecc.size, false);
 	if (r0 < 0)
 		return r0;
-	r1 = rawnand_sw_hamming_correct(chip, buf + 256, read_ecc + 3,
-					calc_ecc + 3);
+	r1 = ecc_sw_hamming_correct(buf + 256, read_ecc + 3, calc_ecc + 3,
+				    chip->ecc.size, false);
 	if (r1 < 0)
 		return r1;
 	return r0 + r1;
drivers/mtd/nand/raw/txx9ndfmc.c +3 -2
index 1a9449e53bf9..b8894ac27073 100644
@@ -13,6 +13,7 @@
 #include <linux/platform_device.h>
 #include <linux/delay.h>
 #include <linux/mtd/mtd.h>
+#include <linux/mtd/nand-ecc-sw-hamming.h>
 #include <linux/mtd/rawnand.h>
 #include <linux/mtd/partitions.h>
 #include <linux/io.h>
@@ -193,8 +194,8 @@ static int txx9ndfmc_correct_data(struct nand_chip *chip, unsigned char *buf,
 	int stat;
 
 	for (eccsize = chip->ecc.size; eccsize > 0; eccsize -= 256) {
-		stat = rawnand_sw_hamming_correct(chip, buf, read_ecc,
-						  calc_ecc);
+		stat = ecc_sw_hamming_correct(buf, read_ecc, calc_ecc,
+					      chip->ecc.size, false);
 		if (stat < 0)
 			return stat;
 		corrected += stat;
drivers/net/caif/caif_serial.c +0 -3
index 8215cd77301f..9f30748da4ab 100644
@@ -269,9 +269,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/bcm_sf2.c +2 -3
index 9c86cacc4a72..23c008e9653b 100644
@@ -775,11 +775,9 @@ static void bcm_sf2_sw_mac_link_up(struct dsa_switch *ds, int port,
 	bcm_sf2_sw_mac_link_set(ds, port, interface, true);
 
 	if (port != core_readl(priv, CORE_IMP0_PRT_ID)) {
-		u32 reg_rgmii_ctrl;
+		u32 reg_rgmii_ctrl = 0;
 		u32 reg, offset;
 
-		reg_rgmii_ctrl = bcm_sf2_reg_rgmii_cntrl(priv, port);
-
 		if (priv->type == BCM4908_DEVICE_ID ||
 		    priv->type == BCM7445_DEVICE_ID)
 			offset = CORE_STS_OVERRIDE_GMIIP_PORT(port);
@@ -790,6 +788,7 @@ static void bcm_sf2_sw_mac_link_up(struct dsa_switch *ds, int port,
 		    interface == PHY_INTERFACE_MODE_RGMII_TXID ||
 		    interface == PHY_INTERFACE_MODE_MII ||
 		    interface == PHY_INTERFACE_MODE_REVMII) {
+			reg_rgmii_ctrl = bcm_sf2_reg_rgmii_cntrl(priv, port);
 			reg = reg_readl(priv, reg_rgmii_ctrl);
 			reg &= ~(RX_PAUSE_EN | TX_PAUSE_EN);
 
drivers/net/dsa/mt7530.c +0 -8
index 9871d7cff93a..2e3a482e2920 100644
@@ -1214,14 +1214,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 +51 -23

175 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 cf4249d59383..027997c711ab 100644
@@ -282,7 +282,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)
@@ -6919,17 +6920,10 @@ 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 (!rmem->nr_pages)
 		return;
 
-	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 1259e68cba2a..f6bf69b02de9 100644
@@ -1456,6 +1456,16 @@ struct bnxt_ctx_pg_info {
 
 #define BNXT_BACKING_STORE_CFG_LEGACY_LEN	256
 
+#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 7c5af4beedc6..591229b96257 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 516f166ceff8..ffddb3126a32 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 6264bc66a4fc..421bd9b88028 100644
@@ -6480,9 +6480,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 70aea9c274fe..89393fbc726f 100644
@@ -3282,7 +3282,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;
 
@@ -3290,7 +3292,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 */
@@ -3368,6 +3371,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 7302498c6df3..bbc423e93122 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 +7 -3
index 6938f3a939d6..3e04a3973d68 100644
@@ -212,10 +212,11 @@ static int gve_tx_alloc_ring(struct gve_priv *priv, int idx)
 	tx->dev = &priv->pdev->dev;
 	if (!tx->raw_addressing) {
 		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 =
@@ -236,6 +237,9 @@ static int gve_tx_alloc_ring(struct gve_priv *priv, int idx)
 abort_with_fifo:
 	if (!tx->raw_addressing)
 		gve_tx_fifo_release(priv, &tx->tx_fifo);
+abort_with_qpl:
+	if (!tx->raw_addressing)
+		gve_unassign_qpl(priv, tx->tx_fifo.qpl->id);
 abort_with_desc:
 	dma_free_coherent(hdev, bytes, tx->desc, tx->bus);
 	tx->desc = NULL;
@@ -589,7 +593,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 +51 -59

200 lines not on this page · raw message

drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c +23 -41

104 lines not on this page · raw message

drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c +3 -1
index c3bb16b1f060..9265a00de18e 100644
@@ -694,7 +694,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)) {
@@ -722,6 +721,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 8edba5ea90f0..4a61c90003b5 100644
@@ -993,6 +993,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 */
@@ -1002,6 +1010,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

66 lines not on this page · raw message

drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c +4 -0
index f4962a97a075..9d9a2e438acf 100644

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

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

67 lines not on this page · raw message

drivers/net/ethernet/mediatek/mtk_eth_soc.h +22 -2
index c47272100615..e02e21cba828 100644

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

drivers/net/ethernet/mellanox/mlx4/en_ethtool.c +1 -3
index 1434df66fcf2..3616b77caa0a 100644

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

drivers/net/ethernet/mellanox/mlx4/port.c +103 -4

107 lines not on this page · raw message

drivers/net/ethernet/mellanox/mlx5/core/en/rep/bond.c +2 -0
index 95f2b26a3ee3..9c076aa20306 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en/rep/tc.c +1 -1
index 065126370acd..96ba027dbef3 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c +1 -1
index 9f16ad2c0710..1560fcbf4ac7 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_fs.c +1 -0
index 16ce7756ac43..bbe9b1dbb7ac 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_main.c +8 -1
index 5db63b9f3b70..99dc9f2beed5 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_tc.c +22 -6
index d675107d9eca..78a1403c9802 100644

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

drivers/net/ethernet/mellanox/mlx5/core/eswitch.c +1 -0
index aba17835465b..2c6d95900e3c 100644

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

drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_termtbl.c +15 -23
index ec679560a95d..1cbb330b9f42 100644

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

drivers/net/ethernet/mellanox/mlx5/core/lag_mp.c +6 -0
index 88e58ac902de..15c3a9058e72 100644

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

drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.c +3 -0
index fd8449ff9e17..839a01da110f 100644

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

drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.h +1 -4
index 4a7b2c3203a7..4a293542a7aa 100644

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

drivers/net/ethernet/mellanox/mlx5/core/main.c +5 -6
index c568896cfb23..efb93d63e54c 100644

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

drivers/net/ethernet/mellanox/mlx5/core/sf/devlink.c +11 -7
index c2ba41bb7a70..96c4509e5838 100644

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

drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +6 -3
index 369d7cde3993..492415790b13 100644

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

drivers/net/ethernet/ti/netcp_core.c +2 -2
index d7a144b4a09f..dc50e948195d 100644

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

drivers/net/ipa/ipa.h +2 -0
index 802077631371..2734a5164b92 100644

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

drivers/net/ipa/ipa_mem.c +2 -1
index f25029b9ec85..c1294d7ebdad 100644

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

drivers/net/mdio/mdio-octeon.c +0 -2
index d1e1009d51af..6faf39314ac9 100644

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

drivers/net/mdio/mdio-thunder.c +0 -1
index 3d7eda99d34e..dd7430c998a2 100644

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

drivers/net/usb/hso.c +22 -23

45 lines not on this page · raw message

drivers/net/usb/smsc75xx.c +6 -2
index 4353b370249f..76ed79bb1e3f 100644

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

drivers/net/wireless/ath/ath10k/htt.h +1 -0
index 956157946106..dbc8aef82a65 100644

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

drivers/net/wireless/ath/ath10k/htt_rx.c +191 -10

201 lines not on this page · raw message

drivers/net/wireless/ath/ath10k/rx_desc.h +13 -1
index f2b6bf8f0d60..705b6295e466 100644

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

drivers/net/wireless/ath/ath11k/dp_rx.c +18 -0
index 850ad38b888f..e3b620dd4d92 100644

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

drivers/net/wireless/ath/ath11k/dp_rx.h +1 -0
index bf399312b5ff..623da3bf9dc8 100644

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

drivers/net/wireless/ath/ath11k/mac.c +6 -0
index faa2e678e63e..7ad0383affcb 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 ce8c102df7b3..633d0ab19031 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 ad79e3b7e74a..143a705b5cb3 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/ptp/ptp_ocp.c +3 -1
index 530e5f90095e..0d1034e3ed0f 100644

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

drivers/s390/block/dasd_diag.c +7 -1
index 1b9e1442e6a5..fd42a5fffaed 100644

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

drivers/s390/block/dasd_fba.c +7 -1
index 1aeb68794ce8..417437844d34 100644

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

drivers/s390/block/dasd_int.h +0 -1
index b8a04c42d1d2..015239c7d513 100644

Lines of this file are not shown. View the 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/aic7xxx/scsi_message.h +11 -0
index a7515c3039ed..53343a6d8ae1 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 1b1a57f46989..c2a38a172904 100644

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

drivers/scsi/pm8001/pm8001_init.c +1 -1
index bd626ef876da..4f3ec2bba8c9 100644

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

drivers/scsi/pm8001/pm8001_sas.c +6 -1
index a98d4496ff8b..0a637609504e 100644

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

drivers/scsi/pm8001/pm80xx_hwi.c +6 -6
index c6b0834e3806..5de7adfabd57 100644

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

drivers/scsi/ufs/ufs-mediatek.c +4 -0
index a981f261b304..aee3cfc7142a 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 +25 -7
index 8da4fe475b84..6ae7418f648c 100644

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

drivers/staging/emxx_udc/emxx_udc.c +2 -2
index 3536c03ff523..0d50c1e190bf 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/target/target_core_transport.c +1 -1
index 5ecb9f18a53d..9e8cd07179d7 100644

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

drivers/thermal/intel/int340x_thermal/int340x_thermal_zone.c +4 -0
index d1248ba943a4..62c0aa5d0783 100644

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

drivers/thermal/intel/x86_pkg_temp_thermal.c +1 -1
index 295742e83960..4d8edc61a78b 100644

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

drivers/thermal/qcom/qcom-spmi-adc-tm5.c +1 -1
index b460b56e981c..232fd0b33325 100644

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

drivers/thunderbolt/dma_port.c +6 -5
index 7288aaf01ae6..5631319f7b20 100644

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

drivers/thunderbolt/usb4.c +5 -4
index 680bc738dd66..671d72af8ba1 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 1b61d26bb7af..43e55e6abea6 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 bbae072a125d..222032792d6c 100644

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

drivers/tty/serial/serial_core.c +5 -3
index 43f02ed055d5..18255eb90df3 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/cdns3/cdnsp-gadget.c +7 -7
index 56707b6b0f57..c083985e387b 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 8585b56d9f2d..a721d0e4d999 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/host/xhci-ring.c +7 -7
index 6cdea0d00d19..82de51c3db67 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 c867592477c9..5a725ffb7675 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 eed9acd1ae08..f2895c274e19 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 fe1c13a8849c..f94d7b20d32e 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/usb/typec/tcpm/tcpm.c +36 -3
index 52acc884a61f..b3e3dff46491 100644

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

drivers/usb/typec/ucsi/ucsi.c +1 -1
index 1e266f083bf8..7104ddb9696d 100644

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

drivers/vdpa/mlx5/net/mlx5_vnet.c +18 -1
index 4d2809c7d4e3..a0e86c5d7cd7 100644

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

fs/afs/dir.c +3 -1
index 31251d11d576..a3d42f29d023 100644

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

fs/block_dev.c +3 -0
index a5a6a7930e5e..389609bc5aa3 100644

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

fs/btrfs/extent_io.c +6 -1
index 910769d5fcdb..1eb5d22d5373 100644

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

fs/btrfs/reflink.c +5 -0
index 0abbf050580d..53ee17f5e382 100644

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

fs/btrfs/tree-log.c +0 -2
index 53624fca0747..d7f1599e69b1 100644

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

fs/cifs/smb2pdu.c +10 -3
index 29272d99102c..7606ce344de5 100644

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

fs/cifs/trace.h +17 -12
index d6df908dccad..dafcb6ab050d 100644

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

fs/debugfs/inode.c +6 -3
index 1d252164d97b..8129a430d789 100644

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

fs/nfs/filelayout/filelayout.c +1 -1
index d158a500c25c..d2103852475f 100644

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

fs/nfs/nfs4file.c +1 -1
index 441a2fa073c8..2bcbafded19e 100644

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

fs/nfs/nfs4proc.c +2 -2
index 820abae88cf0..0b809cc6ad1d 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 f726f8b12b7e..a5e3628a5273 100644

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

fs/proc/base.c +4 -0
index 3851bfcdba56..58bbf334265b 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 ba660731bd25..bec8d09014da 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/driver.h +22 -22

44 lines not on this page · 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 d2e97ee802af..8a063b2b944d 100644

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

include/net/cfg80211.h +2 -2
index 911fae42b0c0..394c4269901c 100644

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

include/net/netfilter/nf_flow_table.h +0 -1
index 54c4d5c908a5..233f47f4189c 100644

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

include/net/pkt_cls.h +11 -0
index 255e4f4b521f..ec7823921bd2 100644

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

include/net/pkt_sched.h +1 -6
index 15b1b30f454e..4ba757aba9b2 100644

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

include/net/sch_generic.h +34 -1
index 2d6eb60c58c8..2c4f3527cc09 100644

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

include/net/sock.h +3 -1
index 8487f58da36d..62e3811e95a7 100644

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

include/uapi/linux/kvm.h +3 -2
index f6afee209620..26e6d94d64ed 100644

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

kernel/bpf/verifier.c +6 -6
index 21247e49fe82..b186d852fe3d 100644

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

kernel/seccomp.c +16 -14
index 1d60fc2c9987..93684cc63285 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/can/isotp.c +33 -16

49 lines not on this page · raw message

net/core/dev.c +24 -5
index 70829c568645..963194474058 100644

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

net/core/filter.c +1 -0
index 9323d34d34cc..52f4359efbd2 100644

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

net/core/neighbour.c +4 -0
index 8379719d1dce..98f20efbfadf 100644

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

net/core/sock.c +4 -4
index 5ec90f99e102..9c7b143e7a96 100644

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

net/dsa/master.c +3 -2
index 052a977914a6..63adbc21a735 100644

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

net/dsa/slave.c +7 -5
index 992fcab4b552..8dd7c8e84a65 100644

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

net/hsr/hsr_device.c +2 -0
index bfcdc75fc01e..26c32407f029 100644

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

net/hsr/hsr_forward.c +21 -9
index 6852e9bccf5b..ceb8afb2a62f 100644

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

net/hsr/hsr_forward.h +4 -4
index b6acaafa83fc..206636750b30 100644

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

net/hsr/hsr_main.h +2 -2
index 8f264672b70b..53d1f7a82463 100644

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

net/hsr/hsr_slave.c +5 -6
index c5227d42faf5..b70e6bbf6021 100644

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

net/ipv6/mcast.c +0 -3
index 6c8604390266..2cab0c563214 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 ecda126a7026..02e818d740f6 100644

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

net/mac80211/iface.c +3 -8
index b80c9b016b2b..6f8885766cba 100644

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

net/mac80211/key.c +7 -0
index 56c068cb49c4..f695fc80088b 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 78b9d0c7cc58..0333072ebd98 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 89a4225ed321..8848a9e2a95b 100644

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

net/mptcp/protocol.c +6 -0
index 65e5d3eb1078..228dd40828c4 100644

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

net/mptcp/subflow.c +0 -1
index 4fe7acaa472f..1936db3574d2 100644

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

net/netfilter/nf_flow_table_core.c +1 -2
index c77ba8690ed8..434a50bfb5b7 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 15424d26e85d..ca3c37f2f1e6 100644

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

net/packet/af_packet.c +8 -2
index 9611e41c7b8b..c52557ec7fb3 100644

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

net/sched/cls_api.c +1 -1
index 340d5af86e87..94f6942d7ec1 100644

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

net/sched/sch_dsmark.c +2 -1
index cd2748e2d4a2..d320bcfb2da2 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/sctp/socket.c +1 -0
index 4ae428f2f2c5..413266eb83b6 100644

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

net/sctp/sysctl.c +1 -1
index e92df779af73..55871b277f47 100644

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

net/smc/smc_ism.c +18 -8
index 9c6e95882553..967712ba52a0 100644

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

net/sunrpc/clnt.c +0 -7
index f555d335e910..42623d6b8f0e 100644

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

net/sunrpc/xprt.c +32 -8
index 20fe31b1b776..dc9207c1ff07 100644

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

net/sunrpc/xprtrdma/rpc_rdma.c +18 -9
index 21ddd78a8c35..15e0c4e7b24a 100644

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

net/sunrpc/xprtrdma/transport.c +6 -6
index 09953597d055..19a49d26b1e4 100644

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

net/sunrpc/xprtrdma/verbs.c +15 -3
index f3fffc74ab0f..0731b4756c49 100644

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

net/sunrpc/xprtrdma/xprt_rdma.h +1 -0
index 28af11fbe643..ac13b93af9bd 100644

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

net/tipc/core.c +2 -0
index 5cc1f0307215..72f3ac73779b 100644

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

net/tipc/core.h +2 -0
index 03de7b213f55..5741ae488bb5 100644

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

net/tipc/msg.c +2 -7
index e9263280a2d4..d0fc5fadbc68 100644

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

net/tipc/socket.c +4 -1
index 022999e0202d..5792f4891dc1 100644

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

net/tipc/udp_media.c +2 -0
index 21e75e28e86a..4c66e22b52f7 100644

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

net/tls/tls_sw.c +6 -5
index 01d933ae5f16..6086cf4f10a7 100644

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

net/wireless/util.c +5 -2
index 1bf0200f562a..f342b6147675 100644

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

samples/bpf/xdpsock_user.c +1 -1
index 1e2a1105d0e6..1278b8f03fc4 100644

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

sound/firewire/dice/dice-pcm.c +2 -2
index af8a90ee40f3..a69ca1111b03 100644

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

sound/firewire/dice/dice-stream.c +1 -1
index 1a14c083e8ce..c4dfe76500c2 100644

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

sound/firewire/dice/dice.c +24 -0
index 107a81691f0e..239d164b0eea 100644

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

sound/firewire/dice/dice.h +2 -1
index adc6f7c84460..3c967d1b3605 100644

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 7ad7b733af9b..e8f3dcfd144d 100644

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

sound/soc/codecs/cs42l42.c +3 -0
index 811b7b1c9732..323a4f7f384c 100644

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

sound/soc/codecs/cs43130.c +13 -15
index 80bc7c10ed75..80cd3ea0c157 100644

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

sound/soc/qcom/lpass-cpu.c +1 -11
index be360a402b67..936384a94f25 100644

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

sound/usb/format.c +1 -1
index e6ff317a6785..2287f8c65315 100644

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

sound/usb/mixer_quirks.c +1 -1
index ffd922327ae4..805873d0cd55 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 fdffbc64c65c..c10807914f7b 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 f2b915b20546..0430dec6e288 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/include/uapi/linux/kvm.h +3 -2
index f6afee209620..26e6d94d64ed 100644

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

tools/perf/perf.c +2 -2
index 20cb91ef06ff..2f6b67189b42 100644

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

tools/perf/pmu-events/jevents.c +1 -1
index e1f3f5c8c550..9cda076693ae 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 8c59677bee13..20ad663978cc 100644

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

tools/perf/util/intel-pt.c +4 -1
index f6e28ac231b7..05a83637c975 100644

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

tools/testing/selftests/kvm/include/kvm_util.h +1 -1
index 0f4258eaa629..61ab17238715 100644

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

tools/testing/selftests/kvm/lib/kvm_util.c +1 -1
index b8849a1aca79..2f0e4365f61b 100644

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

tools/testing/selftests/kvm/lib/perf_test_util.c +3 -1
index 81490b9b4e32..abf381800a59 100644

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

tools/testing/selftests/kvm/memslot_modification_stress_test.c +11 -7
index 6096bf0a5b34..98351ba0933c 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.