Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3f0d27ab authored by Sai Chaitanya Kaveti's avatar Sai Chaitanya Kaveti
Browse files

msm: mhi_dev: Adding check for event ring



During the initialization, device waits for M0 state. Ring structures are
not yet allocated at this point. While waiting if device receives a D3cold
or D3hot event, device enters the sys err state. At the end of sys err
handling it acceses the event ring in mhi_dev_send_multiple_tr_events API
which is causing device crash.

Adding check for event ring in send multiple tr events API to fail
it if ring is not present.

Change-Id: Iffe44107c1925e0cccb38651aa09ba1f893f1014
Signed-off-by: default avatarSai Chaitanya Kaveti <quic_skaveti@quicinc.com>
parent d4f2423d
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -466,6 +466,11 @@ static int mhi_dev_send_multiple_tr_events(struct mhi_dev *mhi, int evnt_ring,
		return -EINVAL;
	}

	if (!ring) {
		pr_err("%s(): Ring %d not present\n", __func__, evnt_ring_idx);
		return -EINVAL;
	}

	ctx = (union mhi_dev_ring_ctx *)&mhi->ev_ctx_cache[evnt_ring];

	if (mhi_ring_get_state(ring) == RING_STATE_UINT) {