From: Jay Ding <jay.d...@broadcom.com> rte_eth_dev_info_get() could fail due to device reset, etc.
The return value should be checked before the device info pointer is dereferenced. Fixes: 2f196c80e716 ("netdev-dpdk: Use LSC interrupt mode.") Signed-off-by: Jay Ding <jay.d...@broadcom.com> Signed-off-by: Kevin Traynor <ktray...@redhat.com> --- lib/netdev-dpdk.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c index 549887b31..03a919962 100644 --- a/lib/netdev-dpdk.c +++ b/lib/netdev-dpdk.c @@ -2333,5 +2333,4 @@ netdev_dpdk_set_config(struct netdev *netdev, const struct smap *args, const char *vf_mac; int err = 0; - int ret; ovs_mutex_lock(&dpdk_mutex); @@ -2397,8 +2396,13 @@ netdev_dpdk_set_config(struct netdev *netdev, const struct smap *args, } - ret = rte_eth_dev_info_get(dev->port_id, &info); + err = -rte_eth_dev_info_get(dev->port_id, &info); + if (err) { + VLOG_ERR("Interface %s rte_eth_dev_info_get error: %s", + dev->up.name, rte_strerror(err)); + goto out; + } - dpdk_process_queue_size(netdev, args, !ret ? &info : NULL, true); - dpdk_process_queue_size(netdev, args, !ret ? &info : NULL, false); + dpdk_process_queue_size(netdev, args, &info, true); + dpdk_process_queue_size(netdev, args, &info, false); vf_mac = smap_get(args, "dpdk-vf-mac"); -- 2.49.0 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev