Similar to the following commits:
commit
00f97da17a0c8d656d0c9 (netpoll: fix position of network header)
commit
525cebedb32a87fa48584 (pktgen: Fix position of ip and udp header)
using skb_tail_offset() seems not correct since the offset
is based on head pointer.
With the last caller removed, skb_tail_offset() can be killed
finally.
Cc: Thomas Graf <tgraf@suug.ch>
Cc: Daniel Borkmann <dborkmann@redhat.com>
Cc: David S. Miller <davem@davemloft.net>
Signed-off-by: Cong Wang <amwang@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
skb->tail += offset;
}
-static inline unsigned long skb_tail_offset(const struct sk_buff *skb)
-{
- return skb->tail;
-}
#else /* NET_SKBUFF_DATA_USES_OFFSET */
static inline unsigned char *skb_tail_pointer(const struct sk_buff *skb)
{
skb->tail = skb->data + offset;
}
-static inline unsigned long skb_tail_offset(const struct sk_buff *skb)
-{
- return skb->tail - skb->head;
-}
#endif /* NET_SKBUFF_DATA_USES_OFFSET */
/*
struct igmpmsg *msg;
struct sock *mroute_sk;
int ret;
- unsigned long tail_offset;
#ifdef CONFIG_IP_PIMSM
if (assert == IGMPMSG_WHOLEPKT)
/* Copy the IP header */
- tail_offset = skb_tail_offset(skb);
- if (tail_offset > 0xffff) {
- kfree_skb(skb);
- return -EINVAL;
- }
- skb_set_network_header(skb, tail_offset);
+ skb_set_network_header(skb, skb->len);
skb_put(skb, ihl);
skb_copy_to_linear_data(skb, pkt->data, ihl);
ip_hdr(skb)->protocol = 0; /* Flag to the kernel this is a route add */