A v6 raw socket may ask the kernel to validate the checksum of an
inbound packet. If so, and the validation fails, we discard the packet,
but this isn't really right: other raw sockets may wish to receive a
copy of the packet anyway.
Rework checksum handling to address this problem, and use a flag to
avoid computing the checksum more than once for a given packet.
Fixes: de2d47842e880281 ("SMR protection for inpcbs")