[PATCH] kni: update kernel API to receive packets

Ferruh Yigit ferruh.yigit at xilinx.com
Fri Apr 15 14:30:33 CEST 2022


On 4/15/2022 5:07 AM, Gagandeep Singh wrote:
> Hi
> 
>> -----Original Message-----
>> From: Harold Huang <baymaxhuang at gmail.com>
>> Sent: Friday, April 15, 2022 8:54 AM
>> To: Gagandeep Singh <G.Singh at nxp.com>
>> Cc: dev at dpdk.org
>> Subject: Re: [PATCH] kni: update kernel API to receive packets
>>
>> On Thu, Apr 14, 2022 at 8:23 PM Gagandeep Singh <g.singh at nxp.com> wrote:
>>>
>>> API 'netif_rx_ni()' has been removed in kernel with commit:
>>> baebdf48c3600 ("net: dev: Makes sure netif_rx() can be invoked in any
>>> context.")
>>>
>>> The API netif_rx() can be used for any context to receive packets from
>>> device drivers.
>>>
>>> This patch replaces the API netif_rx_ni() with netif_rx().
>>
>> But this change would cause KNI kernel module does not work in the old kernel
>> without this patch. I suggested using netif_rx_ni to keep compatibility.
> 
> netif_rx() API exists from very older versions of kernel before v2.6. There will be
> no compilation issues. Only difference was, netif_rx_ni() can be used in noninterrupt contexts
> to improve performance.

May not be compilation issue, but with old kernels won't the behavior be 
different when 'netif_rx_ni()' switched to 'netif_rx()'?

> Now, in latest kernel, netif_rx_ni() is removed and netif_rx can handle all the contexts.
> So we have to replace this API otherwise compilation will break on latest kernel.
> 
>>
>>>
>>> Signed-off-by: Gagandeep Singh <g.singh at nxp.com>
>>> ---
>>>   kernel/linux/kni/kni_net.c | 2 +-
>>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/kernel/linux/kni/kni_net.c b/kernel/linux/kni/kni_net.c
>>> index 29e5b9e21f..e66b35314a 100644
>>> --- a/kernel/linux/kni/kni_net.c
>>> +++ b/kernel/linux/kni/kni_net.c
>>> @@ -441,7 +441,7 @@ kni_net_rx_normal(struct kni_dev *kni)
>>>                  skb->ip_summed = CHECKSUM_UNNECESSARY;
>>>
>>>                  /* Call netif interface */
>>> -               netif_rx_ni(skb);
>>> +               netif_rx(skb);
>>>
>>>                  /* Update statistics */
>>>                  dev->stats.rx_bytes += len;
>>> --
>>> 2.25.1
>>>
>>
>>
>> --
>> Thanks, Harold.



More information about the dev mailing list