return false;
}
+ if (cqid >= u->params.mcq_maxq) {
+ trace_ufs_err_mcq_create_sq_invalid_cqid(cqid);
+ return false;
+ }
+
if (!u->cq[cqid]) {
- trace_ufs_err_mcq_create_sq_invalid_cqid(qid);
+ trace_ufs_err_mcq_create_sq_invalid_cqid(cqid);
return false;
}
}
sq = u->sq[qid];
+ if (!sq) {
+ trace_ufs_err_mcq_db_wr_invalid_sqid(qid);
+ return;
+ }
+
if (sq->size * sizeof(UfsSqEntry) <= db) {
trace_ufs_err_mcq_db_wr_invalid_db(qid, db);
return;
unsigned size)
{
int qid = offset / sizeof(UfsMcqOpReg);
- UfsMcqOpReg *opr = &u->mcq_op_reg[qid];
+ UfsMcqOpReg *opr;
+
+ if (qid >= u->params.mcq_maxq) {
+ trace_ufs_err_invalid_register_offset(offset);
+ return;
+ }
+
+ opr = &u->mcq_op_reg[qid];
switch (offset % sizeof(UfsMcqOpReg)) {
case offsetof(UfsMcqOpReg, sq.tp):