mutex_lock(&pi->sched_lock);
 
-       for (i = 0; i < ICE_MAX_TRAFFIC_CLASS; i++) {
+       ice_for_each_traffic_class(i) {
                /* configuration is possible only if TC node is present */
                if (!ice_sched_get_tc_node(pi, i))
                        continue;
 
        /* find the (rounded up) power-of-2 of qcount */
        pow = order_base_2(qcount_rx);
 
-       for (i = 0; i < ICE_MAX_TRAFFIC_CLASS; i++) {
+       ice_for_each_traffic_class(i) {
                if (!(vsi->tc_cfg.ena_tc & BIT(i))) {
                        /* TC is not enabled */
                        vsi->tc_cfg.tc_info[i].qoffset = 0;
        num_q_grps = 1;
 
        /* set up and configure the Tx queues for each enabled TC */
-       for (tc = 0; tc < ICE_MAX_TRAFFIC_CLASS; tc++) {
+       ice_for_each_traffic_class(tc) {
                if (!(vsi->tc_cfg.ena_tc & BIT(tc)))
                        break;
 
 
        if (!vsi_ctx)
                goto exit_sched_rm_vsi_cfg;
 
-       for (i = 0; i < ICE_MAX_TRAFFIC_CLASS; i++) {
+       ice_for_each_traffic_class(i) {
                struct ice_sched_node *vsi_node, *tc_node;
                u8 j = 0;
 
 
 #define ICE_MAX_TRAFFIC_CLASS 8
 #define ICE_TXSCHED_MAX_BRANCHES ICE_MAX_TRAFFIC_CLASS
 
+#define ice_for_each_traffic_class(_i) \
+       for ((_i) = 0; (_i) < ICE_MAX_TRAFFIC_CLASS; (_i)++)
+
 struct ice_sched_node {
        struct ice_sched_node *parent;
        struct ice_sched_node *sibling; /* next sibling in the same layer */