Commit 1d546a5b authored by Kai Germaschewski's avatar Kai Germaschewski

ISDN: Bug fixes for the isdnloop driver

Fix missed STAT_BSENT acks and don't use skb_clone() for the skb which is
sent back, the network layer gets confused by that.
parent b5c5ae00
...@@ -77,7 +77,7 @@ isdnloop_bchan_send(isdnloop_card * card, int ch) ...@@ -77,7 +77,7 @@ isdnloop_bchan_send(isdnloop_card * card, int ch)
}; };
cmd.command = ISDN_STAT_BSENT; cmd.command = ISDN_STAT_BSENT;
cmd.parm.length = len; cmd.parm.length = len;
if ( ack ) card->interface.statcallb(&cmd); card->interface.statcallb(&cmd);
} else } else
card->sndcount[ch] = 0; card->sndcount[ch] = 0;
} }
...@@ -422,8 +422,9 @@ isdnloop_sendbuf(int channel, struct sk_buff *skb, isdnloop_card * card) ...@@ -422,8 +422,9 @@ isdnloop_sendbuf(int channel, struct sk_buff *skb, isdnloop_card * card)
return 0; return 0;
save_flags(flags); save_flags(flags);
cli(); cli();
nskb = skb_clone(skb, GFP_ATOMIC); nskb = dev_alloc_skb(skb->len);
if (nskb) { if (nskb) {
memcpy(skb_put(nskb, len), skb->data, len);
skb_queue_tail(&card->bqueue[channel], nskb); skb_queue_tail(&card->bqueue[channel], nskb);
dev_kfree_skb(skb); dev_kfree_skb(skb);
} else } else
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment