Skip to content

Commit

Permalink
[IrDA]: Resend frames on timeout.
Browse files Browse the repository at this point in the history
When final timer expires, it might also mean that the i:cmd wasn't
received properly. If we have rejected frames, we can try to resend them.

Signed-off-by: Robie Basak <rb-oss-1@justgohome.co.uk>
Signed-off-by: Samuel Ortiz <samuel@sortiz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Robie Basak authored and David S. Miller committed Jan 28, 2008
1 parent 775516b commit 6d97b53
Showing 1 changed file with 9 additions and 3 deletions.
12 changes: 9 additions & 3 deletions net/irda/irlap_event.c
Original file line number Diff line number Diff line change
Expand Up @@ -1514,9 +1514,15 @@ static int irlap_state_nrm_p(struct irlap_cb *self, IRLAP_EVENT event,

/* N2 is the disconnect timer. Until we reach it, we retry */
if (self->retry_count < self->N2) {
/* Retry sending the pf bit to the secondary */
irlap_wait_min_turn_around(self, &self->qos_tx);
irlap_send_rr_frame(self, CMD_FRAME);
if (skb_peek(&self->wx_list) == NULL) {
/* Retry sending the pf bit to the secondary */
IRDA_DEBUG(4, "nrm_p: resending rr");
irlap_wait_min_turn_around(self, &self->qos_tx);
irlap_send_rr_frame(self, CMD_FRAME);
} else {
IRDA_DEBUG(4, "nrm_p: resend frames");
irlap_resend_rejected_frames(self, CMD_FRAME);
}

irlap_start_final_timer(self, self->final_timeout);
self->retry_count++;
Expand Down

0 comments on commit 6d97b53

Please sign in to comment.