From: David S. Miller Date: Sat, 11 Jul 2020 07:46:00 +0000 (-0700) Subject: Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=71930d61025e7d0254f3c682cb1b5242e0499cf3;p=linux.git Merge git://git./linux/kernel/git/netdev/net All conflicts seemed rather trivial, with some guidance from Saeed Mameed on the tc_ct.c one. Signed-off-by: David S. Miller --- 71930d61025e7d0254f3c682cb1b5242e0499cf3 diff --cc drivers/net/ethernet/mellanox/mlx5/core/en/port.c index be83db63aca0c,3cf3e35053f77..5de1cb9f53308 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/port.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/port.c @@@ -76,11 -76,23 +76,26 @@@ static const u32 mlx5e_ext_link_speed[M [MLX5E_100GAUI_2_100GBASE_CR2_KR2] = 100000, [MLX5E_200GAUI_4_200GBASE_CR4_KR4] = 200000, [MLX5E_400GAUI_8] = 400000, + [MLX5E_100GAUI_1_100GBASE_CR_KR] = 100000, + [MLX5E_200GAUI_2_200GBASE_CR2_KR2] = 200000, + [MLX5E_400GAUI_4_400GBASE_CR4_KR4] = 400000, }; + bool mlx5e_ptys_ext_supported(struct mlx5_core_dev *mdev) + { + struct mlx5e_port_eth_proto eproto; + int err; + + if (MLX5_CAP_PCAM_FEATURE(mdev, ptys_extended_ethernet)) + return true; + + err = mlx5_port_query_eth_proto(mdev, 1, true, &eproto); + if (err) + return false; + + return !!eproto.cap; + } + static void mlx5e_port_get_speed_arr(struct mlx5_core_dev *mdev, const u32 **arr, u32 *size, bool force_legacy) diff --cc drivers/net/ethernet/mellanox/mlx5/core/en_main.c index e054726b2ac69,081f15074cac4..4e5d83f6334a4 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c @@@ -5150,14 -5118,12 +5147,18 @@@ static int mlx5e_init_nic_rx(struct mlx if (err) goto err_destroy_flow_steering; + err = mlx5e_accel_init_rx(priv); + if (err) + goto err_tc_nic_cleanup; + + #ifdef CONFIG_MLX5_EN_ARFS + priv->netdev->rx_cpu_rmap = mlx5_eq_table_get_rmap(priv->mdev); + #endif + return 0; +err_tc_nic_cleanup: + mlx5e_tc_nic_cleanup(priv); err_destroy_flow_steering: mlx5e_destroy_flow_steering(priv); err_destroy_xsk_tirs: diff --cc drivers/net/ipa/gsi.c index c84b8d92caa9b,ac7e5a04c8ac9..1ab41e0e134e3 --- a/drivers/net/ipa/gsi.c +++ b/drivers/net/ipa/gsi.c @@@ -508,11 -500,16 +508,18 @@@ static int gsi_channel_stop_command(str int ret; state = gsi_channel_state(channel); + + /* Channel could have entered STOPPED state since last call + * if it timed out. If so, we're done. + */ + if (state == GSI_CHANNEL_STATE_STOPPED) + return 0; + if (state != GSI_CHANNEL_STATE_STARTED && - state != GSI_CHANNEL_STATE_STOP_IN_PROC) + state != GSI_CHANNEL_STATE_STOP_IN_PROC) { + dev_err(dev, "bad channel state %u before stop\n", state); return -EINVAL; + } ret = gsi_channel_command(channel, GSI_CH_STOP); diff --cc include/uapi/linux/bpf.h index da9bf35a26f85,8bd33050b7bbb..ea382e47e400c --- a/include/uapi/linux/bpf.h +++ b/include/uapi/linux/bpf.h @@@ -3222,9 -3220,9 +3223,9 @@@ union bpf_attr * power heuristics and for reporting, not to make 100% correct * calculation. * Return - * Requested value, or 0, if flags are not recognized. + * Requested value, or 0, if *flags* are not recognized. * - * int bpf_csum_level(struct sk_buff *skb, u64 level) + * long bpf_csum_level(struct sk_buff *skb, u64 level) * Description * Change the skbs checksum level by one layer up or down, or * reset it entirely to none in order to have the stack perform diff --cc tools/include/uapi/linux/bpf.h index da9bf35a26f85,8bd33050b7bbb..ea382e47e400c --- a/tools/include/uapi/linux/bpf.h +++ b/tools/include/uapi/linux/bpf.h @@@ -3222,9 -3220,9 +3223,9 @@@ union bpf_attr * power heuristics and for reporting, not to make 100% correct * calculation. * Return - * Requested value, or 0, if flags are not recognized. + * Requested value, or 0, if *flags* are not recognized. * - * int bpf_csum_level(struct sk_buff *skb, u64 level) + * long bpf_csum_level(struct sk_buff *skb, u64 level) * Description * Change the skbs checksum level by one layer up or down, or * reset it entirely to none in order to have the stack perform