Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6d97b53e92af822890b87818c99820df47fc589b Commit: 6d97b53e92af822890b87818c99820df47fc589b Parent: 775516bfa2bd7993620c9039191a0c30b8d8a496 Author: Robie Basak <[EMAIL PROTECTED]> AuthorDate: Fri Jan 18 23:56:54 2008 -0800 Committer: David S. Miller <[EMAIL PROTECTED]> CommitDate: Mon Jan 28 15:08:08 2008 -0800
[IrDA]: Resend frames on timeout. 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 <[EMAIL PROTECTED]> Signed-off-by: Samuel Ortiz <[EMAIL PROTECTED]> Signed-off-by: David S. Miller <[EMAIL PROTECTED]> --- net/irda/irlap_event.c | 12 +++++++++--- 1 files changed, 9 insertions(+), 3 deletions(-) diff --git a/net/irda/irlap_event.c b/net/irda/irlap_event.c index 4c33bf5..6d3aff8 100644 --- a/net/irda/irlap_event.c +++ b/net/irda/irlap_event.c @@ -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++; - To unsubscribe from this list: send the line "unsubscribe git-commits-head" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html