[IPV6]: Fix packet quoting in icmpv6_send().
- Mucking with the original skb pointers with push/pull around
the packet quoting was wrong, muching with these pointers could
cause problems with others using the SKB.
It was also buggy, it only handled the case where skb->nh.raw was
ahead of or equal to skb->data
- The fix is to record skb->nh.raw - skb->data and use this as
a base offset in calls to skb_copy_and_csum_bits(). This is
what the pre-IPSEC code did.
This fixes IPV6 oopses and packet corruption on 64-bit platforms
when sending UDP port unreachable ICMP messages.
Reported and analyzed by Jan Oravec (jan.oravec@6com.sk)