efct_hw_iotype_is_originator is returning a negative (-EIO) status which doesn't make sense for a u8 function type. Reviewing the code, the function only needs to return true/false, thus a bool status is most appropriate. Change the function return type and patch up the one callee as the bool inverses the if check. Fixes: 4df84e846624 ("scsi: elx: efct: Driver initialization routines") Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> Signed-off-by: James Smart <jsmart2021@xxxxxxxxx> --- drivers/scsi/elx/efct/efct_hw.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/scsi/elx/efct/efct_hw.c b/drivers/scsi/elx/efct/efct_hw.c index ce4736c41564..0d86c2b81f46 100644 --- a/drivers/scsi/elx/efct/efct_hw.c +++ b/drivers/scsi/elx/efct/efct_hw.c @@ -338,14 +338,14 @@ efct_hw_init_free_io(struct efct_hw_io *io) io->wq = NULL; } -static u8 efct_hw_iotype_is_originator(u16 io_type) +static bool efct_hw_iotype_is_originator(u16 io_type) { switch (io_type) { case EFCT_HW_FC_CT: case EFCT_HW_ELS_REQ: - return 0; + return true; default: - return -EIO; + return false; } } @@ -408,7 +408,7 @@ efct_hw_wq_process_io(void *arg, u8 *cqe, int status) * If we're not an originator IO, and XB is set, then issue * abort for the IO from within the HW */ - if ((!efct_hw_iotype_is_originator(io->type)) && + if (efct_hw_iotype_is_originator(io->type) && wcqe->flags & SLI4_WCQE_XB) { int rc; -- 2.26.2