void ixgbe_dcb_unpack_pfc(struct ixgbe_dcb_config *cfg, u8 *pfc_en)
 {
-       int i;
+       struct tc_configuration *tc_config = &cfg->tc_config[0];
+       int tc;
 
-       *pfc_en = 0;
-       for (i = 0; i < MAX_TRAFFIC_CLASS; i++)
-               *pfc_en |= !!(cfg->tc_config[i].dcb_pfc & 0xF) << i;
+       for (*pfc_en = 0, tc = 0; tc < MAX_TRAFFIC_CLASS; tc++) {
+               if (tc_config[tc].dcb_pfc != pfc_disabled)
+                       *pfc_en |= 1 << tc;
+       }
 }
 
 void ixgbe_dcb_unpack_refill(struct ixgbe_dcb_config *cfg, int direction,
                             u16 *refill)
 {
-       struct tc_bw_alloc *p;
-       int i;
+       struct tc_configuration *tc_config = &cfg->tc_config[0];
+       int tc;
 
-       for (i = 0; i < MAX_TRAFFIC_CLASS; i++) {
-               p = &cfg->tc_config[i].path[direction];
-               refill[i] = p->data_credits_refill;
-       }
+       for (tc = 0; tc < MAX_TRAFFIC_CLASS; tc++)
+               refill[tc] = tc_config[tc].path[direction].data_credits_refill;
 }
 
 void ixgbe_dcb_unpack_max(struct ixgbe_dcb_config *cfg, u16 *max)
 {
-       int i;
+       struct tc_configuration *tc_config = &cfg->tc_config[0];
+       int tc;
 
-       for (i = 0; i < MAX_TRAFFIC_CLASS; i++)
-               max[i] = cfg->tc_config[i].desc_credits_max;
+       for (tc = 0; tc < MAX_TRAFFIC_CLASS; tc++)
+               max[tc] = tc_config[tc].desc_credits_max;
 }
 
 void ixgbe_dcb_unpack_bwgid(struct ixgbe_dcb_config *cfg, int direction,
                            u8 *bwgid)
 {
-       struct tc_bw_alloc *p;
-       int i;
+       struct tc_configuration *tc_config = &cfg->tc_config[0];
+       int tc;
 
-       for (i = 0; i < MAX_TRAFFIC_CLASS; i++) {
-               p = &cfg->tc_config[i].path[direction];
-               bwgid[i] = p->bwg_id;
-       }
+       for (tc = 0; tc < MAX_TRAFFIC_CLASS; tc++)
+               bwgid[tc] = tc_config[tc].path[direction].bwg_id;
 }
 
 void ixgbe_dcb_unpack_prio(struct ixgbe_dcb_config *cfg, int direction,
                            u8 *ptype)
 {
-       struct tc_bw_alloc *p;
-       int i;
+       struct tc_configuration *tc_config = &cfg->tc_config[0];
+       int tc;
 
-       for (i = 0; i < MAX_TRAFFIC_CLASS; i++) {
-               p = &cfg->tc_config[i].path[direction];
-               ptype[i] = p->prio_type;
-       }
+       for (tc = 0; tc < MAX_TRAFFIC_CLASS; tc++)
+               ptype[tc] = tc_config[tc].path[direction].prio_type;
 }
 
 static u8 ixgbe_dcb_get_tc_from_up(struct ixgbe_dcb_config *cfg,