diff options
author | Robert Mustacchi <rm@joyent.com> | 2019-02-16 01:16:34 +0000 |
---|---|---|
committer | Robert Mustacchi <rm@joyent.com> | 2019-02-26 01:00:22 +0000 |
commit | 1b1bcfc89ac08be2fc9fd5df44b98ec44e4d909b (patch) | |
tree | 4b0bae11edee330f057483869aa2f0f6a43b97e5 | |
parent | a23a88c8822def3a025fde613631b67191ea9ae0 (diff) | |
download | illumos-joyent-1b1bcfc89ac08be2fc9fd5df44b98ec44e4d909b.tar.gz |
OS-7592 viona doesn't zero ULP checksum for HCK_FULLCKSUM
Reviewed by: Patrick Mooney <patrick.mooney@joyent.com>
Reviewed by: Ryan Zezeski <rpz@joyent.com>
Approved by: Patrick Mooney <patrick.mooney@joyent.com>
-rw-r--r-- | usr/src/uts/i86pc/io/viona/viona.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/usr/src/uts/i86pc/io/viona/viona.c b/usr/src/uts/i86pc/io/viona/viona.c index 4ae0f7317f..74fd237fc9 100644 --- a/usr/src/uts/i86pc/io/viona/viona.c +++ b/usr/src/uts/i86pc/io/viona/viona.c @@ -2661,6 +2661,8 @@ viona_tx_csum(viona_vring_t *ring, const struct virtio_net_hdr *hdr, if (ftype == ETHERTYPE_IP) { if ((link->l_cap_csum & HCKSUM_INET_FULL_V4) != 0 && (ipproto == IPPROTO_TCP || ipproto == IPPROTO_UDP)) { + uint16_t *csump = (uint16_t *)(mp->b_rptr + csum_stuff); + *csump = 0; flags |= HCK_FULLCKSUM; mac_hcksum_set(mp, 0, 0, 0, 0, flags); return (B_TRUE); @@ -2673,6 +2675,8 @@ viona_tx_csum(viona_vring_t *ring, const struct virtio_net_hdr *hdr, } else if (ftype == ETHERTYPE_IPV6) { if ((link->l_cap_csum & HCKSUM_INET_FULL_V6) != 0 && (ipproto == IPPROTO_TCP || ipproto == IPPROTO_UDP)) { + uint16_t *csump = (uint16_t *)(mp->b_rptr + csum_stuff); + *csump = 0; flags |= HCK_FULLCKSUM; mac_hcksum_set(mp, 0, 0, 0, 0, flags); return (B_TRUE); |