|
@@ -506,9 +506,14 @@ static void send_message(capidrv_contr * card, _cmsg * cmsg)
|
|
{
|
|
{
|
|
struct sk_buff *skb;
|
|
struct sk_buff *skb;
|
|
size_t len;
|
|
size_t len;
|
|
|
|
+
|
|
capi_cmsg2message(cmsg, cmsg->buf);
|
|
capi_cmsg2message(cmsg, cmsg->buf);
|
|
len = CAPIMSG_LEN(cmsg->buf);
|
|
len = CAPIMSG_LEN(cmsg->buf);
|
|
skb = alloc_skb(len, GFP_ATOMIC);
|
|
skb = alloc_skb(len, GFP_ATOMIC);
|
|
|
|
+ if (!skb) {
|
|
|
|
+ printk(KERN_ERR "capidrv::send_message: can't allocate mem\n");
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
memcpy(skb_put(skb, len), cmsg->buf, len);
|
|
memcpy(skb_put(skb, len), cmsg->buf, len);
|
|
if (capi20_put_message(&global.ap, skb) != CAPI_NOERROR)
|
|
if (capi20_put_message(&global.ap, skb) != CAPI_NOERROR)
|
|
kfree_skb(skb);
|
|
kfree_skb(skb);
|