diff options
| -rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/en.h | 1 | ||||
| -rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/en_dcbnl.c | 24 | ||||
| -rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c | 6 | ||||
| -rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 1 | ||||
| -rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 2 | ||||
| -rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 8 | ||||
| -rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/en_tx.c | 17 | ||||
| -rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c | 2 | ||||
| -rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/main.c | 6 | ||||
| -rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/srq.c | 12 | ||||
| -rw-r--r-- | include/linux/mlx5/driver.h | 4 |
11 files changed, 44 insertions, 39 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en.h b/drivers/net/ethernet/mellanox/mlx5/core/en.h index 0039b4725405..2f26fb34d741 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/en.h | |||
| @@ -263,6 +263,7 @@ struct mlx5e_dcbx { | |||
| 263 | 263 | ||
| 264 | /* The only setting that cannot be read from FW */ | 264 | /* The only setting that cannot be read from FW */ |
| 265 | u8 tc_tsa[IEEE_8021QAZ_MAX_TCS]; | 265 | u8 tc_tsa[IEEE_8021QAZ_MAX_TCS]; |
| 266 | u8 cap; | ||
| 266 | }; | 267 | }; |
| 267 | #endif | 268 | #endif |
| 268 | 269 | ||
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_dcbnl.c b/drivers/net/ethernet/mellanox/mlx5/core/en_dcbnl.c index 2eb54d36e16e..c1d384fca4dc 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_dcbnl.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_dcbnl.c | |||
| @@ -288,13 +288,8 @@ static int mlx5e_dcbnl_ieee_setpfc(struct net_device *dev, | |||
| 288 | static u8 mlx5e_dcbnl_getdcbx(struct net_device *dev) | 288 | static u8 mlx5e_dcbnl_getdcbx(struct net_device *dev) |
| 289 | { | 289 | { |
| 290 | struct mlx5e_priv *priv = netdev_priv(dev); | 290 | struct mlx5e_priv *priv = netdev_priv(dev); |
| 291 | struct mlx5e_dcbx *dcbx = &priv->dcbx; | ||
| 292 | u8 mode = DCB_CAP_DCBX_VER_IEEE | DCB_CAP_DCBX_VER_CEE; | ||
| 293 | |||
| 294 | if (dcbx->mode == MLX5E_DCBX_PARAM_VER_OPER_HOST) | ||
| 295 | mode |= DCB_CAP_DCBX_HOST; | ||
| 296 | 291 | ||
| 297 | return mode; | 292 | return priv->dcbx.cap; |
| 298 | } | 293 | } |
| 299 | 294 | ||
| 300 | static u8 mlx5e_dcbnl_setdcbx(struct net_device *dev, u8 mode) | 295 | static u8 mlx5e_dcbnl_setdcbx(struct net_device *dev, u8 mode) |
| @@ -312,6 +307,7 @@ static u8 mlx5e_dcbnl_setdcbx(struct net_device *dev, u8 mode) | |||
| 312 | /* set dcbx to fw controlled */ | 307 | /* set dcbx to fw controlled */ |
| 313 | if (!mlx5e_dcbnl_set_dcbx_mode(priv, MLX5E_DCBX_PARAM_VER_OPER_AUTO)) { | 308 | if (!mlx5e_dcbnl_set_dcbx_mode(priv, MLX5E_DCBX_PARAM_VER_OPER_AUTO)) { |
| 314 | dcbx->mode = MLX5E_DCBX_PARAM_VER_OPER_AUTO; | 309 | dcbx->mode = MLX5E_DCBX_PARAM_VER_OPER_AUTO; |
| 310 | dcbx->cap &= ~DCB_CAP_DCBX_HOST; | ||
| 315 | return 0; | 311 | return 0; |
| 316 | } | 312 | } |
| 317 | 313 | ||
| @@ -324,6 +320,8 @@ static u8 mlx5e_dcbnl_setdcbx(struct net_device *dev, u8 mode) | |||
| 324 | if (mlx5e_dcbnl_switch_to_host_mode(netdev_priv(dev))) | 320 | if (mlx5e_dcbnl_switch_to_host_mode(netdev_priv(dev))) |
| 325 | return 1; | 321 | return 1; |
| 326 | 322 | ||
| 323 | dcbx->cap = mode; | ||
| 324 | |||
| 327 | return 0; | 325 | return 0; |
| 328 | } | 326 | } |
| 329 | 327 | ||
| @@ -628,9 +626,9 @@ static u8 mlx5e_dcbnl_getcap(struct net_device *netdev, | |||
| 628 | *cap = false; | 626 | *cap = false; |
| 629 | break; | 627 | break; |
| 630 | case DCB_CAP_ATTR_DCBX: | 628 | case DCB_CAP_ATTR_DCBX: |
| 631 | *cap = (DCB_CAP_DCBX_LLD_MANAGED | | 629 | *cap = priv->dcbx.cap | |
| 632 | DCB_CAP_DCBX_VER_CEE | | 630 | DCB_CAP_DCBX_VER_CEE | |
| 633 | DCB_CAP_DCBX_STATIC); | 631 | DCB_CAP_DCBX_VER_IEEE; |
| 634 | break; | 632 | break; |
| 635 | default: | 633 | default: |
| 636 | *cap = 0; | 634 | *cap = 0; |
| @@ -754,8 +752,16 @@ void mlx5e_dcbnl_initialize(struct mlx5e_priv *priv) | |||
| 754 | { | 752 | { |
| 755 | struct mlx5e_dcbx *dcbx = &priv->dcbx; | 753 | struct mlx5e_dcbx *dcbx = &priv->dcbx; |
| 756 | 754 | ||
| 755 | if (!MLX5_CAP_GEN(priv->mdev, qos)) | ||
| 756 | return; | ||
| 757 | |||
| 757 | if (MLX5_CAP_GEN(priv->mdev, dcbx)) | 758 | if (MLX5_CAP_GEN(priv->mdev, dcbx)) |
| 758 | mlx5e_dcbnl_query_dcbx_mode(priv, &dcbx->mode); | 759 | mlx5e_dcbnl_query_dcbx_mode(priv, &dcbx->mode); |
| 759 | 760 | ||
| 761 | priv->dcbx.cap = DCB_CAP_DCBX_VER_CEE | | ||
| 762 | DCB_CAP_DCBX_VER_IEEE; | ||
| 763 | if (priv->dcbx.mode == MLX5E_DCBX_PARAM_VER_OPER_HOST) | ||
| 764 | priv->dcbx.cap |= DCB_CAP_DCBX_HOST; | ||
| 765 | |||
| 760 | mlx5e_ets_init(priv); | 766 | mlx5e_ets_init(priv); |
| 761 | } | 767 | } |
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c b/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c index 917fade5f5d5..f5594014715b 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c | |||
| @@ -641,8 +641,10 @@ int mlx5e_ethtool_set_channels(struct mlx5e_priv *priv, | |||
| 641 | 641 | ||
| 642 | new_channels.params = priv->channels.params; | 642 | new_channels.params = priv->channels.params; |
| 643 | new_channels.params.num_channels = count; | 643 | new_channels.params.num_channels = count; |
| 644 | mlx5e_build_default_indir_rqt(priv->mdev, new_channels.params.indirection_rqt, | 644 | if (!netif_is_rxfh_configured(priv->netdev)) |
| 645 | MLX5E_INDIR_RQT_SIZE, count); | 645 | mlx5e_build_default_indir_rqt(priv->mdev, |
| 646 | new_channels.params.indirection_rqt, | ||
| 647 | MLX5E_INDIR_RQT_SIZE, count); | ||
| 646 | 648 | ||
| 647 | if (!test_bit(MLX5E_STATE_OPENED, &priv->state)) { | 649 | if (!test_bit(MLX5E_STATE_OPENED, &priv->state)) { |
| 648 | priv->channels.params = new_channels.params; | 650 | priv->channels.params = new_channels.params; |
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c index 57f31fa478ce..6ad7f07e7861 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c | |||
| @@ -1969,6 +1969,7 @@ static void mlx5e_build_rx_cq_param(struct mlx5e_priv *priv, | |||
| 1969 | } | 1969 | } |
| 1970 | 1970 | ||
| 1971 | mlx5e_build_common_cq_param(priv, param); | 1971 | mlx5e_build_common_cq_param(priv, param); |
| 1972 | param->cq_period_mode = params->rx_cq_period_mode; | ||
| 1972 | } | 1973 | } |
| 1973 | 1974 | ||
| 1974 | static void mlx5e_build_tx_cq_param(struct mlx5e_priv *priv, | 1975 | static void mlx5e_build_tx_cq_param(struct mlx5e_priv *priv, |
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c index 325b2c8c1c6d..7344433259fc 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | |||
| @@ -222,13 +222,13 @@ static inline int mlx5e_page_alloc_mapped(struct mlx5e_rq *rq, | |||
| 222 | if (unlikely(!page)) | 222 | if (unlikely(!page)) |
| 223 | return -ENOMEM; | 223 | return -ENOMEM; |
| 224 | 224 | ||
| 225 | dma_info->page = page; | ||
| 226 | dma_info->addr = dma_map_page(rq->pdev, page, 0, | 225 | dma_info->addr = dma_map_page(rq->pdev, page, 0, |
| 227 | RQ_PAGE_SIZE(rq), rq->buff.map_dir); | 226 | RQ_PAGE_SIZE(rq), rq->buff.map_dir); |
| 228 | if (unlikely(dma_mapping_error(rq->pdev, dma_info->addr))) { | 227 | if (unlikely(dma_mapping_error(rq->pdev, dma_info->addr))) { |
| 229 | put_page(page); | 228 | put_page(page); |
| 230 | return -ENOMEM; | 229 | return -ENOMEM; |
| 231 | } | 230 | } |
| 231 | dma_info->page = page; | ||
| 232 | 232 | ||
| 233 | return 0; | 233 | return 0; |
| 234 | } | 234 | } |
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c index 3c536f560dd2..7f282e8f4e7f 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | |||
| @@ -1443,12 +1443,10 @@ static int mlx5e_route_lookup_ipv6(struct mlx5e_priv *priv, | |||
| 1443 | struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; | 1443 | struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; |
| 1444 | int ret; | 1444 | int ret; |
| 1445 | 1445 | ||
| 1446 | dst = ip6_route_output(dev_net(mirred_dev), NULL, fl6); | 1446 | ret = ipv6_stub->ipv6_dst_lookup(dev_net(mirred_dev), NULL, &dst, |
| 1447 | ret = dst->error; | 1447 | fl6); |
| 1448 | if (ret) { | 1448 | if (ret < 0) |
| 1449 | dst_release(dst); | ||
| 1450 | return ret; | 1449 | return ret; |
| 1451 | } | ||
| 1452 | 1450 | ||
| 1453 | *out_ttl = ip6_dst_hoplimit(dst); | 1451 | *out_ttl = ip6_dst_hoplimit(dst); |
| 1454 | 1452 | ||
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c index aaa0f4ebba9a..31353e5c3c78 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c | |||
| @@ -128,10 +128,10 @@ static inline int mlx5e_skb_l3_header_offset(struct sk_buff *skb) | |||
| 128 | return mlx5e_skb_l2_header_offset(skb); | 128 | return mlx5e_skb_l2_header_offset(skb); |
| 129 | } | 129 | } |
| 130 | 130 | ||
| 131 | static inline unsigned int mlx5e_calc_min_inline(enum mlx5_inline_modes mode, | 131 | static inline u16 mlx5e_calc_min_inline(enum mlx5_inline_modes mode, |
| 132 | struct sk_buff *skb) | 132 | struct sk_buff *skb) |
| 133 | { | 133 | { |
| 134 | int hlen; | 134 | u16 hlen; |
| 135 | 135 | ||
| 136 | switch (mode) { | 136 | switch (mode) { |
| 137 | case MLX5_INLINE_MODE_NONE: | 137 | case MLX5_INLINE_MODE_NONE: |
| @@ -140,19 +140,22 @@ static inline unsigned int mlx5e_calc_min_inline(enum mlx5_inline_modes mode, | |||
| 140 | hlen = eth_get_headlen(skb->data, skb_headlen(skb)); | 140 | hlen = eth_get_headlen(skb->data, skb_headlen(skb)); |
| 141 | if (hlen == ETH_HLEN && !skb_vlan_tag_present(skb)) | 141 | if (hlen == ETH_HLEN && !skb_vlan_tag_present(skb)) |
| 142 | hlen += VLAN_HLEN; | 142 | hlen += VLAN_HLEN; |
| 143 | return hlen; | 143 | break; |
| 144 | case MLX5_INLINE_MODE_IP: | 144 | case MLX5_INLINE_MODE_IP: |
| 145 | /* When transport header is set to zero, it means no transport | 145 | /* When transport header is set to zero, it means no transport |
| 146 | * header. When transport header is set to 0xff's, it means | 146 | * header. When transport header is set to 0xff's, it means |
| 147 | * transport header wasn't set. | 147 | * transport header wasn't set. |
| 148 | */ | 148 | */ |
| 149 | if (skb_transport_offset(skb)) | 149 | if (skb_transport_offset(skb)) { |
| 150 | return mlx5e_skb_l3_header_offset(skb); | 150 | hlen = mlx5e_skb_l3_header_offset(skb); |
| 151 | break; | ||
| 152 | } | ||
| 151 | /* fall through */ | 153 | /* fall through */ |
| 152 | case MLX5_INLINE_MODE_L2: | 154 | case MLX5_INLINE_MODE_L2: |
| 153 | default: | 155 | default: |
| 154 | return mlx5e_skb_l2_header_offset(skb); | 156 | hlen = mlx5e_skb_l2_header_offset(skb); |
| 155 | } | 157 | } |
| 158 | return min_t(u16, hlen, skb->len); | ||
| 156 | } | 159 | } |
| 157 | 160 | ||
| 158 | static inline void mlx5e_tx_skb_pull_inline(unsigned char **skb_data, | 161 | static inline void mlx5e_tx_skb_pull_inline(unsigned char **skb_data, |
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c index 95b64025ce36..5bc0593bd76e 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c | |||
| @@ -815,7 +815,7 @@ void esw_offloads_cleanup(struct mlx5_eswitch *esw, int nvports) | |||
| 815 | struct mlx5_eswitch_rep *rep; | 815 | struct mlx5_eswitch_rep *rep; |
| 816 | int vport; | 816 | int vport; |
| 817 | 817 | ||
| 818 | for (vport = 0; vport < nvports; vport++) { | 818 | for (vport = nvports - 1; vport >= 0; vport--) { |
| 819 | rep = &esw->offloads.vport_reps[vport]; | 819 | rep = &esw->offloads.vport_reps[vport]; |
| 820 | if (!rep->valid) | 820 | if (!rep->valid) |
| 821 | continue; | 821 | continue; |
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/main.c b/drivers/net/ethernet/mellanox/mlx5/core/main.c index c065132b956d..16885827367b 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/main.c | |||
| @@ -1186,7 +1186,6 @@ static int mlx5_load_one(struct mlx5_core_dev *dev, struct mlx5_priv *priv, | |||
| 1186 | } | 1186 | } |
| 1187 | } | 1187 | } |
| 1188 | 1188 | ||
| 1189 | clear_bit(MLX5_INTERFACE_STATE_DOWN, &dev->intf_state); | ||
| 1190 | set_bit(MLX5_INTERFACE_STATE_UP, &dev->intf_state); | 1189 | set_bit(MLX5_INTERFACE_STATE_UP, &dev->intf_state); |
| 1191 | out: | 1190 | out: |
| 1192 | mutex_unlock(&dev->intf_state_mutex); | 1191 | mutex_unlock(&dev->intf_state_mutex); |
| @@ -1261,7 +1260,7 @@ static int mlx5_unload_one(struct mlx5_core_dev *dev, struct mlx5_priv *priv, | |||
| 1261 | mlx5_drain_health_recovery(dev); | 1260 | mlx5_drain_health_recovery(dev); |
| 1262 | 1261 | ||
| 1263 | mutex_lock(&dev->intf_state_mutex); | 1262 | mutex_lock(&dev->intf_state_mutex); |
| 1264 | if (test_bit(MLX5_INTERFACE_STATE_DOWN, &dev->intf_state)) { | 1263 | if (!test_bit(MLX5_INTERFACE_STATE_UP, &dev->intf_state)) { |
| 1265 | dev_warn(&dev->pdev->dev, "%s: interface is down, NOP\n", | 1264 | dev_warn(&dev->pdev->dev, "%s: interface is down, NOP\n", |
| 1266 | __func__); | 1265 | __func__); |
| 1267 | if (cleanup) | 1266 | if (cleanup) |
| @@ -1270,7 +1269,6 @@ static int mlx5_unload_one(struct mlx5_core_dev *dev, struct mlx5_priv *priv, | |||
| 1270 | } | 1269 | } |
| 1271 | 1270 | ||
| 1272 | clear_bit(MLX5_INTERFACE_STATE_UP, &dev->intf_state); | 1271 | clear_bit(MLX5_INTERFACE_STATE_UP, &dev->intf_state); |
| 1273 | set_bit(MLX5_INTERFACE_STATE_DOWN, &dev->intf_state); | ||
| 1274 | 1272 | ||
| 1275 | if (mlx5_device_registered(dev)) | 1273 | if (mlx5_device_registered(dev)) |
| 1276 | mlx5_detach_device(dev); | 1274 | mlx5_detach_device(dev); |
| @@ -1565,8 +1563,6 @@ static void shutdown(struct pci_dev *pdev) | |||
| 1565 | int err; | 1563 | int err; |
| 1566 | 1564 | ||
| 1567 | dev_info(&pdev->dev, "Shutdown was called\n"); | 1565 | dev_info(&pdev->dev, "Shutdown was called\n"); |
| 1568 | /* Notify mlx5 clients that the kernel is being shut down */ | ||
| 1569 | set_bit(MLX5_INTERFACE_STATE_SHUTDOWN, &dev->intf_state); | ||
| 1570 | err = mlx5_try_fast_unload(dev); | 1566 | err = mlx5_try_fast_unload(dev); |
| 1571 | if (err) | 1567 | if (err) |
| 1572 | mlx5_unload_one(dev, priv, false); | 1568 | mlx5_unload_one(dev, priv, false); |
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/srq.c b/drivers/net/ethernet/mellanox/mlx5/core/srq.c index f774de6f5fcb..520f6382dfde 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/srq.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/srq.c | |||
| @@ -201,13 +201,13 @@ static int destroy_srq_cmd(struct mlx5_core_dev *dev, | |||
| 201 | static int arm_srq_cmd(struct mlx5_core_dev *dev, struct mlx5_core_srq *srq, | 201 | static int arm_srq_cmd(struct mlx5_core_dev *dev, struct mlx5_core_srq *srq, |
| 202 | u16 lwm, int is_srq) | 202 | u16 lwm, int is_srq) |
| 203 | { | 203 | { |
| 204 | /* arm_srq structs missing using identical xrc ones */ | 204 | u32 srq_in[MLX5_ST_SZ_DW(arm_rq_in)] = {0}; |
| 205 | u32 srq_in[MLX5_ST_SZ_DW(arm_xrc_srq_in)] = {0}; | 205 | u32 srq_out[MLX5_ST_SZ_DW(arm_rq_out)] = {0}; |
| 206 | u32 srq_out[MLX5_ST_SZ_DW(arm_xrc_srq_out)] = {0}; | ||
| 207 | 206 | ||
| 208 | MLX5_SET(arm_xrc_srq_in, srq_in, opcode, MLX5_CMD_OP_ARM_XRC_SRQ); | 207 | MLX5_SET(arm_rq_in, srq_in, opcode, MLX5_CMD_OP_ARM_RQ); |
| 209 | MLX5_SET(arm_xrc_srq_in, srq_in, xrc_srqn, srq->srqn); | 208 | MLX5_SET(arm_rq_in, srq_in, op_mod, MLX5_ARM_RQ_IN_OP_MOD_SRQ); |
| 210 | MLX5_SET(arm_xrc_srq_in, srq_in, lwm, lwm); | 209 | MLX5_SET(arm_rq_in, srq_in, srq_number, srq->srqn); |
| 210 | MLX5_SET(arm_rq_in, srq_in, lwm, lwm); | ||
| 211 | 211 | ||
| 212 | return mlx5_cmd_exec(dev, srq_in, sizeof(srq_in), | 212 | return mlx5_cmd_exec(dev, srq_in, sizeof(srq_in), |
| 213 | srq_out, sizeof(srq_out)); | 213 | srq_out, sizeof(srq_out)); |
diff --git a/include/linux/mlx5/driver.h b/include/linux/mlx5/driver.h index df6ce59a1f95..205d82d4c468 100644 --- a/include/linux/mlx5/driver.h +++ b/include/linux/mlx5/driver.h | |||
| @@ -673,9 +673,7 @@ enum mlx5_device_state { | |||
| 673 | }; | 673 | }; |
| 674 | 674 | ||
| 675 | enum mlx5_interface_state { | 675 | enum mlx5_interface_state { |
| 676 | MLX5_INTERFACE_STATE_DOWN = BIT(0), | 676 | MLX5_INTERFACE_STATE_UP = BIT(0), |
| 677 | MLX5_INTERFACE_STATE_UP = BIT(1), | ||
| 678 | MLX5_INTERFACE_STATE_SHUTDOWN = BIT(2), | ||
| 679 | }; | 677 | }; |
| 680 | 678 | ||
| 681 | enum mlx5_pci_status { | 679 | enum mlx5_pci_status { |
