diff options
author | bryanv <bryanv@FreeBSD.org> | 2013-06-15 03:55:04 +0000 |
---|---|---|
committer | bryanv <bryanv@FreeBSD.org> | 2013-06-15 03:55:04 +0000 |
commit | fb8c82c9f9fe4e46d51a092d925f33ae1a0cb0a5 (patch) | |
tree | 3646fc044707f607818d0777093a25bdb222c6f8 | |
parent | d4000dfe1d836cc3ec0996c13cf7e451cbee4671 (diff) | |
download | FreeBSD-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.c | 4 |
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")); |