Skip to contentSkip to conversation

Linux 5.11.14

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Apr 14, 2021 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 5.11.14 kernel.

All users of the 5.11 kernel series must upgrade.

The updated 5.11.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.11.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/devicetree/bindings/net/ethernet-controller.yaml |    2 
 Makefile                                                       |    2 
 arch/arm/boot/dts/armada-385-turris-omnia.dts                  |    4 
 arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi                   |    2 
 arch/arm/mach-omap2/omap-secure.c                              |   39 ++
 arch/arm/mach-omap2/omap-secure.h                              |    1 
 arch/arm/mach-omap2/pmic-cpcap.c                               |    4 
 arch/arm64/boot/dts/freescale/imx8mm-pinfunc.h                 |    2 
 arch/arm64/boot/dts/freescale/imx8mq-pinfunc.h                 |    2 
 arch/arm64/boot/dts/marvell/armada-cp11x.dtsi                  |    6 
 arch/ia64/include/asm/ptrace.h                                 |    8 
 arch/nds32/mm/cacheflush.c                                     |    2 
 arch/parisc/include/asm/cmpxchg.h                              |    2 
 arch/powerpc/kernel/Makefile                                   |    4 
 arch/powerpc/kernel/ptrace/Makefile                            |    4 
 arch/powerpc/kernel/ptrace/ptrace-decl.h                       |   14 
 arch/powerpc/kernel/ptrace/ptrace-fpu.c                        |   10 
 arch/powerpc/kernel/ptrace/ptrace-novsx.c                      |    8 
 arch/powerpc/kernel/ptrace/ptrace-view.c                       |    2 
 arch/s390/kernel/cpcmd.c                                       |    6 
 arch/x86/include/asm/smp.h                                     |    2 
 arch/x86/kernel/smpboot.c                                      |   26 -
 arch/x86/kernel/traps.c                                        |    4 
 arch/x86/kvm/mmu/mmu.c                                         |   13 
 arch/x86/kvm/mmu/tdp_iter.c                                    |   30 -
 arch/x86/kvm/mmu/tdp_iter.h                                    |   11 
 arch/x86/kvm/mmu/tdp_mmu.c                                     |   99 +++--
 arch/x86/kvm/mmu/tdp_mmu.h                                     |   18 
 drivers/acpi/processor_idle.c                                  |    4 
 drivers/base/dd.c                                              |    8 
 drivers/char/agp/Kconfig                                       |    2 
 drivers/clk/clk.c                                              |   47 +-
 drivers/clk/qcom/camcc-sc7180.c                                |   50 +-
 drivers/clk/socfpga/clk-gate.c                                 |    2 
 drivers/gpio/gpiolib.c                                         |   12 
 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c                        |    2 
 drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu7_hwmgr.c            |    3 
 drivers/gpu/drm/i915/display/intel_acpi.c                      |   22 +
 drivers/gpu/drm/msm/adreno/a6xx_gpu.c                          |    6 
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c                     |    4 
 drivers/gpu/drm/msm/msm_drv.c                                  |    1 
 drivers/gpu/drm/radeon/radeon_ttm.c                            |    4 
 drivers/gpu/drm/vc4/vc4_crtc.c                                 |   17 
 drivers/i2c/busses/i2c-designware-master.c                     |    1 
 drivers/i2c/busses/i2c-jz4780.c                                |    4 
 drivers/i2c/i2c-core-base.c                                    |    7 
 drivers/infiniband/core/addr.c                                 |    4 
 drivers/infiniband/hw/cxgb4/cm.c                               |    3 
 drivers/infiniband/hw/hfi1/affinity.c                          |   21 -
 drivers/infiniband/hw/hfi1/hfi.h                               |    1 
 drivers/infiniband/hw/hfi1/init.c                              |   10 
 drivers/infiniband/hw/hfi1/netdev_rx.c                         |    3 
 drivers/infiniband/hw/qedr/verbs.c                             |    3 
 drivers/infiniband/ulp/rtrs/rtrs-clt.c                         |    2 
 drivers/net/can/spi/mcp251x.c                                  |   24 -
 drivers/net/can/usb/peak_usb/pcan_usb_core.c                   |    6 
 drivers/net/dsa/lantiq_gswip.c                                 |  195 ++++++++--
 drivers/net/ethernet/amd/xgbe/xgbe.h                           |    6 
 drivers/net/ethernet/cadence/macb_main.c                       |    7 
 drivers/net/ethernet/chelsio/cxgb4/cudbg_lib.c                 |   23 -
 drivers/net/ethernet/chelsio/cxgb4/t4_hw.c                     |    3 
 drivers/net/ethernet/freescale/gianfar.c                       |    6 
 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c      |    4 
 drivers/net/ethernet/intel/i40e/i40e.h                         |    1 
 drivers/net/ethernet/intel/i40e/i40e_debugfs.c                 |    3 
 drivers/net/ethernet/intel/i40e/i40e_ethtool.c                 |   55 ++
 drivers/net/ethernet/intel/i40e/i40e_main.c                    |   11 
 drivers/net/ethernet/intel/i40e/i40e_txrx.c                    |   12 
 drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c             |    9 
 drivers/net/ethernet/intel/i40e/i40e_xsk.c                     |    4 
 drivers/net/ethernet/intel/ice/ice.h                           |    4 
 drivers/net/ethernet/intel/ice/ice_common.c                    |    2 
 drivers/net/ethernet/intel/ice/ice_controlq.h                  |    4 
 drivers/net/ethernet/intel/ice/ice_dcb.c                       |   76 ++-
 drivers/net/ethernet/intel/ice/ice_dcb_lib.c                   |   47 +-
 drivers/net/ethernet/intel/ice/ice_dcb_nl.c                    |   52 +-
 drivers/net/ethernet/intel/ice/ice_ethtool.c                   |    8 
 drivers/net/ethernet/intel/ice/ice_lib.c                       |    7 
 drivers/net/ethernet/intel/ice/ice_main.c                      |   53 ++
 drivers/net/ethernet/intel/ice/ice_switch.c                    |   15 
 drivers/net/ethernet/intel/ice/ice_txrx.c                      |    2 
 drivers/net/ethernet/intel/ice/ice_type.h                      |   17 
 drivers/net/ethernet/mellanox/mlx5/core/dev.c                  |    4 
 drivers/net/ethernet/mellanox/mlx5/core/en.h                   |    1 
 drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c             |   36 +
 drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h              |    6 
 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c     |   18 
 drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c           |   22 -
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c              |   21 +
 drivers/net/ethernet/mellanox/mlx5/core/en_rep.c               |    5 
 drivers/net/ethernet/mellanox/mlx5/core/eq.c                   |   13 
 drivers/net/ethernet/mellanox/mlxsw/spectrum.h                 |   15 
 drivers/net/ethernet/mellanox/mlxsw/spectrum_ipip.c            |    7 
 drivers/net/ethernet/mellanox/mlxsw/spectrum_nve.c             |    7 
 drivers/net/ethernet/myricom/myri10ge/myri10ge.c               |    2 
 drivers/net/ethernet/netronome/nfp/bpf/cmsg.c                  |    1 
 drivers/net/ethernet/netronome/nfp/flower/main.h               |    8 
 drivers/net/ethernet/netronome/nfp/flower/metadata.c           |   16 
 drivers/net/ethernet/netronome/nfp/flower/offload.c            |   48 ++
 drivers/net/geneve.c                                           |   24 +
 drivers/net/ieee802154/atusb.c                                 |    1 
 drivers/net/phy/bcm-phy-lib.c                                  |   13 
 drivers/net/tun.c                                              |   48 ++
 drivers/net/usb/hso.c                                          |   33 -
 drivers/net/vxlan.c                                            |   18 
 drivers/net/wan/hdlc_fr.c                                      |    5 
 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c             |    2 
 drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c       |   31 -
 drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info.c            |    3 
 drivers/net/wireless/intel/iwlwifi/pcie/trans-gen2.c           |   35 +
 drivers/of/property.c                                          |   11 
 drivers/platform/x86/intel-hid.c                               |   16 
 drivers/ras/cec.c                                              |   15 
 drivers/regulator/bd9571mwv-regulator.c                        |    4 
 drivers/remoteproc/pru_rproc.c                                 |    2 
 drivers/remoteproc/qcom_pil_info.c                             |    2 
 drivers/scsi/pm8001/pm8001_hwi.c                               |    8 
 drivers/scsi/ufs/ufshcd.c                                      |   31 -
 drivers/soc/fsl/qbman/qman.c                                   |    2 
 drivers/target/iscsi/iscsi_target.c                            |    3 
 drivers/thunderbolt/retimer.c                                  |    4 
 drivers/usb/usbip/stub_dev.c                                   |   11 
 drivers/usb/usbip/usbip_common.h                               |    3 
 drivers/usb/usbip/usbip_event.c                                |    2 
 drivers/usb/usbip/vhci_hcd.c                                   |    1 
 drivers/usb/usbip/vhci_sysfs.c                                 |   30 +
 drivers/usb/usbip/vudc_dev.c                                   |    1 
 drivers/usb/usbip/vudc_sysfs.c                                 |    5 
 drivers/vdpa/mlx5/core/mlx5_vdpa.h                             |    4 
 drivers/vdpa/mlx5/net/mlx5_vnet.c                              |   40 +-
 drivers/xen/events/events_base.c                               |   12 
 fs/cifs/Kconfig                                                |    3 
 fs/cifs/Makefile                                               |    5 
 fs/cifs/cifsfs.c                                               |    3 
 fs/cifs/connect.c                                              |   17 
 fs/direct-io.c                                                 |    5 
 fs/file.c                                                      |   21 -
 fs/hostfs/hostfs_kern.c                                        |    7 
 fs/namei.c                                                     |    8 
 fs/ocfs2/aops.c                                                |   11 
 fs/ocfs2/file.c                                                |    8 
 include/linux/avf/virtchnl.h                                   |    2 
 include/linux/mlx5/mlx5_ifc.h                                  |   10 
 include/linux/skmsg.h                                          |    7 
 include/linux/virtio_net.h                                     |    2 
 include/net/act_api.h                                          |   12 
 include/net/netns/xfrm.h                                       |    4 
 include/net/red.h                                              |    4 
 include/net/sock.h                                             |    9 
 include/net/xfrm.h                                             |    4 
 include/uapi/linux/can.h                                       |    2 
 include/uapi/linux/rfkill.h                                    |   80 +++-
 kernel/bpf/inode.c                                             |    2 
 kernel/bpf/stackmap.c                                          |   12 
 kernel/bpf/verifier.c                                          |    5 
 kernel/gcov/clang.c                                            |   29 -
 kernel/locking/lockdep.c                                       |    2 
 kernel/workqueue.c                                             |    2 
 mm/percpu-internal.h                                           |    2 
 mm/percpu-stats.c                                              |    9 
 mm/percpu.c                                                    |   14 
 net/batman-adv/translation-table.c                             |    2 
 net/can/bcm.c                                                  |   10 
 net/can/isotp.c                                                |   11 
 net/can/raw.c                                                  |   14 
 net/core/skmsg.c                                               |   12 
 net/core/sock.c                                                |   12 
 net/core/xdp.c                                                 |    3 
 net/dsa/dsa2.c                                                 |    8 
 net/ethtool/eee.c                                              |    4 
 net/hsr/hsr_device.c                                           |    1 
 net/hsr/hsr_forward.c                                          |    6 
 net/ieee802154/nl-mac.c                                        |    7 
 net/ieee802154/nl802154.c                                      |   23 -
 net/ipv4/ah4.c                                                 |    2 
 net/ipv4/esp4.c                                                |    2 
 net/ipv4/esp4_offload.c                                        |   17 
 net/ipv4/udp.c                                                 |    4 
 net/ipv6/ah6.c                                                 |    2 
 net/ipv6/esp6.c                                                |    2 
 net/ipv6/esp6_offload.c                                        |   17 
 net/ipv6/raw.c                                                 |    2 
 net/ipv6/route.c                                               |    8 
 net/mac80211/mlme.c                                            |    5 
 net/mac80211/tx.c                                              |    2 
 net/mac802154/llsec.c                                          |    2 
 net/mptcp/protocol.c                                           |  100 ++---
 net/ncsi/ncsi-manage.c                                         |   20 -
 net/nfc/llcp_sock.c                                            |   10 
 net/openvswitch/conntrack.c                                    |    8 
 net/qrtr/qrtr.c                                                |    5 
 net/rds/message.c                                              |    3 
 net/rfkill/core.c                                              |    7 
 net/sched/act_api.c                                            |   48 +-
 net/sched/cls_api.c                                            |   16 
 net/sched/sch_teql.c                                           |    3 
 net/sctp/ipv6.c                                                |    7 
 net/tipc/crypto.c                                              |    3 
 net/tipc/socket.c                                              |    2 
 net/wireless/nl80211.c                                         |   10 
 net/wireless/scan.c                                            |   14 
 net/wireless/sme.c                                             |    2 
 net/xfrm/xfrm_compat.c                                         |   12 
 net/xfrm/xfrm_device.c                                         |    2 
 net/xfrm/xfrm_interface.c                                      |    3 
 net/xfrm/xfrm_output.c                                         |   10 
 net/xfrm/xfrm_state.c                                          |   10 
 security/selinux/ss/avtab.c                                    |  101 +----
 security/selinux/ss/avtab.h                                    |    2 
 security/selinux/ss/conditional.c                              |   12 
 security/selinux/ss/services.c                                 |  157 ++++++--
 security/selinux/ss/sidtab.c                                   |   21 +
 security/selinux/ss/sidtab.h                                   |    4 
 sound/drivers/aloop.c                                          |   11 
 sound/pci/hda/patch_conexant.c                                 |    1 
 sound/pci/hda/patch_realtek.c                                  |   16 
 sound/soc/codecs/wm8960.c                                      |    8 
 sound/soc/intel/atom/sst-mfld-platform-pcm.c                   |    6 
 sound/soc/sof/intel/hda-dsp.c                                  |   15 
 sound/soc/sunxi/sun4i-codec.c                                  |    5 
 tools/lib/bpf/ringbuf.c                                        |    2 
 tools/lib/bpf/xsk.c                                            |   57 +-
 tools/perf/builtin-inject.c                                    |    2 
 tools/perf/util/block-info.c                                   |    6 
 224 files changed, 2058 insertions(+), 1018 deletions(-)

Adrian Hunter (1):
perf inject: Fix repipe usage

Ahmed S. Darwish (1):
net: xfrm: Localize sequence counter per network namespace

Al Viro (2):
LOOKUP_MOUNTPOINT: we are cleaning "jumped" flag too late
hostfs: fix memory handling in follow_link()

Alex Deucher (1):
drm/amdgpu/smu7: fix CAC setting on TOPAZ

Alexander Aring (8):
net: ieee802154: nl-mac: fix check on panid
net: ieee802154: fix nl802154 del llsec key
net: ieee802154: fix nl802154 del llsec dev
net: ieee802154: fix nl802154 add llsec key
net: ieee802154: fix nl802154 del llsec devkey
net: ieee802154: forbid monitor for set llsec params
net: ieee802154: forbid monitor for del llsec seclevel
net: ieee802154: stop dump llsec params for monitors

Alexander Gordeev (1):
s390/cpcmd: fix inline assembly register clobbering

Andy Shevchenko (2):
i2c: designware: Adjust bus_freq_hz when refuse high speed mode set
gpiolib: Read "gpio-line-names" from a firmware node

Anirudh Rayabharam (1):
net: hso: fix null-ptr-deref during tty device unregistration

Anirudh Venkataramanan (2):
ice: Continue probe on link/PHY errors
ice: Use port number instead of PF ID for WoL

Antoine Tenart (2):
vxlan: do not modify the shared tunnel info when PMTU triggers an ICMP reply
geneve: do not modify the shared tunnel info when PMTU triggers an ICMP reply

Ariel Levkovich (1):
net/mlx5e: Fix mapping of ct_label zero

Arkadiusz Kubalewski (4):
i40e: Fix sparse warning: missing error code 'err'
i40e: Fix sparse error: 'vsi->netdev' could be null
i40e: Fix sparse error: uninitialized symbol 'ring'
i40e: Fix sparse errors in i40e_txrx.c

Arnd Bergmann (3):
remoteproc: qcom: pil_info: avoid 64-bit division soc/fsl: qbman: fix conflicting alignment attributes
lockdep: Address clang -Wformat warning printing for %hd

Aya Levin (3):
net/mlx5e: Fix ethtool indication of connector type net/mlx5: Fix PPLM register mapping net/mlx5: Fix PBMC register mapping

Bastian Germann (1):
ASoC: sunxi: sun4i-codec: fill ASoC card owner

Ben Gardon (5):
KVM: x86/mmu: change TDP MMU yield function returns to match cond_resched
KVM: x86/mmu: Merge flush and non-flush tdp_mmu_iter_cond_resched
KVM: x86/mmu: Rename goal_gfn to next_last_level_gfn
KVM: x86/mmu: Ensure forward progress when yielding in TDP MMU iter
KVM: x86/mmu: Yield in TDU MMU iter even if no SPTES changed

Ben Greear (1):
mac80211: fix time-is-after bug in mlme

Bruce Allan (1):
ice: fix memory allocation call

Can Guo (2):
scsi: ufs: core: Fix task management request completion timeout
scsi: ufs: core: Fix wrong Task Tag used in task management request UPIUs

Carlos Leija (1):
ARM: OMAP4: PM: update ROM return address for OSWR and OFF

Chinh T Cao (2):
ice: Refactor DCB related variables out of the ice_port_info struct
ice: Recognize 860 as iSCSI port in CEE mode

Christian Brauner (1):
file: fix close_range() for unshare+cloexec

Christophe Leroy (2):
powerpc/vdso: Make sure vdso_wrapper.o is rebuilt everytime vdso.so is rebuilt powerpc/ptrace: Don't return error when getting/setting FP regs without CONFIG_PPC_FPU_REGS

Ciara Loftus (3):
libbpf: Ensure umem pointer is non-NULL before dereferencing
libbpf: Restore umem state after socket create failure
libbpf: Only create rx and tx XDP rings when necessary

Claudiu Beznea (1):
net: macb: restore cmp registers on resume path

Claudiu Manoil (1):
gianfar: Handle error code at MAC address change

Dan Carpenter (2):
thunderbolt: Fix a leak in tb_retimer_add()
thunderbolt: Fix off by one in tb_port_find_retimer()

Daniel Jurgens (1):
net/mlx5: Don't request more than supported EQs

Dave Ertman (1):
ice: remove DCBNL_DEVRESET bit from PF state

Dave Marchevsky (1):
bpf: Refcount task stack in bpf_get_task_stack

Dmitry Baryshkov (1):
drm/msm: a6xx: fix version check for the A650 SQE microcode

Dmitry Safonov (1):
xfrm/compat: Cleanup WARN()s that can be user-triggered

Dom Cobley (1):
drm/vc4: crtc: Reduce PV fifo threshold on hvs4

Du Cheng (1):

      cfg80211: remove WARN_ON() in cfg80211_sme_connect

Eli Cohen (3):
vdpa/mlx5: Fix suspend/resume index restoration net/mlx5: Fix HW spec violation configuring uplink vdpa/mlx5: Fix wrong use of bit numbers

Eric Dumazet (2):
net: ensure mac header is set in virtio_net_hdr_to_skb()
sch_red: fix off-by-one checks in red_check_params()

Eryk Rybak (2):
i40e: Fix kernel oops when i40e driver removes VF's
i40e: Fix display statistics for veb_tc

Evan Nimmo (1):
xfrm: Use actual socket sk instead of skb socket for xfrm_output_resume

Eyal Birger (1):
xfrm: interface: fix ipv4 pmtu check to honor ip header df

Fabio Pricoco (1):
ice: Increase control queue timeout

Florian Fainelli (1):
net: phy: broadcom: Only advertise EEE for supported modes

Gao Xiang (1):
parisc: avoid a warning on u8 cast for cmpxchg on u8 pointers

Geert Uytterhoeven (1):
regulator: bd9571mwv: Fix AVS and DVFS voltage range

Greg Kroah-Hartman (1):

      Linux 5.11.14

Gregory CLEMENT (1):
Revert "arm64: dts: marvell: armada-cp110: Switch to per-port SATA interrupts"

Grzegorz Siwik (1):
i40e: Fix parameters in aq_get_phy_register()

Guangbin Huang (1):
net: hns3: clear VF down state bit before request link status

Guennadi Liakhovetski (1):
ASoC: SOF: Intel: HDA: fix core status verification

Hans de Goede (2):
ASoC: intel: atom: Stop advertising non working S24LE support platform/x86: intel-hid: Fix spurious wakeups caused by tablet-mode events during suspend

Helge Deller (1):
parisc: parisc-agp requires SBA IOMMU driver

Ido Schimmel (1):
mlxsw: spectrum: Fix ECN marking in tunnel decapsulation

Ilya Lipnitskiy (1):
of: property: fw_devlink: do not link ".*,nr-gpios"

Ilya Maximets (1):
openvswitch: fix send of uninitialized stack memory in ct limit reply

Jacek Bułatek (1):
ice: Fix for dereference of NULL pointer

Jack Qiu (1):

      fs: direct-io: fix missing sdio->boundary

Jin Yao (1):
perf report: Fix wrong LBR block sorting

Johannes Berg (6):
rfkill: revert back to old userspace API by default
iwlwifi: pcie: properly set LTR workarounds on 22000 devices
nl80211: fix beacon head validation
nl80211: fix potential leak of ACL params
cfg80211: check S1G beacon compat element length
mac80211: fix TXQ AC confusion

John Fastabend (2):
bpf, sockmap: Fix sk->prot unhash op reset bpf, sockmap: Fix incorrect fwd_alloc accounting

Jonas Holmberg (1):
ALSA: aloop: Fix initialization of controls

Kalyan Thota (1):
drm/msm/disp/dpu1: program 3d_merge only if block is attached

Kamal Heib (1):
RDMA/qedr: Fix kernel panic when trying to access recv_cq

Krzysztof Goreczny (1):
ice: prevent ice_open and ice_stop during reset

Krzysztof Kozlowski (1):
clk: socfpga: fix iomem pointer cast on 64-bit

Kumar Kartikeya Dwivedi (1):
net: sched: bump refcount for new action in ACT replace mode

Kurt Kanzenbach (1):
net: hsr: Reset MAC header for Tx path

Leon Romanovsky (1):
RDMA/addr: Be strict with gid size

Loic Poulain (1):
net: qrtr: Fix memory leak on qrtr_tx_wait failure

Lorenz Bauer (1):
bpf: link: Refuse non-O_RDWR flags in BPF_OBJ_GET

Luca Coelho (1):
iwlwifi: fix 11ax disabled bit in the regulatory capability flags

Luca Fancellu (1):
xen/evtchn: Change irq_info lock to raw_spinlock_t

Lukasz Bartosik (2):
clk: fix invalid usage of list cursor in register
clk: fix invalid usage of list cursor in unregister

Lv Yunlong (5):
ethernet/netronome/nfp: Fix a use after free in nfp_bpf_ctrl_msg_rx drivers/net/wan/hdlc_fr: Fix a double free in pvc_xmit
ethernet: myri10ge: Fix a use after free in myri10ge_sw_tso net:tipc: Fix a double free in tipc_sk_mcast_rcv net/rds: Fix a use after free in rds_message_map_pages

Maciej Żenczykowski (1):
net-ipv6: bugfix - raw & sctp - switch to ipv6_can_nonlocal_bind()

Maciek Borzecki (1):
cifs: escape spaces in share names

Magnus Karlsson (1):
i40e: fix receiving of single packets in xsk zero-copy mode

Maor Dickman (1):
net/mlx5: Delete auxiliary bus driver eth-rep first

Marc Kleine-Budde (2):
can: uapi: can.h: mark union inside struct can_frame packed
can: mcp251x: fix support for half duplex SPI host controllers

Marek Behún (1):
ARM: dts: turris-omnia: configure LED[2]/INTn pin as interrupt pin

Martin Blumenstingl (3):
net: dsa: lantiq_gswip: Let GSWIP automatically set the xMII clock
net: dsa: lantiq_gswip: Don't use PHY auto polling
net: dsa: lantiq_gswip: Configure all remaining GSWIP_MII_CFG bits

Mateusz Palczewski (1):
i40e: Added Asym_Pause to supported link modes

Maxim Kochetkov (1):
net: dsa: Fix type was not set for devlink port

Md Haris Iqbal (1):
RDMA/rtrs-clt: Close rtrs client conn before destroying rtrs clt session files

Mike Marciniszyn (1):
IB/hfi1: Fix probe time panic when AIP is enabled with a buggy BIOS

Mike Rapoport (1):
nds32: flush_dcache_page: use page_mapping_file to avoid races with swapoff

Milton Miller (1):
net/ncsi: Avoid channel_monitor hrtimer deadlock

Muhammad Usama Anjum (1):

      net: ipv6: check for validity before dereferencing cfg->fc_nlinfo.nlh

Nick Desaulniers (1):
gcov: re-fix clang-11+ support

Norbert Ciosek (1):
virtchnl: Fix layout of RSS structures

Norman Maurer (1):

      net: udp: Add support for getsockopt(..., ..., UDP_GRO, ..., ...);

Oliver Hartkopp (2):
can: bcm/raw: fix msg_namelen values depending on CAN_REQUIRED_SIZE
can: isotp: fix msg_namelen values depending on CAN_REQUIRED_SIZE

Oliver Stäbler (1):
arm64: dts: imx8mm/q: Fix pad control of SD1_DATA0

Ondrej Mosnacek (3):
selinux: make nslot handling in avtab more robust
selinux: fix cond_list corruption when changing booleans
selinux: fix race between old and new sidtab

Ong Boon Leong (1):
xdp: fix xdp_return_frame() kernel BUG throw for page_pool memory model

Paolo Abeni (3):
net: let skb_orphan_partial wake-up waiters.
mptcp: forbit mcast-related sockopt on MPTCP sockets
mptcp: revert "mptcp: provide subflow aware release function"

Paolo Bonzini (1):
KVM: x86/mmu: preserve pending TLB flush across calls to kvm_tdp_mmu_zap_sp

Pavel Skripkin (3):
drivers: net: fix memory leak in atusb_probe
drivers: net: fix memory leak in peak_usb_create_dev
net: mac802154: Fix general protection fault

Pavel Tikhomirov (1):
net: sched: sch_teql: fix null-pointer dereference

Pedro Tammela (1):
libbpf: Fix bail out from 'ringbuf_process_ring()' on error

Phillip Potter (1):

      net: tun: set tun->dev->addr_len during TUNSETLINK processing

Potnuri Bharat Teja (1):
RDMA/cxgb4: check for ipv6 address properly while destroying listener

Raed Salem (1):
net/mlx5: Fix placement of log_max_flow_counter

Rafał Miłecki (1):
dt-bindings: net: ethernet-controller: fix typo in NVMEM

Rahul Lakkireddy (1):
cxgb4: avoid collecting SGE_QBASE regs during traffic

Robert Malz (1):
ice: Cleanup fltr list in case of allocation issues

Roman Bolshakov (1):
scsi: target: iscsi: Fix zero tag inside a trace event

Roman Gushchin (1):
percpu: make pcpu_nr_empty_pop_pages per chunk type

Rui Salvaterra (1):
ARM: dts: turris-omnia: fix hardware buffer management

Saravana Kannan (1):
driver core: Fix locking bug in deferred_probe_timeout_work_func()

Sean Christopherson (3):
KVM: x86/mmu: Ensure TLBs are flushed when yielding during GFN range zap
KVM: x86/mmu: Ensure TLBs are flushed for TDP MMU during NX zapping
KVM: x86/mmu: Don't allow TDP MMU to yield when recovering NX pages

Sergei Trofimovich (1):
ia64: fix user_stack_pointer() for ptrace()

Shengjiu Wang (1):
ASoC: wm8960: Fix wrong bclk and lrclk with pll enabled for some chips

Shuah Khan (4):
usbip: add sysfs_lock to synchronize sysfs code paths
usbip: stub-dev synchronize sysfs code paths
usbip: vudc synchronize sysfs code paths
usbip: synchronize event handler with sysfs code paths

Shyam Prasad N (1):
cifs: On cifs_reconnect, resolve the hostname again.

Shyam Sundar S K (1):
amd-xgbe: Update DMA coherency values

Si-Wei Liu (1):
vdpa/mlx5: should exclude header length and fcs from mtu

Stefan Riedmueller (1):
ARM: dts: imx6: pbab01: Set vmmc supply for both SD interfaces

Steffen Klassert (2):
xfrm: Fix NULL pointer dereference on policy lookup
xfrm: Provide private skb extensions for segmented and hw offloaded ESP packets

Stephen Boyd (1):
drm/msm: Set drvdata to NULL when msm_drm_init() fails

Suman Anna (1):
remoteproc: pru: Fix firmware loading crashes on K3 SoCs

Takashi Iwai (3):
ALSA: hda/realtek: Fix speaker amp setup on Acer Aspire E1
ALSA: hda/conexant: Apply quirk for another HP ZBook G5 model drm/i915: Fix invalid access to ACPI _DSM objects

Taniya Das (1):
clk: qcom: camcc: Update the clock ops for the SC7180

Tariq Toukan (1):
net/mlx5e: Guarantee room for XSK wakeup NOP on async ICOSQ

Tetsuo Handa (1):

      batman-adv: initialize "struct batadv_tvlv_tt_vlan_data"->reserved field

Thomas Tai (1):
x86/traps: Correct exc_general_protection() and math_error() return paths

Toke Høiland-Jørgensen (1):
bpf: Enforce that struct_ops programs be GPL-only

Tony Lindgren (1):
ARM: OMAP4: Fix PMIC voltage domains for bionic

Viswas G (1):

      scsi: pm80xx: Fix chip initialization failure

Vitaly Kuznetsov (1):
ACPI: processor: Fix build when CONFIG_ACPI_PROCESSOR=m

Vlad Buslov (3):
net: sched: fix action overwrite reference counting
net: sched: fix err handler in tcf_action_init()
Revert "net: sched: bump refcount for new action in ACT replace mode"

Wengang Wang (1):
ocfs2: fix deadlock between setattr and dio_end_io_write

William Roche (1):
RAS/CEC: Correct ce_add_elem()'s returned values

Wolfram Sang (1):
i2c: turn recovery error on init to debug

Wong Vee Khee (1):
ethtool: fix incorrect datatype in set_eee ops

Xiaoming Ni (4):
nfc: fix refcount leak in llcp_sock_bind()
nfc: fix refcount leak in llcp_sock_connect()
nfc: fix memory leak in llcp_sock_connect()
nfc: Avoid endless loops caused by repeated llcp_sock_connect()

Xin Long (2):
esp: delete NETIF_F_SCTP_CRC bit from features for esp offload
tipc: increment the tmp aead refcnt before attaching it

Yinjun Zhang (1):
nfp: flower: ignore duplicate merge hints from FW

Yongxin Liu (1):
ice: fix memory leak of aRFS after resuming from suspend

Yunjian Wang (1):

      net: cls_api: Fix uninitialised struct field bo->unlocked_driver_cb

Zqiang (1):
workqueue: Move the position of debug_work_activate() in __queue_work()

xinhui pan (2):
drm/radeon: Fix size overflow
drm/amdgpu: Fix size overflow

周琰杰 (Zhou Yanjie) (1):

      I2C: JZ4780: Fix bug for Ingenic X1000.
author maintainer
#1 lore raw
Documentation/devicetree/bindings/net/ethernet-controller.yaml +1 -1
index 880e55f7a4b1..a7ee05896564 100644
@@ -49,7 +49,7 @@ properties:
     description:
       Reference to an nvmem node for the MAC address
 
-  nvmem-cells-names:
+  nvmem-cell-names:
     const: mac-address
 
   phy-connection-type:
Makefile +1 -1
index 1be83283e032..9116941553b8 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 11
-SUBLEVEL = 13
+SUBLEVEL = 14
 EXTRAVERSION =
 NAME = 💕 Valentine's Day Edition 💕
 
arch/arm/boot/dts/armada-385-turris-omnia.dts +3 -1
index 646a06420c77..5bd6a66d2c2b 100644
@@ -32,7 +32,8 @@ soc {
 		ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
 			  MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000
 			  MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000
-			  MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000>;
+			  MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000
+			  MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>;
 
 		internal-regs {
 
@@ -389,6 +390,7 @@ &mdio {
 	phy1: ethernet-phy@1 {
 		compatible = "ethernet-phy-ieee802.3-c22";
 		reg = <1>;
+		marvell,reg-init = <3 18 0 0x4985>;
 
 		/* irq is connected to &pcawan pin 7 */
 	};
arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi +2 -0
index 7a1e53195785..f28a96fcf23e 100644
@@ -433,6 +433,7 @@ &usdhc2 {
 	pinctrl-0 = <&pinctrl_usdhc2>;
 	cd-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
 	wp-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
+	vmmc-supply = <&vdd_sd1_reg>;
 	status = "disabled";
 };
 
@@ -442,5 +443,6 @@ &usdhc3 {
 		     &pinctrl_usdhc3_cdwp>;
 	cd-gpios = <&gpio1 27 GPIO_ACTIVE_LOW>;
 	wp-gpios = <&gpio1 29 GPIO_ACTIVE_HIGH>;
+	vmmc-supply = <&vdd_sd0_reg>;
 	status = "disabled";
 };
arch/arm/mach-omap2/omap-secure.c +39 -0
index f70d561f37f7..0659ab4cb0af 100644
@@ -9,6 +9,7 @@
  */
 
 #include <linux/arm-smccc.h>
+#include <linux/cpu_pm.h>
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/io.h>
@@ -20,6 +21,7 @@
 
 #include "common.h"
 #include "omap-secure.h"
+#include "soc.h"
 
 static phys_addr_t omap_secure_memblock_base;
 
@@ -213,3 +215,40 @@ void __init omap_secure_init(void)
 {
 	omap_optee_init_check();
 }
+
+/*
+ * Dummy dispatcher call after core OSWR and MPU off. Updates the ROM return
+ * address after MMU has been re-enabled after CPU1 has been woken up again.
+ * Otherwise the ROM code will attempt to use the earlier physical return
+ * address that got set with MMU off when waking up CPU1. Only used on secure
+ * devices.
+ */
+static int cpu_notifier(struct notifier_block *nb, unsigned long cmd, void *v)
+{
+	switch (cmd) {
+	case CPU_CLUSTER_PM_EXIT:
+		omap_secure_dispatcher(OMAP4_PPA_SERVICE_0,
+				       FLAG_START_CRITICAL,
+				       0, 0, 0, 0, 0);
+		break;
+	default:
+		break;
+	}
+
+	return NOTIFY_OK;
+}
+
+static struct notifier_block secure_notifier_block = {
+	.notifier_call = cpu_notifier,
+};
+
+static int __init secure_pm_init(void)
+{
+	if (omap_type() == OMAP2_DEVICE_TYPE_GP || !soc_is_omap44xx())
+		return 0;
+
+	cpu_pm_register_notifier(&secure_notifier_block);
+
+	return 0;
+}
+omap_arch_initcall(secure_pm_init);
arch/arm/mach-omap2/omap-secure.h +1 -0
index 4aaa95706d39..172069f31616 100644
@@ -50,6 +50,7 @@
 #define OMAP5_DRA7_MON_SET_ACR_INDEX	0x107
 
 /* Secure PPA(Primary Protected Application) APIs */
+#define OMAP4_PPA_SERVICE_0		0x21
 #define OMAP4_PPA_L2_POR_INDEX		0x23
 #define OMAP4_PPA_CPU_ACTRL_SMP_INDEX	0x25
 
arch/arm/mach-omap2/pmic-cpcap.c +2 -2
index 09076ad0576d..668dc84fd31e 100644
@@ -246,10 +246,10 @@ int __init omap4_cpcap_init(void)
 	omap_voltage_register_pmic(voltdm, &omap443x_max8952_mpu);
 
 	if (of_machine_is_compatible("motorola,droid-bionic")) {
-		voltdm = voltdm_lookup("mpu");
+		voltdm = voltdm_lookup("core");
 		omap_voltage_register_pmic(voltdm, &omap_cpcap_core);
 
-		voltdm = voltdm_lookup("mpu");
+		voltdm = voltdm_lookup("iva");
 		omap_voltage_register_pmic(voltdm, &omap_cpcap_iva);
 	} else {
 		voltdm = voltdm_lookup("core");
arch/arm64/boot/dts/freescale/imx8mm-pinfunc.h +1 -1
index 5ccc4cc91959..a003e6af3353 100644
@@ -124,7 +124,7 @@
 #define MX8MM_IOMUXC_SD1_CMD_USDHC1_CMD                                     0x0A4 0x30C 0x000 0x0 0x0
 #define MX8MM_IOMUXC_SD1_CMD_GPIO2_IO1                                      0x0A4 0x30C 0x000 0x5 0x0
 #define MX8MM_IOMUXC_SD1_DATA0_USDHC1_DATA0                                 0x0A8 0x310 0x000 0x0 0x0
-#define MX8MM_IOMUXC_SD1_DATA0_GPIO2_IO2                                    0x0A8 0x31  0x000 0x5 0x0
+#define MX8MM_IOMUXC_SD1_DATA0_GPIO2_IO2                                    0x0A8 0x310 0x000 0x5 0x0
 #define MX8MM_IOMUXC_SD1_DATA1_USDHC1_DATA1                                 0x0AC 0x314 0x000 0x0 0x0
 #define MX8MM_IOMUXC_SD1_DATA1_GPIO2_IO3                                    0x0AC 0x314 0x000 0x5 0x0
 #define MX8MM_IOMUXC_SD1_DATA2_USDHC1_DATA2                                 0x0B0 0x318 0x000 0x0 0x0
arch/arm64/boot/dts/freescale/imx8mq-pinfunc.h +1 -1
index b94b02080a34..68e8fa172974 100644
@@ -130,7 +130,7 @@
 #define MX8MQ_IOMUXC_SD1_CMD_USDHC1_CMD                                     0x0A4 0x30C 0x000 0x0 0x0
 #define MX8MQ_IOMUXC_SD1_CMD_GPIO2_IO1                                      0x0A4 0x30C 0x000 0x5 0x0
 #define MX8MQ_IOMUXC_SD1_DATA0_USDHC1_DATA0                                 0x0A8 0x310 0x000 0x0 0x0
-#define MX8MQ_IOMUXC_SD1_DATA0_GPIO2_IO2                                    0x0A8 0x31  0x000 0x5 0x0
+#define MX8MQ_IOMUXC_SD1_DATA0_GPIO2_IO2                                    0x0A8 0x310 0x000 0x5 0x0
 #define MX8MQ_IOMUXC_SD1_DATA1_USDHC1_DATA1                                 0x0AC 0x314 0x000 0x0 0x0
 #define MX8MQ_IOMUXC_SD1_DATA1_GPIO2_IO3                                    0x0AC 0x314 0x000 0x5 0x0
 #define MX8MQ_IOMUXC_SD1_DATA2_USDHC1_DATA2                                 0x0B0 0x318 0x000 0x0 0x0
arch/arm64/boot/dts/marvell/armada-cp11x.dtsi +3 -3
index 994a2fce449a..1e37ae181acf 100644
@@ -300,9 +300,11 @@ CP11X_LABEL(usb3_1): usb@510000 {
 		};
 
 		CP11X_LABEL(sata0): sata@540000 {
-			compatible = "marvell,armada-8k-ahci";
+			compatible = "marvell,armada-8k-ahci",
+			"generic-ahci";
 			reg = <0x540000 0x30000>;
 			dma-coherent;
+			interrupts = <107 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&CP11X_LABEL(clk) 1 15>,
 				 <&CP11X_LABEL(clk) 1 16>;
 			#address-cells = <1>;
@@ -310,12 +312,10 @@ CP11X_LABEL(sata0): sata@540000 {
 			status = "disabled";
 
 			sata-port@0 {
-				interrupts = <109 IRQ_TYPE_LEVEL_HIGH>;
 				reg = <0>;
 			};
 
 			sata-port@1 {
-				interrupts = <107 IRQ_TYPE_LEVEL_HIGH>;
 				reg = <1>;
 			};
 		};
arch/ia64/include/asm/ptrace.h +1 -7
index b3aa46090101..08179135905c 100644
@@ -54,8 +54,7 @@
 
 static inline unsigned long user_stack_pointer(struct pt_regs *regs)
 {
-	/* FIXME: should this be bspstore + nr_dirty regs? */
-	return regs->ar_bspstore;
+	return regs->r12;
 }
 
 static inline int is_syscall_success(struct pt_regs *regs)
@@ -79,11 +78,6 @@ static inline long regs_return_value(struct pt_regs *regs)
 	unsigned long __ip = instruction_pointer(regs);			\
 	(__ip & ~3UL) + ((__ip & 3UL) << 2);				\
 })
-/*
- * Why not default?  Because user_stack_pointer() on ia64 gives register
- * stack backing store instead...
- */
-#define current_user_stack_pointer() (current_pt_regs()->r12)
 
   /* given a pointer to a task_struct, return the user's pt_regs */
 # define task_pt_regs(t)		(((struct pt_regs *) ((char *) (t) + IA64_STK_OFFSET)) - 1)
arch/nds32/mm/cacheflush.c +1 -1
index 6eb98a7ad27d..ad5344ef5d33 100644
@@ -238,7 +238,7 @@ void flush_dcache_page(struct page *page)
 {
 	struct address_space *mapping;
 
-	mapping = page_mapping(page);
+	mapping = page_mapping_file(page);
 	if (mapping && !mapping_mapped(mapping))
 		set_bit(PG_dcache_dirty, &page->flags);
 	else {
arch/parisc/include/asm/cmpxchg.h +1 -1
index cf5ee9b0b393..84ee232278a6 100644
@@ -72,7 +72,7 @@ __cmpxchg(volatile void *ptr, unsigned long old, unsigned long new_, int size)
 #endif
 	case 4: return __cmpxchg_u32((unsigned int *)ptr,
 				     (unsigned int)old, (unsigned int)new_);
-	case 1: return __cmpxchg_u8((u8 *)ptr, (u8)old, (u8)new_);
+	case 1: return __cmpxchg_u8((u8 *)ptr, old & 0xff, new_ & 0xff);
 	}
 	__cmpxchg_called_with_bad_pointer();
 	return old;
arch/powerpc/kernel/Makefile +4 -0
index 79ee7750937d..b31e2160b233 100644
@@ -191,3 +191,7 @@ $(obj)/prom_init_check: $(src)/prom_init_check.sh $(obj)/prom_init.o FORCE
 targets += prom_init_check
 
 clean-files := vmlinux.lds
+
+# Force dependency (incbin is bad)
+$(obj)/vdso32_wrapper.o : $(obj)/vdso32/vdso32.so.dbg
+$(obj)/vdso64_wrapper.o : $(obj)/vdso64/vdso64.so.dbg
arch/powerpc/kernel/ptrace/Makefile +2 -2
index 8ebc11d1168d..77abd1a5a508 100644
@@ -6,11 +6,11 @@
 CFLAGS_ptrace-view.o		+= -DUTS_MACHINE='"$(UTS_MACHINE)"'
 
 obj-y				+= ptrace.o ptrace-view.o
-obj-$(CONFIG_PPC_FPU_REGS)	+= ptrace-fpu.o
+obj-y				+= ptrace-fpu.o
 obj-$(CONFIG_COMPAT)		+= ptrace32.o
 obj-$(CONFIG_VSX)		+= ptrace-vsx.o
 ifneq ($(CONFIG_VSX),y)
-obj-$(CONFIG_PPC_FPU_REGS)	+= ptrace-novsx.o
+obj-y				+= ptrace-novsx.o
 endif
 obj-$(CONFIG_ALTIVEC)		+= ptrace-altivec.o
 obj-$(CONFIG_SPE)		+= ptrace-spe.o
arch/powerpc/kernel/ptrace/ptrace-decl.h +0 -14
index 3487f2c9735c..eafe5f0f6289 100644
@@ -165,22 +165,8 @@ int ptrace_put_reg(struct task_struct *task, int regno, unsigned long data);
 extern const struct user_regset_view user_ppc_native_view;
 
 /* ptrace-fpu */
-#ifdef CONFIG_PPC_FPU_REGS
 int ptrace_get_fpr(struct task_struct *child, int index, unsigned long *data);
 int ptrace_put_fpr(struct task_struct *child, int index, unsigned long data);
-#else
-static inline int
-ptrace_get_fpr(struct task_struct *child, int index, unsigned long *data)
-{
-	return -EIO;
-}
-
-static inline int
-ptrace_put_fpr(struct task_struct *child, int index, unsigned long data)
-{
-	return -EIO;
-}
-#endif
 
 /* ptrace-(no)adv */
 void ppc_gethwdinfo(struct ppc_debug_info *dbginfo);
arch/powerpc/kernel/ptrace/ptrace-fpu.c +10 -0
index 8301cb52dd99..5dca19361316 100644
@@ -8,32 +8,42 @@
 
 int ptrace_get_fpr(struct task_struct *child, int index, unsigned long *data)
 {
+#ifdef CONFIG_PPC_FPU_REGS
 	unsigned int fpidx = index - PT_FPR0;
+#endif
 
 	if (index > PT_FPSCR)
 		return -EIO;
 
+#ifdef CONFIG_PPC_FPU_REGS
 	flush_fp_to_thread(child);
 	if (fpidx < (PT_FPSCR - PT_FPR0))
 		memcpy(data, &child->thread.TS_FPR(fpidx), sizeof(long));
 	else
 		*data = child->thread.fp_state.fpscr;
+#else
+	*data = 0;
+#endif
 
 	return 0;
 }
 
 int ptrace_put_fpr(struct task_struct *child, int index, unsigned long data)
 {
+#ifdef CONFIG_PPC_FPU_REGS
 	unsigned int fpidx = index - PT_FPR0;
+#endif
 
 	if (index > PT_FPSCR)
 		return -EIO;
 
+#ifdef CONFIG_PPC_FPU_REGS
 	flush_fp_to_thread(child);
 	if (fpidx < (PT_FPSCR - PT_FPR0))
 		memcpy(&child->thread.TS_FPR(fpidx), &data, sizeof(long));
 	else
 		child->thread.fp_state.fpscr = data;
+#endif
 
 	return 0;
 }
arch/powerpc/kernel/ptrace/ptrace-novsx.c +8 -0
index b3b36835658a..7433f3db979a 100644
@@ -21,12 +21,16 @@
 int fpr_get(struct task_struct *target, const struct user_regset *regset,
 	    struct membuf to)
 {
+#ifdef CONFIG_PPC_FPU_REGS
 	BUILD_BUG_ON(offsetof(struct thread_fp_state, fpscr) !=
 		     offsetof(struct thread_fp_state, fpr[32]));
 
 	flush_fp_to_thread(target);
 
 	return membuf_write(&to, &target->thread.fp_state, 33 * sizeof(u64));
+#else
+	return membuf_write(&to, &empty_zero_page, 33 * sizeof(u64));
+#endif
 }
 
 /*
@@ -46,6 +50,7 @@ int fpr_set(struct task_struct *target, const struct user_regset *regset,
 	    unsigned int pos, unsigned int count,
 	    const void *kbuf, const void __user *ubuf)
 {
+#ifdef CONFIG_PPC_FPU_REGS
 	BUILD_BUG_ON(offsetof(struct thread_fp_state, fpscr) !=
 		     offsetof(struct thread_fp_state, fpr[32]));
 
@@ -53,4 +58,7 @@ int fpr_set(struct task_struct *target, const struct user_regset *regset,
 
 	return user_regset_copyin(&pos, &count, &kbuf, &ubuf,
 				  &target->thread.fp_state, 0, -1);
+#else
+	return 0;
+#endif
 }
arch/powerpc/kernel/ptrace/ptrace-view.c +0 -2
index 2bad8068f598..6ccffc65ac97 100644
@@ -522,13 +522,11 @@ static const struct user_regset native_regsets[] = {
 		.size = sizeof(long), .align = sizeof(long),
 		.regset_get = gpr_get, .set = gpr_set
 	},
-#ifdef CONFIG_PPC_FPU_REGS
 	[REGSET_FPR] = {
 		.core_note_type = NT_PRFPREG, .n = ELF_NFPREG,
 		.size = sizeof(double), .align = sizeof(double),
 		.regset_get = fpr_get, .set = fpr_set
 	},
-#endif
 #ifdef CONFIG_ALTIVEC
 	[REGSET_VMX] = {
 		.core_note_type = NT_PPC_VMX, .n = 34,
arch/s390/kernel/cpcmd.c +4 -2
index af013b4244d3..2da027359798 100644
@@ -37,10 +37,12 @@ static int diag8_noresponse(int cmdlen)
 
 static int diag8_response(int cmdlen, char *response, int *rlen)
 {
+	unsigned long _cmdlen = cmdlen | 0x40000000L;
+	unsigned long _rlen = *rlen;
 	register unsigned long reg2 asm ("2") = (addr_t) cpcmd_buf;
 	register unsigned long reg3 asm ("3") = (addr_t) response;
-	register unsigned long reg4 asm ("4") = cmdlen | 0x40000000L;
-	register unsigned long reg5 asm ("5") = *rlen;
+	register unsigned long reg4 asm ("4") = _cmdlen;
+	register unsigned long reg5 asm ("5") = _rlen;
 
 	asm volatile(
 		"	diag	%2,%0,0x8\n"
arch/x86/include/asm/smp.h +1 -1
index 57ef2094af93..630ff08532be 100644
@@ -132,7 +132,7 @@ void native_play_dead(void);
 void play_dead_common(void);
 void wbinvd_on_cpu(int cpu);
 int wbinvd_on_all_cpus(void);
-bool wakeup_cpu0(void);
+void cond_wakeup_cpu0(void);
 
 void native_smp_send_reschedule(int cpu);
 void native_send_call_func_ipi(const struct cpumask *mask);
arch/x86/kernel/smpboot.c +12 -14
index f877150a91da..16703c35a944 100644
@@ -1659,13 +1659,17 @@ void play_dead_common(void)
 	local_irq_disable();
 }
 
-bool wakeup_cpu0(void)
+/**
+ * cond_wakeup_cpu0 - Wake up CPU0 if needed.
+ *
+ * If NMI wants to wake up CPU0, start CPU0.
+ */
+void cond_wakeup_cpu0(void)
 {
 	if (smp_processor_id() == 0 && enable_start_cpu0)
-		return true;
-
-	return false;
+		start_cpu0();
 }
+EXPORT_SYMBOL_GPL(cond_wakeup_cpu0);
 
 /*
  * We need to flush the caches before going to sleep, lest we have
@@ -1734,11 +1738,8 @@ static inline void mwait_play_dead(void)
 		__monitor(mwait_ptr, 0, 0);
 		mb();
 		__mwait(eax, 0);
-		/*
-		 * If NMI wants to wake up CPU0, start CPU0.
-		 */
-		if (wakeup_cpu0())
-			start_cpu0();
+
+		cond_wakeup_cpu0();
 	}
 }
 
@@ -1749,11 +1750,8 @@ void hlt_play_dead(void)
 
 	while (1) {
 		native_halt();
-		/*
-		 * If NMI wants to wake up CPU0, start CPU0.
-		 */
-		if (wakeup_cpu0())
-			start_cpu0();
+
+		cond_wakeup_cpu0();
 	}
 }
 
arch/x86/kernel/traps.c +2 -2
index ac1874a2a70e..651e3e508959 100644
@@ -556,7 +556,7 @@ DEFINE_IDTENTRY_ERRORCODE(exc_general_protection)
 		tsk->thread.trap_nr = X86_TRAP_GP;
 
 		if (fixup_vdso_exception(regs, X86_TRAP_GP, error_code, 0))
-			return;
+			goto exit;
 
 		show_signal(tsk, SIGSEGV, "", desc, regs, error_code);
 		force_sig(SIGSEGV);
@@ -1057,7 +1057,7 @@ static void math_error(struct pt_regs *regs, int trapnr)
 		goto exit;
 
 	if (fixup_vdso_exception(regs, trapnr, 0, 0))
-		return;
+		goto exit;
 
 	force_sig_fault(SIGFPE, si_code,
 			(void __user *)uprobe_get_trap_addr(regs));
arch/x86/kvm/mmu/mmu.c +7 -6
index ed861245ecf0..86cedf32526a 100644
@@ -5985,6 +5985,7 @@ static void kvm_recover_nx_lpages(struct kvm *kvm)
 	struct kvm_mmu_page *sp;
 	unsigned int ratio;
 	LIST_HEAD(invalid_list);
+	bool flush = false;
 	ulong to_zap;
 
 	rcu_idx = srcu_read_lock(&kvm->srcu);
@@ -6005,20 +6006,20 @@ static void kvm_recover_nx_lpages(struct kvm *kvm)
 				      struct kvm_mmu_page,
 				      lpage_disallowed_link);
 		WARN_ON_ONCE(!sp->lpage_disallowed);
-		if (sp->tdp_mmu_page)
-			kvm_tdp_mmu_zap_gfn_range(kvm, sp->gfn,
-				sp->gfn + KVM_PAGES_PER_HPAGE(sp->role.level));
-		else {
+		if (sp->tdp_mmu_page) {
+			flush |= kvm_tdp_mmu_zap_sp(kvm, sp);
+		} else {
 			kvm_mmu_prepare_zap_page(kvm, sp, &invalid_list);
 			WARN_ON_ONCE(sp->lpage_disallowed);
 		}
 
 		if (need_resched() || spin_needbreak(&kvm->mmu_lock)) {
-			kvm_mmu_commit_zap_page(kvm, &invalid_list);
+			kvm_mmu_remote_flush_or_zap(kvm, &invalid_list, flush);
 			cond_resched_lock(&kvm->mmu_lock);
+			flush = false;
 		}
 	}
-	kvm_mmu_commit_zap_page(kvm, &invalid_list);
+	kvm_mmu_remote_flush_or_zap(kvm, &invalid_list, flush);
 
 	spin_unlock(&kvm->mmu_lock);
 	srcu_read_unlock(&kvm->srcu, rcu_idx);
arch/x86/kvm/mmu/tdp_iter.c +7 -23
index 87b7e16911db..1a09d212186b 100644
@@ -22,21 +22,22 @@ static gfn_t round_gfn_for_level(gfn_t gfn, int level)
 
 /*
  * Sets a TDP iterator to walk a pre-order traversal of the paging structure
- * rooted at root_pt, starting with the walk to translate goal_gfn.
+ * rooted at root_pt, starting with the walk to translate next_last_level_gfn.
  */
 void tdp_iter_start(struct tdp_iter *iter, u64 *root_pt, int root_level,
-		    int min_level, gfn_t goal_gfn)
+		    int min_level, gfn_t next_last_level_gfn)
 {
 	WARN_ON(root_level < 1);
 	WARN_ON(root_level > PT64_ROOT_MAX_LEVEL);
 
-	iter->goal_gfn = goal_gfn;
+	iter->next_last_level_gfn = next_last_level_gfn;
+	iter->yielded_gfn = iter->next_last_level_gfn;
 	iter->root_level = root_level;
 	iter->min_level = min_level;
 	iter->level = root_level;
 	iter->pt_path[iter->level - 1] = root_pt;
 
-	iter->gfn = round_gfn_for_level(iter->goal_gfn, iter->level);
+	iter->gfn = round_gfn_for_level(iter->next_last_level_gfn, iter->level);
 	tdp_iter_refresh_sptep(iter);
 
 	iter->valid = true;
@@ -82,7 +83,7 @@ static bool try_step_down(struct tdp_iter *iter)
 
 	iter->level--;
 	iter->pt_path[iter->level - 1] = child_pt;
-	iter->gfn = round_gfn_for_level(iter->goal_gfn, iter->level);
+	iter->gfn = round_gfn_for_level(iter->next_last_level_gfn, iter->level);
 	tdp_iter_refresh_sptep(iter);
 
 	return true;
@@ -106,7 +107,7 @@ static bool try_step_side(struct tdp_iter *iter)
 		return false;
 
 	iter->gfn += KVM_PAGES_PER_HPAGE(iter->level);
-	iter->goal_gfn = iter->gfn;
+	iter->next_last_level_gfn = iter->gfn;
 	iter->sptep++;
 	iter->old_spte = READ_ONCE(*iter->sptep);
 
@@ -158,23 +159,6 @@ void tdp_iter_next(struct tdp_iter *iter)
 	iter->valid = false;
 }
 
-/*
- * Restart the walk over the paging structure from the root, starting from the
- * highest gfn the iterator had previously reached. Assumes that the entire
- * paging structure, except the root page, may have been completely torn down
- * and rebuilt.
- */
-void tdp_iter_refresh_walk(struct tdp_iter *iter)
-{
-	gfn_t goal_gfn = iter->goal_gfn;
-
-	if (iter->gfn > goal_gfn)
-		goal_gfn = iter->gfn;
-
-	tdp_iter_start(iter, iter->pt_path[iter->root_level - 1],
-		       iter->root_level, iter->min_level, goal_gfn);
-}
-
 u64 *tdp_iter_root_pt(struct tdp_iter *iter)
 {
 	return iter->pt_path[iter->root_level - 1];
arch/x86/kvm/mmu/tdp_iter.h +8 -3
index 47170d0dc98e..d480c540ee27 100644
@@ -15,7 +15,13 @@ struct tdp_iter {
 	 * The iterator will traverse the paging structure towards the mapping
 	 * for this GFN.
 	 */
-	gfn_t goal_gfn;
+	gfn_t next_last_level_gfn;
+	/*
+	 * The next_last_level_gfn at the time when the thread last
+	 * yielded. Only yielding when the next_last_level_gfn !=
+	 * yielded_gfn helps ensure forward progress.
+	 */
+	gfn_t yielded_gfn;
 	/* Pointers to the page tables traversed to reach the current SPTE */
 	u64 *pt_path[PT64_ROOT_MAX_LEVEL];
 	/* A pointer to the current SPTE */
@@ -52,9 +58,8 @@ struct tdp_iter {
 u64 *spte_to_child_pt(u64 pte, int level);
 
 void tdp_iter_start(struct tdp_iter *iter, u64 *root_pt, int root_level,
-		    int min_level, gfn_t goal_gfn);
+		    int min_level, gfn_t next_last_level_gfn);
 void tdp_iter_next(struct tdp_iter *iter);
-void tdp_iter_refresh_walk(struct tdp_iter *iter);
 u64 *tdp_iter_root_pt(struct tdp_iter *iter);
 
 #endif /* __KVM_X86_MMU_TDP_ITER_H */
arch/x86/kvm/mmu/tdp_mmu.c +64 -35

208 lines not on this page · raw message

arch/x86/kvm/mmu/tdp_mmu.h +17 -1
index cbbdbadd1526..a7a3f6db263d 100644
@@ -12,7 +12,23 @@ bool is_tdp_mmu_root(struct kvm *kvm, hpa_t root);
 hpa_t kvm_tdp_mmu_get_vcpu_root_hpa(struct kvm_vcpu *vcpu);
 void kvm_tdp_mmu_free_root(struct kvm *kvm, struct kvm_mmu_page *root);
 
-bool kvm_tdp_mmu_zap_gfn_range(struct kvm *kvm, gfn_t start, gfn_t end);
+bool __kvm_tdp_mmu_zap_gfn_range(struct kvm *kvm, gfn_t start, gfn_t end,
+				 bool can_yield);
+static inline bool kvm_tdp_mmu_zap_gfn_range(struct kvm *kvm, gfn_t start,
+					     gfn_t end)
+{
+	return __kvm_tdp_mmu_zap_gfn_range(kvm, start, end, true);
+}
+static inline bool kvm_tdp_mmu_zap_sp(struct kvm *kvm, struct kvm_mmu_page *sp)
+{
+	gfn_t end = sp->gfn + KVM_PAGES_PER_HPAGE(sp->role.level);
+
+	/*
+	 * Don't allow yielding, as the caller may have pending pages to zap
+	 * on the shadow MMU.
+	 */
+	return __kvm_tdp_mmu_zap_gfn_range(kvm, sp->gfn, end, false);
+}
 void kvm_tdp_mmu_zap_all(struct kvm *kvm);
 
 int kvm_tdp_mmu_map(struct kvm_vcpu *vcpu, gpa_t gpa, u32 error_code,
drivers/acpi/processor_idle.c +1 -3
index 768a6b4d2368..4e2d76b8b697 100644
@@ -544,9 +544,7 @@ static int acpi_idle_play_dead(struct cpuidle_device *dev, int index)
 			return -ENODEV;
 
 #if defined(CONFIG_X86) && defined(CONFIG_HOTPLUG_CPU)
-		/* If NMI wants to wake up CPU0, start CPU0. */
-		if (wakeup_cpu0())
-			start_cpu0();
+		cond_wakeup_cpu0();
 #endif
 	}
 
drivers/base/dd.c +5 -3
index e2cf3b29123e..37a5e5f8b221 100644
@@ -292,14 +292,16 @@ int driver_deferred_probe_check_state(struct device *dev)
 
 static void deferred_probe_timeout_work_func(struct work_struct *work)
 {
-	struct device_private *private, *p;
+	struct device_private *p;
 
 	driver_deferred_probe_timeout = 0;
 	driver_deferred_probe_trigger();
 	flush_work(&deferred_probe_work);
 
-	list_for_each_entry_safe(private, p, &deferred_probe_pending_list, deferred_probe)
-		dev_info(private->device, "deferred probe pending\n");
+	mutex_lock(&deferred_probe_mutex);
+	list_for_each_entry(p, &deferred_probe_pending_list, deferred_probe)
+		dev_info(p->device, "deferred probe pending\n");
+	mutex_unlock(&deferred_probe_mutex);
 	wake_up_all(&probe_timeout_waitqueue);
 }
 static DECLARE_DELAYED_WORK(deferred_probe_timeout_work, deferred_probe_timeout_work_func);
drivers/char/agp/Kconfig +1 -1
index a086dd34f932..4f501e4842ab 100644
@@ -125,7 +125,7 @@ config AGP_HP_ZX1
 
 config AGP_PARISC
 	tristate "HP Quicksilver AGP support"
-	depends on AGP && PARISC && 64BIT
+	depends on AGP && PARISC && 64BIT && IOMMU_SBA
 	help
 	  This option gives you AGP GART support for the HP Quicksilver
 	  AGP bus adapter on HP PA-RISC machines (Ok, just on the C8000
drivers/clk/clk.c +21 -26

73 lines not on this page · raw message

drivers/clk/qcom/camcc-sc7180.c +25 -25

200 lines not on this page · raw message

drivers/clk/socfpga/clk-gate.c +1 -1
index 43ecd507bf83..cf94a12459ea 100644
@@ -99,7 +99,7 @@ static unsigned long socfpga_clk_recalc_rate(struct clk_hw *hwclk,
 		val = readl(socfpgaclk->div_reg) >> socfpgaclk->shift;
 		val &= GENMASK(socfpgaclk->width - 1, 0);
 		/* Check for GPIO_DB_CLK by its offset */
-		if ((int) socfpgaclk->div_reg & SOCFPGA_GPIO_DB_CLK_OFFSET)
+		if ((uintptr_t) socfpgaclk->div_reg & SOCFPGA_GPIO_DB_CLK_OFFSET)
 			div = val + 1;
 		else
 			div = (1 << val);
drivers/gpio/gpiolib.c +4 -8
index a4a47305574c..c85fdc78fcc9 100644
@@ -365,22 +365,18 @@ static int gpiochip_set_desc_names(struct gpio_chip *gc)
  *
  * Looks for device property "gpio-line-names" and if it exists assigns
  * GPIO line names for the chip. The memory allocated for the assigned
- * names belong to the underlying software node and should not be released
+ * names belong to the underlying firmware node and should not be released
  * by the caller.
  */
 static int devprop_gpiochip_set_names(struct gpio_chip *chip)
 {
 	struct gpio_device *gdev = chip->gpiodev;
-	struct device *dev = chip->parent;
+	struct fwnode_handle *fwnode = dev_fwnode(&gdev->dev);
 	const char **names;
 	int ret, i;
 	int count;
 
-	/* GPIO chip may not have a parent device whose properties we inspect. */
-	if (!dev)
-		return 0;
-
-	count = device_property_string_array_count(dev, "gpio-line-names");
+	count = fwnode_property_string_array_count(fwnode, "gpio-line-names");
 	if (count < 0)
 		return 0;
 
@@ -394,7 +390,7 @@ static int devprop_gpiochip_set_names(struct gpio_chip *chip)
 	if (!names)
 		return -ENOMEM;
 
-	ret = device_property_read_string_array(dev, "gpio-line-names",
+	ret = fwnode_property_read_string_array(fwnode, "gpio-line-names",
 						names, count);
 	if (ret < 0) {
 		dev_warn(&gdev->dev, "failed to read GPIO line names\n");
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +1 -1
index 4d8f19ab1014..8b87991a0470 100644
@@ -907,7 +907,7 @@ static int amdgpu_ttm_tt_pin_userptr(struct ttm_bo_device *bdev,
 
 	/* Allocate an SG array and squash pages into it */
 	r = sg_alloc_table_from_pages(ttm->sg, ttm->pages, ttm->num_pages, 0,
-				      ttm->num_pages << PAGE_SHIFT,
+				      (u64)ttm->num_pages << PAGE_SHIFT,
 				      GFP_KERNEL);
 	if (r)
 		goto release_sg;
drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu7_hwmgr.c +2 -1
index c9b143781105..c22956e8773d 100644
@@ -1224,7 +1224,8 @@ static int smu7_enable_sclk_mclk_dpm(struct pp_hwmgr *hwmgr)
 		    (hwmgr->chip_id == CHIP_POLARIS10) ||
 		    (hwmgr->chip_id == CHIP_POLARIS11) ||
 		    (hwmgr->chip_id == CHIP_POLARIS12) ||
-		    (hwmgr->chip_id == CHIP_TONGA))
+		    (hwmgr->chip_id == CHIP_TONGA) ||
+		    (hwmgr->chip_id == CHIP_TOPAZ))
 			PHM_WRITE_FIELD(hwmgr->device, MC_SEQ_CNTL_3, CAC_EN, 0x1);
 
 
drivers/gpu/drm/i915/display/intel_acpi.c +20 -2
index e21fb14d5e07..833d0c1be4f1 100644
@@ -84,13 +84,31 @@ static void intel_dsm_platform_mux_info(acpi_handle dhandle)
 		return;
 	}
 
+	if (!pkg->package.count) {
+		DRM_DEBUG_DRIVER("no connection in _DSM\n");
+		return;
+	}
+
 	connector_count = &pkg->package.elements[0];
 	DRM_DEBUG_DRIVER("MUX info connectors: %lld\n",
 		  (unsigned long long)connector_count->integer.value);
 	for (i = 1; i < pkg->package.count; i++) {
 		union acpi_object *obj = &pkg->package.elements[i];
-		union acpi_object *connector_id = &obj->package.elements[0];
-		union acpi_object *info = &obj->package.elements[1];
+		union acpi_object *connector_id;
+		union acpi_object *info;
+
+		if (obj->type != ACPI_TYPE_PACKAGE || obj->package.count < 2) {
+			DRM_DEBUG_DRIVER("Invalid object for MUX #%d\n", i);
+			continue;
+		}
+
+		connector_id = &obj->package.elements[0];
+		info = &obj->package.elements[1];
+		if (info->type != ACPI_TYPE_BUFFER || info->buffer.length < 4) {
+			DRM_DEBUG_DRIVER("Invalid info for MUX obj #%d\n", i);
+			continue;
+		}
+
 		DRM_DEBUG_DRIVER("Connector id: 0x%016llx\n",
 			  (unsigned long long)connector_id->integer.value);
 		DRM_DEBUG_DRIVER("  port id: %s\n",
drivers/gpu/drm/msm/adreno/a6xx_gpu.c +3 -3
index e7a8442b59af..a676811ef69d 100644
@@ -566,17 +566,17 @@ static bool a6xx_ucode_check_version(struct a6xx_gpu *a6xx_gpu,
 	}  else {
 		/*
 		 * a650 tier targets don't need whereami but still need to be
-		 * equal to or newer than 1.95 for other security fixes
+		 * equal to or newer than 0.95 for other security fixes
 		 */
 		if (adreno_is_a650(adreno_gpu)) {
-			if ((buf[0] & 0xfff) >= 0x195) {
+			if ((buf[0] & 0xfff) >= 0x095) {
 				ret = true;
 				goto out;
 			}
 
 			DRM_DEV_ERROR(&gpu->pdev->dev,
 				"a650 SQE ucode is too old. Have version %x need at least %x\n",
-				buf[0] & 0xfff, 0x195);
+				buf[0] & 0xfff, 0x095);
 		}
 
 		/*
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c +3 -1
index 8981cfa9dbc3..92e6f1b94738 100644
@@ -496,7 +496,9 @@ static void dpu_hw_ctl_intf_cfg_v1(struct dpu_hw_ctl *ctx,
 
 	DPU_REG_WRITE(c, CTL_TOP, mode_sel);
 	DPU_REG_WRITE(c, CTL_INTF_ACTIVE, intf_active);
-	DPU_REG_WRITE(c, CTL_MERGE_3D_ACTIVE, BIT(cfg->merge_3d - MERGE_3D_0));
+	if (cfg->merge_3d)
+		DPU_REG_WRITE(c, CTL_MERGE_3D_ACTIVE,
+			      BIT(cfg->merge_3d - MERGE_3D_0));
 }
 
 static void dpu_hw_ctl_intf_cfg(struct dpu_hw_ctl *ctx,
drivers/gpu/drm/msm/msm_drv.c +1 -0
index a5c6b8c23336..196907689c82 100644
@@ -570,6 +570,7 @@ static int msm_drm_init(struct device *dev, const struct drm_driver *drv)
 	kfree(priv);
 err_put_drm_dev:
 	drm_dev_put(ddev);
+	platform_set_drvdata(pdev, NULL);
 	return ret;
 }
 
drivers/gpu/drm/radeon/radeon_ttm.c +2 -2
index 23195d5d4e91..176cb55062be 100644
@@ -365,7 +365,7 @@ static int radeon_ttm_tt_pin_userptr(struct ttm_bo_device *bdev, struct ttm_tt *
 	if (gtt->userflags & RADEON_GEM_USERPTR_ANONONLY) {
 		/* check that we only pin down anonymous memory
 		   to prevent problems with writeback */
-		unsigned long end = gtt->userptr + ttm->num_pages * PAGE_SIZE;
+		unsigned long end = gtt->userptr + (u64)ttm->num_pages * PAGE_SIZE;
 		struct vm_area_struct *vma;
 		vma = find_vma(gtt->usermm, gtt->userptr);
 		if (!vma || vma->vm_file || vma->vm_end < end)
@@ -387,7 +387,7 @@ static int radeon_ttm_tt_pin_userptr(struct ttm_bo_device *bdev, struct ttm_tt *
 	} while (pinned < ttm->num_pages);
 
 	r = sg_alloc_table_from_pages(ttm->sg, ttm->pages, ttm->num_pages, 0,
-				      ttm->num_pages << PAGE_SHIFT,
+				      (u64)ttm->num_pages << PAGE_SHIFT,
 				      GFP_KERNEL);
 	if (r)
 		goto release_sg;
drivers/gpu/drm/vc4/vc4_crtc.c +17 -0
index ea710beb8e00..351c601f0ddb 100644
@@ -210,6 +210,7 @@ static u32 vc4_get_fifo_full_level(struct vc4_crtc *vc4_crtc, u32 format)
 {
 	const struct vc4_crtc_data *crtc_data = vc4_crtc_to_vc4_crtc_data(vc4_crtc);
 	const struct vc4_pv_data *pv_data = vc4_crtc_to_vc4_pv_data(vc4_crtc);
+	struct vc4_dev *vc4 = to_vc4_dev(vc4_crtc->base.dev);
 	u32 fifo_len_bytes = pv_data->fifo_depth;
 
 	/*
@@ -238,6 +239,22 @@ static u32 vc4_get_fifo_full_level(struct vc4_crtc *vc4_crtc, u32 format)
 		if (crtc_data->hvs_output == 5)
 			return 32;
 
+		/*
+		 * It looks like in some situations, we will overflow
+		 * the PixelValve FIFO (with the bit 10 of PV stat being
+		 * set) and stall the HVS / PV, eventually resulting in
+		 * a page flip timeout.
+		 *
+		 * Displaying the video overlay during a playback with
+		 * Kodi on an RPi3 seems to be a great solution with a
+		 * failure rate around 50%.
+		 *
+		 * Removing 1 from the FIFO full level however
+		 * seems to completely remove that issue.
+		 */
+		if (!vc4->hvs->hvs5)
+			return fifo_len_bytes - 3 * HVS_FIFO_LATENCY_PIX - 1;
+
 		return fifo_len_bytes - 3 * HVS_FIFO_LATENCY_PIX;
 	}
 }
drivers/i2c/busses/i2c-designware-master.c +1 -0
index d6425ad6e6a3..2871cf2ee8b4 100644
@@ -129,6 +129,7 @@ static int i2c_dw_set_timings_master(struct dw_i2c_dev *dev)
 		if ((comp_param1 & DW_IC_COMP_PARAM_1_SPEED_MODE_MASK)
 			!= DW_IC_COMP_PARAM_1_SPEED_MODE_HIGH) {
 			dev_err(dev->dev, "High Speed not supported!\n");
+			t->bus_freq_hz = I2C_MAX_FAST_MODE_FREQ;
 			dev->master_cfg &= ~DW_IC_CON_SPEED_MASK;
 			dev->master_cfg |= DW_IC_CON_SPEED_FAST;
 			dev->hs_hcnt = 0;
drivers/i2c/busses/i2c-jz4780.c +2 -2
index cb4a25ebb890..2a946c207928 100644
@@ -526,8 +526,8 @@ static irqreturn_t jz4780_i2c_irq(int irqno, void *dev_id)
 				i2c_sta = jz4780_i2c_readw(i2c, JZ4780_I2C_STA);
 				data = *i2c->wbuf;
 				data &= ~JZ4780_I2C_DC_READ;
-				if ((!i2c->stop_hold) && (i2c->cdata->version >=
-						ID_X1000))
+				if ((i2c->wt_len == 1) && (!i2c->stop_hold) &&
+						(i2c->cdata->version >= ID_X1000))
 					data |= X1000_I2C_DC_STOP;
 				jz4780_i2c_writew(i2c, JZ4780_I2C_DC, data);
 				i2c->wbuf++;
drivers/i2c/i2c-core-base.c +4 -3
index 63ebf722a424..f21362355973 100644
@@ -378,7 +378,7 @@ static int i2c_gpio_init_recovery(struct i2c_adapter *adap)
 static int i2c_init_recovery(struct i2c_adapter *adap)
 {
 	struct i2c_bus_recovery_info *bri = adap->bus_recovery_info;
-	char *err_str;
+	char *err_str, *err_level = KERN_ERR;
 
 	if (!bri)
 		return 0;
@@ -387,7 +387,8 @@ static int i2c_init_recovery(struct i2c_adapter *adap)
 		return -EPROBE_DEFER;
 
 	if (!bri->recover_bus) {
-		err_str = "no recover_bus() found";
+		err_str = "no suitable method provided";
+		err_level = KERN_DEBUG;
 		goto err;
 	}
 
@@ -414,7 +415,7 @@ static int i2c_init_recovery(struct i2c_adapter *adap)
 
 	return 0;
  err:
-	dev_err(&adap->dev, "Not using recovery: %s\n", err_str);
+	dev_printk(err_level, &adap->dev, "Not using recovery: %s\n", err_str);
 	adap->bus_recovery_info = NULL;
 
 	return -EINVAL;
drivers/infiniband/core/addr.c +3 -1
index 0abce004a959..65e3e7df8a4b 100644
@@ -76,7 +76,9 @@ static struct workqueue_struct *addr_wq;
 
 static const struct nla_policy ib_nl_addr_policy[LS_NLA_TYPE_MAX] = {
 	[LS_NLA_TYPE_DGID] = {.type = NLA_BINARY,
-		.len = sizeof(struct rdma_nla_ls_gid)},
+		.len = sizeof(struct rdma_nla_ls_gid),
+		.validation_type = NLA_VALIDATE_MIN,
+		.min = sizeof(struct rdma_nla_ls_gid)},
 };
 
 static inline bool ib_nl_is_good_ip_resp(const struct nlmsghdr *nlh)
drivers/infiniband/hw/cxgb4/cm.c +2 -1
index 81903749d241..e42c812e74c3 100644
@@ -3616,7 +3616,8 @@ int c4iw_destroy_listen(struct iw_cm_id *cm_id)
 		c4iw_init_wr_wait(ep->com.wr_waitp);
 		err = cxgb4_remove_server(
 				ep->com.dev->rdev.lldi.ports[0], ep->stid,
-				ep->com.dev->rdev.lldi.rxq_ids[0], true);
+				ep->com.dev->rdev.lldi.rxq_ids[0],
+				ep->com.local_addr.ss_family == AF_INET6);
 		if (err)
 			goto done;
 		err = c4iw_wait_for_reply(&ep->com.dev->rdev, ep->com.wr_waitp,
drivers/infiniband/hw/hfi1/affinity.c +5 -16
index 2a91b8d95e12..04b1e8f021f6 100644
@@ -632,22 +632,11 @@ static void _dev_comp_vect_cpu_mask_clean_up(struct hfi1_devdata *dd,
  */
 int hfi1_dev_affinity_init(struct hfi1_devdata *dd)
 {
-	int node = pcibus_to_node(dd->pcidev->bus);
 	struct hfi1_affinity_node *entry;
 	const struct cpumask *local_mask;
 	int curr_cpu, possible, i, ret;
 	bool new_entry = false;
 
-	/*
-	 * If the BIOS does not have the NUMA node information set, select
-	 * NUMA 0 so we get consistent performance.
-	 */
-	if (node < 0) {
-		dd_dev_err(dd, "Invalid PCI NUMA node. Performance may be affected\n");
-		node = 0;
-	}
-	dd->node = node;
-
 	local_mask = cpumask_of_node(dd->node);
 	if (cpumask_first(local_mask) >= nr_cpu_ids)
 		local_mask = topology_core_cpumask(0);
@@ -660,7 +649,7 @@ int hfi1_dev_affinity_init(struct hfi1_devdata *dd)
 	 * create an entry in the global affinity structure and initialize it.
 	 */
 	if (!entry) {
-		entry = node_affinity_allocate(node);
+		entry = node_affinity_allocate(dd->node);
 		if (!entry) {
 			dd_dev_err(dd,
 				   "Unable to allocate global affinity node\n");
@@ -751,6 +740,7 @@ int hfi1_dev_affinity_init(struct hfi1_devdata *dd)
 	if (new_entry)
 		node_affinity_add_tail(entry);
 
+	dd->affinity_entry = entry;
 	mutex_unlock(&node_affinity.lock);
 
 	return 0;
@@ -766,10 +756,9 @@ void hfi1_dev_affinity_clean_up(struct hfi1_devdata *dd)
 {
 	struct hfi1_affinity_node *entry;
 
-	if (dd->node < 0)
-		return;
-
 	mutex_lock(&node_affinity.lock);
+	if (!dd->affinity_entry)
+		goto unlock;
 	entry = node_affinity_lookup(dd->node);
 	if (!entry)
 		goto unlock;
@@ -780,8 +769,8 @@ void hfi1_dev_affinity_clean_up(struct hfi1_devdata *dd)
 	 */
 	_dev_comp_vect_cpu_mask_clean_up(dd, entry);
 unlock:
+	dd->affinity_entry = NULL;
 	mutex_unlock(&node_affinity.lock);
-	dd->node = NUMA_NO_NODE;
 }
 
 /*
drivers/infiniband/hw/hfi1/hfi.h +1 -0
index e09e8244a94c..2a9a040569eb 100644
@@ -1409,6 +1409,7 @@ struct hfi1_devdata {
 	spinlock_t irq_src_lock;
 	int vnic_num_vports;
 	struct net_device *dummy_netdev;
+	struct hfi1_affinity_node *affinity_entry;
 
 	/* Keeps track of IPoIB RSM rule users */
 	atomic_t ipoib_rsm_usr_num;
drivers/infiniband/hw/hfi1/init.c +9 -1
index cb7ad1288821..786c6316273f 100644
@@ -1277,7 +1277,6 @@ static struct hfi1_devdata *hfi1_alloc_devdata(struct pci_dev *pdev,
 	dd->pport = (struct hfi1_pportdata *)(dd + 1);
 	dd->pcidev = pdev;
 	pci_set_drvdata(pdev, dd);
-	dd->node = NUMA_NO_NODE;
 
 	ret = xa_alloc_irq(&hfi1_dev_table, &dd->unit, dd, xa_limit_32b,
 			GFP_KERNEL);
@@ -1287,6 +1286,15 @@ static struct hfi1_devdata *hfi1_alloc_devdata(struct pci_dev *pdev,
 		goto bail;
 	}
 	rvt_set_ibdev_name(&dd->verbs_dev.rdi, "%s_%d", class_name(), dd->unit);
+	/*
+	 * If the BIOS does not have the NUMA node information set, select
+	 * NUMA 0 so we get consistent performance.
+	 */
+	dd->node = pcibus_to_node(pdev->bus);
+	if (dd->node == NUMA_NO_NODE) {
+		dd_dev_err(dd, "Invalid PCI NUMA node. Performance may be affected\n");
+		dd->node = 0;
+	}
 
 	/*
 	 * Initialize all locks for the device. This needs to be as early as
drivers/infiniband/hw/hfi1/netdev_rx.c +1 -2
index 6d263c9749b3..ea95baada2b6 100644
@@ -173,8 +173,7 @@ u32 hfi1_num_netdev_contexts(struct hfi1_devdata *dd, u32 available_contexts,
 		return 0;
 	}
 
-	cpumask_and(node_cpu_mask, cpu_mask,
-		    cpumask_of_node(pcibus_to_node(dd->pcidev->bus)));
+	cpumask_and(node_cpu_mask, cpu_mask, cpumask_of_node(dd->node));
 
 	available_cpus = cpumask_weight(node_cpu_mask);
 
drivers/infiniband/hw/qedr/verbs.c +2 -1
index 0eb6a7a618e0..9ea542270ed4 100644
@@ -1244,7 +1244,8 @@ static int qedr_check_qp_attrs(struct ib_pd *ibpd, struct qedr_dev *dev,
 	 * TGT QP isn't associated with RQ/SQ
 	 */
 	if ((attrs->qp_type != IB_QPT_GSI) && (dev->gsi_qp_created) &&
-	    (attrs->qp_type != IB_QPT_XRC_TGT)) {
+	    (attrs->qp_type != IB_QPT_XRC_TGT) &&
+	    (attrs->qp_type != IB_QPT_XRC_INI)) {
 		struct qedr_cq *send_cq = get_qedr_cq(attrs->send_cq);
 		struct qedr_cq *recv_cq = get_qedr_cq(attrs->recv_cq);
 
drivers/infiniband/ulp/rtrs/rtrs-clt.c +1 -1
index 394c1f6822b9..ee37c5af3a8c 100644
@@ -2735,8 +2735,8 @@ void rtrs_clt_close(struct rtrs_clt *clt)
 
 	/* Now it is safe to iterate over all paths without locks */
 	list_for_each_entry_safe(sess, tmp, &clt->paths_list, s.entry) {
-		rtrs_clt_destroy_sess_files(sess, NULL);
 		rtrs_clt_close_conns(sess, true);
+		rtrs_clt_destroy_sess_files(sess, NULL);
 		kobject_put(&sess->kobj);
 	}
 	free_clt(clt);
drivers/net/can/spi/mcp251x.c +18 -6
index 25859d16d06f..e7be36dc2159 100644
@@ -314,6 +314,18 @@ static int mcp251x_spi_trans(struct spi_device *spi, int len)
 	return ret;
 }
 
+static int mcp251x_spi_write(struct spi_device *spi, int len)
+{
+	struct mcp251x_priv *priv = spi_get_drvdata(spi);
+	int ret;
+
+	ret = spi_write(spi, priv->spi_tx_buf, len);
+	if (ret)
+		dev_err(&spi->dev, "spi write failed: ret = %d\n", ret);
+
+	return ret;
+}
+
 static u8 mcp251x_read_reg(struct spi_device *spi, u8 reg)
 {
 	struct mcp251x_priv *priv = spi_get_drvdata(spi);
@@ -361,7 +373,7 @@ static void mcp251x_write_reg(struct spi_device *spi, u8 reg, u8 val)
 	priv->spi_tx_buf[1] = reg;
 	priv->spi_tx_buf[2] = val;
 
-	mcp251x_spi_trans(spi, 3);
+	mcp251x_spi_write(spi, 3);
 }
 
 static void mcp251x_write_2regs(struct spi_device *spi, u8 reg, u8 v1, u8 v2)
@@ -373,7 +385,7 @@ static void mcp251x_write_2regs(struct spi_device *spi, u8 reg, u8 v1, u8 v2)
 	priv->spi_tx_buf[2] = v1;
 	priv->spi_tx_buf[3] = v2;
 
-	mcp251x_spi_trans(spi, 4);
+	mcp251x_spi_write(spi, 4);
 }
 
 static void mcp251x_write_bits(struct spi_device *spi, u8 reg,
@@ -386,7 +398,7 @@ static void mcp251x_write_bits(struct spi_device *spi, u8 reg,
 	priv->spi_tx_buf[2] = mask;
 	priv->spi_tx_buf[3] = val;
 
-	mcp251x_spi_trans(spi, 4);
+	mcp251x_spi_write(spi, 4);
 }
 
 static u8 mcp251x_read_stat(struct spi_device *spi)
@@ -618,7 +630,7 @@ static void mcp251x_hw_tx_frame(struct spi_device *spi, u8 *buf,
 					  buf[i]);
 	} else {
 		memcpy(priv->spi_tx_buf, buf, TXBDAT_OFF + len);
-		mcp251x_spi_trans(spi, TXBDAT_OFF + len);
+		mcp251x_spi_write(spi, TXBDAT_OFF + len);
 	}
 }
 
@@ -650,7 +662,7 @@ static void mcp251x_hw_tx(struct spi_device *spi, struct can_frame *frame,
 
 	/* use INSTRUCTION_RTS, to avoid "repeated frame problem" */
 	priv->spi_tx_buf[0] = INSTRUCTION_RTS(1 << tx_buf_idx);
-	mcp251x_spi_trans(priv->spi, 1);
+	mcp251x_spi_write(priv->spi, 1);
 }
 
 static void mcp251x_hw_rx_frame(struct spi_device *spi, u8 *buf,
@@ -888,7 +900,7 @@ static int mcp251x_hw_reset(struct spi_device *spi)
 	mdelay(MCP251X_OST_DELAY_MS);
 
 	priv->spi_tx_buf[0] = INSTRUCTION_RESET;
-	ret = mcp251x_spi_trans(spi, 1);
+	ret = mcp251x_spi_write(spi, 1);
 	if (ret)
 		return ret;
 
drivers/net/can/usb/peak_usb/pcan_usb_core.c +5 -1
index 251835ea15aa..18c7d8c151a4 100644
@@ -857,7 +857,7 @@ static int peak_usb_create_dev(const struct peak_usb_adapter *peak_usb_adapter,
 	if (dev->adapter->dev_set_bus) {
 		err = dev->adapter->dev_set_bus(dev, 0);
 		if (err)
-			goto lbl_unregister_candev;
+			goto adap_dev_free;
 	}
 
 	/* get device number early */
@@ -869,6 +869,10 @@ static int peak_usb_create_dev(const struct peak_usb_adapter *peak_usb_adapter,
 
 	return 0;
 
+adap_dev_free:
+	if (dev->adapter->dev_free)
+		dev->adapter->dev_free(dev);
+
 lbl_unregister_candev:
 	unregister_candev(netdev);
 
drivers/net/dsa/lantiq_gswip.c +173 -22

262 lines not on this page · raw message

drivers/net/ethernet/amd/xgbe/xgbe.h +3 -3
index ba8321ec1ee7..3305979a9f7c 100644
@@ -180,9 +180,9 @@
 #define XGBE_DMA_SYS_AWCR	0x30303030
 
 /* DMA cache settings - PCI device */
-#define XGBE_DMA_PCI_ARCR	0x00000003
-#define XGBE_DMA_PCI_AWCR	0x13131313
-#define XGBE_DMA_PCI_AWARCR	0x00000313
+#define XGBE_DMA_PCI_ARCR	0x000f0f0f
+#define XGBE_DMA_PCI_AWCR	0x0f0f0f0f
+#define XGBE_DMA_PCI_AWARCR	0x00000f0f
 
 /* DMA channel interrupt modes */
 #define XGBE_IRQ_MODE_EDGE	0
drivers/net/ethernet/cadence/macb_main.c +7 -0
index 07cdb38e7d11..fbedbceef2d1 100644
@@ -3235,6 +3235,9 @@ static void gem_prog_cmp_regs(struct macb *bp, struct ethtool_rx_flow_spec *fs)
 	bool cmp_b = false;
 	bool cmp_c = false;
 
+	if (!macb_is_gem(bp))
+		return;
+
 	tp4sp_v = &(fs->h_u.tcp_ip4_spec);
 	tp4sp_m = &(fs->m_u.tcp_ip4_spec);
 
@@ -3603,6 +3606,7 @@ static void macb_restore_features(struct macb *bp)
 {
 	struct net_device *netdev = bp->dev;
 	netdev_features_t features = netdev->features;
+	struct ethtool_rx_fs_item *item;
 
 	/* TX checksum offload */
 	macb_set_txcsum_feature(bp, features);
@@ -3611,6 +3615,9 @@ static void macb_restore_features(struct macb *bp)
 	macb_set_rxcsum_feature(bp, features);
 
 	/* RX Flow Filters */
+	list_for_each_entry(item, &bp->rx_fs_list.list, list)
+		gem_prog_cmp_regs(bp, &item->fs);
+
 	macb_set_rxflow_feature(bp, features);
 }
 
drivers/net/ethernet/chelsio/cxgb4/cudbg_lib.c +19 -4
index 75474f810249..c5b0e725b238 100644
@@ -1794,11 +1794,25 @@ int cudbg_collect_sge_indirect(struct cudbg_init *pdbg_init,
 	struct cudbg_buffer temp_buff = { 0 };
 	struct sge_qbase_reg_field *sge_qbase;
 	struct ireg_buf *ch_sge_dbg;
+	u8 padap_running = 0;
 	int i, rc;
+	u32 size;
 
-	rc = cudbg_get_buff(pdbg_init, dbg_buff,
-			    sizeof(*ch_sge_dbg) * 2 + sizeof(*sge_qbase),
-			    &temp_buff);
+	/* Accessing SGE_QBASE_MAP[0-3] and SGE_QBASE_INDEX regs can
+	 * lead to SGE missing doorbells under heavy traffic. So, only
+	 * collect them when adapter is idle.
+	 */
+	for_each_port(padap, i) {
+		padap_running = netif_running(padap->port[i]);
+		if (padap_running)
+			break;
+	}
+
+	size = sizeof(*ch_sge_dbg) * 2;
+	if (!padap_running)
+		size += sizeof(*sge_qbase);
+
+	rc = cudbg_get_buff(pdbg_init, dbg_buff, size, &temp_buff);
 	if (rc)
 		return rc;
 
@@ -1820,7 +1834,8 @@ int cudbg_collect_sge_indirect(struct cudbg_init *pdbg_init,
 		ch_sge_dbg++;
 	}
 
-	if (CHELSIO_CHIP_VERSION(padap->params.chip) > CHELSIO_T5) {
+	if (CHELSIO_CHIP_VERSION(padap->params.chip) > CHELSIO_T5 &&
+	    !padap_running) {
 		sge_qbase = (struct sge_qbase_reg_field *)ch_sge_dbg;
 		/* 1 addr reg SGE_QBASE_INDEX and 4 data reg
 		 * SGE_QBASE_MAP[0-3]
drivers/net/ethernet/chelsio/cxgb4/t4_hw.c +2 -1
index 98d01a7497ec..581670dced6e 100644
@@ -2090,7 +2090,8 @@ void t4_get_regs(struct adapter *adap, void *buf, size_t buf_size)
 		0x1190, 0x1194,
 		0x11a0, 0x11a4,
 		0x11b0, 0x11b4,
-		0x11fc, 0x1274,
+		0x11fc, 0x123c,
+		0x1254, 0x1274,
 		0x1280, 0x133c,
 		0x1800, 0x18fc,
 		0x3000, 0x302c,
drivers/net/ethernet/freescale/gianfar.c +5 -1
index 4fab2ee5bbf5..e4d9c4c640e5 100644
@@ -364,7 +364,11 @@ static void gfar_set_mac_for_addr(struct net_device *dev, int num,
 
 static int gfar_set_mac_addr(struct net_device *dev, void *p)
 {
-	eth_mac_addr(dev, p);
+	int ret;
+
+	ret = eth_mac_addr(dev, p);
+	if (ret)
+		return ret;
 
 	gfar_set_mac_for_addr(dev, 0, dev->dev_addr);
 
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c +2 -2
index 674b3a22e91f..3bd7bc794677 100644
@@ -2575,14 +2575,14 @@ static int hclgevf_ae_start(struct hnae3_handle *handle)
 {
 	struct hclgevf_dev *hdev = hclgevf_ae_get_hdev(handle);
 
+	clear_bit(HCLGEVF_STATE_DOWN, &hdev->state);
+
 	hclgevf_reset_tqp_stats(handle);
 
 	hclgevf_request_link_info(hdev);
 
 	hclgevf_update_link_mode(hdev);
 
-	clear_bit(HCLGEVF_STATE_DOWN, &hdev->state);
-
 	return 0;
 }
 
drivers/net/ethernet/intel/i40e/i40e.h +1 -0
index 118473dfdcbd..fe1258778cbc 100644
@@ -142,6 +142,7 @@ enum i40e_state_t {
 	__I40E_VIRTCHNL_OP_PENDING,
 	__I40E_RECOVERY_MODE,
 	__I40E_VF_RESETS_DISABLED,	/* disable resets during i40e_remove */
+	__I40E_VFS_RELEASING,
 	/* This must be last as it determines the size of the BITMAP */
 	__I40E_STATE_SIZE__,
 };
drivers/net/ethernet/intel/i40e/i40e_debugfs.c +3 -0
index d7c13ca9be7d..d627b59ad446 100644
@@ -578,6 +578,9 @@ static void i40e_dbg_dump_desc(int cnt, int vsi_seid, int ring_id, int desc_n,
 	case RING_TYPE_XDP:
 		ring = kmemdup(vsi->xdp_rings[ring_id], sizeof(*ring), GFP_KERNEL);
 		break;
+	default:
+		ring = NULL;
+		break;
 	}
 	if (!ring)
 		return;
drivers/net/ethernet/intel/i40e/i40e_ethtool.c +48 -7

92 lines not on this page · raw message

drivers/net/ethernet/intel/i40e/i40e_main.c +7 -4
index 4a2d03cada01..7fab60128c76 100644
@@ -2560,8 +2560,7 @@ int i40e_sync_vsi_filters(struct i40e_vsi *vsi)
 				 i40e_stat_str(hw, aq_ret),
 				 i40e_aq_str(hw, hw->aq.asq_last_status));
 		} else {
-			dev_info(&pf->pdev->dev, "%s is %s allmulti mode.\n",
-				 vsi->netdev->name,
+			dev_info(&pf->pdev->dev, "%s allmulti mode.\n",
 				 cur_multipromisc ? "entering" : "leaving");
 		}
 	}
@@ -14647,12 +14646,16 @@ static int i40e_init_recovery_mode(struct i40e_pf *pf, struct i40e_hw *hw)
 	 * in order to register the netdev
 	 */
 	v_idx = i40e_vsi_mem_alloc(pf, I40E_VSI_MAIN);
-	if (v_idx < 0)
+	if (v_idx < 0) {
+		err = v_idx;
 		goto err_switch_setup;
+	}
 	pf->lan_vsi = v_idx;
 	vsi = pf->vsi[v_idx];
-	if (!vsi)
+	if (!vsi) {
+		err = -EFAULT;
 		goto err_switch_setup;
+	}
 	vsi->alloc_queue_pairs = 1;
 	err = i40e_config_netdev(vsi);
 	if (err)
drivers/net/ethernet/intel/i40e/i40e_txrx.c +5 -7
index 903d4e8cb0a1..92ce835bc79e 100644
@@ -2198,8 +2198,7 @@ int i40e_xmit_xdp_tx_ring(struct xdp_buff *xdp, struct i40e_ring *xdp_ring)
  * @rx_ring: Rx ring being processed
  * @xdp: XDP buffer containing the frame
  **/
-static struct sk_buff *i40e_run_xdp(struct i40e_ring *rx_ring,
-				    struct xdp_buff *xdp)
+static int i40e_run_xdp(struct i40e_ring *rx_ring, struct xdp_buff *xdp)
 {
 	int err, result = I40E_XDP_PASS;
 	struct i40e_ring *xdp_ring;
@@ -2238,7 +2237,7 @@ static struct sk_buff *i40e_run_xdp(struct i40e_ring *rx_ring,
 	}
 xdp_out:
 	rcu_read_unlock();
-	return ERR_PTR(-result);
+	return result;
 }
 
 /**
@@ -2350,6 +2349,7 @@ static int i40e_clean_rx_irq(struct i40e_ring *rx_ring, int budget)
 	unsigned int xdp_xmit = 0;
 	bool failure = false;
 	struct xdp_buff xdp;
+	int xdp_res = 0;
 
 #if (PAGE_SIZE < 8192)
 	xdp.frame_sz = i40e_rx_frame_truesize(rx_ring, 0);
@@ -2416,12 +2416,10 @@ static int i40e_clean_rx_irq(struct i40e_ring *rx_ring, int budget)
 			/* At larger PAGE_SIZE, frame_sz depend on len size */
 			xdp.frame_sz = i40e_rx_frame_truesize(rx_ring, size);
 #endif
-			skb = i40e_run_xdp(rx_ring, &xdp);
+			xdp_res = i40e_run_xdp(rx_ring, &xdp);
 		}
 
-		if (IS_ERR(skb)) {
-			unsigned int xdp_res = -PTR_ERR(skb);
-
+		if (xdp_res) {
 			if (xdp_res & (I40E_XDP_TX | I40E_XDP_REDIR)) {
 				xdp_xmit |= xdp_res;
 				i40e_rx_buffer_flip(rx_ring, rx_buffer, size);
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c +9 -0
index 1b6ec9be155a..5d301a466f5c 100644
@@ -137,6 +137,7 @@ void i40e_vc_notify_vf_reset(struct i40e_vf *vf)
  **/
 static inline void i40e_vc_disable_vf(struct i40e_vf *vf)
 {
+	struct i40e_pf *pf = vf->pf;
 	int i;
 
 	i40e_vc_notify_vf_reset(vf);
@@ -147,6 +148,11 @@ static inline void i40e_vc_disable_vf(struct i40e_vf *vf)
 	 * ensure a reset.
 	 */
 	for (i = 0; i < 20; i++) {
+		/* If PF is in VFs releasing state reset VF is impossible,
+		 * so leave it.
+		 */
+		if (test_bit(__I40E_VFS_RELEASING, pf->state))
+			return;
 		if (i40e_reset_vf(vf, false))
 			return;
 		usleep_range(10000, 20000);
@@ -1574,6 +1580,8 @@ void i40e_free_vfs(struct i40e_pf *pf)
 
 	if (!pf->vf)
 		return;
+
+	set_bit(__I40E_VFS_RELEASING, pf->state);
 	while (test_and_set_bit(__I40E_VF_DISABLE, pf->state))
 		usleep_range(1000, 2000);
 
@@ -1631,6 +1639,7 @@ void i40e_free_vfs(struct i40e_pf *pf)
 		}
 	}
 	clear_bit(__I40E_VF_DISABLE, pf->state);
+	clear_bit(__I40E_VFS_RELEASING, pf->state);
 }
 
 #ifdef CONFIG_PCI_IOV
drivers/net/ethernet/intel/i40e/i40e_xsk.c +2 -2
index 37a21fb99922..7949f6b79f92 100644
@@ -462,7 +462,7 @@ static bool i40e_xmit_zc(struct i40e_ring *xdp_ring, unsigned int budget)
 
 	nb_pkts = xsk_tx_peek_release_desc_batch(xdp_ring->xsk_pool, descs, budget);
 	if (!nb_pkts)
-		return false;
+		return true;
 
 	if (xdp_ring->next_to_use + nb_pkts >= xdp_ring->count) {
 		nb_processed = xdp_ring->count - xdp_ring->next_to_use;
@@ -479,7 +479,7 @@ static bool i40e_xmit_zc(struct i40e_ring *xdp_ring, unsigned int budget)
 
 	i40e_update_tx_stats(xdp_ring, nb_pkts, total_bytes);
 
-	return true;
+	return nb_pkts < budget;
 }
 
 /**
drivers/net/ethernet/intel/ice/ice.h +2 -2
index 619d93f8b54c..f3d927320a70 100644
@@ -194,7 +194,6 @@ enum ice_state {
 	__ICE_NEEDS_RESTART,
 	__ICE_PREPARED_FOR_RESET,	/* set by driver when prepared */
 	__ICE_RESET_OICR_RECV,		/* set by driver after rcv reset OICR */
-	__ICE_DCBNL_DEVRESET,		/* set by dcbnl devreset */
 	__ICE_PFR_REQ,			/* set by driver and peers */
 	__ICE_CORER_REQ,		/* set by driver and peers */
 	__ICE_GLOBR_REQ,		/* set by driver and peers */
@@ -586,7 +585,7 @@ int ice_schedule_reset(struct ice_pf *pf, enum ice_reset_req reset);
 void ice_print_link_msg(struct ice_vsi *vsi, bool isup);
 const char *ice_stat_str(enum ice_status stat_err);
 const char *ice_aq_str(enum ice_aq_err aq_err);
-bool ice_is_wol_supported(struct ice_pf *pf);
+bool ice_is_wol_supported(struct ice_hw *hw);
 int
 ice_fdir_write_fltr(struct ice_pf *pf, struct ice_fdir_fltr *input, bool add,
 		    bool is_tun);
@@ -604,6 +603,7 @@ int ice_fdir_create_dflt_rules(struct ice_pf *pf);
 int ice_aq_wait_for_event(struct ice_pf *pf, u16 opcode, unsigned long timeout,
 			  struct ice_rq_event_info *event);
 int ice_open(struct net_device *netdev);
+int ice_open_internal(struct net_device *netdev);
 int ice_stop(struct net_device *netdev);
 void ice_service_task_schedule(struct ice_pf *pf);
 
drivers/net/ethernet/intel/ice/ice_common.c +1 -1
index 6d7e7dd0ebe2..836e96159a09 100644
@@ -717,8 +717,8 @@ static enum ice_status ice_cfg_fw_log(struct ice_hw *hw, bool enable)
 
 			if (!data) {
 				data = devm_kcalloc(ice_hw_to_dev(hw),
-						    sizeof(*data),
 						    ICE_AQC_FW_LOG_ID_MAX,
+						    sizeof(*data),
 						    GFP_KERNEL);
 				if (!data)
 					return ICE_ERR_NO_MEMORY;
drivers/net/ethernet/intel/ice/ice_controlq.h +2 -2
index faaa08e8171b..68866f4f0eb0 100644
@@ -31,8 +31,8 @@ enum ice_ctl_q {
 	ICE_CTL_Q_MAILBOX,
 };
 
-/* Control Queue timeout settings - max delay 250ms */
-#define ICE_CTL_Q_SQ_CMD_TIMEOUT	2500  /* Count 2500 times */
+/* Control Queue timeout settings - max delay 1s */
+#define ICE_CTL_Q_SQ_CMD_TIMEOUT	10000 /* Count 10000 times */
 #define ICE_CTL_Q_SQ_CMD_USEC		100   /* Check every 100usec */
 #define ICE_CTL_Q_ADMIN_INIT_TIMEOUT	10    /* Count 10 times */
 #define ICE_CTL_Q_ADMIN_INIT_MSEC	100   /* Check every 100msec */
drivers/net/ethernet/intel/ice/ice_dcb.c +48 -28

177 lines not on this page · raw message

drivers/net/ethernet/intel/ice/ice_dcb_lib.c +25 -22

155 lines not on this page · raw message

drivers/net/ethernet/intel/ice/ice_dcb_nl.c +25 -27

189 lines not on this page · raw message

drivers/net/ethernet/intel/ice/ice_ethtool.c +4 -4
index aebebd2102da..d70573f5072c 100644
@@ -2986,7 +2986,7 @@ ice_get_pauseparam(struct net_device *netdev, struct ethtool_pauseparam *pause)
 	pause->rx_pause = 0;
 	pause->tx_pause = 0;
 
-	dcbx_cfg = &pi->local_dcbx_cfg;
+	dcbx_cfg = &pi->qos_cfg.local_dcbx_cfg;
 
 	pcaps = kzalloc(sizeof(*pcaps), GFP_KERNEL);
 	if (!pcaps)
@@ -3038,7 +3038,7 @@ ice_set_pauseparam(struct net_device *netdev, struct ethtool_pauseparam *pause)
 
 	pi = vsi->port_info;
 	hw_link_info = &pi->phy.link_info;
-	dcbx_cfg = &pi->local_dcbx_cfg;
+	dcbx_cfg = &pi->qos_cfg.local_dcbx_cfg;
 	link_up = hw_link_info->link_info & ICE_AQ_LINK_UP;
 
 	/* Changing the port's flow control is not supported if this isn't the
@@ -3472,7 +3472,7 @@ static void ice_get_wol(struct net_device *netdev, struct ethtool_wolinfo *wol)
 		netdev_warn(netdev, "Wake on LAN is not supported on this interface!\n");
 
 	/* Get WoL settings based on the HW capability */
-	if (ice_is_wol_supported(pf)) {
+	if (ice_is_wol_supported(&pf->hw)) {
 		wol->supported = WAKE_MAGIC;
 		wol->wolopts = pf->wol_ena ? WAKE_MAGIC : 0;
 	} else {
@@ -3492,7 +3492,7 @@ static int ice_set_wol(struct net_device *netdev, struct ethtool_wolinfo *wol)
 	struct ice_vsi *vsi = np->vsi;
 	struct ice_pf *pf = vsi->back;
 
-	if (vsi->type != ICE_VSI_PF || !ice_is_wol_supported(pf))
+	if (vsi->type != ICE_VSI_PF || !ice_is_wol_supported(&pf->hw))
 		return -EOPNOTSUPP;
 
 	/* only magic packet is supported */
drivers/net/ethernet/intel/ice/ice_lib.c +3 -4
index ad9c22a1b97a..170367eaa95a 100644
@@ -2078,7 +2078,7 @@ int ice_cfg_vlan_pruning(struct ice_vsi *vsi, bool ena, bool vlan_promisc)
 
 static void ice_vsi_set_tc_cfg(struct ice_vsi *vsi)
 {
-	struct ice_dcbx_cfg *cfg = &vsi->port_info->local_dcbx_cfg;
+	struct ice_dcbx_cfg *cfg = &vsi->port_info->qos_cfg.local_dcbx_cfg;
 
 	vsi->tc_cfg.ena_tc = ice_dcb_get_ena_tc(cfg);
 	vsi->tc_cfg.numtc = ice_dcb_get_num_tc(cfg);
@@ -2489,7 +2489,7 @@ int ice_ena_vsi(struct ice_vsi *vsi, bool locked)
 			if (!locked)
 				rtnl_lock();
 
-			err = ice_open(vsi->netdev);
+			err = ice_open_internal(vsi->netdev);
 
 			if (!locked)
 				rtnl_unlock();
@@ -2518,7 +2518,7 @@ void ice_dis_vsi(struct ice_vsi *vsi, bool locked)
 			if (!locked)
 				rtnl_lock();
 
-			ice_stop(vsi->netdev);
+			ice_vsi_close(vsi);
 
 			if (!locked)
 				rtnl_unlock();
@@ -2944,7 +2944,6 @@ int ice_vsi_rebuild(struct ice_vsi *vsi, bool init_vsi)
 bool ice_is_reset_in_progress(unsigned long *state)
 {
 	return test_bit(__ICE_RESET_OICR_RECV, state) ||
-	       test_bit(__ICE_DCBNL_DEVRESET, state) ||
 	       test_bit(__ICE_PFR_REQ, state) ||
 	       test_bit(__ICE_CORER_REQ, state) ||
 	       test_bit(__ICE_GLOBR_REQ, state);
drivers/net/ethernet/intel/ice/ice_main.c +39 -14

107 lines not on this page · raw message

drivers/net/ethernet/intel/ice/ice_switch.c +9 -6
index c33612132ddf..0a8fcd4309ca 100644
@@ -1238,6 +1238,9 @@ ice_add_update_vsi_list(struct ice_hw *hw,
 			ice_create_vsi_list_map(hw, &vsi_handle_arr[0], 2,
 						vsi_list_id);
 
+		if (!m_entry->vsi_list_info)
+			return ICE_ERR_NO_MEMORY;
+
 		/* If this entry was large action then the large action needs
 		 * to be updated to point to FWD to VSI list
 		 */
@@ -2220,6 +2223,7 @@ ice_vsi_uses_fltr(struct ice_fltr_mgmt_list_entry *fm_entry, u16 vsi_handle)
 	return ((fm_entry->fltr_info.fltr_act == ICE_FWD_TO_VSI &&
 		 fm_entry->fltr_info.vsi_handle == vsi_handle) ||
 		(fm_entry->fltr_info.fltr_act == ICE_FWD_TO_VSI_LIST &&
+		 fm_entry->vsi_list_info &&
 		 (test_bit(vsi_handle, fm_entry->vsi_list_info->vsi_map))));
 }
 
@@ -2292,14 +2296,12 @@ ice_add_to_vsi_fltr_list(struct ice_hw *hw, u16 vsi_handle,
 		return ICE_ERR_PARAM;
 
 	list_for_each_entry(fm_entry, lkup_list_head, list_entry) {
-		struct ice_fltr_info *fi;
-
-		fi = &fm_entry->fltr_info;
-		if (!fi || !ice_vsi_uses_fltr(fm_entry, vsi_handle))
+		if (!ice_vsi_uses_fltr(fm_entry, vsi_handle))
 			continue;
 
 		status = ice_add_entry_to_vsi_fltr_list(hw, vsi_handle,
-							vsi_list_head, fi);
+							vsi_list_head,
+							&fm_entry->fltr_info);
 		if (status)
 			return status;
 	}
@@ -2622,7 +2624,7 @@ ice_remove_vsi_lkup_fltr(struct ice_hw *hw, u16 vsi_handle,
 					  &remove_list_head);
 	mutex_unlock(rule_lock);
 	if (status)
-		return;
+		goto free_fltr_list;
 
 	switch (lkup) {
 	case ICE_SW_LKUP_MAC:
@@ -2645,6 +2647,7 @@ ice_remove_vsi_lkup_fltr(struct ice_hw *hw, u16 vsi_handle,
 		break;
 	}
 
+free_fltr_list:
 	list_for_each_entry_safe(fm_entry, tmp, &remove_list_head, list_entry) {
 		list_del(&fm_entry->list_entry);
 		devm_kfree(ice_hw_to_dev(hw), fm_entry);
drivers/net/ethernet/intel/ice/ice_txrx.c +1 -1
index b6fa83c619dd..4cd3142ec20a 100644
@@ -2421,7 +2421,7 @@ ice_xmit_frame_ring(struct sk_buff *skb, struct ice_ring *tx_ring)
 	/* allow CONTROL frames egress from main VSI if FW LLDP disabled */
 	if (unlikely(skb->priority == TC_PRIO_CONTROL &&
 		     vsi->type == ICE_VSI_PF &&
-		     vsi->port_info->is_sw_lldp))
+		     vsi->port_info->qos_cfg.is_sw_lldp))
 		offload.cd_qw1 |= (u64)(ICE_TX_DESC_DTYPE_CTX |
 					ICE_TX_CTX_DESC_SWTCH_UPLINK <<
 					ICE_TXD_CTX_QW1_CMD_S);
drivers/net/ethernet/intel/ice/ice_type.h +10 -7
index 2226a291a394..1bed183d96a0 100644
@@ -493,6 +493,7 @@ struct ice_dcb_app_priority_table {
 #define ICE_TLV_STATUS_ERR	0x4
 #define ICE_APP_PROT_ID_FCOE	0x8906
 #define ICE_APP_PROT_ID_ISCSI	0x0cbc
+#define ICE_APP_PROT_ID_ISCSI_860 0x035c
 #define ICE_APP_PROT_ID_FIP	0x8914
 #define ICE_APP_SEL_ETHTYPE	0x1
 #define ICE_APP_SEL_TCPIP	0x2
@@ -514,6 +515,14 @@ struct ice_dcbx_cfg {
 #define ICE_DCBX_APPS_NON_WILLING	0x1
 };
 
+struct ice_qos_cfg {
+	struct ice_dcbx_cfg local_dcbx_cfg;	/* Oper/Local Cfg */
+	struct ice_dcbx_cfg desired_dcbx_cfg;	/* CEE Desired Cfg */
+	struct ice_dcbx_cfg remote_dcbx_cfg;	/* Peer Cfg */
+	u8 dcbx_status : 3;			/* see ICE_DCBX_STATUS_DIS */
+	u8 is_sw_lldp : 1;
+};
+
 struct ice_port_info {
 	struct ice_sched_node *root;	/* Root Node per Port */
 	struct ice_hw *hw;		/* back pointer to HW instance */
@@ -537,13 +546,7 @@ struct ice_port_info {
 		sib_head[ICE_MAX_TRAFFIC_CLASS][ICE_AQC_TOPO_MAX_LEVEL_NUM];
 	/* List contain profile ID(s) and other params per layer */
 	struct list_head rl_prof_list[ICE_AQC_TOPO_MAX_LEVEL_NUM];
-	struct ice_dcbx_cfg local_dcbx_cfg;	/* Oper/Local Cfg */
-	/* DCBX info */
-	struct ice_dcbx_cfg remote_dcbx_cfg;	/* Peer Cfg */
-	struct ice_dcbx_cfg desired_dcbx_cfg;	/* CEE Desired Cfg */
-	/* LLDP/DCBX Status */
-	u8 dcbx_status:3;		/* see ICE_DCBX_STATUS_DIS */
-	u8 is_sw_lldp:1;
+	struct ice_qos_cfg qos_cfg;
 	u8 is_vf:1;
 };
 
drivers/net/ethernet/mellanox/mlx5/core/dev.c +2 -2
index b051417ede67..9153c9bda96f 100644
@@ -191,12 +191,12 @@ static bool is_ib_supported(struct mlx5_core_dev *dev)
 }
 
 enum {
-	MLX5_INTERFACE_PROTOCOL_ETH_REP,
 	MLX5_INTERFACE_PROTOCOL_ETH,
+	MLX5_INTERFACE_PROTOCOL_ETH_REP,
 
+	MLX5_INTERFACE_PROTOCOL_IB,
 	MLX5_INTERFACE_PROTOCOL_IB_REP,
 	MLX5_INTERFACE_PROTOCOL_MPIB,
-	MLX5_INTERFACE_PROTOCOL_IB,
 
 	MLX5_INTERFACE_PROTOCOL_VNET,
 };
drivers/net/ethernet/mellanox/mlx5/core/en.h +1 -0
index f258f2f9b8cf..9061a30a93bc 100644
@@ -510,6 +510,7 @@ struct mlx5e_icosq {
 	struct mlx5_wq_cyc         wq;
 	void __iomem              *uar_map;
 	u32                        sqn;
+	u16                        reserved_room;
 	unsigned long              state;
 
 	/* control path */
drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c +29 -7
index b42396df3111..0469f53dfb99 100644
@@ -184,6 +184,28 @@ mlx5_tc_ct_entry_has_nat(struct mlx5_ct_entry *entry)
 	return !!(entry->tuple_nat_node.next);
 }
 
+static int
+mlx5_get_label_mapping(struct mlx5_tc_ct_priv *ct_priv,
+		       u32 *labels, u32 *id)
+{
+	if (!memchr_inv(labels, 0, sizeof(u32) * 4)) {
+		*id = 0;
+		return 0;
+	}
+
+	if (mapping_add(ct_priv->labels_mapping, labels, id))
+		return -EOPNOTSUPP;
+
+	return 0;
+}
+
+static void
+mlx5_put_label_mapping(struct mlx5_tc_ct_priv *ct_priv, u32 id)
+{
+	if (id)
+		mapping_remove(ct_priv->labels_mapping, id);
+}
+
 static int
 mlx5_tc_ct_rule_to_tuple(struct mlx5_ct_tuple *tuple, struct flow_rule *rule)
 {
@@ -435,7 +457,7 @@ mlx5_tc_ct_entry_del_rule(struct mlx5_tc_ct_priv *ct_priv,
 	mlx5_tc_rule_delete(netdev_priv(ct_priv->netdev), zone_rule->rule, attr);
 	mlx5e_mod_hdr_detach(ct_priv->dev,
 			     ct_priv->mod_hdr_tbl, zone_rule->mh);
-	mapping_remove(ct_priv->labels_mapping, attr->ct_attr.ct_labels_id);
+	mlx5_put_label_mapping(ct_priv, attr->ct_attr.ct_labels_id);
 	kfree(attr);
 }
 
@@ -638,8 +660,8 @@ mlx5_tc_ct_entry_create_mod_hdr(struct mlx5_tc_ct_priv *ct_priv,
 	if (!meta)
 		return -EOPNOTSUPP;
 
-	err = mapping_add(ct_priv->labels_mapping, meta->ct_metadata.labels,
-			  &attr->ct_attr.ct_labels_id);
+	err = mlx5_get_label_mapping(ct_priv, meta->ct_metadata.labels,
+				     &attr->ct_attr.ct_labels_id);
 	if (err)
 		return -EOPNOTSUPP;
 	if (nat) {
@@ -675,7 +697,7 @@ mlx5_tc_ct_entry_create_mod_hdr(struct mlx5_tc_ct_priv *ct_priv,
 
 err_mapping:
 	dealloc_mod_hdr_actions(&mod_acts);
-	mapping_remove(ct_priv->labels_mapping, attr->ct_attr.ct_labels_id);
+	mlx5_put_label_mapping(ct_priv, attr->ct_attr.ct_labels_id);
 	return err;
 }
 
@@ -743,7 +765,7 @@ mlx5_tc_ct_entry_add_rule(struct mlx5_tc_ct_priv *ct_priv,
 err_rule:
 	mlx5e_mod_hdr_detach(ct_priv->dev,
 			     ct_priv->mod_hdr_tbl, zone_rule->mh);
-	mapping_remove(ct_priv->labels_mapping, attr->ct_attr.ct_labels_id);
+	mlx5_put_label_mapping(ct_priv, attr->ct_attr.ct_labels_id);
[… more lines in the raw message]

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

drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h +6 -0
index 4880f2179273..05d673e5289d 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c +7 -11
index d06532d0baa4..c0bd4e55ed8c 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c +11 -11
index c9d01e705ab2..d3d532fdf04e 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_main.c +20 -1
index b6324d11a008..7bb189e65628 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_rep.c +3 -2
index f0ceae65f6cf..8afbb485197e 100644

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

drivers/net/ethernet/mellanox/mlx5/core/eq.c +12 -1
index fc0afa03d407..b5f48efebd71 100644

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

drivers/net/ethernet/mellanox/mlxsw/spectrum.h +15 -0
index a6956cfc9cb1..4399c9a4999d 100644

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

drivers/net/ethernet/mellanox/mlxsw/spectrum_ipip.c +3 -4
index 6ccca39bae84..64a8f838eb53 100644

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

drivers/net/ethernet/mellanox/mlxsw/spectrum_nve.c +3 -4
index e5ec595593f4..9eba8fa684ae 100644

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

drivers/net/ethernet/myricom/myri10ge/myri10ge.c +1 -1
index 1634ca6d4a8f..c84c8bf2bc20 100644

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

drivers/net/ethernet/netronome/nfp/bpf/cmsg.c +1 -0
index 0e2db6ea79e9..2ec62c8d86e1 100644

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

drivers/net/ethernet/netronome/nfp/flower/main.h +8 -0
index caf12eec9945..56833a41f3d2 100644

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

drivers/net/ethernet/netronome/nfp/flower/metadata.c +15 -1
index aa06fcb38f8b..327bb56b3ef5 100644

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

drivers/net/ethernet/netronome/nfp/flower/offload.c +46 -2

48 lines not on this page · raw message

drivers/net/geneve.c +20 -4
index 5523f069b9a5..f35b0b83fe85 100644

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

drivers/net/ieee802154/atusb.c +1 -0
index 0dd0ba915ab9..23ee0b14cbfa 100644

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

drivers/net/phy/bcm-phy-lib.c +10 -3
index 53282a6d5928..287cccf8f7f4 100644

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

drivers/net/tun.c +48 -0

48 lines not on this page · raw message

drivers/net/usb/hso.c +12 -21
index 2bb28db89432..d18642a8144c 100644

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

drivers/net/vxlan.c +14 -4
index 0842371eca3d..4adfa6a01198 100644

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

drivers/net/wan/hdlc_fr.c +3 -2
index 0720f5f92caa..4d9dc7d15908 100644

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

drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c +1 -1
index 720193d16539..7da193a12871 100644

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

drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c +1 -30
index 8fba190e84cf..cecc32e7dbe8 100644

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

drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info.c +1 -2
index d1bb273d6b6d..74ce31fdf45e 100644

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

drivers/net/wireless/intel/iwlwifi/pcie/trans-gen2.c +35 -0
index c602b815dcc2..08788bc90683 100644

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

drivers/of/property.c +10 -1
index 5f9eed79a8aa..6d8368bf88ca 100644

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

drivers/platform/x86/intel-hid.c +9 -7
index 57cc92891a57..078648a9201b 100644

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

drivers/ras/cec.c +12 -3
index ddecf25b5dd4..d7894f178bd4 100644

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

drivers/regulator/bd9571mwv-regulator.c +2 -2
index e690c2ce5b3c..25e33028871c 100644

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

drivers/remoteproc/pru_rproc.c +1 -1
index 2667919d76b3..16979c1cd2f4 100644

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

drivers/remoteproc/qcom_pil_info.c +1 -1
index 5521c4437ffa..7c007dd7b200 100644

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

drivers/scsi/pm8001/pm8001_hwi.c +4 -4
index ea43dff40a85..6fa739c92beb 100644

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

drivers/scsi/ufs/ufshcd.c +14 -17
index 16e1bd1aa49d..e53a3f89e863 100644

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

drivers/soc/fsl/qbman/qman.c +1 -1
index a1b9be1d105a..fde4edd83c14 100644

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

drivers/target/iscsi/iscsi_target.c +1 -2
index 518fac4864cf..a237f1cf9bd6 100644

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

drivers/thunderbolt/retimer.c +2 -2
index 620bcf586ee2..c44fad2b9fbb 100644

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

drivers/usb/usbip/stub_dev.c +9 -2
index 8f1de1fbbeed..d8d3892e5a69 100644

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

drivers/usb/usbip/usbip_common.h +3 -0
index 8be857a4fa13..a7e6ce96f62c 100644

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

drivers/usb/usbip/usbip_event.c +2 -0
index 5d88917c9631..086ca76dd053 100644

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

drivers/usb/usbip/vhci_hcd.c +1 -0
index a20a8380ca0c..4ba6bcdaa8e9 100644

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

drivers/usb/usbip/vhci_sysfs.c +25 -5
index e64ea314930b..ebc7be1d9820 100644

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

drivers/usb/usbip/vudc_dev.c +1 -0
index c8eeabdd9b56..2bc428f2e261 100644

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

drivers/usb/usbip/vudc_sysfs.c +5 -0
index 7383a543c6d1..f7633ee655a1 100644

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

drivers/vdpa/mlx5/core/mlx5_vdpa.h +4 -0
index 08f742fd2409..b6cc53ba980c 100644

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

drivers/vdpa/mlx5/net/mlx5_vnet.c +24 -16
index 25fd971be63f..ac6be2d722bb 100644

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

drivers/xen/events/events_base.c +6 -6
index d9148609bd09..1664edcdffd1 100644

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

fs/cifs/Kconfig +1 -2
index fe03cbdae959..bf52e9326ebe 100644

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

fs/cifs/Makefile +3 -2
index 5213b20843b5..3ee3b7de4ded 100644

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

fs/cifs/cifsfs.c +2 -1
index 8a6a1772590b..8fc877fb369e 100644

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

fs/cifs/connect.c +16 -1
index 70d0f0388af4..2b72b8893aff 100644

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

fs/direct-io.c +3 -2
index d53fa92a1ab6..c64d4eb38995 100644

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

fs/file.c +17 -4
index f3a4bac2cbe9..f633348029a5 100644

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

fs/hostfs/hostfs_kern.c +3 -4
index aea35459d390..07467ca0f71d 100644

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

fs/namei.c +4 -4
index dd85e12ac85a..b7c0dcc25bd4 100644

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

fs/ocfs2/aops.c +1 -10
index 3bfb4147895a..ad20403b383f 100644

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

fs/ocfs2/file.c +6 -2
index 85979e2214b3..8880071ee4ee 100644

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

include/linux/avf/virtchnl.h +0 -2
index 40bad71865ea..532bcbfc4716 100644

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

include/linux/mlx5/mlx5_ifc.h +6 -4
index 442c0160caab..6370ba10f1fd 100644

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

include/linux/skmsg.h +6 -1
index fec0c5ac1c4f..82126d529798 100644

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

include/linux/virtio_net.h +2 -0
index 6b5fcfa1e555..98775d7fa696 100644

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

include/net/act_api.h +4 -8
index 2bf3092ae7ec..086b291e9530 100644

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

include/net/netns/xfrm.h +3 -1
index 59f45b1e9dac..b59d73d529ba 100644

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

include/net/red.h +2 -2
index 9e6647c4ccd1..cc9f6b0d7f1e 100644

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

include/net/sock.h +9 -0
index 129d200bccb4..6f4408410462 100644

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

include/net/xfrm.h +2 -2
index b2a06f10b62c..c58a6d4eb610 100644

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

include/uapi/linux/can.h +1 -1
index f75238ac6dce..c7535352fef6 100644

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

include/uapi/linux/rfkill.h +68 -12

80 lines not on this page · raw message

kernel/bpf/inode.c +1 -1
index dd4b7fd60ee7..6b14b4c4068c 100644

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

kernel/bpf/stackmap.c +10 -2
index bfafbf115bf3..e274a3319431 100644

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

kernel/bpf/verifier.c +5 -0
index 5b233e911c2c..36b81975d9cd 100644

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

kernel/gcov/clang.c +19 -10
index 8743150db2ac..c466c7fbdece 100644

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

kernel/locking/lockdep.c +1 -1
index 780012eb2f3f..eead7efbe7e5 100644

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

kernel/workqueue.c +1 -1
index 894bb885b40b..6326a872510b 100644

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

mm/percpu-internal.h +1 -1
index 18b768ac7dca..095d7eaa0db4 100644

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

mm/percpu-stats.c +7 -2
index c8400a2adbc2..f6026dbcdf6b 100644

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

mm/percpu.c +7 -7
index ad7a37ee74ef..e12ab708fe15 100644

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

net/batman-adv/translation-table.c +2 -0
index cd09916f97fe..0e32e31872e2 100644

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

net/can/bcm.c +6 -4
index 0e5c37be4a2b..909b9e684e04 100644

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

net/can/isotp.c +7 -4
index 15ea1234d457..9f94ad3caee9 100644

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

net/can/raw.c +8 -6
index 6ec8aa1d0da4..95113b0898b2 100644

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

net/core/skmsg.c +5 -7
index 25cdbb20f3a0..923a1d0f84ca 100644

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

net/core/sock.c +3 -9
index bbcd4b97eddd..01a680c5c7ae 100644

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

net/core/xdp.c +2 -1
index 3a8c9ab4ecbe..a86bc3660729 100644

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

net/dsa/dsa2.c +7 -1
index a04fd637b4cd..3ada338d7e08 100644

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

net/ethtool/eee.c +2 -2
index 901b7de941ab..e10bfcc07853 100644

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

net/hsr/hsr_device.c +1 -0
index ab953a1a0d6c..6f4c34b6a5d6 100644

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

net/hsr/hsr_forward.c +0 -6
index cadfccd7876e..b4e06ae08834 100644

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

net/ieee802154/nl-mac.c +4 -3
index 9c640d670ffe..0c1b0770c59e 100644

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

net/ieee802154/nl802154.c +19 -4
index 7c5a1aa5adb4..d1b6a9665b17 100644

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

net/ipv4/ah4.c +1 -1
index d99e1be94019..36ed85bf2ad5 100644

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

net/ipv4/esp4.c +1 -1
index a3271ec3e162..4b834bbf95e0 100644

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

net/ipv4/esp4_offload.c +14 -3
index 5bda5aeda579..5aa7344dbec7 100644

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

net/ipv4/udp.c +4 -0
index 69ea76578abb..9d2a1a247cec 100644

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

net/ipv6/ah6.c +1 -1
index 440080da805b..080ee7f44c64 100644

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

net/ipv6/esp6.c +1 -1
index 2b804fcebcc6..4071cb7c7a15 100644

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

net/ipv6/esp6_offload.c +14 -3
index 1ca516fb30e1..4af56affaafd 100644

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

net/ipv6/raw.c +1 -1
index 1f56d9aae589..bf3646b57c68 100644

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

net/ipv6/route.c +5 -3
index 0bbfaa55e3c8..4bba6d21ffa0 100644

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

net/mac80211/mlme.c +4 -1
index 9db648a91a4f..b7155b078b19 100644

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

net/mac80211/tx.c +1 -1
index ebb3228ce971..64fae4f645f5 100644

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

net/mac802154/llsec.c +1 -1
index 585d33144c33..55550ead2ced 100644

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

net/mptcp/protocol.c +47 -53

100 lines not on this page · raw message

net/ncsi/ncsi-manage.c +13 -7
index a9cb355324d1..ffff8da707b8 100644

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

net/nfc/llcp_sock.c +10 -0
index d257ed3b732a..a3b46f888803 100644

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

net/openvswitch/conntrack.c +4 -4
index 5eddfe7bd391..2316efd6ace8 100644

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

net/qrtr/qrtr.c +4 -1
index dfc820ee553a..1e4fb568fa84 100644

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

net/rds/message.c +2 -1
index 071a261fdaab..799034e0f513 100644

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

net/rfkill/core.c +4 -3
index 68d6ef9e59fc..ac15a944573f 100644

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

net/sched/act_api.c +31 -17

48 lines not on this page · raw message

net/sched/cls_api.c +8 -8
index e37556cc37ab..b3a2cba130a1 100644

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

net/sched/sch_teql.c +3 -0
index 2f1f0a378408..6af6b95bdb67 100644

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

net/sctp/ipv6.c +3 -4
index c3e89c776e66..bd08807c9e44 100644

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

net/tipc/crypto.c +2 -1
index f4fca8f7f63f..97710ce36047 100644

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

net/tipc/socket.c +1 -1
index cebcc104dc70..022999e0202d 100644

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

net/wireless/nl80211.c +7 -3
index 775d0c4d86c3..1f2dff186cb6 100644

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

net/wireless/scan.c +8 -6
index 1b7fec3b53cd..1f1241443a1c 100644

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

net/wireless/sme.c +1 -1
index 38df713f2e2e..060e365c8259 100644

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

net/xfrm/xfrm_compat.c +9 -3
index d8e8a11ca845..a20aec9d7393 100644

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

net/xfrm/xfrm_device.c +0 -2
index edf11893dbe8..6d6917b68856 100644

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

net/xfrm/xfrm_interface.c +3 -0
index 697cdcfbb5e1..3f42c2f15ba4 100644

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

net/xfrm/xfrm_output.c +5 -5
index a7ab19353313..b81ca117dac7 100644

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

net/xfrm/xfrm_state.c +5 -5
index d01ca1a18418..ffd315cff984 100644

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

security/selinux/ss/avtab.c +33 -68

101 lines not on this page · raw message

security/selinux/ss/avtab.h +1 -1
index 4c4445ca9118..f2eeb36265d1 100644

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

security/selinux/ss/conditional.c +6 -6
index 0b32f3ab025e..1ef74c085f2b 100644

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

security/selinux/ss/services.c +120 -37

157 lines not on this page · raw message

security/selinux/ss/sidtab.c +21 -0
index 5ee190bd30f5..656d50b09f76 100644

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

security/selinux/ss/sidtab.h +4 -0
index 80c744d07ad6..4eff0e49dcb2 100644

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

sound/drivers/aloop.c +8 -3
index 702f91b9c60f..12caa87fe74e 100644

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

sound/pci/hda/patch_conexant.c +1 -0
index a980a4eda51c..7aa9062f4f83 100644

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

sound/pci/hda/patch_realtek.c +16 -0
index 58946d069ee5..a7544b77d3f7 100644

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

sound/soc/codecs/wm8960.c +7 -1
index 660ec46eecf2..ceaf3bbb18e6 100644

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

sound/soc/intel/atom/sst-mfld-platform-pcm.c +3 -3
index 9e9b05883557..aa5dd590ddd5 100644

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

sound/soc/sof/intel/hda-dsp.c +11 -4
index 012bac41fee0..ea8e7ad8684d 100644

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

sound/soc/sunxi/sun4i-codec.c +5 -0
index 6c13cc84b3fb..2173991c13db 100644

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

tools/lib/bpf/ringbuf.c +1 -1
index 8caaafe7e312..e7a8d847161f 100644

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

tools/lib/bpf/xsk.c +37 -20

57 lines not on this page · raw message

tools/perf/builtin-inject.c +1 -1
index 43937f4b399a..c0be51b95713 100644

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

tools/perf/util/block-info.c +3 -3
index 423ec69bda6c..5ecd4f401f32 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.