patch-2.4.18 linux/net/irda/irlan/irlan_common.c
Next file: linux/net/irda/irlan/irlan_eth.c
Previous file: linux/net/irda/iriap.c
Back to the patch index
Back to the overall index
- Lines: 32
- Date:
Thu Jan 10 18:12:41 2002
- Orig file:
linux.orig/net/irda/irlan/irlan_common.c
- Orig date:
Mon Feb 18 20:18:40 2002
diff -Naur -X /home/marcelo/lib/dontdiff linux.orig/net/irda/irlan/irlan_common.c linux/net/irda/irlan/irlan_common.c
@@ -317,8 +317,15 @@
del_timer(&self->watchdog_timer);
- irlan_do_provider_event(self, IRLAN_DATA_CONNECT_INDICATION, skb);
- irlan_do_client_event(self, IRLAN_DATA_CONNECT_INDICATION, skb);
+ /* If you want to pass the skb to *both* state machines, you will
+ * need to skb_clone() it, so that you don't free it twice.
+ * As the state machines don't need it, git rid of it here...
+ * Jean II */
+ if (skb)
+ dev_kfree_skb(skb);
+
+ irlan_do_provider_event(self, IRLAN_DATA_CONNECT_INDICATION, NULL);
+ irlan_do_client_event(self, IRLAN_DATA_CONNECT_INDICATION, NULL);
if (self->provider.access_type == ACCESS_PEER) {
/*
@@ -421,6 +428,13 @@
break;
}
+ /* If you want to pass the skb to *both* state machines, you will
+ * need to skb_clone() it, so that you don't free it twice.
+ * As the state machines don't need it, git rid of it here...
+ * Jean II */
+ if (userdata)
+ dev_kfree_skb(userdata);
+
irlan_do_client_event(self, IRLAN_LMP_DISCONNECT, NULL);
irlan_do_provider_event(self, IRLAN_LMP_DISCONNECT, NULL);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)