The return value of the get link function call was not checked, and could return a negative value indicating a failure. If the return value is not 0 for success, the loop continues with the next port. To avoid a slight name clash with the new ret variable, the existing retval variable is renamed to link_status, to better represent its use. Coverity issue: 350348 Fixes: c8e6ceecebc1 ("examples/ioat: add new sample app for ioat driver") Cc: pawelx.modrak@intel.com Cc: stable@dpdk.org Signed-off-by: Ciara Power <ciara.power@intel.com> --- examples/ioat/ioatfwd.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/examples/ioat/ioatfwd.c b/examples/ioat/ioatfwd.c index e9117718f..99ecc0fde 100644 --- a/examples/ioat/ioatfwd.c +++ b/examples/ioat/ioatfwd.c @@ -697,7 +697,7 @@ check_link_status(uint32_t port_mask) { uint16_t portid; struct rte_eth_link link; - int retval = 0; + int ret, link_status = 0; printf("\nChecking link status\n"); RTE_ETH_FOREACH_DEV(portid) { @@ -705,7 +705,12 @@ check_link_status(uint32_t port_mask) continue; memset(&link, 0, sizeof(link)); - rte_eth_link_get(portid, &link); + ret = rte_eth_link_get(portid, &link); + if (ret < 0) { + printf("Port %u link get failed: err=%d\n", + portid, ret); + continue; + } /* Print link status */ if (link.link_status) { @@ -714,11 +719,11 @@ check_link_status(uint32_t port_mask) portid, link.link_speed, (link.link_duplex == ETH_LINK_FULL_DUPLEX) ? ("full-duplex") : ("half-duplex\n")); - retval = 1; + link_status = 1; } else printf("Port %d Link Down\n", portid); } - return retval; + return link_status; } static void -- 2.17.1
The return value of the get link function call was not checked, and could return a negative value indicating a failure. This meant the link_status of the link being checked is invalid, because the link was not filled with data. The return value is now checked, and if the return value is not 0 for success, the loop continues with the next port. To avoid confusion between variable names, the existing retval variable is renamed to link_status, to better represent its use. Coverity issue: 350348 Fixes: c8e6ceecebc1 ("examples/ioat: add new sample app for ioat driver") Cc: pawelx.modrak@intel.com Cc: stable@dpdk.org Signed-off-by: Ciara Power <ciara.power@intel.com> --- v2: - Changed commit log subject and description - Rebased onto master --- examples/ioat/ioatfwd.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/examples/ioat/ioatfwd.c b/examples/ioat/ioatfwd.c index e9117718f..99ecc0fde 100644 --- a/examples/ioat/ioatfwd.c +++ b/examples/ioat/ioatfwd.c @@ -697,7 +697,7 @@ check_link_status(uint32_t port_mask) { uint16_t portid; struct rte_eth_link link; - int retval = 0; + int ret, link_status = 0; printf("\nChecking link status\n"); RTE_ETH_FOREACH_DEV(portid) { @@ -705,7 +705,12 @@ check_link_status(uint32_t port_mask) continue; memset(&link, 0, sizeof(link)); - rte_eth_link_get(portid, &link); + ret = rte_eth_link_get(portid, &link); + if (ret < 0) { + printf("Port %u link get failed: err=%d\n", + portid, ret); + continue; + } /* Print link status */ if (link.link_status) { @@ -714,11 +719,11 @@ check_link_status(uint32_t port_mask) portid, link.link_speed, (link.link_duplex == ETH_LINK_FULL_DUPLEX) ? ("full-duplex") : ("half-duplex\n")); - retval = 1; + link_status = 1; } else printf("Port %d Link Down\n", portid); } - return retval; + return link_status; } static void -- 2.17.1
On Fri, Feb 07, 2020 at 10:24:02AM +0000, Ciara Power wrote:
> The return value of the get link function call was not checked, and
> could return a negative value indicating a failure. This meant the
> link_status of the link being checked is invalid, because the link was
> not filled with data. The return value is now checked, and if the return
> value is not 0 for success, the loop continues with the next port.
>
> To avoid confusion between variable names, the existing retval variable
> is renamed to link_status, to better represent its use.
>
> Coverity issue: 350348
> Fixes: c8e6ceecebc1 ("examples/ioat: add new sample app for ioat driver")
> Cc: pawelx.modrak@intel.com
> Cc: stable@dpdk.org
>
> Signed-off-by: Ciara Power <ciara.power@intel.com>
>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
On Fri, Feb 7, 2020 at 11:34 AM Ciara Power <ciara.power@intel.com> wrote:
>
> The return value of the get link function call was not checked, and
> could return a negative value indicating a failure. This meant the
> link_status of the link being checked is invalid, because the link was
> not filled with data. The return value is now checked, and if the return
> value is not 0 for success, the loop continues with the next port.
>
> To avoid confusion between variable names, the existing retval variable
> is renamed to link_status, to better represent its use.
>
> Coverity issue: 350348
> Fixes: c8e6ceecebc1 ("examples/ioat: add new sample app for ioat driver")
> Cc: stable@dpdk.org
>
> Signed-off-by: Ciara Power <ciara.power@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Applied, thanks.
--
David Marchand