app/testpmd: fix crash when attaching a device

Message ID 20180613162519.19205-1-adrien.mazarguil@6wind.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers
Series app/testpmd: fix crash when attaching a device |

Checks

Context Check Description
ci/Intel-compilation success Compilation OK

Commit Message

Adrien Mazarguil June 13, 2018, 4:27 p.m. UTC
  Below commit checks global device information to determine if a port uses
the softnic driver once initialized. Problem is that this information is
not available at this point when a port is initialized interactively
through a "port attach XXX" command, crashing testpmd.

This patch systematically initializes global device information to address
this issue.

Fixes: 5b590fbe09b6 ("app/testpmd: add traffic management forwarding mode")
Cc: stable@dpdk.org
Cc: Jasvinder Singh <jasvinder.singh@intel.com>

Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
---
 app/test-pmd/testpmd.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)
  

Comments

Iremonger, Bernard June 14, 2018, 2:56 p.m. UTC | #1
> -----Original Message-----
> From: Adrien Mazarguil [mailto:adrien.mazarguil@6wind.com]
> Sent: Wednesday, June 13, 2018 5:28 PM
> To: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Wu, Jingjing
> <jingjing.wu@intel.com>; Iremonger, Bernard
> <bernard.iremonger@intel.com>
> Cc: dev@dpdk.org; stable@dpdk.org; Singh, Jasvinder
> <jasvinder.singh@intel.com>; Xueming(steven) Li
> <xuemingl@mellanox.com>
> Subject: [PATCH] app/testpmd: fix crash when attaching a device
> 
> Below commit checks global device information to determine if a port uses
> the softnic driver once initialized. Problem is that this information is not
> available at this point when a port is initialized interactively through a "port
> attach XXX" command, crashing testpmd.
> 
> This patch systematically initializes global device information to address this
> issue.
> 
> Fixes: 5b590fbe09b6 ("app/testpmd: add traffic management forwarding
> mode")
> Cc: stable@dpdk.org
> Cc: Jasvinder Singh <jasvinder.singh@intel.com>
> 
> Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
> ---

Acked-by: Bernard Iremonger <Bernard.iremonger@intel.com>
  
Ferruh Yigit June 14, 2018, 3:19 p.m. UTC | #2
On 6/14/2018 3:56 PM, Iremonger, Bernard wrote:
> 
> 
>> -----Original Message-----
>> From: Adrien Mazarguil [mailto:adrien.mazarguil@6wind.com]
>> Sent: Wednesday, June 13, 2018 5:28 PM
>> To: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Wu, Jingjing
>> <jingjing.wu@intel.com>; Iremonger, Bernard
>> <bernard.iremonger@intel.com>
>> Cc: dev@dpdk.org; stable@dpdk.org; Singh, Jasvinder
>> <jasvinder.singh@intel.com>; Xueming(steven) Li
>> <xuemingl@mellanox.com>
>> Subject: [PATCH] app/testpmd: fix crash when attaching a device
>>
>> Below commit checks global device information to determine if a port uses
>> the softnic driver once initialized. Problem is that this information is not
>> available at this point when a port is initialized interactively through a "port
>> attach XXX" command, crashing testpmd.
>>
>> This patch systematically initializes global device information to address this
>> issue.
>>
>> Fixes: 5b590fbe09b6 ("app/testpmd: add traffic management forwarding
>> mode")
>> Cc: stable@dpdk.org
>> Cc: Jasvinder Singh <jasvinder.singh@intel.com>
>>
>> Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
>> ---
> 
> Acked-by: Bernard Iremonger <Bernard.iremonger@intel.com>

Applied to dpdk-next-net/master, thanks.
  

Patch

diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index 35cf26674..24c199844 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -2355,16 +2355,15 @@  init_port_config(void)
 {
 	portid_t pid;
 	struct rte_port *port;
-	struct rte_eth_dev_info dev_info;
 
 	RTE_ETH_FOREACH_DEV(pid) {
 		port = &ports[pid];
 		port->dev_conf.fdir_conf = fdir_conf;
+		rte_eth_dev_info_get(pid, &port->dev_info);
 		if (nb_rxq > 1) {
-			rte_eth_dev_info_get(pid, &dev_info);
 			port->dev_conf.rx_adv_conf.rss_conf.rss_key = NULL;
 			port->dev_conf.rx_adv_conf.rss_conf.rss_hf =
-				rss_hf & dev_info.flow_type_rss_offloads;
+				rss_hf & port->dev_info.flow_type_rss_offloads;
 		} else {
 			port->dev_conf.rx_adv_conf.rss_conf.rss_key = NULL;
 			port->dev_conf.rx_adv_conf.rss_conf.rss_hf = 0;