net/sfc/base: use simpler code to check hash algorithm type
authorIvan Malov <ivan.malov@oktetlabs.ru>
Mon, 10 Sep 2018 09:33:30 +0000 (10:33 +0100)
committerFerruh Yigit <ferruh.yigit@intel.com>
Thu, 27 Sep 2018 23:41:02 +0000 (01:41 +0200)
The API which is used to list supported hash flags verifies
hash algorithm choice before writing the output. This check
is based on a switch() statement which has only two options
and no distinctive actions to be conducted for each of them.
Use simpler code instead of switch() to improve readability.

Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
drivers/net/sfc/base/efx_rx.c

index 7b9f286..dfd3974 100644 (file)
@@ -312,6 +312,11 @@ efx_rx_scale_hash_flags_get(
                goto fail1;
        }
 
+       if ((encp->enc_rx_scale_hash_alg_mask & (1U << hash_alg)) == 0) {
+               *nflagsp = 0;
+               return 0;
+       }
+
        l4 = encp->enc_rx_scale_l4_hash_supported;
        additional_modes = encp->enc_rx_scale_additional_modes_supported;
 
@@ -340,32 +345,17 @@ efx_rx_scale_hash_flags_get(
                _NOTE(CONSTANTCONDITION)                                \
        } while (B_FALSE)
 
-       switch (hash_alg) {
-       case EFX_RX_HASHALG_PACKED_STREAM:
-               if ((encp->enc_rx_scale_hash_alg_mask & (1U << hash_alg)) == 0)
-                       break;
-               /* FALLTHRU */
-       case EFX_RX_HASHALG_TOEPLITZ:
-               if ((encp->enc_rx_scale_hash_alg_mask & (1U << hash_alg)) == 0)
-                       break;
+       LIST_FLAGS(entryp, IPV4_TCP, l4, additional_modes);
+       LIST_FLAGS(entryp, IPV6_TCP, l4, additional_modes);
 
-               LIST_FLAGS(entryp, IPV4_TCP, l4, additional_modes);
-               LIST_FLAGS(entryp, IPV6_TCP, l4, additional_modes);
-
-               if (additional_modes) {
-                       LIST_FLAGS(entryp, IPV4_UDP, l4, additional_modes);
-                       LIST_FLAGS(entryp, IPV6_UDP, l4, additional_modes);
-               }
-
-               LIST_FLAGS(entryp, IPV4, B_FALSE, additional_modes);
-               LIST_FLAGS(entryp, IPV6, B_FALSE, additional_modes);
-               break;
-
-       default:
-               rc = EINVAL;
-               goto fail2;
+       if (additional_modes) {
+               LIST_FLAGS(entryp, IPV4_UDP, l4, additional_modes);
+               LIST_FLAGS(entryp, IPV6_UDP, l4, additional_modes);
        }
 
+       LIST_FLAGS(entryp, IPV4, B_FALSE, additional_modes);
+       LIST_FLAGS(entryp, IPV6, B_FALSE, additional_modes);
+
 #undef LIST_FLAGS
 
        *nflagsp = (unsigned int)(entryp - flagsp);
@@ -373,9 +363,6 @@ efx_rx_scale_hash_flags_get(
 
        return (0);
 
-fail2:
-       EFSYS_PROBE(fail2);
-
 fail1:
        EFSYS_PROBE1(fail1, efx_rc_t, rc);