|
@@ -107,7 +107,7 @@ static void tx_tick(struct mbox_chan *chan, int r)
|
|
|
if (mssg && chan->cl->tx_done)
|
|
|
chan->cl->tx_done(chan->cl, mssg, r);
|
|
|
|
|
|
- if (chan->cl->tx_block)
|
|
|
+ if (r != -ETIME && chan->cl->tx_block)
|
|
|
complete(&chan->tx_complete);
|
|
|
}
|
|
|
|
|
@@ -271,8 +271,8 @@ int mbox_send_message(struct mbox_chan *chan, void *mssg)
|
|
|
|
|
|
ret = wait_for_completion_timeout(&chan->tx_complete, wait);
|
|
|
if (ret == 0) {
|
|
|
- t = -EIO;
|
|
|
- tx_tick(chan, -EIO);
|
|
|
+ t = -ETIME;
|
|
|
+ tx_tick(chan, t);
|
|
|
}
|
|
|
}
|
|
|
|