From: Robie Basak 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 Signed-off-by: Samuel Ortiz --- net/irda/irlap_event.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) Index: net-2.6.25/net/irda/irlap_event.c =================================================================== --- net-2.6.25.orig/net/irda/irlap_event.c 2008-01-14 19:27:06.000000000 +0100 +++ net-2.6.25/net/irda/irlap_event.c 2008-01-17 06:33:33.000000000 +0100 @@ -1514,9 +1514,15 @@ /* 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 netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html