Message ID | 20250107-airoha-ets-fix-chan-v1-1-97f66ed3a068@kernel.org (mailing list archive) |
---|---|
State | New |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next] net: airoha: Fix channel configuration for ETS Qdisc | expand |
On Tue, Jan 07, 2025 at 11:26:28PM +0100, Lorenzo Bianconi wrote: > Limit ETS QoS channel to AIROHA_NUM_QOS_CHANNELS in > airoha_tc_setup_qdisc_ets() in order to align the configured channel to > the value set in airoha_dev_select_queue(). > > Fixes: 20bf7d07c956 ("net: airoha: Add sched ETS offload support") > Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> > --- > drivers/net/ethernet/mediatek/airoha_eth.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/mediatek/airoha_eth.c b/drivers/net/ethernet/mediatek/airoha_eth.c > index b9f1c42f0a40ca268506b4595dfa1902a15be26c..a30c417d66f2f9b0958fe1dd3829fb9ac530a34c 100644 > --- a/drivers/net/ethernet/mediatek/airoha_eth.c > +++ b/drivers/net/ethernet/mediatek/airoha_eth.c > @@ -2840,11 +2840,14 @@ static int airoha_qdma_get_tx_ets_stats(struct airoha_gdm_port *port, > static int airoha_tc_setup_qdisc_ets(struct airoha_gdm_port *port, > struct tc_ets_qopt_offload *opt) > { > - int channel = TC_H_MAJ(opt->handle) >> 16; > + int channel; > > if (opt->parent == TC_H_ROOT) > return -EINVAL; > > + channel = TC_H_MAJ(opt->handle) >> 16; > + channel = channel % AIROHA_NUM_QOS_CHANNELS; > + > switch (opt->command) { > case TC_ETS_REPLACE: > return airoha_qdma_set_tx_ets_sched(port, channel, opt); > > --- > base-commit: a1942da8a38717ddd9b4c132f59e1657c85c1432 > change-id: 20250107-airoha-ets-fix-chan-e35ccac76d64 > > Best regards, > -- > Lorenzo Bianconi <lorenzo@kernel.org> Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
diff --git a/drivers/net/ethernet/mediatek/airoha_eth.c b/drivers/net/ethernet/mediatek/airoha_eth.c index b9f1c42f0a40ca268506b4595dfa1902a15be26c..a30c417d66f2f9b0958fe1dd3829fb9ac530a34c 100644 --- a/drivers/net/ethernet/mediatek/airoha_eth.c +++ b/drivers/net/ethernet/mediatek/airoha_eth.c @@ -2840,11 +2840,14 @@ static int airoha_qdma_get_tx_ets_stats(struct airoha_gdm_port *port, static int airoha_tc_setup_qdisc_ets(struct airoha_gdm_port *port, struct tc_ets_qopt_offload *opt) { - int channel = TC_H_MAJ(opt->handle) >> 16; + int channel; if (opt->parent == TC_H_ROOT) return -EINVAL; + channel = TC_H_MAJ(opt->handle) >> 16; + channel = channel % AIROHA_NUM_QOS_CHANNELS; + switch (opt->command) { case TC_ETS_REPLACE: return airoha_qdma_set_tx_ets_sched(port, channel, opt);
Limit ETS QoS channel to AIROHA_NUM_QOS_CHANNELS in airoha_tc_setup_qdisc_ets() in order to align the configured channel to the value set in airoha_dev_select_queue(). Fixes: 20bf7d07c956 ("net: airoha: Add sched ETS offload support") Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> --- drivers/net/ethernet/mediatek/airoha_eth.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) --- base-commit: a1942da8a38717ddd9b4c132f59e1657c85c1432 change-id: 20250107-airoha-ets-fix-chan-e35ccac76d64 Best regards,