patch-2.4.26 linux-2.4.26/drivers/isdn/avmb1/capidrv.c
Next file: linux-2.4.26/drivers/isdn/avmb1/kcapi.c
Previous file: linux-2.4.26/drivers/input/input.c
Back to the patch index
Back to the overall index
- Lines: 42
- Date:
2004-04-14 06:05:30.000000000 -0700
- Orig file:
linux-2.4.25/drivers/isdn/avmb1/capidrv.c
- Orig date:
2003-06-13 07:51:34.000000000 -0700
diff -urN linux-2.4.25/drivers/isdn/avmb1/capidrv.c linux-2.4.26/drivers/isdn/avmb1/capidrv.c
@@ -523,13 +523,25 @@
static void send_message(capidrv_contr * card, _cmsg * cmsg)
{
- struct sk_buff *skb;
- size_t len;
+ struct sk_buff *skb;
+ size_t len;
+ u16 err;
+
capi_cmsg2message(cmsg, cmsg->buf);
len = CAPIMSG_LEN(cmsg->buf);
skb = alloc_skb(len, GFP_ATOMIC);
+ if(!skb) {
+ printk(KERN_ERR "no skb len(%d) memory\n", len);
+ return;
+ }
memcpy(skb_put(skb, len), cmsg->buf, len);
- (*capifuncs->capi_put_message) (global.appid, skb);
+ err = (*capifuncs->capi_put_message) (global.appid, skb);
+ if (err) {
+ printk(KERN_WARNING "%s: capi_put_message error: %04x\n",
+ __FUNCTION__, err);
+ kfree_skb(skb);
+ return;
+ }
global.nsentctlpkt++;
}
@@ -2188,10 +2200,10 @@
free_ncci(card, card->bchans[card->nbchan-1].nccip);
if (card->bchans[card->nbchan-1].plcip)
free_plci(card, card->bchans[card->nbchan-1].plcip);
- if (card->plci_list)
- printk(KERN_ERR "capidrv: bug in free_plci()\n");
card->nbchan--;
}
+ if (card->plci_list)
+ printk(KERN_ERR "capidrv: bug in free_plci()\n");
kfree(card->bchans);
card->bchans = 0;
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)