virtio-devices: Gate VIRTIO_NET_S_ANNOUNCE on feature acked

Only set the VIRTIO_NET_S_ANNOUNCE status bit if the feature
VIRTIO_NET_F_GUEST_ANNOUNCE was acknowledged.

Signed-off-by: Rob Bradford <rbradford@meta.com>
This commit is contained in:
Rob Bradford
2026-07-03 15:57:12 +01:00
committed by Bo Chen
parent 9161b18f9b
commit 4b120c3702
2 changed files with 11 additions and 2 deletions

View File

@@ -766,7 +766,11 @@ impl Net {
if self.common.feature_acked(VIRTIO_NET_F_STATUS.into()) {
status |= VIRTIO_NET_S_LINK_UP as u16;
if self.announce.pending.load(Ordering::Acquire) {
if self
.common
.feature_acked(VIRTIO_NET_F_GUEST_ANNOUNCE.into())
&& self.announce.pending.load(Ordering::Acquire)
{
status |= VIRTIO_NET_S_ANNOUNCE as u16;
}
}

View File

@@ -272,7 +272,12 @@ impl Net {
{
status |= VIRTIO_NET_S_LINK_UP as u16;
if self.announce.pending.load(Ordering::Acquire) {
if self
.vu_common
.virtio_common
.feature_acked(VIRTIO_NET_F_GUEST_ANNOUNCE.into())
&& self.announce.pending.load(Ordering::Acquire)
{
status |= VIRTIO_NET_S_ANNOUNCE as u16;
}
}