Messages in this thread Patch in this message | | | From | Bjorn Andersson <> | Subject | [PATCH] rpmsg: glink: Avoid infinite loop on intent for missing channel | Date | Mon, 9 Jan 2023 14:38:01 -0800 |
| |
In the event that an intent advertisement arrives on an unknown channel the fifo is not advanced, resulting in the same message being handled over and over.
Fixes: dacbb35e930f ("rpmsg: glink: Receive and store the remote intent buffers") Signed-off-by: Bjorn Andersson <quic_bjorande@quicinc.com> --- drivers/rpmsg/qcom_glink_native.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/rpmsg/qcom_glink_native.c b/drivers/rpmsg/qcom_glink_native.c index f36740cb6866..7b1320b1579e 100644 --- a/drivers/rpmsg/qcom_glink_native.c +++ b/drivers/rpmsg/qcom_glink_native.c @@ -946,12 +946,12 @@ static void qcom_glink_handle_intent(struct qcom_glink *glink, spin_unlock_irqrestore(&glink->idr_lock, flags); if (!channel) { dev_err(glink->dev, "intents for non-existing channel\n"); - return; + goto advance_rx; } msg = kmalloc(msglen, GFP_ATOMIC); if (!msg) - return; + goto advance_rx; qcom_glink_rx_peak(glink, msg, 0, msglen); @@ -973,6 +973,7 @@ static void qcom_glink_handle_intent(struct qcom_glink *glink, } kfree(msg); +advance_rx: qcom_glink_rx_advance(glink, ALIGN(msglen, 8)); } -- 2.37.3
| |