Bluetooth: AMP move collision loser should not change move state

During a move collision, both devices start out thinking they are the
initiator. The loser of the collision switches from the initiator role
to the responder role when receiving a move request from the remote
device.  However, a move response will also be received by the loser
after the role switch has occurred.

The loser of the collision was incorrectly modifying the AMP move
state in the move response handler.  This kept it from sending a move
channel response to the remote device, which stalled the channel move
process.

This change makes sure the AMP move state remains valid, so the
channel move succeeds.

CRs-fixed: 308382
Change-Id: Ib7897782e5f3276ab93dddb0ebc0cd662ae45937
Signed-off-by: Mat Martineau <mathewm@codeaurora.org>
This commit is contained in:
Mat Martineau 2011-09-22 15:00:03 -07:00 committed by Stephen Boyd
parent 79da2d5cf4
commit 7ae9dd7d4c

View file

@ -4955,11 +4955,6 @@ static inline int l2cap_move_channel_rsp(struct l2cap_conn *conn,
l2cap_amp_move_revert(sk);
pi->amp_move_role = L2CAP_AMP_MOVE_NONE;
}
} else {
/* State is STABLE so the confirm response is
* ignored.
*/
pi->amp_move_state = L2CAP_AMP_STATE_STABLE;
}
l2cap_send_move_chan_cfm(conn, pi, pi->scid,