diff options
author | Jesus Sanchez-Palencia <jesus.sanchez-palencia@intel.com> | 2018-07-03 18:42:57 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-07-04 09:30:28 -0400 |
commit | 8080e6ab4e99216f414c5c314264fd7cf3b6e4c1 (patch) | |
tree | 8eecd33df0df865afc8e818f061f75eeed0641bf /drivers/net/ethernet/intel/igb/igb_main.c | |
parent | 0364a0d0e7a124e7c821cc536a95f7ef421349cb (diff) |
igb: Refactor igb_offload_cbs()
Split code into a separate function (igb_offload_apply()) that will be
used by ETF offload implementation.
Signed-off-by: Jesus Sanchez-Palencia <jesus.sanchez-palencia@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/intel/igb/igb_main.c')
-rw-r--r-- | drivers/net/ethernet/intel/igb/igb_main.c | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c index 8c90f1e51add..c30ab7b260cc 100644 --- a/drivers/net/ethernet/intel/igb/igb_main.c +++ b/drivers/net/ethernet/intel/igb/igb_main.c | |||
@@ -2474,6 +2474,19 @@ igb_features_check(struct sk_buff *skb, struct net_device *dev, | |||
2474 | return features; | 2474 | return features; |
2475 | } | 2475 | } |
2476 | 2476 | ||
2477 | static void igb_offload_apply(struct igb_adapter *adapter, s32 queue) | ||
2478 | { | ||
2479 | if (!is_fqtss_enabled(adapter)) { | ||
2480 | enable_fqtss(adapter, true); | ||
2481 | return; | ||
2482 | } | ||
2483 | |||
2484 | igb_config_tx_modes(adapter, queue); | ||
2485 | |||
2486 | if (!is_any_cbs_enabled(adapter)) | ||
2487 | enable_fqtss(adapter, false); | ||
2488 | } | ||
2489 | |||
2477 | static int igb_offload_cbs(struct igb_adapter *adapter, | 2490 | static int igb_offload_cbs(struct igb_adapter *adapter, |
2478 | struct tc_cbs_qopt_offload *qopt) | 2491 | struct tc_cbs_qopt_offload *qopt) |
2479 | { | 2492 | { |
@@ -2494,15 +2507,7 @@ static int igb_offload_cbs(struct igb_adapter *adapter, | |||
2494 | if (err) | 2507 | if (err) |
2495 | return err; | 2508 | return err; |
2496 | 2509 | ||
2497 | if (is_fqtss_enabled(adapter)) { | 2510 | igb_offload_apply(adapter, qopt->queue); |
2498 | igb_config_tx_modes(adapter, qopt->queue); | ||
2499 | |||
2500 | if (!is_any_cbs_enabled(adapter)) | ||
2501 | enable_fqtss(adapter, false); | ||
2502 | |||
2503 | } else { | ||
2504 | enable_fqtss(adapter, true); | ||
2505 | } | ||
2506 | 2511 | ||
2507 | return 0; | 2512 | return 0; |
2508 | } | 2513 | } |