Commit 4a44e454 authored by Jean Tourrilhes's avatar Jean Tourrilhes Committed by Linus Torvalds

[irda] better poll bit handling during times of packet loss

        o [CORRECT] fix the secondary function to send RR and frames without
                the poll bit when it detect packet losses
parent 5f746f2c
...@@ -1870,7 +1870,7 @@ static int irlap_state_nrm_s(struct irlap_cb *self, IRLAP_EVENT event, ...@@ -1870,7 +1870,7 @@ static int irlap_state_nrm_s(struct irlap_cb *self, IRLAP_EVENT event,
irlap_update_nr_received(self, info->nr); irlap_update_nr_received(self, info->nr);
irlap_wait_min_turn_around(self, &self->qos_tx); irlap_wait_min_turn_around(self, &self->qos_tx);
irlap_send_rr_frame(self, CMD_FRAME); irlap_send_rr_frame(self, RSP_FRAME);
irlap_start_wd_timer(self, self->wd_timeout); irlap_start_wd_timer(self, self->wd_timeout);
} }
...@@ -2035,18 +2035,18 @@ static int irlap_state_nrm_s(struct irlap_cb *self, IRLAP_EVENT event, ...@@ -2035,18 +2035,18 @@ static int irlap_state_nrm_s(struct irlap_cb *self, IRLAP_EVENT event,
irlap_update_nr_received(self, info->nr); irlap_update_nr_received(self, info->nr);
if (self->remote_busy) { if (self->remote_busy) {
irlap_wait_min_turn_around(self, &self->qos_tx); irlap_wait_min_turn_around(self, &self->qos_tx);
irlap_send_rr_frame(self, CMD_FRAME); irlap_send_rr_frame(self, RSP_FRAME);
} else } else
irlap_resend_rejected_frames(self, CMD_FRAME); irlap_resend_rejected_frames(self, RSP_FRAME);
irlap_start_wd_timer(self, self->wd_timeout); irlap_start_wd_timer(self, self->wd_timeout);
break; break;
case RECV_SREJ_CMD: case RECV_SREJ_CMD:
irlap_update_nr_received(self, info->nr); irlap_update_nr_received(self, info->nr);
if (self->remote_busy) { if (self->remote_busy) {
irlap_wait_min_turn_around(self, &self->qos_tx); irlap_wait_min_turn_around(self, &self->qos_tx);
irlap_send_rr_frame(self, CMD_FRAME); irlap_send_rr_frame(self, RSP_FRAME);
} else } else
irlap_resend_rejected_frame(self, CMD_FRAME); irlap_resend_rejected_frame(self, RSP_FRAME);
irlap_start_wd_timer(self, self->wd_timeout); irlap_start_wd_timer(self, self->wd_timeout);
break; break;
case WD_TIMER_EXPIRED: case WD_TIMER_EXPIRED:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment