[v4] net/kni: reset rte_kni_conf struct before initialization

Message ID 20211205062102.2165380-1-baymaxhuang@gmail.com (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers
Series [v4] net/kni: reset rte_kni_conf struct before initialization |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/github-robot: build success github build: passed
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-aarch64-unit-testing success Testing PASS

Commit Message

Harold Huang Dec. 5, 2021, 6:21 a.m. UTC
  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 isunexpected and in some time we could not change the kni
device mtu with ip link command.

Fixes: ff1e35fb5f8 ("kni: calculate MTU from mbuf size")
Signed-off-by: Harold Huang <baymaxhuang@gmail.com>
---
 drivers/net/kni/rte_eth_kni.c | 1 +
 1 file changed, 1 insertion(+)
  

Comments

Thomas Monjalon Feb. 27, 2022, 8:12 p.m. UTC | #1
+Cc Ferruh

05/12/2021 07:21, Harold Huang:
> 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 isunexpected and in some time we could not change the kni
> device mtu with ip link command.
> 
> Fixes: ff1e35fb5f8 ("kni: calculate MTU from mbuf size")
> Signed-off-by: Harold Huang <baymaxhuang@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));
>  	strlcpy(conf.name, name, RTE_KNI_NAMESIZE);
>  	conf.force_bind = 0;
>  	conf.group_id = port_id;
  

Patch

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));
 	strlcpy(conf.name, name, RTE_KNI_NAMESIZE);
 	conf.force_bind = 0;
 	conf.group_id = port_id;