Skip to content

Commit 7eca80c

Browse files
Jay Dingkevintraynor
andcommitted
netdev-dpdk: Fix device info return value check.
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: 2f196c8 ("netdev-dpdk: Use LSC interrupt mode.") Signed-off-by: Jay Ding <[email protected]> Co-Authored-by: Kevin Traynor <[email protected]> Signed-off-by: Kevin Traynor <[email protected]> Acked-by: Mike Pattrick <[email protected]> Acked-by: Eelco Chaudron <[email protected]>
1 parent d21e097 commit 7eca80c

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

lib/netdev-dpdk.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2301,7 +2301,6 @@ netdev_dpdk_set_config(struct netdev *netdev, const struct smap *args,
23012301
const char *new_devargs;
23022302
const char *vf_mac;
23032303
int err = 0;
2304-
int ret;
23052304

23062305
ovs_mutex_lock(&dpdk_mutex);
23072306
ovs_mutex_lock(&dev->mutex);
@@ -2365,10 +2364,15 @@ netdev_dpdk_set_config(struct netdev *netdev, const struct smap *args,
23652364
goto out;
23662365
}
23672366

2368-
ret = rte_eth_dev_info_get(dev->port_id, &info);
2367+
err = -rte_eth_dev_info_get(dev->port_id, &info);
2368+
if (err) {
2369+
VLOG_WARN_BUF(errp, "%s: Failed to get device info: %s" ,
2370+
netdev_get_name(netdev), rte_strerror(err));
2371+
goto out;
2372+
}
23692373

2370-
dpdk_process_queue_size(netdev, args, !ret ? &info : NULL, true);
2371-
dpdk_process_queue_size(netdev, args, !ret ? &info : NULL, false);
2374+
dpdk_process_queue_size(netdev, args, &info, true);
2375+
dpdk_process_queue_size(netdev, args, &info, false);
23722376

23732377
vf_mac = smap_get(args, "dpdk-vf-mac");
23742378
if (vf_mac) {

0 commit comments

Comments
 (0)