summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbryanv <bryanv@FreeBSD.org>2013-06-15 03:55:04 +0000
committerbryanv <bryanv@FreeBSD.org>2013-06-15 03:55:04 +0000
commitfb8c82c9f9fe4e46d51a092d925f33ae1a0cb0a5 (patch)
tree3646fc044707f607818d0777093a25bdb222c6f8
parentd4000dfe1d836cc3ec0996c13cf7e451cbee4671 (diff)
downloadFreeBSD-src-fb8c82c9f9fe4e46d51a092d925f33ae1a0cb0a5.zip
FreeBSD-src-fb8c82c9f9fe4e46d51a092d925f33ae1a0cb0a5.tar.gz
Merge r250802 from bryanv/vtnetmq - Fix setting of the Rx filters
QEMU 1.4 made the descriptor requirement stricter - the size of buffer descriptor must exactly match the number of MAC addresses provided. PR: kern/178955 MFC after: 5 days
-rw-r--r--sys/dev/virtio/network/if_vtnet.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/dev/virtio/network/if_vtnet.c b/sys/dev/virtio/network/if_vtnet.c
index ffc349a..8e2de46 100644
--- a/sys/dev/virtio/network/if_vtnet.c
+++ b/sys/dev/virtio/network/if_vtnet.c
@@ -2470,9 +2470,9 @@ vtnet_rx_filter_mac(struct vtnet_softc *sc)
sglist_init(&sg, 4, segs);
error |= sglist_append(&sg, &hdr, sizeof(struct virtio_net_ctrl_hdr));
error |= sglist_append(&sg, &filter->vmf_unicast,
- sizeof(struct vtnet_mac_table));
+ sizeof(uint32_t) + filter->vmf_unicast.nentries * ETHER_ADDR_LEN);
error |= sglist_append(&sg, &filter->vmf_multicast,
- sizeof(struct vtnet_mac_table));
+ sizeof(uint32_t) + filter->vmf_multicast.nentries * ETHER_ADDR_LEN);
error |= sglist_append(&sg, &ack, sizeof(uint8_t));
KASSERT(error == 0 && sg.sg_nseg == 4,
("error adding MAC filtering message to sglist"));
OpenPOWER on IntegriCloud