[dpdk-dev] [PATCH] net/sfc: add missing Rx descriptor status callback

Ferruh Yigit ferruh.yigit at intel.com
Wed May 30 11:42:15 CEST 2018


On 5/30/2018 7:44 AM, Andrew Rybchenko wrote:
> Thomas, Ferruh,
> 
> I've found out that the following patch is deferred in patchwork:
> https://dpdk.org/dev/patchwork/patch/40455/
> 
> It is critical under certain conditions since fix application crash.
> The patch is net/sfc local and just few lines - absolutely harmless.
> The only potential DPDK-wide effect is build, but the patch is really
> trivial and it is hard to imagine how it could affect the build.
> I'd like it to be included in 18.05, if possible.
> 
> I understand that 18.05 is really very-very late already and it
> could be too late even for such patch. Just would like to
> double-check it.

Hi Andrew,

I did mark it as deferred and I overlooked that this fixes a crash.

Agree that scope is local and only effect should be build, I confirmed the build
but to be sure I suggest get the patch and trigger an Intel daily build, and
include the patch into release if only that build also returns success.

> 
> Thanks,
> Andrew.
> 
> On 05/28/2018 09:50 AM, Andrew Rybchenko wrote:
>> Rx descriptor status callback was lost and request of the Rx
>> descriptor status crashes application if equal stride super-buffer
>> Rx mode is used.
>>
>> Fixes: 390f9b8d82c9 ("net/sfc: support equal stride super-buffer Rx mode")
>>
>> Signed-off-by: Andrew Rybchenko <arybchenko at solarflare.com>
>> ---
>>  drivers/net/sfc/sfc_ef10_essb_rx.c | 9 +++++++++
>>  1 file changed, 9 insertions(+)
>>
>> diff --git a/drivers/net/sfc/sfc_ef10_essb_rx.c b/drivers/net/sfc/sfc_ef10_essb_rx.c
>> index 289b61e52..5f5af602c 100644
>> --- a/drivers/net/sfc/sfc_ef10_essb_rx.c
>> +++ b/drivers/net/sfc/sfc_ef10_essb_rx.c
>> @@ -413,6 +413,14 @@ sfc_ef10_essb_rx_qdesc_npending(__rte_unused struct sfc_dp_rxq *dp_rxq)
>>  	return -ENOTSUP;
>>  }
>>  
>> +static sfc_dp_rx_qdesc_status_t sfc_ef10_essb_rx_qdesc_status;
>> +static int
>> +sfc_ef10_essb_rx_qdesc_status(__rte_unused struct sfc_dp_rxq *dp_rxq,
>> +			      __rte_unused uint16_t offset)
>> +{
>> +	return -ENOTSUP;
>> +}
>> +
>>  static sfc_dp_rx_get_dev_info_t sfc_ef10_essb_rx_get_dev_info;
>>  static void
>>  sfc_ef10_essb_rx_get_dev_info(struct rte_eth_dev_info *dev_info)
>> @@ -687,5 +695,6 @@ struct sfc_dp_rx sfc_ef10_essb_rx = {
>>  	.qpurge			= sfc_ef10_essb_rx_qpurge,
>>  	.supported_ptypes_get	= sfc_ef10_supported_ptypes_get,
>>  	.qdesc_npending		= sfc_ef10_essb_rx_qdesc_npending,
>> +	.qdesc_status		= sfc_ef10_essb_rx_qdesc_status,
>>  	.pkt_burst		= sfc_ef10_essb_recv_pkts,
>>  };
> 



More information about the dev mailing list