remove extra blank lines at end of files
[dpdk.git] / drivers / net / ipn3ke / ipn3ke_tm.c
index 8baa2fb..adf02c1 100644 (file)
@@ -23,6 +23,7 @@
 #include <ifpga_logs.h>
 
 #include "ipn3ke_rawdev_api.h"
+#include "ipn3ke_flow.h"
 #include "ipn3ke_logs.h"
 #include "ipn3ke_ethdev.h"
 
@@ -1540,23 +1541,12 @@ ipn3ke_tm_hierarchy_commit_check(struct rte_eth_dev *dev,
                                                NULL,
                                                rte_strerror(EINVAL));
                        }
-               } else if (n->node_state ==
-                       IPN3KE_TM_NODE_STATE_CONFIGURED_DEL) {
-                       if (n->level != IPN3KE_TM_NODE_LEVEL_VT ||
-                               n->n_children != 0) {
-                               return -rte_tm_error_set(error,
-                                               EINVAL,
-                                               RTE_TM_ERROR_TYPE_UNSPECIFIED,
-                                               NULL,
-                                               rte_strerror(EINVAL));
-                       } else {
-                               return -rte_tm_error_set(error,
+               } else if (n->node_state == IPN3KE_TM_NODE_STATE_CONFIGURED_DEL)
+                       return -rte_tm_error_set(error,
                                                EINVAL,
                                                RTE_TM_ERROR_TYPE_UNSPECIFIED,
                                                NULL,
                                                rte_strerror(EINVAL));
-                       }
-               }
        }
 
        n = tm->h.port_commit_node;
@@ -1578,7 +1568,8 @@ ipn3ke_tm_hierarchy_commit_check(struct rte_eth_dev *dev,
 
 static int
 ipn3ke_hw_tm_node_wr(struct ipn3ke_hw *hw,
-                               struct ipn3ke_tm_node *n)
+       struct ipn3ke_tm_node *n,
+       struct ipn3ke_tm_node *parent_node)
 {
        uint32_t level;
 
@@ -1649,11 +1640,12 @@ ipn3ke_hw_tm_node_wr(struct ipn3ke_hw *hw,
                /**
                 * Configure Map
                 */
-               IPN3KE_MASK_WRITE_REG(hw,
-                               IPN3KE_QOS_MAP_L2_X,
-                               n->node_index,
-                               n->parent_node->node_index,
-                               IPN3KE_QOS_MAP_L2_MASK);
+               if (parent_node)
+                       IPN3KE_MASK_WRITE_REG(hw,
+                                       IPN3KE_QOS_MAP_L2_X,
+                                       n->node_index,
+                                       parent_node->node_index,
+                                       IPN3KE_QOS_MAP_L2_MASK);
 
                break;
        case IPN3KE_TM_NODE_LEVEL_COS:
@@ -1706,11 +1698,12 @@ ipn3ke_hw_tm_node_wr(struct ipn3ke_hw *hw,
                                        0x80000000))
                        ;
 
-               IPN3KE_MASK_WRITE_REG(hw,
-                       IPN3KE_QM_UID_CONFIG_DATA,
-                       0,
-                       (1 << 8 | n->parent_node->parent_node->node_index),
-                       0x1FF);
+               if (parent_node && parent_node->parent_node)
+                       IPN3KE_MASK_WRITE_REG(hw,
+                               IPN3KE_QM_UID_CONFIG_DATA,
+                               0,
+                               (1 << 8 | parent_node->parent_node->node_index),
+                               0x1FF);
 
                IPN3KE_MASK_WRITE_REG(hw,
                                IPN3KE_QM_UID_CONFIG_CTRL,
@@ -1727,11 +1720,12 @@ ipn3ke_hw_tm_node_wr(struct ipn3ke_hw *hw,
                /**
                 * Configure Map
                 */
-               IPN3KE_MASK_WRITE_REG(hw,
-                               IPN3KE_QOS_MAP_L1_X,
-                               n->node_index,
-                               n->parent_node->node_index,
-                               IPN3KE_QOS_MAP_L1_MASK);
+               if (parent_node)
+                       IPN3KE_MASK_WRITE_REG(hw,
+                                       IPN3KE_QOS_MAP_L1_X,
+                                       n->node_index,
+                                       parent_node->node_index,
+                                       IPN3KE_QOS_MAP_L1_MASK);
 
                break;
        default:
@@ -1771,7 +1765,8 @@ ipn3ke_tm_hierarchy_hw_commit(struct rte_eth_dev *dev,
                                                NULL,
                                                rte_strerror(EINVAL));
                }
-               ipn3ke_hw_tm_node_wr(hw, n);
+               parent_node = n->parent_node;
+               ipn3ke_hw_tm_node_wr(hw, n, parent_node);
        }
 
        nl = &tm->h.vt_commit_node_list;
@@ -1801,7 +1796,7 @@ ipn3ke_tm_hierarchy_hw_commit(struct rte_eth_dev *dev,
                                                NULL,
                                                rte_strerror(EINVAL));
                }
-               ipn3ke_hw_tm_node_wr(hw, n);
+               ipn3ke_hw_tm_node_wr(hw, n, parent_node);
        }
 
        nl = &tm->h.cos_commit_node_list;
@@ -1835,7 +1830,7 @@ ipn3ke_tm_hierarchy_hw_commit(struct rte_eth_dev *dev,
                                                NULL,
                                                rte_strerror(EINVAL));
                }
-               ipn3ke_hw_tm_node_wr(hw, n);
+               ipn3ke_hw_tm_node_wr(hw, n, parent_node);
        }
 
        return 0;
@@ -2065,4 +2060,3 @@ ipn3ke_tm_ops_get(struct rte_eth_dev *ethdev,
 
        return 0;
 }
-