diff mbox series

[net-next] sfc: use flow_rule_no_unsupp_control_flags()

Message ID 20240416134432.9527-1-ast@fiberby.net (mailing list archive)
State Changes Requested
Delegated to: Netdev Maintainers
Headers show
Series [net-next] sfc: use flow_rule_no_unsupp_control_flags() | expand

Checks

Context Check Description
netdev/series_format success Single patches do not need cover letters
netdev/tree_selection success Clearly marked for net-next
netdev/ynl success Generated files up to date; no warnings/errors; no diff in generated;
netdev/fixes_present success Fixes tag not required for -next series
netdev/header_inline success No static functions without inline keyword in header files
netdev/build_32bit success Errors and warnings before: 926 this patch: 926
netdev/build_tools success No tools touched, skip
netdev/cc_maintainers success CCed 7 of 7 maintainers
netdev/build_clang success Errors and warnings before: 937 this patch: 937
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/deprecated_api success None detected
netdev/check_selftest success No net selftest shell script
netdev/verify_fixes success No Fixes tag
netdev/build_allmodconfig_warn success Errors and warnings before: 937 this patch: 937
netdev/checkpatch warning WARNING: line length of 83 exceeds 80 columns
netdev/build_clang_rust success No Rust files in patch. Skipping build
netdev/kdoc success Errors and warnings before: 2 this patch: 2
netdev/source_inline success Was 0 now: 0

Commit Message

Asbjørn Sloth Tønnesen April 16, 2024, 1:44 p.m. UTC
Adopt nfp-style *_FLOWER_SUPPORTED_CTLFLAGS define.

Change the check for unsupported control flags, to use the new helper
flow_rule_is_supp_control_flags().

Since the helper was based on sfc, then nothing really changes.

Compile-tested, and compiled objects are identical.

Signed-off-by: Asbjørn Sloth Tønnesen <ast@fiberby.net>
---
 drivers/net/ethernet/sfc/tc.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

Comments

Edward Cree April 16, 2024, 1:57 p.m. UTC | #1
On 16/04/2024 14:44, Asbjørn Sloth Tønnesen wrote:
> Adopt nfp-style *_FLOWER_SUPPORTED_CTLFLAGS define.
> 
> Change the check for unsupported control flags, to use the new helper
> flow_rule_is_supp_control_flags().
> 
> Since the helper was based on sfc, then nothing really changes.
> 
> Compile-tested, and compiled objects are identical.
> 
> Signed-off-by: Asbjørn Sloth Tønnesen <ast@fiberby.net>

Subject line doesn't match the patch (I guess because the helper
 got renamed).

> ---
>  drivers/net/ethernet/sfc/tc.c | 10 ++++++----
>  1 file changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/net/ethernet/sfc/tc.c b/drivers/net/ethernet/sfc/tc.c
> index 82e8891a619a..5f73f1dea524 100644
> --- a/drivers/net/ethernet/sfc/tc.c
> +++ b/drivers/net/ethernet/sfc/tc.c
> @@ -21,6 +21,10 @@
>  #include "ef100_rep.h"
>  #include "efx.h"
>  
> +#define SFC_FLOWER_SUPPORTED_CTLFLAGS \
> +	(FLOW_DIS_IS_FRAGMENT | \
> +	 FLOW_DIS_FIRST_FRAG)

I'd rather keep the flags in-line, next to where they're actually
 used.  I.e. we have
    if (flags & FRAGMENT)
        blah;
    if (flags & FIRST_FRAG)
        foo;
    if (!blah_supported(FRAGMENT | FIRST_FRAG))
        return -EEK;
 and it's very clear that anyone changing one of those parts also
 needs to change the other.  Whereas with your #define it's not
 immediately obvious to someone reading the code where that set
 of supported flags comes from conceptually.

-ed
Asbjørn Sloth Tønnesen April 16, 2024, 2:11 p.m. UTC | #2
Hi Ed,

On 4/16/24 1:57 PM, Edward Cree wrote:
> On 16/04/2024 14:44, Asbjørn Sloth Tønnesen wrote:
>> Adopt nfp-style *_FLOWER_SUPPORTED_CTLFLAGS define.
>>
>> Change the check for unsupported control flags, to use the new helper
>> flow_rule_is_supp_control_flags().
>>
>> Since the helper was based on sfc, then nothing really changes.
>>
>> Compile-tested, and compiled objects are identical.
>>
>> Signed-off-by: Asbjørn Sloth Tønnesen <ast@fiberby.net>
> 
> Subject line doesn't match the patch (I guess because the helper
>   got renamed).

Correct, through I had fixed it everywhere. Apparently I missed one.


>> ---
>>   drivers/net/ethernet/sfc/tc.c | 10 ++++++----
>>   1 file changed, 6 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/net/ethernet/sfc/tc.c b/drivers/net/ethernet/sfc/tc.c
>> index 82e8891a619a..5f73f1dea524 100644
>> --- a/drivers/net/ethernet/sfc/tc.c
>> +++ b/drivers/net/ethernet/sfc/tc.c
>> @@ -21,6 +21,10 @@
>>   #include "ef100_rep.h"
>>   #include "efx.h"
>>   
>> +#define SFC_FLOWER_SUPPORTED_CTLFLAGS \
>> +	(FLOW_DIS_IS_FRAGMENT | \
>> +	 FLOW_DIS_FIRST_FRAG)
> 
> I'd rather keep the flags in-line, next to where they're actually
>   used.  I.e. we have
>      if (flags & FRAGMENT)
>          blah;
>      if (flags & FIRST_FRAG)
>          foo;
>      if (!blah_supported(FRAGMENT | FIRST_FRAG))
>          return -EEK;
>   and it's very clear that anyone changing one of those parts also
>   needs to change the other.  Whereas with your #define it's not
>   immediately obvious to someone reading the code where that set
>   of supported flags comes from conceptually.

Ok, I liked the NFP-style #define, but will drop trying to expand that.

pw-bot: changes-requested
diff mbox series

Patch

diff --git a/drivers/net/ethernet/sfc/tc.c b/drivers/net/ethernet/sfc/tc.c
index 82e8891a619a..5f73f1dea524 100644
--- a/drivers/net/ethernet/sfc/tc.c
+++ b/drivers/net/ethernet/sfc/tc.c
@@ -21,6 +21,10 @@ 
 #include "ef100_rep.h"
 #include "efx.h"
 
+#define SFC_FLOWER_SUPPORTED_CTLFLAGS \
+	(FLOW_DIS_IS_FRAGMENT | \
+	 FLOW_DIS_FIRST_FRAG)
+
 enum efx_encap_type efx_tc_indr_netdev_type(struct net_device *net_dev)
 {
 	if (netif_is_vxlan(net_dev))
@@ -273,11 +277,9 @@  static int efx_tc_flower_parse_match(struct efx_nic *efx,
 			match->value.ip_firstfrag = fm.key->flags & FLOW_DIS_FIRST_FRAG;
 			match->mask.ip_firstfrag = true;
 		}
-		if (fm.mask->flags & ~(FLOW_DIS_IS_FRAGMENT | FLOW_DIS_FIRST_FRAG)) {
-			NL_SET_ERR_MSG_FMT_MOD(extack, "Unsupported match on control.flags %#x",
-					       fm.mask->flags);
+		if (!flow_rule_is_supp_control_flags(SFC_FLOWER_SUPPORTED_CTLFLAGS,
+						     fm.mask->flags, extack))
 			return -EOPNOTSUPP;
-		}
 	}
 	if (dissector->used_keys &
 	    ~(BIT_ULL(FLOW_DISSECTOR_KEY_CONTROL) |