From: Stephen Hemminger Date: Mon, 13 Jan 2020 19:12:38 +0000 (-0800) Subject: net/netvsc: fix crash in secondary process X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=f8279f47d;p=dpdk.git net/netvsc: fix crash in secondary process The secondary process would crash trying to get the offload capability of the device. Since the device capabilities were already set by the primary process this was unnecessary. Fixes: 4e9c73e96e83 ("net/netvsc: add Hyper-V network device") Cc: stable@dpdk.org Signed-off-by: Stephen Hemminger --- diff --git a/drivers/net/netvsc/hn_ethdev.c b/drivers/net/netvsc/hn_ethdev.c index 159116f7f6..c79f924379 100644 --- a/drivers/net/netvsc/hn_ethdev.c +++ b/drivers/net/netvsc/hn_ethdev.c @@ -257,15 +257,16 @@ static int hn_dev_info_get(struct rte_eth_dev *dev, dev_info->max_rx_queues = hv->max_queues; dev_info->max_tx_queues = hv->max_queues; - rc = hn_rndis_get_offload(hv, dev_info); - if (rc != 0) - return rc; + if (rte_eal_process_type() != RTE_PROC_PRIMARY) + return 0; - rc = hn_vf_info_get(hv, dev_info); + /* fills in rx and tx offload capability */ + rc = hn_rndis_get_offload(hv, dev_info); if (rc != 0) return rc; - return 0; + /* merges the offload and queues of vf */ + return hn_vf_info_get(hv, dev_info); } static int hn_rss_reta_update(struct rte_eth_dev *dev, @@ -929,6 +930,9 @@ eth_hn_dev_init(struct rte_eth_dev *eth_dev) eth_dev->tx_pkt_burst = &hn_xmit_pkts; eth_dev->rx_pkt_burst = &hn_recv_pkts; + /* Since Hyper-V only supports one MAC address, just use local data */ + eth_dev->data->mac_addrs = &hv->mac_addr; + /* * for secondary processes, we don't initialize any further as primary * has already done this work. @@ -936,9 +940,6 @@ eth_hn_dev_init(struct rte_eth_dev *eth_dev) if (rte_eal_process_type() != RTE_PROC_PRIMARY) return 0; - /* Since Hyper-V only supports one MAC address, just use local data */ - eth_dev->data->mac_addrs = &hv->mac_addr; - hv->vmbus = vmbus; hv->rxbuf_res = &vmbus->resource[HV_RECV_BUF_MAP]; hv->chim_res = &vmbus->resource[HV_SEND_BUF_MAP];