diff options
author | Rahul Lakkireddy <rahul.lakkireddy@chelsio.com> | 2020-01-17 13:53:55 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2020-01-19 16:12:02 +0100 |
commit | c856e2b6fc5c675512e578225ade545c1834f3ee (patch) | |
tree | 41d0fcefbcc5a509b7aaefb7108c964bec455a87 /drivers/net/ethernet/chelsio/cxgb4/sched.h | |
parent | net: sched: act_ctinfo: fix memory leak (diff) | |
download | linux-c856e2b6fc5c675512e578225ade545c1834f3ee.tar.xz linux-c856e2b6fc5c675512e578225ade545c1834f3ee.zip |
cxgb4: fix Tx multi channel port rate limit
T6 can support 2 egress traffic management channels per port to
double the total number of traffic classes that can be configured.
In this configuration, if the class belongs to the other channel,
then all the queues must be bound again explicitly to the new class,
for the rate limit parameters on the other channel to take effect.
So, always explicitly bind all queues to the port rate limit traffic
class, regardless of the traffic management channel that it belongs
to. Also, only bind queues to port rate limit traffic class, if all
the queues don't already belong to an existing different traffic
class.
Fixes: 4ec4762d8ec6 ("cxgb4: add TC-MATCHALL classifier egress offload")
Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/chelsio/cxgb4/sched.h')
-rw-r--r-- | drivers/net/ethernet/chelsio/cxgb4/sched.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/ethernet/chelsio/cxgb4/sched.h b/drivers/net/ethernet/chelsio/cxgb4/sched.h index e92ff68bdd0a..5cc74a5a1774 100644 --- a/drivers/net/ethernet/chelsio/cxgb4/sched.h +++ b/drivers/net/ethernet/chelsio/cxgb4/sched.h @@ -103,6 +103,8 @@ static inline bool valid_class_id(struct net_device *dev, u8 class_id) return true; } +struct sched_class *cxgb4_sched_queue_lookup(struct net_device *dev, + struct ch_sched_queue *p); int cxgb4_sched_class_bind(struct net_device *dev, void *arg, enum sched_bind_type type); int cxgb4_sched_class_unbind(struct net_device *dev, void *arg, |