• M
    net: fix infinite loop on exit · b8904921
    Michael Roth 提交于
    1ceef9f2 added handling for cleaning
    up multiple queues in qemu_del_nic() for cases where multiqueue is in
    use. To determine the number of queues it looks at nic->conf->queues,
    then iterates through all the queues to cleanup the associated
    NetClientStates. If no queues are found, no NetClientStates are deleted.
    
    However, nic->conf->queues is only set when a peer is created via
    -netdev or netdev_add, and is otherwise 0. This causes us to spin in
    net_cleanup() if we attempt to shut down qemu before adding a host
    device.
    
    Since qemu_new_nic() unconditionally creates at least 1
    queue/NetClientState at queue idx 0, make qemu_del_nic() always attempt
    to clean it up.
    Signed-off-by: NMichael Roth <mdroth@linux.vnet.ibm.com>
    Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
    b8904921
net.c 29.9 KB