re: io_uring: process task work in io_uring_register()

From: Colin Ian King
Date: Thu Oct 08 2020 - 14:23:59 EST


Hi,

Static analysis with Coverity has detected a "dead-code" issue with the
following commit:

commit af9c1a44f8dee7a958e07977f24ba40e3c770987
Author: Jens Axboe <axboe@xxxxxxxxx>
Date: Thu Sep 24 13:32:18 2020 -0600

io_uring: process task work in io_uring_register()

The analysis is as follows:

9513 do {
9514 ret =
wait_for_completion_interruptible(&ctx->ref_comp);

cond_const: Condition ret, taking false branch. Now the value of ret is
equal to 0.

9515 if (!ret)
9516 break;
9517 if (io_run_task_work_sig() > 0)
9518 continue;
9519 } while (1);
9520
9521 mutex_lock(&ctx->uring_lock);
9522

const: At condition ret, the value of ret must be equal to 0.
dead_error_condition: The condition ret cannot be true.

9523 if (ret) {

Logically dead code (DEADCODE)
dead_error_begin: Execution cannot reach this statement:

9524 percpu_ref_resurrect(&ctx->refs);
9525 ret = -EINTR;
9526 goto out_quiesce;
9527 }
9528 }
9529

Colin