BCC: [email protected]
CC: [email protected]
CC: [email protected]
TO: Moshe Tal <[email protected]>
CC: Saeed Mahameed <[email protected]>
CC: Tariq Toukan <[email protected]>
CC: Maxim Mikityanskiy <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   568035b01cfb107af8d2e4bd2fb9aea22cf5b868
commit: 462b0059993696eaf863c23c2a12658e4fe0ccbf net/mlx5e: HTB, move htb 
functions to a new file
date:   4 weeks ago
:::::: branch date: 7 hours ago
:::::: commit date: 4 weeks ago
config: parisc-randconfig-m031-20220807 
(https://download.01.org/0day-ci/archive/20220815/[email protected]/config)
compiler: hppa-linux-gcc (GCC) 12.1.0

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <[email protected]>
Reported-by: Dan Carpenter <[email protected]>

New smatch warnings:
drivers/net/ethernet/mellanox/mlx5/core/en/htb.c:196 mlx5e_htb_root_add() warn: 
passing a valid pointer to 'PTR_ERR'
drivers/net/ethernet/mellanox/mlx5/core/en/htb.c:310 
mlx5e_htb_leaf_alloc_queue() warn: passing a valid pointer to 'PTR_ERR'
drivers/net/ethernet/mellanox/mlx5/core/en/htb.c:371 mlx5e_htb_leaf_to_inner() 
warn: passing a valid pointer to 'PTR_ERR'

Old smatch warnings:
arch/parisc/include/asm/hash.h:44 __hash_32() warn: inconsistent indenting

vim +/PTR_ERR +196 drivers/net/ethernet/mellanox/mlx5/core/en/htb.c

462b0059993696 Moshe Tal 2022-05-02  173  
462b0059993696 Moshe Tal 2022-05-02  174  static int
462b0059993696 Moshe Tal 2022-05-02  175  mlx5e_htb_root_add(struct mlx5e_htb 
*htb, u16 htb_maj_id, u16 htb_defcls,
462b0059993696 Moshe Tal 2022-05-02  176                   struct 
netlink_ext_ack *extack)
462b0059993696 Moshe Tal 2022-05-02  177  {
462b0059993696 Moshe Tal 2022-05-02  178        struct mlx5e_priv *priv = 
htb->priv;
462b0059993696 Moshe Tal 2022-05-02  179        struct mlx5e_qos_node *root;
462b0059993696 Moshe Tal 2022-05-02  180        bool opened;
462b0059993696 Moshe Tal 2022-05-02  181        int err;
462b0059993696 Moshe Tal 2022-05-02  182  
462b0059993696 Moshe Tal 2022-05-02  183        qos_dbg(htb->mdev, 
"TC_HTB_CREATE handle %04x:, default :%04x\n", htb_maj_id, htb_defcls);
462b0059993696 Moshe Tal 2022-05-02  184  
462b0059993696 Moshe Tal 2022-05-02  185        
mlx5e_selq_prepare_htb(htb->selq, htb_maj_id, htb_defcls);
462b0059993696 Moshe Tal 2022-05-02  186  
462b0059993696 Moshe Tal 2022-05-02  187        opened = 
test_bit(MLX5E_STATE_OPENED, &priv->state);
462b0059993696 Moshe Tal 2022-05-02  188        if (opened) {
462b0059993696 Moshe Tal 2022-05-02  189                err = 
mlx5e_qos_alloc_queues(priv, &priv->channels);
462b0059993696 Moshe Tal 2022-05-02  190                if (err)
462b0059993696 Moshe Tal 2022-05-02  191                        goto 
err_cancel_selq;
462b0059993696 Moshe Tal 2022-05-02  192        }
462b0059993696 Moshe Tal 2022-05-02  193  
462b0059993696 Moshe Tal 2022-05-02  194        root = 
mlx5e_htb_node_create_root(htb);
462b0059993696 Moshe Tal 2022-05-02  195        if (IS_ERR(root)) {
462b0059993696 Moshe Tal 2022-05-02 @196                err = PTR_ERR(root);
462b0059993696 Moshe Tal 2022-05-02  197                goto err_free_queues;
462b0059993696 Moshe Tal 2022-05-02  198        }
462b0059993696 Moshe Tal 2022-05-02  199  
462b0059993696 Moshe Tal 2022-05-02  200        err = 
mlx5_qos_create_root_node(htb->mdev, &root->hw_id);
462b0059993696 Moshe Tal 2022-05-02  201        if (err) {
462b0059993696 Moshe Tal 2022-05-02  202                
NL_SET_ERR_MSG_MOD(extack, "Firmware error. Try upgrading firmware.");
462b0059993696 Moshe Tal 2022-05-02  203                goto err_sw_node_delete;
462b0059993696 Moshe Tal 2022-05-02  204        }
462b0059993696 Moshe Tal 2022-05-02  205  
462b0059993696 Moshe Tal 2022-05-02  206        mlx5e_selq_apply(htb->selq);
462b0059993696 Moshe Tal 2022-05-02  207  
462b0059993696 Moshe Tal 2022-05-02  208        return 0;
462b0059993696 Moshe Tal 2022-05-02  209  
462b0059993696 Moshe Tal 2022-05-02  210  err_sw_node_delete:
462b0059993696 Moshe Tal 2022-05-02  211        mlx5e_htb_node_delete(htb, 
root);
462b0059993696 Moshe Tal 2022-05-02  212  
462b0059993696 Moshe Tal 2022-05-02  213  err_free_queues:
462b0059993696 Moshe Tal 2022-05-02  214        if (opened)
462b0059993696 Moshe Tal 2022-05-02  215                
mlx5e_qos_close_all_queues(&priv->channels);
462b0059993696 Moshe Tal 2022-05-02  216  err_cancel_selq:
462b0059993696 Moshe Tal 2022-05-02  217        mlx5e_selq_cancel(htb->selq);
462b0059993696 Moshe Tal 2022-05-02  218        return err;
462b0059993696 Moshe Tal 2022-05-02  219  }
462b0059993696 Moshe Tal 2022-05-02  220  
462b0059993696 Moshe Tal 2022-05-02  221  static int mlx5e_htb_root_del(struct 
mlx5e_htb *htb)
462b0059993696 Moshe Tal 2022-05-02  222  {
462b0059993696 Moshe Tal 2022-05-02  223        struct mlx5e_priv *priv = 
htb->priv;
462b0059993696 Moshe Tal 2022-05-02  224        struct mlx5e_qos_node *root;
462b0059993696 Moshe Tal 2022-05-02  225        int err;
462b0059993696 Moshe Tal 2022-05-02  226  
462b0059993696 Moshe Tal 2022-05-02  227        qos_dbg(htb->mdev, 
"TC_HTB_DESTROY\n");
462b0059993696 Moshe Tal 2022-05-02  228  
462b0059993696 Moshe Tal 2022-05-02  229        /* Wait until 
real_num_tx_queues is updated for mlx5e_select_queue,
462b0059993696 Moshe Tal 2022-05-02  230         * so that we can safely switch 
to its non-HTB non-PTP fastpath.
462b0059993696 Moshe Tal 2022-05-02  231         */
462b0059993696 Moshe Tal 2022-05-02  232        synchronize_net();
462b0059993696 Moshe Tal 2022-05-02  233  
462b0059993696 Moshe Tal 2022-05-02  234        
mlx5e_selq_prepare_htb(htb->selq, 0, 0);
462b0059993696 Moshe Tal 2022-05-02  235        mlx5e_selq_apply(htb->selq);
462b0059993696 Moshe Tal 2022-05-02  236  
462b0059993696 Moshe Tal 2022-05-02  237        root = mlx5e_htb_node_find(htb, 
MLX5E_HTB_CLASSID_ROOT);
462b0059993696 Moshe Tal 2022-05-02  238        if (!root) {
462b0059993696 Moshe Tal 2022-05-02  239                qos_err(htb->mdev, 
"Failed to find the root node in the QoS tree\n");
462b0059993696 Moshe Tal 2022-05-02  240                return -ENOENT;
462b0059993696 Moshe Tal 2022-05-02  241        }
462b0059993696 Moshe Tal 2022-05-02  242        err = 
mlx5_qos_destroy_node(htb->mdev, root->hw_id);
462b0059993696 Moshe Tal 2022-05-02  243        if (err)
462b0059993696 Moshe Tal 2022-05-02  244                qos_err(htb->mdev, 
"Failed to destroy root node %u, err = %d\n",
462b0059993696 Moshe Tal 2022-05-02  245                        root->hw_id, 
err);
462b0059993696 Moshe Tal 2022-05-02  246        mlx5e_htb_node_delete(htb, 
root);
462b0059993696 Moshe Tal 2022-05-02  247  
462b0059993696 Moshe Tal 2022-05-02  248        
mlx5e_qos_deactivate_all_queues(&priv->channels);
462b0059993696 Moshe Tal 2022-05-02  249        
mlx5e_qos_close_all_queues(&priv->channels);
462b0059993696 Moshe Tal 2022-05-02  250  
462b0059993696 Moshe Tal 2022-05-02  251        return err;
462b0059993696 Moshe Tal 2022-05-02  252  }
462b0059993696 Moshe Tal 2022-05-02  253  
462b0059993696 Moshe Tal 2022-05-02  254  static int 
mlx5e_htb_convert_rate(struct mlx5e_htb *htb, u64 rate,
462b0059993696 Moshe Tal 2022-05-02  255                                  
struct mlx5e_qos_node *parent, u32 *bw_share)
462b0059993696 Moshe Tal 2022-05-02  256  {
462b0059993696 Moshe Tal 2022-05-02  257        u64 share = 0;
462b0059993696 Moshe Tal 2022-05-02  258  
462b0059993696 Moshe Tal 2022-05-02  259        while (parent->classid != 
MLX5E_HTB_CLASSID_ROOT && !parent->max_average_bw)
462b0059993696 Moshe Tal 2022-05-02  260                parent = parent->parent;
462b0059993696 Moshe Tal 2022-05-02  261  
462b0059993696 Moshe Tal 2022-05-02  262        if (parent->max_average_bw)
462b0059993696 Moshe Tal 2022-05-02  263                share = 
div64_u64(div_u64(rate * 100, BYTES_IN_MBIT),
462b0059993696 Moshe Tal 2022-05-02  264                                  
parent->max_average_bw);
462b0059993696 Moshe Tal 2022-05-02  265        else
462b0059993696 Moshe Tal 2022-05-02  266                share = 101;
462b0059993696 Moshe Tal 2022-05-02  267  
462b0059993696 Moshe Tal 2022-05-02  268        *bw_share = share == 0 ? 1 : 
share > 100 ? 0 : share;
462b0059993696 Moshe Tal 2022-05-02  269  
462b0059993696 Moshe Tal 2022-05-02  270        qos_dbg(htb->mdev, "Convert: 
rate %llu, parent ceil %llu -> bw_share %u\n",
462b0059993696 Moshe Tal 2022-05-02  271                rate, 
(u64)parent->max_average_bw * BYTES_IN_MBIT, *bw_share);
462b0059993696 Moshe Tal 2022-05-02  272  
462b0059993696 Moshe Tal 2022-05-02  273        return 0;
462b0059993696 Moshe Tal 2022-05-02  274  }
462b0059993696 Moshe Tal 2022-05-02  275  
462b0059993696 Moshe Tal 2022-05-02  276  static void 
mlx5e_htb_convert_ceil(struct mlx5e_htb *htb, u64 ceil, u32 *max_average_bw)
462b0059993696 Moshe Tal 2022-05-02  277  {
462b0059993696 Moshe Tal 2022-05-02  278        /* Hardware treats 0 as 
"unlimited", set at least 1. */
462b0059993696 Moshe Tal 2022-05-02  279        *max_average_bw = max_t(u32, 
div_u64(ceil, BYTES_IN_MBIT), 1);
462b0059993696 Moshe Tal 2022-05-02  280  
462b0059993696 Moshe Tal 2022-05-02  281        qos_dbg(htb->mdev, "Convert: 
ceil %llu -> max_average_bw %u\n",
462b0059993696 Moshe Tal 2022-05-02  282                ceil, *max_average_bw);
462b0059993696 Moshe Tal 2022-05-02  283  }
462b0059993696 Moshe Tal 2022-05-02  284  
462b0059993696 Moshe Tal 2022-05-02  285  int
462b0059993696 Moshe Tal 2022-05-02  286  mlx5e_htb_leaf_alloc_queue(struct 
mlx5e_htb *htb, u16 classid,
462b0059993696 Moshe Tal 2022-05-02  287                           u32 
parent_classid, u64 rate, u64 ceil,
462b0059993696 Moshe Tal 2022-05-02  288                           struct 
netlink_ext_ack *extack)
462b0059993696 Moshe Tal 2022-05-02  289  {
462b0059993696 Moshe Tal 2022-05-02  290        struct mlx5e_qos_node *node, 
*parent;
462b0059993696 Moshe Tal 2022-05-02  291        struct mlx5e_priv *priv = 
htb->priv;
462b0059993696 Moshe Tal 2022-05-02  292        int qid;
462b0059993696 Moshe Tal 2022-05-02  293        int err;
462b0059993696 Moshe Tal 2022-05-02  294  
462b0059993696 Moshe Tal 2022-05-02  295        qos_dbg(htb->mdev, 
"TC_HTB_LEAF_ALLOC_QUEUE classid %04x, parent %04x, rate %llu, ceil %llu\n",
462b0059993696 Moshe Tal 2022-05-02  296                classid, 
parent_classid, rate, ceil);
462b0059993696 Moshe Tal 2022-05-02  297  
462b0059993696 Moshe Tal 2022-05-02  298        qid = 
mlx5e_htb_find_unused_qos_qid(htb);
462b0059993696 Moshe Tal 2022-05-02  299        if (qid < 0) {
462b0059993696 Moshe Tal 2022-05-02  300                
NL_SET_ERR_MSG_MOD(extack, "Maximum amount of leaf classes is reached.");
462b0059993696 Moshe Tal 2022-05-02  301                return qid;
462b0059993696 Moshe Tal 2022-05-02  302        }
462b0059993696 Moshe Tal 2022-05-02  303  
462b0059993696 Moshe Tal 2022-05-02  304        parent = 
mlx5e_htb_node_find(htb, parent_classid);
462b0059993696 Moshe Tal 2022-05-02  305        if (!parent)
462b0059993696 Moshe Tal 2022-05-02  306                return -EINVAL;
462b0059993696 Moshe Tal 2022-05-02  307  
462b0059993696 Moshe Tal 2022-05-02  308        node = 
mlx5e_htb_node_create_leaf(htb, classid, qid, parent);
462b0059993696 Moshe Tal 2022-05-02  309        if (IS_ERR(node))
462b0059993696 Moshe Tal 2022-05-02 @310                return PTR_ERR(node);
462b0059993696 Moshe Tal 2022-05-02  311  
462b0059993696 Moshe Tal 2022-05-02  312        node->rate = rate;
462b0059993696 Moshe Tal 2022-05-02  313        mlx5e_htb_convert_rate(htb, 
rate, node->parent, &node->bw_share);
462b0059993696 Moshe Tal 2022-05-02  314        mlx5e_htb_convert_ceil(htb, 
ceil, &node->max_average_bw);
462b0059993696 Moshe Tal 2022-05-02  315  
462b0059993696 Moshe Tal 2022-05-02  316        err = 
mlx5_qos_create_leaf_node(htb->mdev, node->parent->hw_id,
462b0059993696 Moshe Tal 2022-05-02  317                                        
node->bw_share, node->max_average_bw,
462b0059993696 Moshe Tal 2022-05-02  318                                        
&node->hw_id);
462b0059993696 Moshe Tal 2022-05-02  319        if (err) {
462b0059993696 Moshe Tal 2022-05-02  320                
NL_SET_ERR_MSG_MOD(extack, "Firmware error when creating a leaf node.");
462b0059993696 Moshe Tal 2022-05-02  321                qos_err(htb->mdev, 
"Failed to create a leaf node (class %04x), err = %d\n",
462b0059993696 Moshe Tal 2022-05-02  322                        classid, err);
462b0059993696 Moshe Tal 2022-05-02  323                
mlx5e_htb_node_delete(htb, node);
462b0059993696 Moshe Tal 2022-05-02  324                return err;
462b0059993696 Moshe Tal 2022-05-02  325        }
462b0059993696 Moshe Tal 2022-05-02  326  
462b0059993696 Moshe Tal 2022-05-02  327        if 
(test_bit(MLX5E_STATE_OPENED, &priv->state)) {
462b0059993696 Moshe Tal 2022-05-02  328                err = 
mlx5e_open_qos_sq(priv, &priv->channels, node->qid, node->hw_id);
462b0059993696 Moshe Tal 2022-05-02  329                if (err) {
462b0059993696 Moshe Tal 2022-05-02  330                        
NL_SET_ERR_MSG_MOD(extack, "Error creating an SQ.");
462b0059993696 Moshe Tal 2022-05-02  331                        
qos_warn(htb->mdev, "Failed to create a QoS SQ (class %04x), err = %d\n",
462b0059993696 Moshe Tal 2022-05-02  332                                 
classid, err);
462b0059993696 Moshe Tal 2022-05-02  333                } else {
462b0059993696 Moshe Tal 2022-05-02  334                        
mlx5e_activate_qos_sq(priv, node->qid, node->hw_id);
462b0059993696 Moshe Tal 2022-05-02  335                }
462b0059993696 Moshe Tal 2022-05-02  336        }
462b0059993696 Moshe Tal 2022-05-02  337  
462b0059993696 Moshe Tal 2022-05-02  338        return 
mlx5e_qid_from_qos(&priv->channels, node->qid);
462b0059993696 Moshe Tal 2022-05-02  339  }
462b0059993696 Moshe Tal 2022-05-02  340  
462b0059993696 Moshe Tal 2022-05-02  341  int
462b0059993696 Moshe Tal 2022-05-02  342  mlx5e_htb_leaf_to_inner(struct 
mlx5e_htb *htb, u16 classid, u16 child_classid,
462b0059993696 Moshe Tal 2022-05-02  343                        u64 rate, u64 
ceil, struct netlink_ext_ack *extack)
462b0059993696 Moshe Tal 2022-05-02  344  {
462b0059993696 Moshe Tal 2022-05-02  345        struct mlx5e_qos_node *node, 
*child;
462b0059993696 Moshe Tal 2022-05-02  346        struct mlx5e_priv *priv = 
htb->priv;
462b0059993696 Moshe Tal 2022-05-02  347        int err, tmp_err;
462b0059993696 Moshe Tal 2022-05-02  348        u32 new_hw_id;
462b0059993696 Moshe Tal 2022-05-02  349        u16 qid;
462b0059993696 Moshe Tal 2022-05-02  350  
462b0059993696 Moshe Tal 2022-05-02  351        qos_dbg(htb->mdev, 
"TC_HTB_LEAF_TO_INNER classid %04x, upcoming child %04x, rate %llu, ceil 
%llu\n",
462b0059993696 Moshe Tal 2022-05-02  352                classid, child_classid, 
rate, ceil);
462b0059993696 Moshe Tal 2022-05-02  353  
462b0059993696 Moshe Tal 2022-05-02  354        node = mlx5e_htb_node_find(htb, 
classid);
462b0059993696 Moshe Tal 2022-05-02  355        if (!node)
462b0059993696 Moshe Tal 2022-05-02  356                return -ENOENT;
462b0059993696 Moshe Tal 2022-05-02  357  
462b0059993696 Moshe Tal 2022-05-02  358        err = 
mlx5_qos_create_inner_node(htb->mdev, node->parent->hw_id,
462b0059993696 Moshe Tal 2022-05-02  359                                        
 node->bw_share, node->max_average_bw,
462b0059993696 Moshe Tal 2022-05-02  360                                        
 &new_hw_id);
462b0059993696 Moshe Tal 2022-05-02  361        if (err) {
462b0059993696 Moshe Tal 2022-05-02  362                
NL_SET_ERR_MSG_MOD(extack, "Firmware error when creating an inner node.");
462b0059993696 Moshe Tal 2022-05-02  363                qos_err(htb->mdev, 
"Failed to create an inner node (class %04x), err = %d\n",
462b0059993696 Moshe Tal 2022-05-02  364                        classid, err);
462b0059993696 Moshe Tal 2022-05-02  365                return err;
462b0059993696 Moshe Tal 2022-05-02  366        }
462b0059993696 Moshe Tal 2022-05-02  367  
462b0059993696 Moshe Tal 2022-05-02  368        /* Intentionally reuse the qid 
for the upcoming first child. */
462b0059993696 Moshe Tal 2022-05-02  369        child = 
mlx5e_htb_node_create_leaf(htb, child_classid, node->qid, node);
462b0059993696 Moshe Tal 2022-05-02  370        if (IS_ERR(child)) {
462b0059993696 Moshe Tal 2022-05-02 @371                err = PTR_ERR(child);
462b0059993696 Moshe Tal 2022-05-02  372                goto 
err_destroy_hw_node;
462b0059993696 Moshe Tal 2022-05-02  373        }
462b0059993696 Moshe Tal 2022-05-02  374  
462b0059993696 Moshe Tal 2022-05-02  375        child->rate = rate;
462b0059993696 Moshe Tal 2022-05-02  376        mlx5e_htb_convert_rate(htb, 
rate, node, &child->bw_share);
462b0059993696 Moshe Tal 2022-05-02  377        mlx5e_htb_convert_ceil(htb, 
ceil, &child->max_average_bw);
462b0059993696 Moshe Tal 2022-05-02  378  
462b0059993696 Moshe Tal 2022-05-02  379        err = 
mlx5_qos_create_leaf_node(htb->mdev, new_hw_id, child->bw_share,
462b0059993696 Moshe Tal 2022-05-02  380                                        
child->max_average_bw, &child->hw_id);
462b0059993696 Moshe Tal 2022-05-02  381        if (err) {
462b0059993696 Moshe Tal 2022-05-02  382                
NL_SET_ERR_MSG_MOD(extack, "Firmware error when creating a leaf node.");
462b0059993696 Moshe Tal 2022-05-02  383                qos_err(htb->mdev, 
"Failed to create a leaf node (class %04x), err = %d\n",
462b0059993696 Moshe Tal 2022-05-02  384                        classid, err);
462b0059993696 Moshe Tal 2022-05-02  385                goto err_delete_sw_node;
462b0059993696 Moshe Tal 2022-05-02  386        }
462b0059993696 Moshe Tal 2022-05-02  387  
462b0059993696 Moshe Tal 2022-05-02  388        /* No fail point. */
462b0059993696 Moshe Tal 2022-05-02  389  
462b0059993696 Moshe Tal 2022-05-02  390        qid = node->qid;
462b0059993696 Moshe Tal 2022-05-02  391        /* Pairs with 
mlx5e_htb_get_txq_by_classid. */
462b0059993696 Moshe Tal 2022-05-02  392        WRITE_ONCE(node->qid, 
MLX5E_QOS_QID_INNER);
462b0059993696 Moshe Tal 2022-05-02  393  
462b0059993696 Moshe Tal 2022-05-02  394        if 
(test_bit(MLX5E_STATE_OPENED, &priv->state)) {
462b0059993696 Moshe Tal 2022-05-02  395                
mlx5e_deactivate_qos_sq(priv, qid);
462b0059993696 Moshe Tal 2022-05-02  396                
mlx5e_close_qos_sq(priv, qid);
462b0059993696 Moshe Tal 2022-05-02  397        }
462b0059993696 Moshe Tal 2022-05-02  398  
462b0059993696 Moshe Tal 2022-05-02  399        err = 
mlx5_qos_destroy_node(htb->mdev, node->hw_id);
462b0059993696 Moshe Tal 2022-05-02  400        if (err) /* Not fatal. */
462b0059993696 Moshe Tal 2022-05-02  401                qos_warn(htb->mdev, 
"Failed to destroy leaf node %u (class %04x), err = %d\n",
462b0059993696 Moshe Tal 2022-05-02  402                         node->hw_id, 
classid, err);
462b0059993696 Moshe Tal 2022-05-02  403  
462b0059993696 Moshe Tal 2022-05-02  404        node->hw_id = new_hw_id;
462b0059993696 Moshe Tal 2022-05-02  405  
462b0059993696 Moshe Tal 2022-05-02  406        if 
(test_bit(MLX5E_STATE_OPENED, &priv->state)) {
462b0059993696 Moshe Tal 2022-05-02  407                err = 
mlx5e_open_qos_sq(priv, &priv->channels, child->qid, child->hw_id);
462b0059993696 Moshe Tal 2022-05-02  408                if (err) {
462b0059993696 Moshe Tal 2022-05-02  409                        
NL_SET_ERR_MSG_MOD(extack, "Error creating an SQ.");
462b0059993696 Moshe Tal 2022-05-02  410                        
qos_warn(htb->mdev, "Failed to create a QoS SQ (class %04x), err = %d\n",
462b0059993696 Moshe Tal 2022-05-02  411                                 
classid, err);
462b0059993696 Moshe Tal 2022-05-02  412                } else {
462b0059993696 Moshe Tal 2022-05-02  413                        
mlx5e_activate_qos_sq(priv, child->qid, child->hw_id);
462b0059993696 Moshe Tal 2022-05-02  414                }
462b0059993696 Moshe Tal 2022-05-02  415        }
462b0059993696 Moshe Tal 2022-05-02  416  
462b0059993696 Moshe Tal 2022-05-02  417        return 0;
462b0059993696 Moshe Tal 2022-05-02  418  
462b0059993696 Moshe Tal 2022-05-02  419  err_delete_sw_node:
462b0059993696 Moshe Tal 2022-05-02  420        child->qid = 
MLX5E_QOS_QID_INNER;
462b0059993696 Moshe Tal 2022-05-02  421        mlx5e_htb_node_delete(htb, 
child);
462b0059993696 Moshe Tal 2022-05-02  422  
462b0059993696 Moshe Tal 2022-05-02  423  err_destroy_hw_node:
462b0059993696 Moshe Tal 2022-05-02  424        tmp_err = 
mlx5_qos_destroy_node(htb->mdev, new_hw_id);
462b0059993696 Moshe Tal 2022-05-02  425        if (tmp_err) /* Not fatal. */
462b0059993696 Moshe Tal 2022-05-02  426                qos_warn(htb->mdev, 
"Failed to roll back creation of an inner node %u (class %04x), err = %d\n",
462b0059993696 Moshe Tal 2022-05-02  427                         new_hw_id, 
classid, tmp_err);
462b0059993696 Moshe Tal 2022-05-02  428        return err;
462b0059993696 Moshe Tal 2022-05-02  429  }
462b0059993696 Moshe Tal 2022-05-02  430  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to