summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/uts/i86pc/io/viona/viona.c4
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);