diff -u -p linux/net/irda/iriap_event.d7.c linux/net/irda/iriap_event.c --- linux/net/irda/iriap_event.d7.c Mon Dec 2 16:24:29 2002 +++ linux/net/irda/iriap_event.c Mon Dec 2 16:25:50 2002 @@ -251,22 +251,25 @@ static void state_s_call(struct iriap_cb static void state_s_make_call(struct iriap_cb *self, IRIAP_EVENT event, struct sk_buff *skb) { + struct sk_buff *tx_skb; + ASSERT(self != NULL, return;); switch (event) { case IAP_CALL_REQUEST: - skb = self->skb; + tx_skb = self->skb; self->skb = NULL; - irlmp_data_request(self->lsap, skb); + irlmp_data_request(self->lsap, tx_skb); iriap_next_call_state(self, S_OUTSTANDING); break; default: IRDA_DEBUG(0, "%s(), Unknown event %d\n", __FUNCTION__, event); - if (skb) - dev_kfree_skb(skb); break; } + /* Cleanup time ! */ + if (skb) + dev_kfree_skb(skb); } /*