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

Commit 3185b22a authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "mhi: core: Read transfer length from an event properly"

parents 13bfc26a e262d232
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -1049,7 +1049,9 @@ static int parse_rsc_event(struct mhi_controller *mhi_cntrl,

	result.transaction_status = (ev_code == MHI_EV_CC_OVERFLOW) ?
		-EOVERFLOW : 0;
	result.bytes_xferd = xfer_len;

	/* truncate to buf len if xfer_len is larger */
	result.bytes_xferd = min_t(u16, xfer_len, buf_info->len);
	result.buf_addr = buf_info->cb_buf;
	result.dir = mhi_chan->dir;

@@ -1287,7 +1289,7 @@ int mhi_process_data_event_ring(struct mhi_controller *mhi_cntrl,
		chan = MHI_TRE_GET_EV_CHID(local_rp);
		if (chan >= mhi_cntrl->max_chan) {
			MHI_ERR("invalid channel id %u\n", chan);
			continue;
			goto next_er_element;
		}
		mhi_chan = &mhi_cntrl->mhi_chan[chan];

@@ -1299,6 +1301,7 @@ int mhi_process_data_event_ring(struct mhi_controller *mhi_cntrl,
			event_quota--;
		}

next_er_element:
		mhi_recycle_ev_ring_element(mhi_cntrl, ev_ring);
		local_rp = ev_ring->rp;
		dev_rp = mhi_to_virtual(ev_ring, er_ctxt->rp);