From: Samuel O. <sa...@so...> - 2007-05-25 23:59:20
|
On Thu, May 24, 2007 at 11:35:59AM +0200, Guennadi Liakhovetski wrote: > Jean II was right: you have to re-charge the final timer when resending > rejected frames. Otherwise it triggers at a wrong time and can break the > currently running communication. Reproducible under rt-preempt. > > Signed-off-by: G. Liakhovetski <gl...@ds...> Looks good to me. In fact, it stick closer to the IrLAP spec. I'll push it upstream with the next batch of IrDA changes. Cheers, Samuel. > Index: net/irda/irlap_event.c > =================================================================== > RCS file: /home/dsa/cvs/linux-2_6/net/irda/irlap_event.c,v > retrieving revision 1.1.1.9.12.1 > diff -u -p -r1.1.1.9.12.1 irlap_event.c > --- net/irda/irlap_event.c 2 Apr 2007 10:36:28 -0000 1.1.1.9.12.1 > +++ net/irda/irlap_event.c 18 May 2007 10:36:13 -0000 > @@ -1436,14 +1430,14 @@ static int irlap_state_nrm_p(struct irla > */ > self->remote_busy = FALSE; > > + /* Stop final timer */ > + del_timer(&self->final_timer); > + > /* > * Nr as expected? > */ > ret = irlap_validate_nr_received(self, info->nr); > if (ret == NR_EXPECTED) { > - /* Stop final timer */ > - del_timer(&self->final_timer); > - > /* Update Nr received */ > irlap_update_nr_received(self, info->nr); > > @@ -1476,13 +1470,11 @@ static int irlap_state_nrm_p(struct irla > /* Resend rejected frames */ > irlap_resend_rejected_frames(self, CMD_FRAME); > - > - /* Final timer ??? Jean II */ > + irlap_start_final_timer(self, self->final_timeout * 2); > > irlap_next_state(self, LAP_NRM_P); > } else if (ret == NR_INVALID) { > IRDA_DEBUG(1, "%s(), Received RR with " > "invalid nr !\n", __FUNCTION__); > - del_timer(&self->final_timer); > > irlap_next_state(self, LAP_RESET_WAIT); > > > Thanks > Guennadi > --------------------------------- > Guennadi Liakhovetski, Ph.D. > DSA Daten- und Systemtechnik GmbH > Pascalstr. 28 > D-52076 Aachen > Germany > > ------------------------------------------------------------------------- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ > _______________________________________________ > irda-users mailing list > ird...@li... > http://lists.sourceforge.net/lists/listinfo/irda-users |