Messages in this thread | | | Subject | Re: [PATCH 1/2] rpmsg: glink: Propagate TX failures in intentless mode as well | From | Chris Lew <> | Date | Tue, 28 Mar 2023 15:55:17 -0700 |
| |
On 3/27/2023 7:41 AM, Bjorn Andersson wrote: > As support for splitting transmision over several messages using > TX_DATA_CONT was introduced it does not immediately return the return > value of qcom_glink_tx(). > > The result is that in the intentless case (i.e. intent == NULL), the > code will continue to send all additional chunks. This is wasteful, and > it's possible that the send operation could incorrectly indicate > success, if the last chunk fits in the TX fifo. > > Fix the condition. > > Fixes: 8956927faed3 ("rpmsg: glink: Add TX_DATA_CONT command while sending") > Signed-off-by: Bjorn Andersson <quic_bjorande@quicinc.com> > ---
s/transmision/transmission
Reviewed-by: Chris Lew <quic_clew@quicinc.com>
> drivers/rpmsg/qcom_glink_native.c | 10 ++++++---- > 1 file changed, 6 insertions(+), 4 deletions(-) > > diff --git a/drivers/rpmsg/qcom_glink_native.c b/drivers/rpmsg/qcom_glink_native.c > index 01d2805fe30f..62634d020d13 100644 > --- a/drivers/rpmsg/qcom_glink_native.c > +++ b/drivers/rpmsg/qcom_glink_native.c > @@ -1356,8 +1356,9 @@ static int __qcom_glink_send(struct glink_channel *channel, > ret = qcom_glink_tx(glink, &req, sizeof(req), data, chunk_size, wait); > > /* Mark intent available if we failed */ > - if (ret && intent) { > - intent->in_use = false; > + if (ret) { > + if (intent) > + intent->in_use = false; > return ret; > } > > @@ -1378,8 +1379,9 @@ static int __qcom_glink_send(struct glink_channel *channel, > chunk_size, wait); > > /* Mark intent available if we failed */ > - if (ret && intent) { > - intent->in_use = false; > + if (ret) { > + if (intent) > + intent->in_use = false; > break; > } > } >
| |