linux_dsm_epyc7002/drivers/net
Qian Cai 60d60c8fbd net/mlx5e: always initialize frag->last_in_page
The commit 069d11465a ("net/mlx5e: RX, Enhance legacy Receive Queue
memory scheme") introduced an undefined behaviour below due to
"frag->last_in_page" is only initialized in mlx5e_init_frags_partition()
when,

if (next_frag.offset + frag_info[f].frag_stride > PAGE_SIZE)

or after bailed out the loop,

for (i = 0; i < mlx5_wq_cyc_get_size(&rq->wqe.wq); i++)

As the result, there could be some "frag" have uninitialized
value of "last_in_page".

Later, get_frag() obtains those "frag" and check "frag->last_in_page" in
mlx5e_put_rx_frag() and triggers the error during boot. Fix it by always
initializing "frag->last_in_page" to "false" in
mlx5e_init_frags_partition().

UBSAN: Undefined behaviour in
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c:325:12
load of value 170 is not a valid value for type 'bool' (aka '_Bool')
Call trace:
 dump_backtrace+0x0/0x264
 show_stack+0x20/0x2c
 dump_stack+0xb0/0x104
 __ubsan_handle_load_invalid_value+0x104/0x128
 mlx5e_handle_rx_cqe+0x8e8/0x12cc [mlx5_core]
 mlx5e_poll_rx_cq+0xca8/0x1a94 [mlx5_core]
 mlx5e_napi_poll+0x17c/0xa30 [mlx5_core]
 net_rx_action+0x248/0x940
 __do_softirq+0x350/0x7b8
 irq_exit+0x200/0x26c
 __handle_domain_irq+0xc8/0x128
 gic_handle_irq+0x138/0x228
 el1_irq+0xb8/0x140
 arch_cpu_idle+0x1a4/0x348
 do_idle+0x114/0x1b0
 cpu_startup_entry+0x24/0x28
 rest_init+0x1ac/0x1dc
 arch_call_rest_init+0x10/0x18
 start_kernel+0x4d4/0x57c

Fixes: 069d11465a ("net/mlx5e: RX, Enhance legacy Receive Queue memory scheme")
Signed-off-by: Qian Cai <cai@lca.pw>
Reviewed-by: Tariq Toukan <tariqt@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-08-05 11:13:05 -07:00
..
appletalk
arcnet arcnet: com20020-isa: Mark expected switch fall-throughs 2019-07-29 10:23:59 -07:00
bonding bonding: Force slave speed check after link state recovery for 802.3ad 2019-07-22 12:09:32 -07:00
caif caif-hsi: fix possible deadlock in cfhsi_exit_module() 2019-07-17 11:58:56 -07:00
can can: peak_usb: fix potential double kfree_skb() 2019-07-24 11:16:31 +02:00
dsa net: dsa: mv88e6xxx: drop adjust_link to enabled phylink 2019-08-05 10:55:58 -07:00
ethernet net/mlx5e: always initialize frag->last_in_page 2019-08-05 11:13:05 -07:00
fddi The main MIPS changes for a pretty light v5.3 cycle, including: 2019-07-17 09:42:03 -07:00
fjes fjes: no need to check return value of debugfs_create functions 2019-06-22 16:43:08 -07:00
hamradio net: hamradio: baycom_epp: Mark expected switch fall-through 2019-07-29 13:57:58 -07:00
hippi hippi: Remove call to memset after pci_alloc_consistent 2019-07-15 11:06:27 -07:00
hyperv hv_netvsc: Fix extra rcu_read_unlock in netvsc_recv_callback() 2019-07-21 20:40:28 -07:00
ieee802154
ipvlan
netdevsim drivers: net: use flow block API 2019-07-09 14:38:50 -07:00
phy net: phy: fix race in genphy_update_link 2019-08-02 18:16:04 -07:00
plip
ppp compat_ioctl: pppoe: fix PPPOEIOCSFWD handling 2019-07-30 14:42:13 -07:00
slip
team Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-06-27 21:06:39 -07:00
usb r8152: fix typo in register name 2019-08-02 18:17:06 -07:00
vmxnet3 vmxnet3: Remove call to memset after dma_alloc_coherent 2019-07-15 11:06:27 -07:00
wan net: wan: sdla: Mark expected switch fall-through 2019-07-29 13:57:58 -07:00
wimax
wireless mac80211_hwsim: Fix possible null-pointer dereferences in hwsim_dump_radio_nl() 2019-07-29 16:20:34 +02:00
xen-netback
dummy.c
eql.c
geneve.c SPDX update for 5.2-rc6 2019-06-21 09:58:42 -07:00
gtp.c gtp: add missing gtp_encap_disable_sock() in gtp_encap_enable() 2019-07-07 18:42:48 -07:00
ifb.c
Kconfig
LICENSE.SRC
loopback.c loopback: fix lockdep splat 2019-07-03 11:24:38 -07:00
macsec.c macsec: fix checksumming after decryption 2019-07-02 14:12:29 -07:00
macvlan.c
macvtap.c
Makefile
mdio.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
mii.c
net_failover.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tap.c coallocate socket_wq with socket itself 2019-07-08 19:25:19 -07:00
thunderbolt.c
tun.c tun: mark small packets as owned by the tap sock 2019-07-25 11:38:32 -07:00
veth.c veth: Support bulk XDP_TX 2019-06-25 14:26:54 +02:00
virtio_net.c virtio_net: enable napi_tx by default 2019-06-14 19:34:27 -07:00
vrf.c vrf: make sure skb->data contains ip header to make routing 2019-07-21 13:32:51 -07:00
vsockmon.c
vxlan.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-07-08 19:48:57 -07:00
xen-netfront.c