On 3/2/2022 12:33 PM, Harold Huang wrote:
When kni driver calls eth_kni_start to start device, some fields such as
min_mtu and max_mtu of rte_kni_conf are not initialized. It will cause
kni_ioctl_create create a kni netdevice with a random min_mtu and max_mtu
value. This is unexpected and in some time we could not change the kni
device mtu with ip link command.
Agree on the problem and the solution, thanks for the fix.
Fixes: ff1e35fb5f8 ("kni: calculate MTU from mbuf size")
Signed-off-by: Harold Huang <baymaxhu...@gmail.com>
---
drivers/net/kni/rte_eth_kni.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/kni/rte_eth_kni.c b/drivers/net/kni/rte_eth_kni.c
index c428caf441..23b15edfac 100644
--- a/drivers/net/kni/rte_eth_kni.c
+++ b/drivers/net/kni/rte_eth_kni.c
@@ -128,6 +128,7 @@ eth_kni_start(struct rte_eth_dev *dev)
const char *name = dev->device->name + 4; /* remove net_ */
mb_pool = internals->rx_queues[0].mb_pool;
+ memset(&conf, 0, sizeof(conf));
Can you prefer initialize to zero, instead of 'memset', I think it
is more clear that way:
- struct rte_kni_conf conf;
+ struct rte_kni_conf conf = { 0 };
strlcpy(conf.name, name, RTE_KNI_NAMESIZE);
conf.force_bind = 0;
conf.group_id = port_id;