On 5/22/2017 1:44 PM, Andrew Rybchenko wrote: > 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.
Got it, thanks. > >> 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. > >>>> <...> > >