aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/uwb/rsv.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/uwb/rsv.c b/drivers/uwb/rsv.c
index 3fe611941046..4026f1adff01 100644
--- a/drivers/uwb/rsv.c
+++ b/drivers/uwb/rsv.c
@@ -249,7 +249,9 @@ static void uwb_rsv_stroke_timer(struct uwb_rsv *rsv)
249 * super frame and should not be terminated if no response is 249 * super frame and should not be terminated if no response is
250 * received. 250 * received.
251 */ 251 */
252 if (rsv->is_multicast) { 252 if (rsv->state == UWB_RSV_STATE_NONE) {
253 sframes = 0;
254 } else if (rsv->is_multicast) {
253 if (rsv->state == UWB_RSV_STATE_O_INITIATED 255 if (rsv->state == UWB_RSV_STATE_O_INITIATED
254 || rsv->state == UWB_RSV_STATE_O_MOVE_EXPANDING 256 || rsv->state == UWB_RSV_STATE_O_MOVE_EXPANDING
255 || rsv->state == UWB_RSV_STATE_O_MOVE_COMBINING 257 || rsv->state == UWB_RSV_STATE_O_MOVE_COMBINING
@@ -322,6 +324,7 @@ void uwb_rsv_set_state(struct uwb_rsv *rsv, enum uwb_rsv_state new_state)
322 switch (new_state) { 324 switch (new_state) {
323 case UWB_RSV_STATE_NONE: 325 case UWB_RSV_STATE_NONE:
324 uwb_rsv_state_update(rsv, UWB_RSV_STATE_NONE); 326 uwb_rsv_state_update(rsv, UWB_RSV_STATE_NONE);
327 uwb_rsv_remove(rsv);
325 uwb_rsv_callback(rsv); 328 uwb_rsv_callback(rsv);
326 break; 329 break;
327 case UWB_RSV_STATE_O_INITIATED: 330 case UWB_RSV_STATE_O_INITIATED:
@@ -442,6 +445,8 @@ static void uwb_rsv_handle_timeout_work(struct work_struct *work)
442 uwb_rsv_set_state(rsv, UWB_RSV_STATE_T_ACCEPTED); 445 uwb_rsv_set_state(rsv, UWB_RSV_STATE_T_ACCEPTED);
443 uwb_drp_avail_release(rsv->rc, &rsv->mv.companion_mas); 446 uwb_drp_avail_release(rsv->rc, &rsv->mv.companion_mas);
444 goto unlock; 447 goto unlock;
448 case UWB_RSV_STATE_NONE:
449 goto unlock;
445 default: 450 default:
446 break; 451 break;
447 } 452 }