From 890cbca79590d3d2faf216cf1c9728aca0566394 Mon Sep 17 00:00:00 2001 From: Robie Basak Date: Fri, 18 Jan 2008 23:56:54 -0800 Subject: [PATCH] --- yaml --- r: 79278 b: refs/heads/master c: 6d97b53e92af822890b87818c99820df47fc589b h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/irda/irlap_event.c | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 06f4c11f2e4c..d57d02d2a3d2 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 775516bfa2bd7993620c9039191a0c30b8d8a496 +refs/heads/master: 6d97b53e92af822890b87818c99820df47fc589b diff --git a/trunk/net/irda/irlap_event.c b/trunk/net/irda/irlap_event.c index 4c33bf5c8354..6d3aff862dc2 100644 --- a/trunk/net/irda/irlap_event.c +++ b/trunk/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++;