diff options
Diffstat (limited to 'drivers/rmnet/shs/rmnet_shs_wq.c')
-rw-r--r-- | drivers/rmnet/shs/rmnet_shs_wq.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/drivers/rmnet/shs/rmnet_shs_wq.c b/drivers/rmnet/shs/rmnet_shs_wq.c index 547e9de..d4d9d2f 100644 --- a/drivers/rmnet/shs/rmnet_shs_wq.c +++ b/drivers/rmnet/shs/rmnet_shs_wq.c @@ -1091,8 +1091,10 @@ int rmnet_shs_wq_get_perf_cpu_new_flow(struct net_device *dev) if (!ep->is_ep_active) continue; - if (ep->ep->egress_dev == dev) + if (ep->ep->egress_dev == dev) { is_match_found = 1; + break; + } } if (!is_match_found) { @@ -1354,6 +1356,18 @@ void rmnet_shs_wq_init_cpu_rx_flow_tbl(void) } +void rmnet_shs_wq_pause(void) +{ + if (rmnet_shs_wq && rmnet_shs_delayed_wq) + cancel_delayed_work_sync(&rmnet_shs_delayed_wq->wq); +} + +void rmnet_shs_wq_restart(void) +{ + if (rmnet_shs_wq && rmnet_shs_delayed_wq) + queue_delayed_work(rmnet_shs_wq, &rmnet_shs_delayed_wq->wq, 0); +} + void rmnet_shs_wq_init(struct net_device *dev) { /*If the workqueue is already initialized we should not be |