On 2025/8/30 16:39, Herbert Xu wrote: > Fix the false-positive warning of qp_ctx being unitialised in > sec_request_init. The value of ctx_q_num defaults to 2 and is > guaranteed to be non-zero. > > Thus qp_ctx is always initialised. However, the compiler is > not aware of this constraint on ctx_q_num. Restructure the loop > so that it is obvious to the compiler that ctx_q_num cannot be > zero. > > Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> > > diff --git a/drivers/crypto/hisilicon/sec2/sec_crypto.c b/drivers/crypto/hisilicon/sec2/sec_crypto.c > index d044ded0f290..31590d01139a 100644 > --- a/drivers/crypto/hisilicon/sec2/sec_crypto.c > +++ b/drivers/crypto/hisilicon/sec2/sec_crypto.c > @@ -1944,14 +1944,12 @@ static void sec_request_uninit(struct sec_req *req) > static int sec_request_init(struct sec_ctx *ctx, struct sec_req *req) > { > struct sec_qp_ctx *qp_ctx; > - int i; > + int i = 0; > > - for (i = 0; i < ctx->sec->ctx_q_num; i++) { > + do { > qp_ctx = &ctx->qp_ctx[i]; > req->req_id = sec_alloc_req_id(req, qp_ctx); > - if (req->req_id >= 0) > - break; > - } > + } while (req->req_id < 0 && ++i < ctx->sec->ctx_q_num); > > req->qp_ctx = qp_ctx; > req->backlog = &qp_ctx->backlog; > Reviewed-by: Longfang Liu <liulongfang@xxxxxxxxxx> Thanks Longfang.