提交 80909e04 编写于 作者: M Mat Martineau 提交者: Johan Hedberg

Bluetooth: Use the ERTM transmit state machine from timeout handlers

Different states have different actions for retransmit and monitor
timeouts, so remove the logic for those actions from the timer handlers.
Signed-off-by: NMat Martineau <mathewm@codeaurora.org>
Signed-off-by: NGustavo Padovan <gustavo.padovan@collabora.co.uk>
上级 4239d16f
......@@ -1643,17 +1643,14 @@ static void l2cap_monitor_timeout(struct work_struct *work)
l2cap_chan_lock(chan);
if (chan->retry_count >= chan->remote_max_tx) {
l2cap_send_disconn_req(chan->conn, chan, ECONNABORTED);
if (!chan->conn) {
l2cap_chan_unlock(chan);
l2cap_chan_put(chan);
return;
}
chan->retry_count++;
__set_monitor_timer(chan);
l2cap_tx(chan, 0, 0, L2CAP_EV_MONITOR_TO);
l2cap_send_rr_or_rnr(chan, L2CAP_CTRL_POLL);
l2cap_chan_unlock(chan);
l2cap_chan_put(chan);
}
......@@ -1667,13 +1664,13 @@ static void l2cap_retrans_timeout(struct work_struct *work)
l2cap_chan_lock(chan);
chan->retry_count = 1;
__set_monitor_timer(chan);
set_bit(CONN_WAIT_F, &chan->conn_state);
l2cap_send_rr_or_rnr(chan, L2CAP_CTRL_POLL);
if (!chan->conn) {
l2cap_chan_unlock(chan);
l2cap_chan_put(chan);
return;
}
l2cap_tx(chan, 0, 0, L2CAP_EV_RETRANS_TO);
l2cap_chan_unlock(chan);
l2cap_chan_put(chan);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册