.dev_unplug_pending is set up by virtio-net code indepent of failover
support was set for the device or not. This gives a wrong result when
we check for existing primary devices in migration code.
Fix this by actually calling dev_unplug_pending() instead of just
checking if the function pointer was set. When the feature was not
negotiated dev_unplug_pending() will always return false. This prevents
us from going into the wait-unplug state when there's no primary device
Fixes: 9711cd0dfc3f ("net/virtio: add failover support")
Signed-off-by: Jens Freimann <[hidden email]>
Reported-by: Dr. David Alan Gilbert <[hidden email]>
Reviewed-by: Michael S. Tsirkin <[hidden email]>
hw/net/virtio-net.c | 3 +++
migration/savevm.c | 3 ++-
2 files changed, 5 insertions(+), 1 deletion(-)
failover_replug_primary was returning true on failure which lead to
re-plug not working when a migration failed. Fix this by returning
success when hotplug worked. This is a bug that was missed in last
round of testing but was tested succesfully with this version. Also
make sure we don't pass NULL to qdev_set_parent_bus().
On 2019/11/20 下午11:56, Michael S. Tsirkin wrote:
> On Wed, Nov 20, 2019 at 04:49:47PM +0100, Jens Freimann wrote:
>> This series fixes bugs found by coverity and one reported by David
> Looks good. Jason can you merge this pls?