On 05/22/2017 03:36 PM, Ferruh Yigit wrote:
On 5/22/2017 1:07 PM, Andrew Rybchenko wrote:
On 05/22/2017 02:29 PM, Ferruh Yigit wrote:
On 5/18/2017 3:00 PM, Andrew Rybchenko wrote:
Signed-off-by: Andrew Rybchenko <arybche...@solarflare.com>
Reviewed-by: Andy Moreton <amore...@solarflare.com>
<...>
diff --git a/drivers/net/sfc/sfc_ef10_rx.c b/drivers/net/sfc/sfc_ef10_rx.c
index 1484bab..60812cb 100644
--- a/drivers/net/sfc/sfc_ef10_rx.c
+++ b/drivers/net/sfc/sfc_ef10_rx.c
@@ -699,7 +699,7 @@ struct sfc_dp_rx sfc_ef10_rx = {
.type = SFC_DP_RX,
.hw_fw_caps = SFC_DP_HW_FW_CAP_EF10,
},
- .features = 0,
+ .features = SFC_DP_RX_FEAT_MULTI_PROCESS,
Why this flag is needed, I mean why multi process support is not always
enabled by default?
libefx-based datapath intensively uses function pointers (primary
process function pointers stored in data structures). So, it does not
work in multi process.
But this currently added always, if I don't miss anything. And only
checked once in secondary path and error returned if not set.
Is there any code path that behaves different based on this flag? Or any
case that this flags shouldn't be set?
sfc_efx_rx (and sfc_efx_tx) does not have the flag.
What happens if this flag removed, and assumed it is always set? (this
and tx version of this flag)
Init in the secondary process fails if datapath chosen by the primary
process does not have the flag.
<...>