Halil Pasic
2021-Oct-05 11:17 UTC
[virtio-dev] Re: [RFC PATCH 1/1] virtio: write back features before verify
On Mon, 4 Oct 2021 16:01:12 -0400 "Michael S. Tsirkin" <mst at redhat.com> wrote:> > > > Ok, so what about something like > > > > "If FEATURES_OK is not set, the driver MAY change the set of features it > > accepts." > > > > in the device initialization section? > > Maybe "as long as". However Halil implied that some features are not > turned off properly if that happens. Halil could you pls provide > some examples?static void virtio_net_set_features(VirtIODevice *vdev, uint64_t features) { ... if (virtio_has_feature(features, VIRTIO_NET_F_STANDBY)) { qapi_event_send_failover_negotiated(n->netclient_name); qatomic_set(&n->failover_primary_hidden, false); failover_add_primary(n, &err); if (err) { warn_report_err(err); } } } This is probably the only one in QEMU. Back then I stopped looking after the first hit. Regards, Halil
Michael S. Tsirkin
2021-Oct-05 11:22 UTC
[virtio-dev] Re: [RFC PATCH 1/1] virtio: write back features before verify
On Tue, Oct 05, 2021 at 01:17:51PM +0200, Halil Pasic wrote:> On Mon, 4 Oct 2021 16:01:12 -0400 > "Michael S. Tsirkin" <mst at redhat.com> wrote: > > > > > > > Ok, so what about something like > > > > > > "If FEATURES_OK is not set, the driver MAY change the set of features it > > > accepts." > > > > > > in the device initialization section? > > > > Maybe "as long as". However Halil implied that some features are not > > turned off properly if that happens. Halil could you pls provide > > some examples? > > > > static void virtio_net_set_features(VirtIODevice *vdev, uint64_t features) > { > ... > if (virtio_has_feature(features, VIRTIO_NET_F_STANDBY)) { > qapi_event_send_failover_negotiated(n->netclient_name); > qatomic_set(&n->failover_primary_hidden, false); > failover_add_primary(n, &err); > if (err) { > warn_report_err(err); > } > } > } > > This is probably the only one in QEMU. Back then I stopped looking > after the first hit. > > Regards, > HalilHmm ok more failover issues :( This stuff really should be moved to set_status. -- MST