Skip to contentSkip to conversation

Linux 5.8.15

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Oct 14, 2020 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 5.8.15 kernel.

All users of the 5.8 kernel series must upgrade.

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

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

 Makefile                                                |    2 
 arch/arm64/crypto/aes-neonbs-core.S                     |    4 
 arch/riscv/mm/init.c                                    |    1 
 block/partitions/ibm.c                                  |    7 
 block/scsi_ioctl.c                                      |    1 
 drivers/gpio/gpiolib.c                                  |    2 
 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c                 |    1 
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c  |    2 
 drivers/gpu/drm/amd/powerplay/hwmgr/smu10_hwmgr.c       |   10 
 drivers/gpu/drm/nouveau/nouveau_mem.c                   |    2 
 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c       |    1 
 drivers/i2c/busses/i2c-meson.c                          |   52 -
 drivers/i2c/busses/i2c-owl.c                            |    6 
 drivers/input/misc/ati_remote2.c                        |    4 
 drivers/iommu/intel/iommu.c                             |    4 
 drivers/mmc/core/queue.c                                |    2 
 drivers/net/bonding/bond_main.c                         |    1 
 drivers/net/dsa/ocelot/felix_vsc9959.c                  |   35 
 drivers/net/ethernet/cavium/octeon/octeon_mgmt.c        |    6 
 drivers/net/ethernet/huawei/hinic/Kconfig               |    1 
 drivers/net/ethernet/huawei/hinic/hinic_hw_api_cmd.c    |   27 
 drivers/net/ethernet/huawei/hinic/hinic_hw_api_cmd.h    |    4 
 drivers/net/ethernet/huawei/hinic/hinic_hw_cmdq.c       |    2 
 drivers/net/ethernet/huawei/hinic/hinic_hw_cmdq.h       |    2 
 drivers/net/ethernet/huawei/hinic/hinic_hw_dev.c        |   12 
 drivers/net/ethernet/huawei/hinic/hinic_hw_eqs.c        |   39 
 drivers/net/ethernet/huawei/hinic/hinic_hw_eqs.h        |    6 
 drivers/net/ethernet/huawei/hinic/hinic_hw_if.c         |   23 
 drivers/net/ethernet/huawei/hinic/hinic_hw_if.h         |   10 
 drivers/net/ethernet/huawei/hinic/hinic_hw_mbox.c       |    2 
 drivers/net/ethernet/huawei/hinic/hinic_hw_mgmt.c       |    1 
 drivers/net/ethernet/huawei/hinic/hinic_port.c          |   68 -
 drivers/net/ethernet/huawei/hinic/hinic_sriov.c         |   18 
 drivers/net/ethernet/intel/iavf/iavf_main.c             |   49 -
 drivers/net/ethernet/intel/ice/ice_lib.c                |   20 
 drivers/net/ethernet/intel/ice/ice_lib.h                |    6 
 drivers/net/ethernet/intel/ice/ice_main.c               |   13 
 drivers/net/ethernet/marvell/mvneta.c                   |   13 
 drivers/net/ethernet/marvell/octeontx2/af/mbox.c        |   12 
 drivers/net/ethernet/marvell/octeontx2/af/mbox.h        |    1 
 drivers/net/ethernet/marvell/octeontx2/af/rvu.h         |    3 
 drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c     |    5 
 drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c     |   26 
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c    |   16 
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c  |    1 
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c    |    4 
 drivers/net/ethernet/mellanox/mlx5/core/cmd.c           |  181 +++-
 drivers/net/ethernet/mellanox/mlx5/core/en.h            |    8 
 drivers/net/ethernet/mellanox/mlx5/core/en/port.c       |    3 
 drivers/net/ethernet/mellanox/mlx5/core/en/rep/neigh.c  |   81 +-
 drivers/net/ethernet/mellanox/mlx5/core/en_fs.c         |   14 
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c       |   74 +
 drivers/net/ethernet/mellanox/mlx5/core/en_rep.h        |    6 
 drivers/net/ethernet/mellanox/mlx5/core/eq.c            |   42 +
 drivers/net/ethernet/mellanox/mlx5/core/lib/eq.h        |    2 
 drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c       |    2 
 drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c |    3 
 drivers/net/ethernet/mscc/Makefile                      |    2 
 drivers/net/ethernet/mscc/ocelot.c                      |   43 -
 drivers/net/ethernet/mscc/ocelot_board.c                |  626 ---------------
 drivers/net/ethernet/mscc/ocelot_vsc7514.c              |  639 ++++++++++++++++
 drivers/net/ethernet/realtek/r8169_main.c               |   11 
 drivers/net/ethernet/renesas/ravb_main.c                |  110 +-
 drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c       |    1 
 drivers/net/ethernet/stmicro/stmmac/stmmac.h            |    2 
 drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c    |   27 
 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c       |   23 
 drivers/net/macsec.c                                    |    4 
 drivers/net/phy/Kconfig                                 |    1 
 drivers/net/phy/realtek.c                               |   31 
 drivers/net/team/team.c                                 |    3 
 drivers/net/usb/ax88179_178a.c                          |    1 
 drivers/net/usb/rtl8150.c                               |   16 
 drivers/net/virtio_net.c                                |    8 
 drivers/net/vmxnet3/vmxnet3_drv.c                       |    5 
 drivers/net/vmxnet3/vmxnet3_ethtool.c                   |   28 
 drivers/net/vmxnet3/vmxnet3_int.h                       |    4 
 drivers/nvme/host/core.c                                |    4 
 drivers/nvme/host/tcp.c                                 |    7 
 drivers/platform/olpc/olpc-ec.c                         |    4 
 drivers/platform/x86/Kconfig                            |    2 
 drivers/platform/x86/asus-nb-wmi.c                      |   32 
 drivers/platform/x86/asus-wmi.c                         |   16 
 drivers/platform/x86/asus-wmi.h                         |    1 
 drivers/platform/x86/intel-vbtn.c                       |   64 +
 drivers/platform/x86/thinkpad_acpi.c                    |    6 
 drivers/tty/vt/selection.c                              |    2 
 drivers/vhost/vdpa.c                                    |  122 +--
 drivers/vhost/vhost.c                                   |   12 
 drivers/video/console/newport_con.c                     |    7 
 drivers/video/fbdev/core/fbcon.c                        |   12 
 drivers/video/fbdev/core/fbcon.h                        |    7 
 drivers/video/fbdev/core/fbcon_rotate.c                 |    1 
 drivers/video/fbdev/core/tileblit.c                     |    1 
 fs/afs/inode.c                                          |   47 -
 fs/afs/internal.h                                       |    1 
 fs/afs/write.c                                          |   11 
 fs/btrfs/dev-replace.c                                  |    6 
 fs/btrfs/volumes.c                                      |   13 
 fs/btrfs/volumes.h                                      |    3 
 fs/cifs/smb2ops.c                                       |    2 
 fs/exfat/cache.c                                        |   11 
 fs/exfat/exfat_fs.h                                     |    3 
 fs/exfat/inode.c                                        |    2 
 fs/exfat/super.c                                        |    5 
 fs/io_uring.c                                           |   19 
 fs/pipe.c                                               |   11 
 fs/splice.c                                             |   20 
 include/asm-generic/vmlinux.lds.h                       |    2 
 include/linux/font.h                                    |   13 
 include/linux/khugepaged.h                              |    5 
 include/linux/mlx5/driver.h                             |    2 
 include/linux/net.h                                     |   16 
 include/linux/pagemap.h                                 |    3 
 include/linux/watch_queue.h                             |    6 
 include/net/act_api.h                                   |    2 
 include/net/netlink.h                                   |    3 
 include/net/xfrm.h                                      |   16 
 include/soc/mscc/ocelot.h                               |    1 
 kernel/bpf/sysfs_btf.c                                  |    6 
 kernel/bpf/verifier.c                                   |    8 
 kernel/events/core.c                                    |    5 
 kernel/umh.c                                            |    9 
 lib/fonts/font_10x18.c                                  |    9 
 lib/fonts/font_6x10.c                                   |    9 
 lib/fonts/font_6x11.c                                   |    9 
 lib/fonts/font_7x14.c                                   |    9 
 lib/fonts/font_8x16.c                                   |    9 
 lib/fonts/font_8x8.c                                    |    9 
 lib/fonts/font_acorn_8x8.c                              |    9 
 lib/fonts/font_mini_4x6.c                               |    8 
 lib/fonts/font_pearl_8x8.c                              |    9 
 lib/fonts/font_sun12x22.c                               |    9 
 lib/fonts/font_sun8x16.c                                |    7 
 lib/fonts/font_ter16x32.c                               |    9 
 mm/khugepaged.c                                         |   25 
 mm/page_alloc.c                                         |    3 
 net/bridge/br_fdb.c                                     |    2 
 net/core/skbuff.c                                       |    4 
 net/ipv4/tcp.c                                          |    3 
 net/ipv4/tcp_ipv4.c                                     |    6 
 net/netlink/genetlink.c                                 |    9 
 net/netlink/policy.c                                    |   24 
 net/openvswitch/conntrack.c                             |   22 
 net/qrtr/ns.c                                           |   34 
 net/rxrpc/conn_event.c                                  |    6 
 net/rxrpc/key.c                                         |   20 
 net/sched/act_api.c                                     |   52 -
 net/sched/act_bpf.c                                     |    4 
 net/sched/act_connmark.c                                |    1 
 net/sched/act_csum.c                                    |    3 
 net/sched/act_ct.c                                      |    2 
 net/sched/act_ctinfo.c                                  |    3 
 net/sched/act_gact.c                                    |    2 
 net/sched/act_gate.c                                    |    3 
 net/sched/act_ife.c                                     |    3 
 net/sched/act_ipt.c                                     |    2 
 net/sched/act_mirred.c                                  |    2 
 net/sched/act_mpls.c                                    |    2 
 net/sched/act_nat.c                                     |    3 
 net/sched/act_pedit.c                                   |    2 
 net/sched/act_police.c                                  |    2 
 net/sched/act_sample.c                                  |    2 
 net/sched/act_simple.c                                  |    2 
 net/sched/act_skbedit.c                                 |    2 
 net/sched/act_skbmod.c                                  |    2 
 net/sched/act_tunnel_key.c                              |    3 
 net/sched/act_vlan.c                                    |    2 
 net/sctp/auth.c                                         |    1 
 net/tls/tls_sw.c                                        |    9 
 net/wireless/nl80211.c                                  |    3 
 net/xdp/xsk.c                                           |   17 
 net/xfrm/espintcp.c                                     |    6 
 net/xfrm/xfrm_interface.c                               |    2 
 net/xfrm/xfrm_state.c                                   |   42 -
 175 files changed, 2142 insertions(+), 1379 deletions(-)

Aaron Ma (1):
platform/x86: thinkpad_acpi: re-initialize ACPI buffer size when reuse

Alexey Kardashevskiy (1):
tty/vt: Do not warn when huge selection requested

Anant Thazhemadam (3):
net: wireless: nl80211: fix out-of-bounds access in nl80211_del_key()
net: team: fix memory leak in __team_options_register
net: usb: rtl8150: set random MAC address when set_ethernet_addr() fails

Andy Shevchenko (1):

      gpiolib: Disable compat ->read() code in UML case

Antony Antony (4):
xfrm: clone XFRMA_SET_MARK in xfrm_do_migrate
xfrm: clone XFRMA_REPLAY_ESN_VAL in xfrm_do_migrate
xfrm: clone XFRMA_SEC_CTX in xfrm_do_migrate
xfrm: clone whole liftime_cur structure in xfrm_do_migrate

Atish Patra (1):
RISC-V: Make sure memblock reserves the memory containing DT

Aya Levin (5):
net/mlx5e: Add resiliency in Striding RQ mode for packets larger than MTU net/mlx5e: Fix return status when setting unsupported FEC mode net/mlx5e: Fix VLAN cleanup flow
net/mlx5e: Fix VLAN create flow
net/mlx5e: Fix driver's declaration to support GRE offload

Chaitanya Kulkarni (1):
nvme-core: put ctrl ref when module ref get fail

Christoph Hellwig (1):
partitions/ibm: fix non-DASD devices

Coly Li (4):
net: introduce helper sendpage_ok() in include/linux/net.h
tcp: use sendpage_ok() to detect misused .sendpage
nvme-tcp: check page by sendpage_ok() before calling kernel_sendpage()
mmc: core: don't set limits.discard_granularity as 0

Cong Wang (2):
net_sched: defer tcf_idr_insert() in tcf_action_init_1()
net_sched: commit action insertions together

Cristian Ciocaltea (1):
i2c: owl: Clear NACK and BUS error bits

Daniel Borkmann (1):
bpf: Fix scalar32_min_max_or bounds tracking

David Howells (5):
rxrpc: Downgrade the BUG() for unsupported token type in rxrpc_read()
rxrpc: Fix some missing _bh annotations on locking conn->state_lock
rxrpc: The server keyring isn't network-namespaced
rxrpc: Fix server keyring leak
afs: Fix deadlock between writeback and truncate

Dinghao Liu (1):
Platform: OLPC: Fix memleak in olpc_ec_probe

Dumitru Ceara (1):
openvswitch: handle DNAT tuple collision

Eran Ben Elisha (4):
net/mlx5: Fix a race when moving command interface to polling mode net/mlx5: Avoid possible free of command entry while timeout comp handler net/mlx5: poll cmd EQ in case of command timeout
net/mlx5: Add retry mechanism to the command entry index allocation

Eric Dumazet (5):
macsec: avoid use-after-free in macsec_handle_frame()
sctp: fix sctp_auth_init_hmacs() error path
team: set dev->needed_headroom in team_setup_by_port()
bonding: set dev->needed_headroom in bond_setup_by_slave()
tcp: fix receive window update in tcp_add_backlog()

Flora Cui (1):
drm/amd/display: fix return value check for hdcp_work

Geert Uytterhoeven (1):
Revert "ravb: Fixed to be able to unload modules"

Geetha sowjanya (1):
octeontx2-pf: Fix TCP/UDP checksum offload for IPv6 frames

Greg Kroah-Hartman (1):

      Linux 5.8.15

Greg Kurz (2):
vhost: Don't call access_ok() when using IOTLB
vhost: Use vhost_get_used_size() in vhost_vring_set_addr()

Guillaume Nault (1):

      net/core: check length before updating Ethertype in skb_mpls_{push,pop}

Hans de Goede (3):
platform/x86: intel-vbtn: Fix SW_TABLET_MODE always reporting 1 on the HP Pavilion 11 x360 platform/x86: asus-wmi: Fix SW_TABLET_MODE always reporting 1 on many different models platform/x86: intel-vbtn: Switch to an allow-list for SW_TABLET_MODE reporting

Hariprasad Kelam (2):
octeontx2-pf: Fix the device state on error
octeontx2-pf: Fix synchnorization issue in mbox

Heiner Kallweit (2):
r8169: consider that PHY reset may still be in progress after applying firmware
r8169: fix RTL8168f/RTL8411 EPHY config

Herbert Xu (1):
xfrm: Use correct address family in xfrm_state_find

Hugh Dickins (1):

      mm/khugepaged: fix filemap page_to_pgoff(page) != offset

Ido Schimmel (1):
mlxsw: spectrum_acl: Fix mlxsw_sp_acl_tcam_group_add()'s error path

Ivan Khoronzhuk (1):
net: ethernet: cavium: octeon_mgmt: use phy_start and phy_stop

Jacob Keller (2):
ice: fix memory leak if register_netdev_fails
ice: fix memory leak in ice_vsi_setup

Jens Axboe (1):

      io_uring: fix potential ABBA deadlock in ->show_fdinfo()

Jeremy Linton (1):
crypto: arm64: Use x16 with indirect branch to bti_c

Jerome Brunet (2):
i2c: meson: fix clock setting overwrite
i2c: meson: keep peripheral clock enabled

Johannes Berg (1):
netlink: fix policy dump leak

Josef Bacik (2):
btrfs: move btrfs_scratch_superblocks into btrfs_dev_replace_finishing
btrfs: move btrfs_rm_dev_replace_free_srcdev outside of all locks

Kajol Jain (1):
perf: Fix task_function_call() error handling

Karol Herbst (2):
drm/nouveau/device: return error for unknown chipsets drm/nouveau/mem: guard against NULL pointer access in mem_del

Linus Torvalds (2):
usermodehelper: reset umask to default before executing user process
splice: teach splice pipe reading about empty pipe buffers

Lu Baolu (1):
iommu/vt-d: Fix lockdep splat in iommu_flush_dev_iotlb()

Luo bin (2):
hinic: add log in exception handling processes
hinic: fix wrong return value of mac-set cmd

Magnus Karlsson (1):
xsk: Do not discard packet when NETDEV_TX_BUSY

Manivannan Sadhasivam (1):
net: qrtr: ns: Protect radix_tree_deref_slot() using rcu read locks

Maor Gottlieb (1):
net/mlx5: Fix request_irqs error flow

Marc Dionne (1):
rxrpc: Fix rxkad token xdr encoding

Maxim Kochetkov (1):
net: mscc: ocelot: extend watermark encoding function

Minchan Kim (1):
mm: validate inode in mapping_set_error()

Namjae Jeon (1):
exfat: fix use of uninitialized spinlock on error path

Necip Fazil Yildiran (2):
platform/x86: fix kconfig dependency warning for LG_LAPTOP platform/x86: fix kconfig dependency warning for FUJITSU_LAPTOP

Nicolas Belin (1):
i2c: meson: fixup rate calculation with filter delay

Nikolay Aleksandrov (1):
net: bridge: fdb: don't flush ext_learn entries

Peilin Ye (4):
fbdev, newport_con: Move FONT_EXTRA_WORDS macros into linux/font.h
Fonts: Support FONT_EXTRA_WORDS macros for built-in fonts
fbcon: Fix global-out-of-bounds read in fbcon_get_font() block/scsi-ioctl: Fix kernel-infoleak in scsi_put_cdrom_generic_arg()

Philip Yang (1):

      drm/amdgpu: prevent double kfree ttm->sg

Qian Cai (1):
pipe: Fix memory leaks in create_pipe_files()

Randy Dunlap (2):
mdio: fix mdio-thunder.c dependency & build error
net: hinic: fix DEVLINK build errors

Rohit Maheshwari (1):
net/tls: race causes kernel panic

Ronak Doshi (1):
vmxnet3: fix cksum offload issues for non-udp tunnels

Sabrina Dubroca (2):
xfrmi: drop ignore_df check before updating pmtu
espintcp: restore IP CB before handing the packet to xfrm

Si-Wei Liu (2):
vhost-vdpa: fix vhost_vdpa_map() on error condition
vhost-vdpa: fix page pinning leakage in error path

Subbaraya Sundeep (1):
octeontx2-af: Fix enable/disable of default NPC entries

Sudheesh Mavila (1):
drm/amd/pm: Removed fixed clock in auto mode DPM

Sylwester Dziedziuch (1):
iavf: Fix incorrect adapter get in iavf_resume

Tom Rix (2):
platform/x86: thinkpad_acpi: initialize tp_nvram_state variable
net: mvneta: fix double free of txq->buf

Tonghao Zhang (1):
virtio-net: don't disable guest csum when disable LRO

Tony Ambardar (2):
bpf: Fix sysfs export of empty BTF section
bpf: Prevent .BTF section elimination

Vaibhav Gupta (1):
iavf: use generic power management

Vijay Balakrishna (1):
mm: khugepaged: recalculate min_free_kbytes after memory hotplug as expected by khugepaged

Vineetha G. Jaya Kumaran (1):
net: stmmac: Modify configuration method of EEE timers

Vlad Buslov (1):

      net/mlx5e: Fix race condition on nhe->n pointer in neigh update

Vladimir Oltean (3):
net: mscc: ocelot: rename ocelot_board.c to ocelot_vsc7514.c
net: mscc: ocelot: split writes to pause frame enable bit and to thresholds
net: mscc: ocelot: divide watermark value by 60 when writing to SYS_ATOP

Vladimir Zapolskiy (1):
cifs: Fix incomplete memory allocation on setxattr path

Voon Weifeng (1):
net: stmmac: removed enabling eee in EEE set callback

Wilken Gottwalt (1):
net: usb: ax88179_178a: fix missing stop entry in driver_info

Willy Liu (1):
net: phy: realtek: fix rtl8211e rx/tx delay config

Wong Vee Khee (1):
net: stmmac: Fix clock handling on remove path

Xiaoliang Yang (1):
net: dsa: felix: convert TAS link speed based on phylink speed

Xiongfeng Wang (1):
Input: ati_remote2 - add missing newlines when printing module parameters

author maintainer
#1 lore raw
Makefile +1 -1
index 33ceda527e5e..6c787cd1cb51 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 8
-SUBLEVEL = 14
+SUBLEVEL = 15
 EXTRAVERSION =
 NAME = Kleptomaniac Octopus
 
arch/arm64/crypto/aes-neonbs-core.S +2 -2
index b357164379f6..63a52ad9a75c 100644
@@ -788,7 +788,7 @@ SYM_FUNC_START_LOCAL(__xts_crypt8)
 
 0:	mov		bskey, x21
 	mov		rounds, x22
-	br		x7
+	br		x16
 SYM_FUNC_END(__xts_crypt8)
 
 	.macro		__xts_crypt, do8, o0, o1, o2, o3, o4, o5, o6, o7
@@ -806,7 +806,7 @@ SYM_FUNC_END(__xts_crypt8)
 	uzp1		v30.4s, v30.4s, v25.4s
 	ld1		{v25.16b}, [x24]
 
-99:	adr		x7, \do8
+99:	adr		x16, \do8
 	bl		__xts_crypt8
 
 	ldp		q16, q17, [sp, #.Lframe_local_offset]
arch/riscv/mm/init.c +1 -0
index e229d95f470b..7c1dadf14f56 100644
@@ -515,6 +515,7 @@ asmlinkage void __init setup_vm(uintptr_t dtb_pa)
 #else
 	dtb_early_va = (void *)dtb_pa;
 #endif
+	dtb_early_pa = dtb_pa;
 }
 
 static inline void setup_vm_final(void)
block/partitions/ibm.c +3 -4
index d6e18df9c53c..4b044e620d35 100644
@@ -305,8 +305,6 @@ int ibm_partition(struct parsed_partitions *state)
 	if (!disk->fops->getgeo)
 		goto out_exit;
 	fn = symbol_get(dasd_biodasdinfo);
-	if (!fn)
-		goto out_exit;
 	blocksize = bdev_logical_block_size(bdev);
 	if (blocksize <= 0)
 		goto out_symbol;
@@ -326,7 +324,7 @@ int ibm_partition(struct parsed_partitions *state)
 	geo->start = get_start_sect(bdev);
 	if (disk->fops->getgeo(bdev, geo))
 		goto out_freeall;
-	if (fn(disk, info)) {
+	if (!fn || fn(disk, info)) {
 		kfree(info);
 		info = NULL;
 	}
@@ -370,7 +368,8 @@ int ibm_partition(struct parsed_partitions *state)
 out_nogeo:
 	kfree(info);
 out_symbol:
-	symbol_put(dasd_biodasdinfo);
+	if (fn)
+		symbol_put(dasd_biodasdinfo);
 out_exit:
 	return res;
 }
block/scsi_ioctl.c +1 -0
index ef722f04f88a..72108404718f 100644
@@ -651,6 +651,7 @@ struct compat_cdrom_generic_command {
 	compat_int_t	stat;
 	compat_caddr_t	sense;
 	unsigned char	data_direction;
+	unsigned char	pad[3];
 	compat_int_t	quiet;
 	compat_int_t	timeout;
 	compat_caddr_t	reserved[1];
drivers/gpio/gpiolib.c +1 -1
index 6e813b13d698..02154d8b1c0d 100644
@@ -838,7 +838,7 @@ static __poll_t lineevent_poll(struct file *filep,
 
 static ssize_t lineevent_get_size(void)
 {
-#ifdef __x86_64__
+#if defined(CONFIG_X86_64) && !defined(CONFIG_UML)
 	/* i386 has no padding after 'id' */
 	if (in_ia32_syscall()) {
 		struct compat_gpioeevent_data {
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +1 -0
index e59c01a83dac..9a3267f06376 100644
@@ -1052,6 +1052,7 @@ static int amdgpu_ttm_tt_pin_userptr(struct ttm_tt *ttm)
 
 release_sg:
 	kfree(ttm->sg);
+	ttm->sg = NULL;
 	return r;
 }
 
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c +1 -1
index 949d10ef8304..6dd1f3f8d990 100644
@@ -568,7 +568,7 @@ struct hdcp_workqueue *hdcp_create_workqueue(struct amdgpu_device *adev, struct
 	int i = 0;
 
 	hdcp_work = kcalloc(max_caps, sizeof(*hdcp_work), GFP_KERNEL);
-	if (hdcp_work == NULL)
+	if (ZERO_OR_NULL_PTR(hdcp_work))
 		return NULL;
 
 	hdcp_work->srm = kcalloc(PSP_HDCP_SRM_FIRST_GEN_MAX_SIZE, sizeof(*hdcp_work->srm), GFP_KERNEL);
drivers/gpu/drm/amd/powerplay/hwmgr/smu10_hwmgr.c +6 -4
index 9ee8cf8267c8..43f7adff6cb7 100644
@@ -563,6 +563,8 @@ static int smu10_dpm_force_dpm_level(struct pp_hwmgr *hwmgr,
 	struct smu10_hwmgr *data = hwmgr->backend;
 	uint32_t min_sclk = hwmgr->display_config->min_core_set_clock;
 	uint32_t min_mclk = hwmgr->display_config->min_mem_set_clock/100;
+	uint32_t index_fclk = data->clock_vol_info.vdd_dep_on_fclk->count - 1;
+	uint32_t index_socclk = data->clock_vol_info.vdd_dep_on_socclk->count - 1;
 
 	if (hwmgr->smu_version < 0x1E3700) {
 		pr_info("smu firmware version too old, can not set dpm level\n");
@@ -676,13 +678,13 @@ static int smu10_dpm_force_dpm_level(struct pp_hwmgr *hwmgr,
 		smum_send_msg_to_smc_with_parameter(hwmgr,
 						PPSMC_MSG_SetHardMinFclkByFreq,
 						hwmgr->display_config->num_display > 3 ?
-						SMU10_UMD_PSTATE_PEAK_FCLK :
+						data->clock_vol_info.vdd_dep_on_fclk->entries[0].clk :
 						min_mclk,
 						NULL);
 
 		smum_send_msg_to_smc_with_parameter(hwmgr,
 						PPSMC_MSG_SetHardMinSocclkByFreq,
-						SMU10_UMD_PSTATE_MIN_SOCCLK,
+						data->clock_vol_info.vdd_dep_on_socclk->entries[0].clk,
 						NULL);
 		smum_send_msg_to_smc_with_parameter(hwmgr,
 						PPSMC_MSG_SetHardMinVcn,
@@ -695,11 +697,11 @@ static int smu10_dpm_force_dpm_level(struct pp_hwmgr *hwmgr,
 						NULL);
 		smum_send_msg_to_smc_with_parameter(hwmgr,
 						PPSMC_MSG_SetSoftMaxFclkByFreq,
-						SMU10_UMD_PSTATE_PEAK_FCLK,
+						data->clock_vol_info.vdd_dep_on_fclk->entries[index_fclk].clk,
 						NULL);
 		smum_send_msg_to_smc_with_parameter(hwmgr,
 						PPSMC_MSG_SetSoftMaxSocclkByFreq,
-						SMU10_UMD_PSTATE_PEAK_SOCCLK,
+						data->clock_vol_info.vdd_dep_on_socclk->entries[index_socclk].clk,
 						NULL);
 		smum_send_msg_to_smc_with_parameter(hwmgr,
 						PPSMC_MSG_SetSoftMaxVcn,
drivers/gpu/drm/nouveau/nouveau_mem.c +2 -0
index c002f8968507..9682f30ab6f6 100644
@@ -176,6 +176,8 @@ void
 nouveau_mem_del(struct ttm_mem_reg *reg)
 {
 	struct nouveau_mem *mem = nouveau_mem(reg);
+	if (!mem)
+		return;
 	nouveau_mem_fini(mem);
 	kfree(reg->mm_node);
 	reg->mm_node = NULL;
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c +1 -0
index 5b90c2a1bf3d..7c2e5db840be 100644
@@ -3149,6 +3149,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
 		case 0x168: device->chip = &nv168_chipset; break;
 		default:
 			nvdev_error(device, "unknown chipset (%08x)\n", boot0);
+			ret = -ENODEV;
 			goto done;
 		}
 
drivers/i2c/busses/i2c-meson.c +33 -19

117 lines not on this page · raw message

drivers/i2c/busses/i2c-owl.c +6 -0
index 672f1f239bd6..a163b8f308c1 100644
@@ -176,6 +176,9 @@ static irqreturn_t owl_i2c_interrupt(int irq, void *_dev)
 	fifostat = readl(i2c_dev->base + OWL_I2C_REG_FIFOSTAT);
 	if (fifostat & OWL_I2C_FIFOSTAT_RNB) {
 		i2c_dev->err = -ENXIO;
+		/* Clear NACK error bit by writing "1" */
+		owl_i2c_update_reg(i2c_dev->base + OWL_I2C_REG_FIFOSTAT,
+				   OWL_I2C_FIFOSTAT_RNB, true);
 		goto stop;
 	}
 
@@ -183,6 +186,9 @@ static irqreturn_t owl_i2c_interrupt(int irq, void *_dev)
 	stat = readl(i2c_dev->base + OWL_I2C_REG_STAT);
 	if (stat & OWL_I2C_STAT_BEB) {
 		i2c_dev->err = -EIO;
+		/* Clear BUS error bit by writing "1" */
+		owl_i2c_update_reg(i2c_dev->base + OWL_I2C_REG_STAT,
+				   OWL_I2C_STAT_BEB, true);
 		goto stop;
 	}
 
drivers/input/misc/ati_remote2.c +2 -2
index 305f0160506a..8a36d78fed63 100644
@@ -68,7 +68,7 @@ static int ati_remote2_get_channel_mask(char *buffer,
 {
 	pr_debug("%s()\n", __func__);
 
-	return sprintf(buffer, "0x%04x", *(unsigned int *)kp->arg);
+	return sprintf(buffer, "0x%04x\n", *(unsigned int *)kp->arg);
 }
 
 static int ati_remote2_set_mode_mask(const char *val,
@@ -84,7 +84,7 @@ static int ati_remote2_get_mode_mask(char *buffer,
 {
 	pr_debug("%s()\n", __func__);
 
-	return sprintf(buffer, "0x%02x", *(unsigned int *)kp->arg);
+	return sprintf(buffer, "0x%02x\n", *(unsigned int *)kp->arg);
 }
 
 static unsigned int channel_mask = ATI_REMOTE2_MAX_CHANNEL_MASK;
drivers/iommu/intel/iommu.c +2 -2
index fbe0b0cc56ed..24a84d294fd0 100644
@@ -2617,7 +2617,7 @@ static struct dmar_domain *dmar_insert_one_dev_info(struct intel_iommu *iommu,
 		}
 
 		/* Setup the PASID entry for requests without PASID: */
-		spin_lock(&iommu->lock);
+		spin_lock_irqsave(&iommu->lock, flags);
 		if (hw_pass_through && domain_type_is_si(domain))
 			ret = intel_pasid_setup_pass_through(iommu, domain,
 					dev, PASID_RID2PASID);
@@ -2627,7 +2627,7 @@ static struct dmar_domain *dmar_insert_one_dev_info(struct intel_iommu *iommu,
 		else
 			ret = intel_pasid_setup_second_level(iommu, domain,
 					dev, PASID_RID2PASID);
-		spin_unlock(&iommu->lock);
+		spin_unlock_irqrestore(&iommu->lock, flags);
 		if (ret) {
 			dev_err(dev, "Setup RID2PASID failed\n");
 			dmar_remove_one_dev_info(dev);
drivers/mmc/core/queue.c +1 -1
index 4b1eb89b401d..1ad518821157 100644
@@ -190,7 +190,7 @@ static void mmc_queue_setup_discard(struct request_queue *q,
 	q->limits.discard_granularity = card->pref_erase << 9;
 	/* granularity must not be greater than max. discard */
 	if (card->pref_erase > max_discard)
-		q->limits.discard_granularity = 0;
+		q->limits.discard_granularity = SECTOR_SIZE;
 	if (mmc_can_secure_erase_trim(card))
 		blk_queue_flag_set(QUEUE_FLAG_SECERASE, q);
 }
drivers/net/bonding/bond_main.c +1 -0
index 500aa3e19a4c..fddf7c502355 100644
@@ -1195,6 +1195,7 @@ static void bond_setup_by_slave(struct net_device *bond_dev,
 
 	bond_dev->type		    = slave_dev->type;
 	bond_dev->hard_header_len   = slave_dev->hard_header_len;
+	bond_dev->needed_headroom   = slave_dev->needed_headroom;
 	bond_dev->addr_len	    = slave_dev->addr_len;
 
 	memcpy(bond_dev->broadcast, slave_dev->broadcast,
drivers/net/dsa/ocelot/felix_vsc9959.c +34 -1
index 7c167a394b76..259a612da003 100644
@@ -1105,8 +1105,21 @@ static int vsc9959_prevalidate_phy_mode(struct ocelot *ocelot, int port,
 	}
 }
 
+/* Watermark encode
+ * Bit 8:   Unit; 0:1, 1:16
+ * Bit 7-0: Value to be multiplied with unit
+ */
+static u16 vsc9959_wm_enc(u16 value)
+{
+	if (value >= BIT(8))
+		return BIT(8) | (value / 16);
+
+	return value;
+}
+
 static const struct ocelot_ops vsc9959_ops = {
 	.reset			= vsc9959_reset,
+	.wm_enc			= vsc9959_wm_enc,
 };
 
 static int vsc9959_mdio_bus_alloc(struct ocelot *ocelot)
@@ -1215,8 +1228,28 @@ static void vsc9959_mdio_bus_free(struct ocelot *ocelot)
 static void vsc9959_sched_speed_set(struct ocelot *ocelot, int port,
 				    u32 speed)
 {
+	u8 tas_speed;
+
+	switch (speed) {
+	case SPEED_10:
+		tas_speed = OCELOT_SPEED_10;
+		break;
+	case SPEED_100:
+		tas_speed = OCELOT_SPEED_100;
+		break;
+	case SPEED_1000:
+		tas_speed = OCELOT_SPEED_1000;
+		break;
+	case SPEED_2500:
+		tas_speed = OCELOT_SPEED_2500;
+		break;
+	default:
+		tas_speed = OCELOT_SPEED_1000;
+		break;
+	}
+
 	ocelot_rmw_rix(ocelot,
-		       QSYS_TAG_CONFIG_LINK_SPEED(speed),
+		       QSYS_TAG_CONFIG_LINK_SPEED(tas_speed),
 		       QSYS_TAG_CONFIG_LINK_SPEED_M,
 		       QSYS_TAG_CONFIG, port);
 }
drivers/net/ethernet/cavium/octeon/octeon_mgmt.c +4 -2
index cbaa1924afbe..706e959bf02a 100644
@@ -1219,7 +1219,7 @@ static int octeon_mgmt_open(struct net_device *netdev)
 	 */
 	if (netdev->phydev) {
 		netif_carrier_off(netdev);
-		phy_start_aneg(netdev->phydev);
+		phy_start(netdev->phydev);
 	}
 
 	netif_wake_queue(netdev);
@@ -1247,8 +1247,10 @@ static int octeon_mgmt_stop(struct net_device *netdev)
 	napi_disable(&p->napi);
 	netif_stop_queue(netdev);
 
-	if (netdev->phydev)
+	if (netdev->phydev) {
+		phy_stop(netdev->phydev);
 		phy_disconnect(netdev->phydev);
+	}
 
 	netif_carrier_off(netdev);
 
drivers/net/ethernet/huawei/hinic/Kconfig +1 -0
index 936e2dd3bb13..b47bd5440c5f 100644
@@ -6,6 +6,7 @@
 config HINIC
 	tristate "Huawei Intelligent PCIE Network Interface Card"
 	depends on (PCI_MSI && (X86 || ARM64))
+	select NET_DEVLINK
 	help
 	  This driver supports HiNIC PCIE Ethernet cards.
 	  To compile this driver as part of the kernel, choose Y here.
drivers/net/ethernet/huawei/hinic/hinic_hw_api_cmd.c +25 -2
index 583fd24c29cf..29e88e25a4a4 100644
@@ -112,6 +112,26 @@ static u32 get_hw_cons_idx(struct hinic_api_cmd_chain *chain)
 	return HINIC_API_CMD_STATUS_GET(val, CONS_IDX);
 }
 
+static void dump_api_chain_reg(struct hinic_api_cmd_chain *chain)
+{
+	u32 addr, val;
+
+	addr = HINIC_CSR_API_CMD_STATUS_ADDR(chain->chain_type);
+	val  = hinic_hwif_read_reg(chain->hwif, addr);
+
+	dev_err(&chain->hwif->pdev->dev, "Chain type: 0x%x, cpld error: 0x%x, check error: 0x%x, current fsm: 0x%x\n",
+		chain->chain_type, HINIC_API_CMD_STATUS_GET(val, CPLD_ERR),
+		HINIC_API_CMD_STATUS_GET(val, CHKSUM_ERR),
+		HINIC_API_CMD_STATUS_GET(val, FSM));
+
+	dev_err(&chain->hwif->pdev->dev, "Chain hw current ci: 0x%x\n",
+		HINIC_API_CMD_STATUS_GET(val, CONS_IDX));
+
+	addr = HINIC_CSR_API_CMD_CHAIN_PI_ADDR(chain->chain_type);
+	val  = hinic_hwif_read_reg(chain->hwif, addr);
+	dev_err(&chain->hwif->pdev->dev, "Chain hw current pi: 0x%x\n", val);
+}
+
 /**
  * chain_busy - check if the chain is still processing last requests
  * @chain: chain to check
@@ -131,8 +151,10 @@ static int chain_busy(struct hinic_api_cmd_chain *chain)
 
 		/* check for a space for a new command */
 		if (chain->cons_idx == MASKED_IDX(chain, prod_idx + 1)) {
-			dev_err(&pdev->dev, "API CMD chain %d is busy\n",
-				chain->chain_type);
+			dev_err(&pdev->dev, "API CMD chain %d is busy, cons_idx: %d, prod_idx: %d\n",
+				chain->chain_type, chain->cons_idx,
+				chain->prod_idx);
+			dump_api_chain_reg(chain);
 			return -EBUSY;
 		}
 		break;
@@ -332,6 +354,7 @@ static int wait_for_api_cmd_completion(struct hinic_api_cmd_chain *chain)
 		err = wait_for_status_poll(chain);
 		if (err) {
 			dev_err(&pdev->dev, "API CMD Poll status timeout\n");
+			dump_api_chain_reg(chain);
 			break;
 		}
 		break;
drivers/net/ethernet/huawei/hinic/hinic_hw_api_cmd.h +4 -0
index 0ba00fd828df..6d1654b050ad 100644
@@ -103,10 +103,14 @@
 	 HINIC_API_CMD_STATUS_HEADER_##member##_MASK)
 
 #define HINIC_API_CMD_STATUS_CONS_IDX_SHIFT                     0
+#define HINIC_API_CMD_STATUS_FSM_SHIFT				24
 #define HINIC_API_CMD_STATUS_CHKSUM_ERR_SHIFT                   28
+#define HINIC_API_CMD_STATUS_CPLD_ERR_SHIFT			30
 
 #define HINIC_API_CMD_STATUS_CONS_IDX_MASK                      0xFFFFFF
+#define HINIC_API_CMD_STATUS_FSM_MASK				0xFU
 #define HINIC_API_CMD_STATUS_CHKSUM_ERR_MASK                    0x3
+#define HINIC_API_CMD_STATUS_CPLD_ERR_MASK			0x1U
 
 #define HINIC_API_CMD_STATUS_GET(val, member)                   \
 	(((val) >> HINIC_API_CMD_STATUS_##member##_SHIFT) &     \
drivers/net/ethernet/huawei/hinic/hinic_hw_cmdq.c +2 -0
index cb5b6e5f787f..e0eb294779ec 100644
@@ -401,6 +401,7 @@ static int cmdq_sync_cmd_direct_resp(struct hinic_cmdq *cmdq,
 
 		spin_unlock_bh(&cmdq->cmdq_lock);
 
+		hinic_dump_ceq_info(cmdq->hwdev);
 		return -ETIMEDOUT;
 	}
 
@@ -807,6 +808,7 @@ static int init_cmdqs_ctxt(struct hinic_hwdev *hwdev,
 
 	cmdq_type = HINIC_CMDQ_SYNC;
 	for (; cmdq_type < HINIC_MAX_CMDQ_TYPES; cmdq_type++) {
+		cmdqs->cmdq[cmdq_type].hwdev = hwdev;
 		err = init_cmdq(&cmdqs->cmdq[cmdq_type],
 				&cmdqs->saved_wqs[cmdq_type], cmdq_type,
 				db_area[cmdq_type]);
drivers/net/ethernet/huawei/hinic/hinic_hw_cmdq.h +2 -0
index 3e4b0aef9fe6..f40c31e1879f 100644
@@ -130,6 +130,8 @@ struct hinic_cmdq_ctxt {
 };
 
 struct hinic_cmdq {
+	struct hinic_hwdev      *hwdev;
+
 	struct hinic_wq         *wq;
 
 	enum hinic_cmdq_type    cmdq_type;
drivers/net/ethernet/huawei/hinic/hinic_hw_dev.c +6 -6
index b735bc537508..298ceb930cc6 100644
@@ -253,9 +253,9 @@ static int init_fw_ctxt(struct hinic_hwdev *hwdev)
 				 &fw_ctxt, sizeof(fw_ctxt),
 				 &fw_ctxt, &out_size);
 	if (err || (out_size != sizeof(fw_ctxt)) || fw_ctxt.status) {
-		dev_err(&pdev->dev, "Failed to init FW ctxt, ret = %d\n",
-			fw_ctxt.status);
-		return -EFAULT;
+		dev_err(&pdev->dev, "Failed to init FW ctxt, err: %d, status: 0x%x, out size: 0x%x\n",
+			err, fw_ctxt.status, out_size);
+		return -EIO;
 	}
 
 	return 0;
@@ -420,9 +420,9 @@ static int get_base_qpn(struct hinic_hwdev *hwdev, u16 *base_qpn)
 				 &cmd_base_qpn, sizeof(cmd_base_qpn),
 				 &cmd_base_qpn, &out_size);
 	if (err || (out_size != sizeof(cmd_base_qpn)) || cmd_base_qpn.status) {
-		dev_err(&pdev->dev, "Failed to get base qpn, status = %d\n",
-			cmd_base_qpn.status);
-		return -EFAULT;
+		dev_err(&pdev->dev, "Failed to get base qpn, err: %d, status: 0x%x, out size: 0x%x\n",
+			err, cmd_base_qpn.status, out_size);
+		return -EIO;
 	}
 
 	*base_qpn = cmd_base_qpn.qpn;
drivers/net/ethernet/huawei/hinic/hinic_hw_eqs.c +39 -0
index 397936cac304..ca8cb68a8d20 100644
@@ -953,3 +953,42 @@ void hinic_ceqs_free(struct hinic_ceqs *ceqs)
 	for (q_id = 0; q_id < ceqs->num_ceqs; q_id++)
 		remove_eq(&ceqs->ceq[q_id]);
 }
+
+void hinic_dump_ceq_info(struct hinic_hwdev *hwdev)
+{
+	struct hinic_eq *eq = NULL;
+	u32 addr, ci, pi;
+	int q_id;
+
+	for (q_id = 0; q_id < hwdev->func_to_io.ceqs.num_ceqs; q_id++) {
+		eq = &hwdev->func_to_io.ceqs.ceq[q_id];
+		addr = EQ_CONS_IDX_REG_ADDR(eq);
+		ci = hinic_hwif_read_reg(hwdev->hwif, addr);
+		addr = EQ_PROD_IDX_REG_ADDR(eq);
+		pi = hinic_hwif_read_reg(hwdev->hwif, addr);
+		dev_err(&hwdev->hwif->pdev->dev, "Ceq id: %d, ci: 0x%08x, sw_ci: 0x%08x, pi: 0x%x, tasklet_state: 0x%lx, wrap: %d, ceqe: 0x%x\n",
+			q_id, ci, eq->cons_idx, pi,
+			eq->ceq_tasklet.state,
+			eq->wrapped, be32_to_cpu(*(__be32 *)(GET_CURR_CEQ_ELEM(eq))));
+	}
+}
+
+void hinic_dump_aeq_info(struct hinic_hwdev *hwdev)
+{
+	struct hinic_aeq_elem *aeqe_pos = NULL;
+	struct hinic_eq *eq = NULL;
+	u32 addr, ci, pi;
+	int q_id;
+
+	for (q_id = 0; q_id < hwdev->aeqs.num_aeqs; q_id++) {
+		eq = &hwdev->aeqs.aeq[q_id];
+		addr = EQ_CONS_IDX_REG_ADDR(eq);
+		ci = hinic_hwif_read_reg(hwdev->hwif, addr);
+		addr = EQ_PROD_IDX_REG_ADDR(eq);
+		pi = hinic_hwif_read_reg(hwdev->hwif, addr);
+		aeqe_pos = GET_CURR_AEQ_ELEM(eq);
+		dev_err(&hwdev->hwif->pdev->dev, "Aeq id: %d, ci: 0x%08x, pi: 0x%x, work_state: 0x%x, wrap: %d, desc: 0x%x\n",
+			q_id, ci, pi, work_busy(&eq->aeq_work.work),
+			eq->wrapped, be32_to_cpu(aeqe_pos->desc));
+	}
+}
drivers/net/ethernet/huawei/hinic/hinic_hw_eqs.h +5 -1
index 74b9ff90640c..43065fc70869 100644
@@ -162,7 +162,7 @@ enum hinic_eqe_state {
 
 struct hinic_aeq_elem {
 	u8      data[HINIC_AEQE_DATA_SIZE];
-	u32     desc;
+	__be32  desc;
 };
 
 struct hinic_eq_work {
@@ -254,4 +254,8 @@ int hinic_ceqs_init(struct hinic_ceqs *ceqs, struct hinic_hwif *hwif,
 
 void hinic_ceqs_free(struct hinic_ceqs *ceqs);
 
+void hinic_dump_ceq_info(struct hinic_hwdev *hwdev);
+
+void hinic_dump_aeq_info(struct hinic_hwdev *hwdev);
+
 #endif
drivers/net/ethernet/huawei/hinic/hinic_hw_if.c +23 -0
index cf127d896ba6..bc8925c0c982 100644
@@ -21,6 +21,8 @@
 
 #define WAIT_HWIF_READY_TIMEOUT	10000
 
+#define HINIC_SELFTEST_RESULT 0x883C
+
 /**
  * hinic_msix_attr_set - set message attribute for msix entry
  * @hwif: the HW interface of a pci function device
@@ -369,6 +371,26 @@ u16 hinic_pf_id_of_vf_hw(struct hinic_hwif *hwif)
 	return HINIC_FA0_GET(attr0, PF_IDX);
 }
 
+static void __print_selftest_reg(struct hinic_hwif *hwif)
+{
+	u32 addr, attr0, attr1;
+
+	addr   = HINIC_CSR_FUNC_ATTR1_ADDR;
+	attr1  = hinic_hwif_read_reg(hwif, addr);
+
+	if (attr1 == HINIC_PCIE_LINK_DOWN) {
+		dev_err(&hwif->pdev->dev, "PCIE is link down\n");
+		return;
+	}
+
+	addr   = HINIC_CSR_FUNC_ATTR0_ADDR;
+	attr0  = hinic_hwif_read_reg(hwif, addr);
+	if (HINIC_FA0_GET(attr0, FUNC_TYPE) != HINIC_VF &&
+	    !HINIC_FA0_GET(attr0, PCI_INTF_IDX))
+		dev_err(&hwif->pdev->dev, "Selftest reg: 0x%08x\n",
+			hinic_hwif_read_reg(hwif, HINIC_SELFTEST_RESULT));
+}
+
 /**
  * hinic_init_hwif - initialize the hw interface
  * @hwif: the HW interface of a pci function device
@@ -398,6 +420,7 @@ int hinic_init_hwif(struct hinic_hwif *hwif, struct pci_dev *pdev)
 	err = wait_hwif_ready(hwif);
 	if (err) {
 		dev_err(&pdev->dev, "HW interface is not ready\n");
+		__print_selftest_reg(hwif);
 		goto err_hwif_ready;
 	}
 
drivers/net/ethernet/huawei/hinic/hinic_hw_if.h +8 -2
index 0872e035faa1..c06f2253151e 100644
@@ -12,6 +12,8 @@
 #include <linux/types.h>
 #include <asm/byteorder.h>
 
+#define HINIC_PCIE_LINK_DOWN					0xFFFFFFFF
+
 #define HINIC_DMA_ATTR_ST_SHIFT                                 0
 #define HINIC_DMA_ATTR_AT_SHIFT                                 8
 #define HINIC_DMA_ATTR_PH_SHIFT                                 10
@@ -249,13 +251,17 @@ struct hinic_hwif {
 
 static inline u32 hinic_hwif_read_reg(struct hinic_hwif *hwif, u32 reg)
 {
-	return be32_to_cpu(readl(hwif->cfg_regs_bar + reg));
+	u32 out = readl(hwif->cfg_regs_bar + reg);
+
+	return be32_to_cpu(*(__be32 *)&out);
 }
 
 static inline void hinic_hwif_write_reg(struct hinic_hwif *hwif, u32 reg,
 					u32 val)
 {
-	writel(cpu_to_be32(val), hwif->cfg_regs_bar + reg);
+	__be32 in = cpu_to_be32(val);
+
+	writel(*(u32 *)&in, hwif->cfg_regs_bar + reg);
 }
 
 int hinic_msix_attr_set(struct hinic_hwif *hwif, u16 msix_index,
drivers/net/ethernet/huawei/hinic/hinic_hw_mbox.c +2 -0
index bc2f87e6cb5d..47c93f946b94 100644
@@ -650,6 +650,7 @@ wait_for_mbox_seg_completion(struct hinic_mbox_func_to_func *func_to_func,
 		if (!wait_for_completion_timeout(done, jif)) {
 			dev_err(&hwdev->hwif->pdev->dev, "Send mailbox segment timeout\n");
 			dump_mox_reg(hwdev);
+			hinic_dump_aeq_info(hwdev);
 			return -ETIMEDOUT;
 		}
 
@@ -897,6 +898,7 @@ int hinic_mbox_to_func(struct hinic_mbox_func_to_func *func_to_func,
 		set_mbox_to_func_event(func_to_func, EVENT_TIMEOUT);
 		dev_err(&func_to_func->hwif->pdev->dev,
 			"Send mbox msg timeout, msg_id: %d\n", msg_info.msg_id);
+		hinic_dump_aeq_info(func_to_func->hwdev);
 		err = -ETIMEDOUT;
 		goto err_send_mbox;
 	}
drivers/net/ethernet/huawei/hinic/hinic_hw_mgmt.c +1 -0
index 7fe39a155b32..070288c8b4f3 100644
@@ -276,6 +276,7 @@ static int msg_to_mgmt_sync(struct hinic_pf_to_mgmt *pf_to_mgmt,
 
 	if (!wait_for_completion_timeout(recv_done, timeo)) {
 		dev_err(&pdev->dev, "MGMT timeout, MSG id = %d\n", msg_id);
+		hinic_dump_aeq_info(pf_to_mgmt->hwdev);
 		err = -ETIMEDOUT;
 		goto unlock_sync_msg;
 	}
drivers/net/ethernet/huawei/hinic/hinic_port.c +34 -34

141 lines not on this page · raw message

drivers/net/ethernet/huawei/hinic/hinic_sriov.c +5 -13
index efab2dd2c889..b757f7057b8f 100644
@@ -38,11 +38,10 @@ static int hinic_set_mac(struct hinic_hwdev *hwdev, const u8 *mac_addr,
 	err = hinic_port_msg_cmd(hwdev, HINIC_PORT_CMD_SET_MAC, &mac_info,
 				 sizeof(mac_info), &mac_info, &out_size);
 	if (err || out_size != sizeof(mac_info) ||
-	    (mac_info.status && mac_info.status != HINIC_PF_SET_VF_ALREADY &&
-	    mac_info.status != HINIC_MGMT_STATUS_EXIST)) {
-		dev_err(&hwdev->func_to_io.hwif->pdev->dev, "Failed to change MAC, ret = %d\n",
-			mac_info.status);
-		return -EFAULT;
+	    (mac_info.status && mac_info.status != HINIC_MGMT_STATUS_EXIST)) {
+		dev_err(&hwdev->func_to_io.hwif->pdev->dev, "Failed to set MAC, err: %d, status: 0x%x, out size: 0x%x\n",
+			err, mac_info.status, out_size);
+		return -EIO;
 	}
 
 	return 0;
@@ -452,8 +451,7 @@ struct hinic_sriov_info *hinic_get_sriov_info_by_pcidev(struct pci_dev *pdev)
 
 static int hinic_check_mac_info(u8 status, u16 vlan_id)
 {
-	if ((status && status != HINIC_MGMT_STATUS_EXIST &&
-	     status != HINIC_PF_SET_VF_ALREADY) ||
+	if ((status && status != HINIC_MGMT_STATUS_EXIST) ||
 	    (vlan_id & CHECK_IPSU_15BIT &&
 	     status == HINIC_MGMT_STATUS_EXIST))
 		return -EINVAL;
@@ -495,12 +493,6 @@ static int hinic_update_mac(struct hinic_hwdev *hwdev, u8 *old_mac,
 		return -EINVAL;
 	}
 
-	if (mac_info.status == HINIC_PF_SET_VF_ALREADY) {
-		dev_warn(&hwdev->hwif->pdev->dev,
-			 "PF has already set VF MAC. Ignore update operation\n");
-		return HINIC_PF_SET_VF_ALREADY;
-	}
-
 	if (mac_info.status == HINIC_MGMT_STATUS_EXIST)
 		dev_warn(&hwdev->hwif->pdev->dev, "MAC is repeated. Ignore update operation\n");
 
drivers/net/ethernet/intel/iavf/iavf_main.c +14 -35

91 lines not on this page · raw message

drivers/net/ethernet/intel/ice/ice_lib.c +16 -4
index 2e3a39cea2c0..4c5845a0965a 100644
@@ -240,7 +240,7 @@ static int ice_get_free_slot(void *array, int size, int curr)
  * ice_vsi_delete - delete a VSI from the switch
  * @vsi: pointer to VSI being removed
  */
-void ice_vsi_delete(struct ice_vsi *vsi)
+static void ice_vsi_delete(struct ice_vsi *vsi)
 {
 	struct ice_pf *pf = vsi->back;
 	struct ice_vsi_ctx *ctxt;
@@ -307,7 +307,7 @@ static void ice_vsi_free_arrays(struct ice_vsi *vsi)
  *
  * Returns 0 on success, negative on failure
  */
-int ice_vsi_clear(struct ice_vsi *vsi)
+static int ice_vsi_clear(struct ice_vsi *vsi)
 {
 	struct ice_pf *pf = NULL;
 	struct device *dev;
@@ -557,7 +557,7 @@ static int ice_vsi_get_qs(struct ice_vsi *vsi)
  * ice_vsi_put_qs - Release queues from VSI to PF
  * @vsi: the VSI that is going to release queues
  */
-void ice_vsi_put_qs(struct ice_vsi *vsi)
+static void ice_vsi_put_qs(struct ice_vsi *vsi)
 {
 	struct ice_pf *pf = vsi->back;
 	int i;
@@ -1190,6 +1190,18 @@ static void ice_vsi_clear_rings(struct ice_vsi *vsi)
 {
 	int i;
 
+	/* Avoid stale references by clearing map from vector to ring */
+	if (vsi->q_vectors) {
+		ice_for_each_q_vector(vsi, i) {
+			struct ice_q_vector *q_vector = vsi->q_vectors[i];
+
+			if (q_vector) {
+				q_vector->tx.ring = NULL;
+				q_vector->rx.ring = NULL;
+			}
+		}
+	}
+
 	if (vsi->tx_rings) {
 		for (i = 0; i < vsi->alloc_txq; i++) {
 			if (vsi->tx_rings[i]) {
@@ -2254,7 +2266,7 @@ ice_vsi_setup(struct ice_pf *pf, struct ice_port_info *pi,
 	if (status) {
 		dev_err(dev, "VSI %d failed lan queue config, error %s\n",
 			vsi->vsi_num, ice_stat_str(status));
-		goto unroll_vector_base;
+		goto unroll_clear_rings;
 	}
 
 	/* Add switch rule to drop all Tx Flow Control Frames, of look up
drivers/net/ethernet/intel/ice/ice_lib.h +0 -6
index d80e6afa4511..2954b30e6ec7 100644
@@ -43,10 +43,6 @@ int ice_cfg_vlan_pruning(struct ice_vsi *vsi, bool ena, bool vlan_promisc);
 
 void ice_cfg_sw_lldp(struct ice_vsi *vsi, bool tx, bool create);
 
-void ice_vsi_delete(struct ice_vsi *vsi);
-
-int ice_vsi_clear(struct ice_vsi *vsi);
-
 #ifdef CONFIG_DCB
 int ice_vsi_cfg_tc(struct ice_vsi *vsi, u8 ena_tc);
 #endif /* CONFIG_DCB */
@@ -77,8 +73,6 @@ bool ice_is_reset_in_progress(unsigned long *state);
 void
 ice_write_qrxflxp_cntxt(struct ice_hw *hw, u16 pf_q, u32 rxdid, u32 prio);
 
-void ice_vsi_put_qs(struct ice_vsi *vsi);
-
 void ice_vsi_dis_irq(struct ice_vsi *vsi);
 
 void ice_vsi_free_irq(struct ice_vsi *vsi);
drivers/net/ethernet/intel/ice/ice_main.c +3 -10
index 4cbd49c87568..4b52f1dea7f3 100644
@@ -2605,10 +2605,8 @@ static int ice_setup_pf_sw(struct ice_pf *pf)
 		return -EBUSY;
 
 	vsi = ice_pf_vsi_setup(pf, pf->hw.port_info);
-	if (!vsi) {
-		status = -ENOMEM;
-		goto unroll_vsi_setup;
-	}
+	if (!vsi)
+		return -ENOMEM;
 
 	status = ice_cfg_netdev(vsi);
 	if (status) {
@@ -2655,12 +2653,7 @@ static int ice_setup_pf_sw(struct ice_pf *pf)
 	}
 
 unroll_vsi_setup:
-	if (vsi) {
-		ice_vsi_free_q_vectors(vsi);
-		ice_vsi_delete(vsi);
-		ice_vsi_put_qs(vsi);
-		ice_vsi_clear(vsi);
-	}
+	ice_vsi_release(vsi);
 	return status;
 }
 
drivers/net/ethernet/marvell/mvneta.c +2 -11
index 7d5d9d34f4e4..69a234e83b8b 100644
@@ -3372,24 +3372,15 @@ static int mvneta_txq_sw_init(struct mvneta_port *pp,
 	txq->last_desc = txq->size - 1;
 
 	txq->buf = kmalloc_array(txq->size, sizeof(*txq->buf), GFP_KERNEL);
-	if (!txq->buf) {
-		dma_free_coherent(pp->dev->dev.parent,
-				  txq->size * MVNETA_DESC_ALIGNED_SIZE,
-				  txq->descs, txq->descs_phys);
+	if (!txq->buf)
 		return -ENOMEM;
-	}
 
 	/* Allocate DMA buffers for TSO MAC/IP/TCP headers */
 	txq->tso_hdrs = dma_alloc_coherent(pp->dev->dev.parent,
 					   txq->size * TSO_HEADER_SIZE,
 					   &txq->tso_hdrs_phys, GFP_KERNEL);
-	if (!txq->tso_hdrs) {
-		kfree(txq->buf);
-		dma_free_coherent(pp->dev->dev.parent,
-				  txq->size * MVNETA_DESC_ALIGNED_SIZE,
-				  txq->descs, txq->descs_phys);
+	if (!txq->tso_hdrs)
 		return -ENOMEM;
-	}
 
 	/* Setup XPS mapping */
 	if (txq_number > 1)
drivers/net/ethernet/marvell/octeontx2/af/mbox.c +10 -2
index 387e33fa417a..2718fe201c14 100644
@@ -17,7 +17,7 @@
 
 static const u16 msgs_offset = ALIGN(sizeof(struct mbox_hdr), MBOX_MSG_ALIGN);
 
-void otx2_mbox_reset(struct otx2_mbox *mbox, int devid)
+void __otx2_mbox_reset(struct otx2_mbox *mbox, int devid)
 {
 	void *hw_mbase = mbox->hwbase + (devid * MBOX_SIZE);
 	struct otx2_mbox_dev *mdev = &mbox->dev[devid];
@@ -26,13 +26,21 @@ void otx2_mbox_reset(struct otx2_mbox *mbox, int devid)
 	tx_hdr = hw_mbase + mbox->tx_start;
 	rx_hdr = hw_mbase + mbox->rx_start;
 
-	spin_lock(&mdev->mbox_lock);
 	mdev->msg_size = 0;
 	mdev->rsp_size = 0;
 	tx_hdr->num_msgs = 0;
 	tx_hdr->msg_size = 0;
 	rx_hdr->num_msgs = 0;
 	rx_hdr->msg_size = 0;
+}
+EXPORT_SYMBOL(__otx2_mbox_reset);
+
+void otx2_mbox_reset(struct otx2_mbox *mbox, int devid)
+{
+	struct otx2_mbox_dev *mdev = &mbox->dev[devid];
+
+	spin_lock(&mdev->mbox_lock);
+	__otx2_mbox_reset(mbox, devid);
 	spin_unlock(&mdev->mbox_lock);
 }
 EXPORT_SYMBOL(otx2_mbox_reset);
drivers/net/ethernet/marvell/octeontx2/af/mbox.h +1 -0
index 6dfd0f90cd70..ab433789d2c3 100644
@@ -93,6 +93,7 @@ struct mbox_msghdr {
 };
 
 void otx2_mbox_reset(struct otx2_mbox *mbox, int devid);
+void __otx2_mbox_reset(struct otx2_mbox *mbox, int devid);
 void otx2_mbox_destroy(struct otx2_mbox *mbox);
 int otx2_mbox_init(struct otx2_mbox *mbox, void __force *hwbase,
 		   struct pci_dev *pdev, void __force *reg_base,
drivers/net/ethernet/marvell/octeontx2/af/rvu.h +2 -1
index dcf25a092008..b89dde2c8b08 100644
@@ -463,6 +463,7 @@ void rvu_nix_freemem(struct rvu *rvu);
 int rvu_get_nixlf_count(struct rvu *rvu);
 void rvu_nix_lf_teardown(struct rvu *rvu, u16 pcifunc, int blkaddr, int npalf);
 int nix_get_nixlf(struct rvu *rvu, u16 pcifunc, int *nixlf, int *nix_blkaddr);
+int nix_update_bcast_mce_list(struct rvu *rvu, u16 pcifunc, bool add);
 
 /* NPC APIs */
 int rvu_npc_init(struct rvu *rvu);
@@ -477,7 +478,7 @@ void rvu_npc_disable_promisc_entry(struct rvu *rvu, u16 pcifunc, int nixlf);
 void rvu_npc_enable_promisc_entry(struct rvu *rvu, u16 pcifunc, int nixlf);
 void rvu_npc_install_bcast_match_entry(struct rvu *rvu, u16 pcifunc,
 				       int nixlf, u64 chan);
-void rvu_npc_disable_bcast_entry(struct rvu *rvu, u16 pcifunc);
+void rvu_npc_enable_bcast_entry(struct rvu *rvu, u16 pcifunc, bool enable);
 int rvu_npc_update_rxvlan(struct rvu *rvu, u16 pcifunc, int nixlf);
 void rvu_npc_disable_mcam_entries(struct rvu *rvu, u16 pcifunc, int nixlf);
 void rvu_npc_disable_default_entries(struct rvu *rvu, u16 pcifunc, int nixlf);
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c +2 -3
index 36953d4f51c7..3495b3a6828c 100644
@@ -17,7 +17,6 @@
 #include "npc.h"
 #include "cgx.h"
 
-static int nix_update_bcast_mce_list(struct rvu *rvu, u16 pcifunc, bool add);
 static int rvu_nix_get_bpid(struct rvu *rvu, struct nix_bp_cfg_req *req,
 			    int type, int chan_id);
 
@@ -2020,7 +2019,7 @@ static int nix_update_mce_list(struct nix_mce_list *mce_list,
 	return 0;
 }
 
-static int nix_update_bcast_mce_list(struct rvu *rvu, u16 pcifunc, bool add)
+int nix_update_bcast_mce_list(struct rvu *rvu, u16 pcifunc, bool add)
 {
 	int err = 0, idx, next_idx, last_idx;
 	struct nix_mce_list *mce_list;
@@ -2065,7 +2064,7 @@ static int nix_update_bcast_mce_list(struct rvu *rvu, u16 pcifunc, bool add)
 
 	/* Disable MCAM entry in NPC */
 	if (!mce_list->count) {
-		rvu_npc_disable_bcast_entry(rvu, pcifunc);
+		rvu_npc_enable_bcast_entry(rvu, pcifunc, false);
 		goto end;
 	}
 
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c +19 -7
index 0a214084406a..fbaf9bcd83f2 100644
@@ -530,7 +530,7 @@ void rvu_npc_install_bcast_match_entry(struct rvu *rvu, u16 pcifunc,
 			      NIX_INTF_RX, &entry, true);
 }
 
-void rvu_npc_disable_bcast_entry(struct rvu *rvu, u16 pcifunc)
+void rvu_npc_enable_bcast_entry(struct rvu *rvu, u16 pcifunc, bool enable)
 {
 	struct npc_mcam *mcam = &rvu->hw->mcam;
 	int blkaddr, index;
@@ -543,7 +543,7 @@ void rvu_npc_disable_bcast_entry(struct rvu *rvu, u16 pcifunc)
 	pcifunc = pcifunc & ~RVU_PFVF_FUNC_MASK;
 
 	index = npc_get_nixlf_mcam_index(mcam, pcifunc, 0, NIXLF_BCAST_ENTRY);
-	npc_enable_mcam_entry(rvu, mcam, blkaddr, index, false);
+	npc_enable_mcam_entry(rvu, mcam, blkaddr, index, enable);
 }
 
 void rvu_npc_update_flowkey_alg_idx(struct rvu *rvu, u16 pcifunc, int nixlf,
@@ -622,23 +622,35 @@ static void npc_enadis_default_entries(struct rvu *rvu, u16 pcifunc,
 					 nixlf, NIXLF_UCAST_ENTRY);
 	npc_enable_mcam_entry(rvu, mcam, blkaddr, index, enable);
 
-	/* For PF, ena/dis promisc and bcast MCAM match entries */
-	if (pcifunc & RVU_PFVF_FUNC_MASK)
+	/* For PF, ena/dis promisc and bcast MCAM match entries.
+	 * For VFs add/delete from bcast list when RX multicast
+	 * feature is present.
+	 */
+	if (pcifunc & RVU_PFVF_FUNC_MASK && !rvu->hw->cap.nix_rx_multicast)
 		return;
 
 	/* For bcast, enable/disable only if it's action is not
 	 * packet replication, incase if action is replication
-	 * then this PF's nixlf is removed from bcast replication
+	 * then this PF/VF's nixlf is removed from bcast replication
 	 * list.
 	 */
-	index = npc_get_nixlf_mcam_index(mcam, pcifunc,
+	index = npc_get_nixlf_mcam_index(mcam, pcifunc & ~RVU_PFVF_FUNC_MASK,
 					 nixlf, NIXLF_BCAST_ENTRY);
 	bank = npc_get_bank(mcam, index);
 	*(u64 *)&action = rvu_read64(rvu, blkaddr,
 	     NPC_AF_MCAMEX_BANKX_ACTION(index & (mcam->banksize - 1), bank));
-	if (action.op != NIX_RX_ACTIONOP_MCAST)
+
+	/* VFs will not have BCAST entry */
+	if (action.op != NIX_RX_ACTIONOP_MCAST &&
+	    !(pcifunc & RVU_PFVF_FUNC_MASK)) {
 		npc_enable_mcam_entry(rvu, mcam,
 				      blkaddr, index, enable);
+	} else {
+		nix_update_bcast_mce_list(rvu, pcifunc, enable);
+		/* Enable PF's BCAST entry for packet replication */
+		rvu_npc_enable_bcast_entry(rvu, pcifunc, enable);
+	}
+
 	if (enable)
 		rvu_npc_enable_promisc_entry(rvu, pcifunc, nixlf);
 	else
drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c +10 -6
index 75a8c407e815..2fb45670aca4 100644
@@ -370,8 +370,8 @@ static int otx2_forward_vf_mbox_msgs(struct otx2_nic *pf,
 		dst_mbox = &pf->mbox;
 		dst_size = dst_mbox->mbox.tx_size -
 				ALIGN(sizeof(*mbox_hdr), MBOX_MSG_ALIGN);
-		/* Check if msgs fit into destination area */
-		if (mbox_hdr->msg_size > dst_size)
+		/* Check if msgs fit into destination area and has valid size */
+		if (mbox_hdr->msg_size > dst_size || !mbox_hdr->msg_size)
 			return -EINVAL;
 
 		dst_mdev = &dst_mbox->mbox.dev[0];
@@ -526,10 +526,10 @@ static void otx2_pfvf_mbox_up_handler(struct work_struct *work)
 
 end:
 		offset = mbox->rx_start + msg->next_msgoff;
+		if (mdev->msgs_acked == (vf_mbox->up_num_msgs - 1))
+			__otx2_mbox_reset(mbox, 0);
 		mdev->msgs_acked++;
 	}
-
-	otx2_mbox_reset(mbox, vf_idx);
 }
 
 static irqreturn_t otx2_pfvf_mbox_intr_handler(int irq, void *pf_irq)
@@ -803,10 +803,11 @@ static void otx2_pfaf_mbox_handler(struct work_struct *work)
 		msg = (struct mbox_msghdr *)(mdev->mbase + offset);
 		otx2_process_pfaf_mbox_msg(pf, msg);
 		offset = mbox->rx_start + msg->next_msgoff;
+		if (mdev->msgs_acked == (af_mbox->num_msgs - 1))
+			__otx2_mbox_reset(mbox, 0);
 		mdev->msgs_acked++;
 	}
 
-	otx2_mbox_reset(mbox, 0);
 }
 
 static void otx2_handle_link_event(struct otx2_nic *pf)
@@ -1560,10 +1561,13 @@ int otx2_open(struct net_device *netdev)
 
 	err = otx2_rxtx_enable(pf, true);
 	if (err)
-		goto err_free_cints;
+		goto err_tx_stop_queues;
 
 	return 0;
 
+err_tx_stop_queues:
+	netif_tx_stop_all_queues(netdev);
+	netif_carrier_off(netdev);
 err_free_cints:
 	otx2_free_cints(pf, qidx);
 	vec = pci_irq_vector(pf->pdev,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c +1 -0
index b04f5429d72d..334eab976ee4 100644
@@ -524,6 +524,7 @@ static void otx2_sqe_add_hdr(struct otx2_nic *pfvf, struct otx2_snd_queue *sq,
 			sqe_hdr->ol3type = NIX_SENDL3TYPE_IP4_CKSUM;
 		} else if (skb->protocol == htons(ETH_P_IPV6)) {
 			proto = ipv6_hdr(skb)->nexthdr;
+			sqe_hdr->ol3type = NIX_SENDL3TYPE_IP6;
 		}
 
 		if (proto == IPPROTO_TCP)
drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c +2 -2
index 92a3db69a6cd..2f90f1721441 100644
@@ -99,10 +99,10 @@ static void otx2vf_vfaf_mbox_handler(struct work_struct *work)
 		msg = (struct mbox_msghdr *)(mdev->mbase + offset);
 		otx2vf_process_vfaf_mbox_msg(af_mbox->pfvf, msg);
 		offset = mbox->rx_start + msg->next_msgoff;
+		if (mdev->msgs_acked == (af_mbox->num_msgs - 1))
+			__otx2_mbox_reset(mbox, 0);
 		mdev->msgs_acked++;
 	}
-
-	otx2_mbox_reset(mbox, 0);
 }
 
 static int otx2vf_process_mbox_msg_up(struct otx2_nic *vf,
drivers/net/ethernet/mellanox/mlx5/core/cmd.c +135 -46

347 lines not on this page · raw message

drivers/net/ethernet/mellanox/mlx5/core/en.h +7 -1
index 76b23ba7a468..cb3857e136d6 100644
@@ -90,7 +90,12 @@ struct page_pool;
 #define MLX5_MPWRQ_PAGES_PER_WQE		BIT(MLX5_MPWRQ_WQE_PAGE_ORDER)
 
 #define MLX5_MTT_OCTW(npages) (ALIGN(npages, 8) / 2)
-#define MLX5E_REQUIRED_WQE_MTTS		(ALIGN(MLX5_MPWRQ_PAGES_PER_WQE, 8))
+/* Add another page to MLX5E_REQUIRED_WQE_MTTS as a buffer between
+ * WQEs, This page will absorb write overflow by the hardware, when
+ * receiving packets larger than MTU. These oversize packets are
+ * dropped by the driver at a later stage.
+ */
+#define MLX5E_REQUIRED_WQE_MTTS		(ALIGN(MLX5_MPWRQ_PAGES_PER_WQE + 1, 8))
 #define MLX5E_LOG_ALIGNED_MPWQE_PPW	(ilog2(MLX5E_REQUIRED_WQE_MTTS))
 #define MLX5E_REQUIRED_MTTS(wqes)	(wqes * MLX5E_REQUIRED_WQE_MTTS)
 #define MLX5E_MAX_RQ_NUM_MTTS	\
@@ -621,6 +626,7 @@ struct mlx5e_rq {
 	u32                    rqn;
 	struct mlx5_core_dev  *mdev;
 	struct mlx5_core_mkey  umr_mkey;
+	struct mlx5e_dma_info  wqe_overflow;
 
 	/* XDP read-mostly */
 	struct xdp_rxq_info    xdp_rxq;
drivers/net/ethernet/mellanox/mlx5/core/en/port.c +3 -0
index 98e909bf3c1e..3e32264cf613 100644
@@ -566,6 +566,9 @@ int mlx5e_set_fec_mode(struct mlx5_core_dev *dev, u16 fec_policy)
 	if (fec_policy >= (1 << MLX5E_FEC_LLRS_272_257_1) && !fec_50g_per_lane)
 		return -EOPNOTSUPP;
 
+	if (fec_policy && !mlx5e_fec_in_caps(dev, fec_policy))
+		return -EOPNOTSUPP;
+
 	MLX5_SET(pplm_reg, in, local_port, 1);
 	err = mlx5_core_access_reg(dev, in, sz, out, sz, MLX5_REG_PPLM, 0, 0);
 	if (err)
drivers/net/ethernet/mellanox/mlx5/core/en/rep/neigh.c +50 -31

122 lines not on this page · raw message

drivers/net/ethernet/mellanox/mlx5/core/en_fs.c +10 -4
index 73d3dc07331f..713dc210f710 100644
@@ -217,6 +217,9 @@ static int __mlx5e_add_vlan_rule(struct mlx5e_priv *priv,
 		break;
 	}
 
+	if (WARN_ONCE(*rule_p, "VLAN rule already exists type %d", rule_type))
+		return 0;
+
 	*rule_p = mlx5_add_flow_rules(ft, spec, &flow_act, &dest, 1);
 
 	if (IS_ERR(*rule_p)) {
@@ -397,8 +400,7 @@ static void mlx5e_add_vlan_rules(struct mlx5e_priv *priv)
 	for_each_set_bit(i, priv->fs.vlan.active_svlans, VLAN_N_VID)
 		mlx5e_add_vlan_rule(priv, MLX5E_VLAN_RULE_TYPE_MATCH_STAG_VID, i);
 
-	if (priv->fs.vlan.cvlan_filter_disabled &&
-	    !(priv->netdev->flags & IFF_PROMISC))
+	if (priv->fs.vlan.cvlan_filter_disabled)
 		mlx5e_add_any_vid_rules(priv);
 }
 
@@ -415,8 +417,12 @@ static void mlx5e_del_vlan_rules(struct mlx5e_priv *priv)
 	for_each_set_bit(i, priv->fs.vlan.active_svlans, VLAN_N_VID)
 		mlx5e_del_vlan_rule(priv, MLX5E_VLAN_RULE_TYPE_MATCH_STAG_VID, i);
 
-	if (priv->fs.vlan.cvlan_filter_disabled &&
-	    !(priv->netdev->flags & IFF_PROMISC))
+	WARN_ON_ONCE(!(test_bit(MLX5E_STATE_DESTROYING, &priv->state)));
+
+	/* must be called after DESTROY bit is set and
+	 * set_rx_mode is called and flushed
+	 */
+	if (priv->fs.vlan.cvlan_filter_disabled)
 		mlx5e_del_any_vid_rules(priv);
 }
 
drivers/net/ethernet/mellanox/mlx5/core/en_main.c +69 -5

138 lines not on this page · raw message

drivers/net/ethernet/mellanox/mlx5/core/en_rep.h +0 -6
index 1d5669801484..fcaabafb2e56 100644
@@ -133,12 +133,6 @@ struct mlx5e_neigh_hash_entry {
 	/* encap list sharing the same neigh */
 	struct list_head encap_list;
 
-	/* valid only when the neigh reference is taken during
-	 * neigh_update_work workqueue callback.
-	 */
-	struct neighbour *n;
-	struct work_struct neigh_update_work;
-
 	/* neigh hash entry can be deleted only when the refcount is zero.
 	 * refcount is needed to avoid neigh hash entry removal by TC, while
 	 * it's used by the neigh notification call.
drivers/net/ethernet/mellanox/mlx5/core/eq.c +41 -1

80 lines not on this page · raw message

drivers/net/ethernet/mellanox/mlx5/core/lib/eq.h +2 -0
index 4aaca7400fb2..5c681e31983b 100644
@@ -37,6 +37,7 @@ struct mlx5_eq {
 struct mlx5_eq_async {
 	struct mlx5_eq          core;
 	struct notifier_block   irq_nb;
+	spinlock_t              lock; /* To avoid irq EQ handle races with resiliency flows */
 };
 
 struct mlx5_eq_comp {
@@ -81,6 +82,7 @@ void mlx5_cq_tasklet_cb(unsigned long data);
 struct cpumask *mlx5_eq_comp_cpumask(struct mlx5_core_dev *dev, int ix);
 
 u32 mlx5_eq_poll_irq_disabled(struct mlx5_eq_comp *eq);
+void mlx5_cmd_eq_recover(struct mlx5_core_dev *dev);
 void mlx5_eq_synchronize_async_irq(struct mlx5_core_dev *dev);
 void mlx5_eq_synchronize_cmd_irq(struct mlx5_core_dev *dev);
 
drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c +1 -1
index 373981a659c7..6fd974920394 100644
@@ -115,7 +115,7 @@ static int request_irqs(struct mlx5_core_dev *dev, int nvec)
 	return 0;
 
 err_request_irq:
-	for (; i >= 0; i--) {
+	while (i--) {
 		struct mlx5_irq *irq = mlx5_irq_get(dev, i);
 		int irqn = pci_irq_vector(dev->pdev, i);
 
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c +2 -1
index 5c020403342f..7cccc41dd69c 100644
@@ -292,13 +292,14 @@ mlxsw_sp_acl_tcam_group_add(struct mlxsw_sp_acl_tcam *tcam,
 	int err;
 
 	group->tcam = tcam;
-	mutex_init(&group->lock);
 	INIT_LIST_HEAD(&group->region_list);
 
 	err = mlxsw_sp_acl_tcam_group_id_get(tcam, &group->id);
 	if (err)
 		return err;
 
+	mutex_init(&group->lock);
+
 	return 0;
 }
 
drivers/net/ethernet/mscc/Makefile +1 -1
index 91b33b55054e..ad97a5cca6f9 100644
@@ -2,4 +2,4 @@
 obj-$(CONFIG_MSCC_OCELOT_SWITCH) += mscc_ocelot_common.o
 mscc_ocelot_common-y := ocelot.o ocelot_io.o
 mscc_ocelot_common-y += ocelot_regs.o ocelot_tc.o ocelot_police.o ocelot_ace.o ocelot_flower.o ocelot_ptp.o
-obj-$(CONFIG_MSCC_OCELOT_SWITCH_OCELOT) += ocelot_board.o
+obj-$(CONFIG_MSCC_OCELOT_SWITCH_OCELOT) += ocelot_vsc7514.o
drivers/net/ethernet/mscc/ocelot.c +18 -25

69 lines not on this page · raw message

drivers/net/ethernet/mscc/ocelot_board.c deleted +0 -626

626 lines not on this page · raw message

drivers/net/ethernet/mscc/ocelot_vsc7514.c new file +639 -0

271 lines not on this page · raw message

drivers/net/ethernet/realtek/r8169_main.c +9 -2
index b660ddbe4025..fe173ea894e2 100644

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

drivers/net/ethernet/renesas/ravb_main.c +55 -55

110 lines not on this page · raw message

drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c +0 -1
index 2ac9dfb3462c..9e6d60e75f85 100644

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

drivers/net/ethernet/stmicro/stmmac/stmmac.h +2 -0
index 9c02fc754bf1..545696971f65 100644

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

drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c +15 -12
index eae11c585025..b82c6715f95f 100644

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

drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +15 -8
index 73677c3b33b6..73465e5f5a41 100644

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

drivers/net/macsec.c +3 -1
index 9159846b8b93..787ac2c8e74e 100644

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

drivers/net/phy/Kconfig +1 -0
index e351d65533aa..06146ae4c6d8 100644

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

drivers/net/phy/realtek.c +16 -15
index c7229d022a27..48ba757046ce 100644

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

drivers/net/team/team.c +2 -1
index 8c1e02752ff6..bcc4a4c011f1 100644

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

drivers/net/usb/ax88179_178a.c +1 -0
index a38e868e44d4..f0ef3706aad9 100644

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

drivers/net/usb/rtl8150.c +12 -4
index e7c630d37589..63a4da0b2d6d 100644

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

drivers/net/virtio_net.c +7 -1
index ba38765dc490..c34927b1d806 100644

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

drivers/net/vmxnet3/vmxnet3_drv.c +2 -3
index 2818015324b8..336504b7531d 100644

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

drivers/net/vmxnet3/vmxnet3_ethtool.c +28 -0
index def27afa1c69..358667792004 100644

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

drivers/net/vmxnet3/vmxnet3_int.h +4 -0
index 5d2b062215a2..d958b92c9429 100644

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

drivers/nvme/host/core.c +3 -1
index 69165a8f7c1f..a9d5682cdea5 100644

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

drivers/nvme/host/tcp.c +3 -4
index 24467eea7399..9b3827a6f3a3 100644

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

drivers/platform/olpc/olpc-ec.c +3 -1
index 190e4a6186ef..f64b82824db2 100644

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

drivers/platform/x86/Kconfig +2 -0
index 0581a54cf562..a5ad36083b67 100644

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

drivers/platform/x86/asus-nb-wmi.c +32 -0
index 6c42f73c1dfd..805ce604dee6 100644

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

drivers/platform/x86/asus-wmi.c +9 -7
index 8f4acdc06b13..ae6289d37faf 100644

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

drivers/platform/x86/asus-wmi.h +1 -0
index 4f31b68642a0..1a95c172f94b 100644

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

drivers/platform/x86/intel-vbtn.c +51 -13

64 lines not on this page · raw message

drivers/platform/x86/thinkpad_acpi.c +4 -2
index 0f6fceda5fc0..fe8386ab363c 100644

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

drivers/tty/vt/selection.c +1 -1
index 31bb3647a99c..8e74654c1b27 100644

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

drivers/vhost/vdpa.c +74 -48

122 lines not on this page · raw message

drivers/vhost/vhost.c +6 -6
index d7b8df3edffc..5f0030e08688 100644

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

drivers/video/console/newport_con.c +1 -6
index df3c52d72159..8653950c56d4 100644

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

drivers/video/fbdev/core/fbcon.c +12 -0
index 09cb46e94f40..3e82f632841d 100644

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

drivers/video/fbdev/core/fbcon.h +0 -7
index 78bb14c03643..9315b360c898 100644

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

drivers/video/fbdev/core/fbcon_rotate.c +1 -0
index c0d445294aa7..ac72d4f85f7d 100644

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

drivers/video/fbdev/core/tileblit.c +1 -0
index eb664dbf96f6..adff8d6ffe6f 100644

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

fs/afs/inode.c +38 -9

47 lines not on this page · raw message

fs/afs/internal.h +1 -0
index 792ac711985e..e1ebead2e505 100644

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

fs/afs/write.c +11 -0
index a121c247d95a..0a98cf36e78a 100644

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

fs/btrfs/dev-replace.c +5 -1
index eb86e4b88c73..e4a1c6afe35d 100644

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

fs/btrfs/volumes.c +5 -8
index 956eb0d6bc58..79e9a80bd37a 100644

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

fs/btrfs/volumes.h +3 -0
index 75af2334b2e3..83862e27f566 100644

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

fs/cifs/smb2ops.c +1 -1
index 32f90dc82c84..d44df8f95bcd 100644

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

fs/exfat/cache.c +0 -11
index 03d0824fc368..5a2f119b7e8c 100644

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

fs/exfat/exfat_fs.h +2 -1
index 75c7bdbeba6d..fb49928687bb 100644

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

fs/exfat/inode.c +0 -2
index cf9ca6c4d046..1952b88e14db 100644

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

fs/exfat/super.c +4 -1
index 253a92460d52..142f3459c7ca 100644

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

fs/io_uring.c +14 -5
index ebc3586b1879..d2bb2ae9551f 100644

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

fs/pipe.c +5 -6
index 117db82b10af..0ac197658a2d 100644

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

fs/splice.c +20 -0
index c3d00dfc7344..ce75aec52274 100644

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

include/asm-generic/vmlinux.lds.h +1 -1
index 9e9b1ec30b90..d7eb9e7689b4 100644

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

include/linux/font.h +13 -0
index 51b91c8b69d5..59faa80f586d 100644

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

include/linux/khugepaged.h +5 -0
index bc45ea1efbf7..c941b7377321 100644

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

include/linux/mlx5/driver.h +2 -0
index 1e6ca716635a..484cd8ba869c 100644

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

include/linux/net.h +16 -0
index 016a9c5faa34..5fab2dcd3364 100644

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

include/linux/pagemap.h +2 -1
index cf2468da68e9..601ad6957bb9 100644

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

include/linux/watch_queue.h +6 -0
index 5e08db2adc31..c994d1b2cdba 100644

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

include/net/act_api.h +0 -2
index 8c3934880670..7dc88ebb6e3e 100644

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

include/net/netlink.h +2 -1
index c0411f14fb53..6df0c91870a3 100644

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

include/net/xfrm.h +6 -10
index 51f65d23ebaf..2e32cb10ac16 100644

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

include/soc/mscc/ocelot.h +1 -0
index 4953e9994df3..8e174a24c575 100644

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

kernel/bpf/sysfs_btf.c +3 -3
index 3b495773de5a..11b3380887fa 100644

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

kernel/bpf/verifier.c +4 -4
index 94cead5a43e5..89b07db14676 100644

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

kernel/events/core.c +3 -2
index 856d98c36f56..fd8cd00099da 100644

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

kernel/umh.c +9 -0
index 79f139a7ca03..6aaf456d402d 100644

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

lib/fonts/font_10x18.c +4 -5
index 532f0ff89a96..0e2deac97da0 100644

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

lib/fonts/font_6x10.c +5 -4
index 09b2cc03435b..87da8acd07db 100644

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

lib/fonts/font_6x11.c +4 -5
index d7136c33f1f0..5e975dfa10a5 100644

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

lib/fonts/font_7x14.c +4 -5
index 89752d0b23e8..86d298f38505 100644

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

lib/fonts/font_8x16.c +4 -5
index b7ab1f5fbdb8..37cedd36ca5e 100644

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

lib/fonts/font_8x8.c +4 -5
index 2328ebc8bab5..8ab695538395 100644

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

lib/fonts/font_acorn_8x8.c +6 -3
index 0ff0e85d4481..069b3e80c434 100644

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

lib/fonts/font_mini_4x6.c +4 -4
index 838caa1cfef7..1449876c6a27 100644

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

lib/fonts/font_pearl_8x8.c +4 -5
index b15d3c342c5b..32d65551e7ed 100644

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

lib/fonts/font_sun12x22.c +4 -5
index 955d6eee3959..641a6b4dca42 100644

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

lib/fonts/font_sun8x16.c +4 -3
index 03d71e53954a..193fe6d988e0 100644

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

lib/fonts/font_ter16x32.c +4 -5
index 3f0cf1ccdf3a..91b9c283bd9c 100644

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

mm/khugepaged.c +23 -2
index e6fc7c3e7dc9..bc2812bb1a01 100644

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

mm/page_alloc.c +3 -0
index 898ff44f2c7b..43f6d91f5715 100644

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

net/bridge/br_fdb.c +2 -0
index 4877a0db16c6..a8fa622e2d9b 100644

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

net/core/skbuff.c +2 -2
index c50bd7a7943a..72f4a3730ecf 100644

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

net/ipv4/tcp.c +2 -1
index 30c1142584b1..06a8242aa698 100644

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

net/ipv4/tcp_ipv4.c +3 -3
index 04bfcbbfee83..ab4576ac1fe6 100644

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

net/netlink/genetlink.c +8 -1
index 9395ee8a868d..a4148ef314ea 100644

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

net/netlink/policy.c +10 -14
index 2b3e26f7496f..ceeaee157b2f 100644

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

net/openvswitch/conntrack.c +13 -9
index 4340f25fe390..67dacc7152f7 100644

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

net/qrtr/ns.c +25 -9
index d8252fdab851..934999b56d60 100644

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

net/rxrpc/conn_event.c +3 -3
index 447f55ca6886..6e972b4823ef 100644

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

net/rxrpc/key.c +14 -6
index 0c98313dd7a8..85a9ff8cd236 100644

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

net/sched/act_api.c +34 -18

52 lines not on this page · raw message

net/sched/act_bpf.c +1 -3
index 54d5652cfe6c..a4c7ba35a343 100644

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

net/sched/act_connmark.c +0 -1
index f901421b0634..e19885d7fe2c 100644

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

net/sched/act_csum.c +0 -3
index c60674cf25c4..8b3f45cdc319 100644

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

net/sched/act_ct.c +0 -2
index 41d8440deaf1..0eb4722cf7cd 100644

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

net/sched/act_ctinfo.c +0 -3
index b5042f3ea079..6084300e51ad 100644

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

net/sched/act_gact.c +0 -2
index 416065772719..1a29751ae63b 100644

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

net/sched/act_gate.c +0 -3
index 323ae7f6315d..c86e7fa7b220 100644

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

net/sched/act_ife.c +0 -3
index 5c568757643b..a2ddea04183a 100644

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

net/sched/act_ipt.c +0 -2
index 400a2cfe8452..8dc3bec0d325 100644

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

net/sched/act_mirred.c +0 -2
index 83dd82fc9f40..cd3a7f814fc8 100644

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

net/sched/act_mpls.c +0 -2
index 8118e2640979..e298ec3b3c9e 100644

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

net/sched/act_nat.c +0 -3
index 855a6fa16a62..1ebd2a86d980 100644

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

net/sched/act_pedit.c +0 -2
index d41d6200d9de..ed1700fe662e 100644

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

net/sched/act_police.c +0 -2
index 8b7a0ac96c51..2d236b9a411f 100644

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

net/sched/act_sample.c +0 -2
index 5e2df590bb58..3ebf9ede3cf1 100644

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

net/sched/act_simple.c +0 -2
index 9813ca4006dd..a4f3d0f0daa9 100644

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

net/sched/act_skbedit.c +0 -2
index b2b3faa57294..8012ae84847b 100644

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

net/sched/act_skbmod.c +0 -2
index 39e6d94cfafb..81a1c67335be 100644

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

net/sched/act_tunnel_key.c +0 -3
index 536c4bc31be6..23cf8469a2e7 100644

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

net/sched/act_vlan.c +0 -2
index c91d3958fcbb..68137d7519d0 100644

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

net/sctp/auth.c +1 -0
index 83e97e8892e0..155aac6943d1 100644

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

net/tls/tls_sw.c +7 -2
index 24f64bc0de18..d8bc02b185f3 100644

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

net/wireless/nl80211.c +3 -0
index 279c87a2a523..4d7b25506722 100644

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

net/xdp/xsk.c +16 -1
index 3700266229f6..dcce888b8ef5 100644

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

net/xfrm/espintcp.c +5 -1
index 827ccdf2db57..1f08ebf7d80c 100644

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

net/xfrm/xfrm_interface.c +1 -1
index b615729812e5..ade2eba863b3 100644

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

net/xfrm/xfrm_state.c +37 -5

42 lines not on this page · 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.