examples/kni: fix crash during MTU set
During MTU set (kni_change_mtu) sample application setup queues, which can free and re-allocate queues. Meanwhile sample application keeps continues in Rx/Tx burst calls in different threads, which may cause crash during queue setup. Pausing application Rx/Tx calls before MTU set and starts it back afterwards. Bugzilla ID: 482 Fixes: a26b116749a3 ("examples/kni: fix MTU change to setup Tx queue") Cc: stable@dpdk.org Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Rasesh Mody <rmody@marvell.com> Tested-by: Xi Zhang <xix.zhang@intel.com>
This commit is contained in:
parent
61d6c7a98b
commit
36f9eba471
@ -768,9 +768,8 @@ monitor_all_ports_link_status(void *arg)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Callback for request of changing MTU */
|
||||
static int
|
||||
kni_change_mtu(uint16_t port_id, unsigned int new_mtu)
|
||||
kni_change_mtu_(uint16_t port_id, unsigned int new_mtu)
|
||||
{
|
||||
int ret;
|
||||
uint16_t nb_rxd = NB_RXD;
|
||||
@ -851,6 +850,19 @@ kni_change_mtu(uint16_t port_id, unsigned int new_mtu)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Callback for request of changing MTU */
|
||||
static int
|
||||
kni_change_mtu(uint16_t port_id, unsigned int new_mtu)
|
||||
{
|
||||
int ret;
|
||||
|
||||
rte_atomic32_inc(&kni_pause);
|
||||
ret = kni_change_mtu_(port_id, new_mtu);
|
||||
rte_atomic32_dec(&kni_pause);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Callback for request of configuring network interface up/down */
|
||||
static int
|
||||
kni_config_network_interface(uint16_t port_id, uint8_t if_up)
|
||||
|
Loading…
x
Reference in New Issue
Block a user