msm: ADSPRPC: close glink channel before opening again
Added proper checks to avoid opening a glink channel before completely closing previously opened channel. Change-Id: Iaa41f4b27a80967b634dd832cc6ad060ea083b18 Acked-by: Viswanatham Paduchuri <vpaduchu@qti.qualcomm.com> Signed-off-by: Tharun Kumar Merugu <mtharu@codeaurora.org>
This commit is contained in:
parent
3d82d66409
commit
5a15915855
1 changed files with 6 additions and 7 deletions
|
@ -2126,11 +2126,9 @@ void fastrpc_glink_notify_state(void *handle, const void *priv, unsigned event)
|
|||
link->port_state = FASTRPC_LINK_DISCONNECTED;
|
||||
break;
|
||||
case GLINK_REMOTE_DISCONNECTED:
|
||||
if (me->channel[cid].chan &&
|
||||
link->link_state == FASTRPC_LINK_STATE_UP) {
|
||||
if (me->channel[cid].chan) {
|
||||
fastrpc_glink_close(me->channel[cid].chan, cid);
|
||||
me->channel[cid].chan = 0;
|
||||
link->port_state = FASTRPC_LINK_DISCONNECTED;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
@ -2296,10 +2294,9 @@ static int fastrpc_glink_open(int cid)
|
|||
if (err)
|
||||
goto bail;
|
||||
|
||||
if (link->port_state == FASTRPC_LINK_CONNECTED ||
|
||||
link->port_state == FASTRPC_LINK_CONNECTING) {
|
||||
VERIFY(err, (link->port_state == FASTRPC_LINK_DISCONNECTED));
|
||||
if (err)
|
||||
goto bail;
|
||||
}
|
||||
|
||||
link->port_state = FASTRPC_LINK_CONNECTING;
|
||||
cfg->priv = (void *)(uintptr_t)cid;
|
||||
|
@ -2458,7 +2455,9 @@ static int fastrpc_channel_open(struct fastrpc_file *fl)
|
|||
if ((kref_get_unless_zero(&me->channel[cid].kref) == 0) ||
|
||||
(me->channel[cid].chan == 0)) {
|
||||
if (me->glink) {
|
||||
fastrpc_glink_register(cid, me);
|
||||
VERIFY(err, 0 == fastrpc_glink_register(cid, me));
|
||||
if (err)
|
||||
goto bail;
|
||||
VERIFY(err, 0 == fastrpc_glink_open(cid));
|
||||
} else {
|
||||
VERIFY(err, !smd_named_open_on_edge(FASTRPC_SMD_GUID,
|
||||
|
|
Loading…
Add table
Reference in a new issue