Re: [PATCH] sfc-falcon: Fix missing error code in ef4_reset_up()
From: Edward Cree <ecree.xilinx@gmail.com>
Date: 2021-06-01 11:22:58
Also in:
lkml
On 01/06/2021 12:06, Jiapeng Chong wrote:
quoted hunk ↗ jump to hunk
The error code is missing in this code scenario, add the error code '-EINVAL' to the return value 'rc'. Eliminate the follow smatch warning: drivers/net/ethernet/sfc/falcon/efx.c:2389 ef4_reset_up() warn: missing error code 'rc'. Reported-by: Abaci Robot <redacted> Signed-off-by: Jiapeng Chong <redacted> --- drivers/net/ethernet/sfc/falcon/efx.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)diff --git a/drivers/net/ethernet/sfc/falcon/efx.c b/drivers/net/ethernet/sfc/falcon/efx.c index 5e7a57b..d336c24 100644 --- a/drivers/net/ethernet/sfc/falcon/efx.c +++ b/drivers/net/ethernet/sfc/falcon/efx.c@@ -2385,8 +2385,10 @@ int ef4_reset_up(struct ef4_nic *efx, enum reset_type method, bool ok) goto fail; } - if (!ok) + if (!ok) { + rc = -EINVAL; goto fail; + }
Not sure this is correct. Without the patch, we return with rc == 0 (set by the efx->type->init() call just above), which seems reasonable as we successfully finished a RESET_TYPE_DISABLE. The label name 'fail:' might be misleading; it does seem like this is intended behaviour. Have you tested this at all? Note that the sfc driver (efx_common.c) does much the same thing as the code here before your patch. -ed
if (efx->port_initialized && method != RESET_TYPE_INVISIBLE &&
method != RESET_TYPE_DATAPATH) {