Skip to content

Commit

Permalink
cxgb4: Add flag tc_flower_initialized
Browse files Browse the repository at this point in the history
Add flag tc_flower_initialized to indicate the
completion if tc flower initialization.

Signed-off-by: Casey Leedom <leedom@chelsio.com>
Signed-off-by: Ganesh Goudar <ganeshgr@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Casey Leedom authored and David S. Miller committed Jun 28, 2018
1 parent 8e32628 commit a081e11
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 0 deletions.
1 change: 1 addition & 0 deletions drivers/net/ethernet/chelsio/cxgb4/cxgb4.h
Original file line number Diff line number Diff line change
Expand Up @@ -957,6 +957,7 @@ struct adapter {
struct chcr_stats_debug chcr_stats;

/* TC flower offload */
bool tc_flower_initialized;
struct rhashtable flower_tbl;
struct rhashtable_params flower_ht_params;
struct timer_list flower_stats_timer;
Expand Down
8 changes: 8 additions & 0 deletions drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_flower.c
Original file line number Diff line number Diff line change
Expand Up @@ -874,6 +874,9 @@ int cxgb4_init_tc_flower(struct adapter *adap)
{
int ret;

if (adap->tc_flower_initialized)
return -EEXIST;

adap->flower_ht_params = cxgb4_tc_flower_ht_params;
ret = rhashtable_init(&adap->flower_tbl, &adap->flower_ht_params);
if (ret)
Expand All @@ -882,13 +885,18 @@ int cxgb4_init_tc_flower(struct adapter *adap)
INIT_WORK(&adap->flower_stats_work, ch_flower_stats_handler);
timer_setup(&adap->flower_stats_timer, ch_flower_stats_cb, 0);
mod_timer(&adap->flower_stats_timer, jiffies + STATS_CHECK_PERIOD);
adap->tc_flower_initialized = true;
return 0;
}

void cxgb4_cleanup_tc_flower(struct adapter *adap)
{
if (!adap->tc_flower_initialized)
return;

if (adap->flower_stats_timer.function)
del_timer_sync(&adap->flower_stats_timer);
cancel_work_sync(&adap->flower_stats_work);
rhashtable_destroy(&adap->flower_tbl);
adap->tc_flower_initialized = false;
}
3 changes: 3 additions & 0 deletions drivers/net/ethernet/chelsio/cxgb4/sched.c
Original file line number Diff line number Diff line change
Expand Up @@ -539,6 +539,9 @@ void t4_cleanup_sched(struct adapter *adap)
struct port_info *pi = netdev2pinfo(adap->port[j]);

s = pi->sched_tbl;
if (!s)
continue;

for (i = 0; i < s->sched_size; i++) {
struct sched_class *e;

Expand Down

0 comments on commit a081e11

Please sign in to comment.