patch-2.4.19 linux-2.4.19/net/irda/irlap_frame.c
Next file: linux-2.4.19/net/irda/irnet/irnet.h
Previous file: linux-2.4.19/net/irda/irlap_event.c
Back to the patch index
Back to the overall index
- Lines: 83
- Date:
Fri Aug 2 17:39:46 2002
- Orig file:
linux-2.4.18/net/irda/irlap_frame.c
- Orig date:
Fri Nov 9 14:22:17 2001
diff -urN linux-2.4.18/net/irda/irlap_frame.c linux-2.4.19/net/irda/irlap_frame.c
@@ -768,6 +768,9 @@
{
struct sk_buff *tx_skb;
+ /* Stop P timer */
+ del_timer(&self->poll_timer);
+
/* Is this reliable or unreliable data? */
if (skb->data[1] == I_FRAME) {
@@ -793,23 +796,15 @@
* skb, since retransmitted need to set or clear the poll
* bit depending on when they are sent.
*/
- /* Stop P timer */
- del_timer(&self->poll_timer);
-
tx_skb->data[1] |= PF_BIT;
self->vs = (self->vs + 1) % 8;
self->ack_required = FALSE;
- self->window = self->window_size;
-
- irlap_start_final_timer(self, self->final_timeout);
irlap_send_i_frame(self, tx_skb, CMD_FRAME);
} else {
IRDA_DEBUG(4, __FUNCTION__ "(), sending unreliable frame\n");
- del_timer(&self->poll_timer);
-
if (self->ack_required) {
irlap_send_ui_frame(self, skb_get(skb), self->caddr, CMD_FRAME);
irlap_send_rr_frame(self, CMD_FRAME);
@@ -818,9 +813,15 @@
skb->data[1] |= PF_BIT;
irlap_send_ui_frame(self, skb_get(skb), self->caddr, CMD_FRAME);
}
- self->window = self->window_size;
- irlap_start_final_timer(self, self->final_timeout);
}
+
+ self->window = self->window_size;
+#ifdef CONFIG_IRDA_DYNAMIC_WINDOW
+ /* We are allowed to transmit a maximum number of bytes again. */
+ self->bytes_left = self->line_capacity;
+#endif /* CONFIG_IRDA_DYNAMIC_WINDOW */
+
+ irlap_start_final_timer(self, self->final_timeout);
}
/*
@@ -858,11 +859,8 @@
tx_skb->data[1] |= PF_BIT;
self->vs = (self->vs + 1) % 8;
- self->window = self->window_size;
self->ack_required = FALSE;
- irlap_start_wd_timer(self, self->wd_timeout);
-
irlap_send_i_frame(self, tx_skb, RSP_FRAME);
} else {
if (self->ack_required) {
@@ -873,10 +871,15 @@
skb->data[1] |= PF_BIT;
irlap_send_ui_frame(self, skb_get(skb), self->caddr, RSP_FRAME);
}
- self->window = self->window_size;
-
- irlap_start_wd_timer(self, self->wd_timeout);
}
+
+ self->window = self->window_size;
+#ifdef CONFIG_IRDA_DYNAMIC_WINDOW
+ /* We are allowed to transmit a maximum number of bytes again. */
+ self->bytes_left = self->line_capacity;
+#endif /* CONFIG_IRDA_DYNAMIC_WINDOW */
+
+ irlap_start_wd_timer(self, self->wd_timeout);
}
/*
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)