]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
rpmsg: smd: Reduce restrictions when finding channel
authorBjorn Andersson <bjorn.andersson@linaro.org>
Sat, 8 Oct 2016 04:23:11 +0000 (21:23 -0700)
committerBjorn Andersson <bjorn.andersson@linaro.org>
Mon, 31 Oct 2016 22:40:40 +0000 (15:40 -0700)
SMD channels are created by the remotes in "opening" state, but
sometimes as we close and try to reopen them they linger in closing
state.

Following the search for a matching channel the create_ept() will verify
that the channel is in a suitable state, so we can lax the restrictions
of the search function to work around above difference in behaviour.

Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
drivers/rpmsg/qcom_smd.c

index 06fef2b4c81408f3e4e1bb1c91949f82e6afa58b..92efa74a0024d636a1c6930f04ca3c4e4f28bd93 100644 (file)
@@ -820,20 +820,13 @@ qcom_smd_find_channel(struct qcom_smd_edge *edge, const char *name)
        struct qcom_smd_channel *channel;
        struct qcom_smd_channel *ret = NULL;
        unsigned long flags;
-       unsigned state;
 
        spin_lock_irqsave(&edge->channels_lock, flags);
        list_for_each_entry(channel, &edge->channels, list) {
-               if (strcmp(channel->name, name))
-                       continue;
-
-               state = GET_RX_CHANNEL_INFO(channel, state);
-               if (state != SMD_CHANNEL_OPENING &&
-                   state != SMD_CHANNEL_OPENED)
-                       continue;
-
-               ret = channel;
-               break;
+               if (!strcmp(channel->name, name)) {
+                       ret = channel;
+                       break;
+               }
        }
        spin_unlock_irqrestore(&edge->channels_lock, flags);