• A
    net: Fix VM start with '-net none' · 03c71553
    Amit Shah 提交于
    Commit 50e32ea8 changed the behaviour
    for the return type of net_client_init() when a nic type with no init
    method was specified. 'none' is one such nic type. Instead of returning
    0, which gets interpreted as an index into the nd_table[] array, we
    switched to returning -1, which signifies an error as well.
    
    That broke VM start with '-net none'. Testing was only done with the
    monitor command 'pci_add', which doesn't fail.
    
    The correct fix would still be to return 0+ values from
    net_client_init() only when the return value can be used as an index to
    refer to an entry in nd_table[]. With the current code, callers can
    erroneously poke into nd_table[0] when -net nic is used, which can lead
    to badness.
    
    However, this commit just returns to the previous behaviour before the
    offending commit.
    Signed-off-by: NAmit Shah <amit.shah@redhat.com>
    Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
    03c71553
net.c 36.3 KB