On 6/1/2022 9:47 AM, Andrew Rybchenko wrote:
On 6/1/22 04:52, Min Hu (Connor) wrote:
Hi, Andrew ,

在 2022/6/1 0:42, Andrew Rybchenko 写道:
On 5/21/22 10:06, Min Hu (Connor) wrote:
When kernel version change into 5.18 from 5.17, 'netif_rx_ni' is discard.
It is replaced by 'netif_rx' and this API is also supported in the
version below 5.18.

This patch fixed it.

Fixes: d89a58dfe90b ("kni: support chained mbufs")
Cc: sta...@dpdk.org

Signed-off-by: Min Hu (Connor) <humi...@huawei.com>
---
  kernel/linux/kni/kni_net.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/kernel/linux/kni/kni_net.c b/kernel/linux/kni/kni_net.c
index 29e5b9e21f..e19f03285e 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);

I think the approach in [1] is the right one. Any comments?

[1] https://patches.dpdk.org/project/dpdk/patch/20220525102641.20982-1-jsl...@suse.cz/

          /* Update statistics */
          dev->stats.rx_bytes += len;
@@ -779,7 +779,7 @@ kni_net_set_mac(struct net_device *netdev, void *p)
          return -EADDRNOTAVAIL;
      memcpy(req.mac_addr, addr->sa_data, netdev->addr_len);
-    memcpy(netdev->dev_addr, addr->sa_data, netdev->addr_len);
+    memcpy((void *)(netdev->dev_addr), addr->sa_data, netdev->addr_len);
When compile, it will report a warning, because it claims that the
parameter types must be the same.
void *memcpy(void *destin, void *source, unsigned n);

so this is what I am doing.

I think it is a separate story vs netif_rx_ni(). So, it should not be in
the same patch. IMHO, it is closer to [1]

[1] https://patches.dpdk.org/project/dpdk/patch/20220601015925.35304-1-humi...@huawei.com/

Am I missing something?


There are two build errors because of kernel side changes.

- netif_rx_ni(). Following patch seems correct fix with small change requests:

https://patchwork.dpdk.org/project/dpdk/patch/20220525102641.20982-1-jsl...@suse.cz/

- 'net_dev->dev_addr' being const, following patch is in correct direction:
https://patchwork.dpdk.org/project/dpdk/patch/20220601054525.7573-1-ke1x.zh...@intel.com/



I don't understand why the change is needed and the patch description
does not shed any light on it.

      ret = kni_net_process_request(netdev, &req);

.


Reply via email to