/* Packet to BT LE device */
 static int send_pkt(struct l2cap_chan *chan, struct sk_buff *skb,
-                   struct net_device *netdev, bool is_mcast)
+                   struct net_device *netdev)
 {
        struct msghdr msg;
        struct kvec iv;
        int err;
 
        /* Remember the skb so that we can send EAGAIN to the caller if
-        * we run out of credits. This is not done for multicast packets
-        * because we generate mcast packet in this module and are not
-        * really able to remember the skb after this packet is sent.
+        * we run out of credits.
         */
-       if (is_mcast)
-               chan->data = NULL;
-       else
-               chan->data = skb;
+       chan->data = skb;
 
        memset(&msg, 0, sizeof(msg));
        msg.msg_iov = (struct iovec *) &iv;
                               netdev->name,
                               &pentry->chan->dst, pentry->chan->dst_type,
                               &pentry->peer_addr, pentry->chan);
-                       send_pkt(pentry->chan, local_skb, netdev, true);
+                       send_pkt(pentry->chan, local_skb, netdev);
 
                        kfree_skb(local_skb);
                }
                        BT_DBG("xmit %s to %pMR type %d IP %pI6c chan %p",
                               netdev->name, &addr, addr_type,
                               &lowpan_cb(skb)->addr, lowpan_cb(skb)->chan);
-                       err = send_pkt(lowpan_cb(skb)->chan, skb, netdev,
-                                      false);
+                       err = send_pkt(lowpan_cb(skb)->chan, skb, netdev);
                } else {
                        err = -ENOENT;
                }