Loading drivers/rpmsg/qcom_glink_native.c +4 −1 Original line number Diff line number Diff line Loading @@ -228,6 +228,7 @@ struct glink_channel { struct mutex intent_req_lock; bool intent_req_result; bool channel_ready; atomic_t intent_req_comp; wait_queue_head_t intent_req_event; }; Loading Loading @@ -911,7 +912,7 @@ static void qcom_glink_handle_intent_req(struct qcom_glink *glink, ept = &channel->ept; intent = qcom_glink_alloc_intent(glink, channel, size, false); if (intent && ept->cb) if (intent && channel->channel_ready) qcom_glink_advertise_intent(glink, channel, intent); qcom_glink_send_intent_req_ack(glink, channel, !!intent); Loading Loading @@ -1424,6 +1425,8 @@ static int qcom_glink_announce_create(struct rpmsg_device *rpdev) if (glink->intentless || !completion_done(&channel->open_ack)) return 0; channel->channel_ready = true; /*Serve any pending intent request*/ spin_lock_irqsave(&channel->intent_lock, flags); idr_for_each_entry(&channel->liids, tmp, iid) { Loading Loading
drivers/rpmsg/qcom_glink_native.c +4 −1 Original line number Diff line number Diff line Loading @@ -228,6 +228,7 @@ struct glink_channel { struct mutex intent_req_lock; bool intent_req_result; bool channel_ready; atomic_t intent_req_comp; wait_queue_head_t intent_req_event; }; Loading Loading @@ -911,7 +912,7 @@ static void qcom_glink_handle_intent_req(struct qcom_glink *glink, ept = &channel->ept; intent = qcom_glink_alloc_intent(glink, channel, size, false); if (intent && ept->cb) if (intent && channel->channel_ready) qcom_glink_advertise_intent(glink, channel, intent); qcom_glink_send_intent_req_ack(glink, channel, !!intent); Loading Loading @@ -1424,6 +1425,8 @@ static int qcom_glink_announce_create(struct rpmsg_device *rpdev) if (glink->intentless || !completion_done(&channel->open_ack)) return 0; channel->channel_ready = true; /*Serve any pending intent request*/ spin_lock_irqsave(&channel->intent_lock, flags); idr_for_each_entry(&channel->liids, tmp, iid) { Loading