diff options
| author | Vladimir Oltean <[email protected]> | 2023-05-30 09:19:45 +0000 |
|---|---|---|
| committer | David S. Miller <[email protected]> | 2023-05-31 09:00:30 +0000 |
| commit | 2d800bc500fb3fb07a0fb42e2d0a1356fb9e1e8f (patch) | |
| tree | db9684b080c8cd07b7e364ddc37533edfa6d5758 /drivers/net/ethernet/intel/igc/igc_main.c | |
| parent | net/sched: taprio: don't overwrite "sch" variable in taprio_dump_class_stats() (diff) | |
| download | kernel-2d800bc500fb3fb07a0fb42e2d0a1356fb9e1e8f.tar.gz kernel-2d800bc500fb3fb07a0fb42e2d0a1356fb9e1e8f.zip | |
net/sched: taprio: replace tc_taprio_qopt_offload :: enable with a "cmd" enum
Inspired from struct flow_cls_offload :: cmd, in order for taprio to be
able to report statistics (which is future work), it seems that we need
to drill one step further with the ndo_setup_tc(TC_SETUP_QDISC_TAPRIO)
multiplexing, and pass the command as part of the common portion of the
muxed structure.
Since we already have an "enable" variable in tc_taprio_qopt_offload,
refactor all drivers to check for "cmd" instead of "enable", and reject
every other command except "replace" and "destroy" - to be future proof.
Signed-off-by: Vladimir Oltean <[email protected]>
Reviewed-by: Horatiu Vultur <[email protected]> # for lan966x
Acked-by: Kurt Kanzenbach <[email protected]> # hellcreek
Reviewed-by: Muhammad Husaini Zulkifli <[email protected]>
Reviewed-by: Gerhard Engleder <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Diffstat (limited to 'drivers/net/ethernet/intel/igc/igc_main.c')
| -rw-r--r-- | drivers/net/ethernet/intel/igc/igc_main.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/drivers/net/ethernet/intel/igc/igc_main.c b/drivers/net/ethernet/intel/igc/igc_main.c index c5ef1edcf548..88145c30c919 100644 --- a/drivers/net/ethernet/intel/igc/igc_main.c +++ b/drivers/net/ethernet/intel/igc/igc_main.c @@ -6113,9 +6113,18 @@ static int igc_save_qbv_schedule(struct igc_adapter *adapter, size_t n; int i; - adapter->qbv_enable = qopt->enable; + switch (qopt->cmd) { + case TAPRIO_CMD_REPLACE: + adapter->qbv_enable = true; + break; + case TAPRIO_CMD_DESTROY: + adapter->qbv_enable = false; + break; + default: + return -EOPNOTSUPP; + } - if (!qopt->enable) + if (!adapter->qbv_enable) return igc_tsn_clear_schedule(adapter); if (qopt->base_time < 0) |
