virtio_pci: fix virtio spec compliance on restore
authorMichael S. Tsirkin <mst@redhat.com>
Tue, 14 Oct 2014 00:10:29 +0000 (10:40 +1030)
committerRusty Russell <rusty@rustcorp.com.au>
Tue, 14 Oct 2014 23:54:53 +0000 (10:24 +1030)
commit6fbc198cf623944ab60a1db6d306a4d55cdd820d
treef0e9102dc35317a14829f0109ef999bc65379cd8
parent7ec62d421bdf29cb31101ae2689f7f3a9906289a
virtio_pci: fix virtio spec compliance on restore

On restore, virtio pci does the following:
+ set features
+ init vqs etc - device can be used at this point!
+ set ACKNOWLEDGE,DRIVER and DRIVER_OK status bits

This is in violation of the virtio spec, which
requires the following order:
- ACKNOWLEDGE
- DRIVER
- init vqs
- DRIVER_OK

This behaviour will break with hypervisors that assume spec compliant
behaviour.  It seems like a good idea to have this patch applied to
stable branches to reduce the support butden for the hypervisors.

Cc: stable@vger.kernel.org
Cc: Amit Shah <amit.shah@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
drivers/virtio/virtio_pci.c