This reverts commit
1f324e38870cc09659cf23bc626f1b8869e201f2.
It seems to cause regressions, and in particular the output path
really depends upon there being a socket attached to skb->sk for
checks such as sk_mc_loop(skb->sk) for example. See ip6_output_finish2().
Reported-by: Stephen Warren <swarren@wwwdotorg.org>
Reported-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
{
int hlen = LL_RESERVED_SPACE(dev);
int tlen = dev->needed_tailroom;
{
int hlen = LL_RESERVED_SPACE(dev);
int tlen = dev->needed_tailroom;
+ struct sock *sk = dev_net(dev)->ipv6.ndisc_sk;
- skb = alloc_skb(hlen + sizeof(struct ipv6hdr) + len + tlen, GFP_ATOMIC);
+ skb = sock_alloc_send_skb(sk,
+ hlen + sizeof(struct ipv6hdr) + len + tlen,
+ 1, &err);
- ND_PRINTK(0, err, "ndisc: %s failed to allocate an skb\n",
- __func__);
+ ND_PRINTK(0, err, "ndisc: %s failed to allocate an skb, err=%d\n",
+ __func__, err);