[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