@@ -144,7 +144,7 @@ static void cptpf_flr_wq_handler(struct work_struct *work)
req = otx2_mbox_alloc_msg_rsp(mbox, 0, sizeof(*req),
sizeof(struct msg_rsp));
if (!req)
- return;
+ goto out_unlock;
req->sig = OTX2_MBOX_REQ_SIG;
req->id = MBOX_MSG_VF_FLR;
@@ -164,6 +164,7 @@ static void cptpf_flr_wq_handler(struct work_struct *work)
otx2_cpt_write64(pf->reg_base, BLKADDR_RVUM, 0,
RVU_PF_VFFLR_INT_ENA_W1SX(reg), BIT_ULL(vf));
}
+out_unlock:
mutex_unlock(&pf->lock);
}
@@ -20,8 +20,10 @@ static int forward_to_af(struct otx2_cptpf_dev *cptpf,
mutex_lock(&cptpf->lock);
msg = otx2_mbox_alloc_msg(&cptpf->afpf_mbox, 0, size);
- if (msg == NULL)
+ if (msg == NULL) {
+ mutex_unlock(&cptpf->lock);
return -ENOMEM;
+ }
memcpy((uint8_t *)msg + sizeof(struct mbox_msghdr),
(uint8_t *)req + sizeof(struct mbox_msghdr), size);
Unlock before returning if these allocations fail. Fixes: 4363f3d3ce8f ("crypto: octeontx2 - add synchronization between mailbox accesses") Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> --- drivers/crypto/marvell/octeontx2/otx2_cptpf_main.c | 3 ++- drivers/crypto/marvell/octeontx2/otx2_cptpf_mbox.c | 4 +++- 2 files changed, 5 insertions(+), 2 deletion(-)