• Filipe Manco's avatar
    xen-netback: fix error handling on netback_probe() · cce94483
    Filipe Manco authored
    In case of error during netback_probe() (e.g. an entry missing on the
    xenstore) netback_remove() is called on the new device, which will set
    the device backend state to XenbusStateClosed by calling
    set_backend_state(). However, the backend state wasn't initialized by
    netback_probe() at this point, which will cause and invalid transaction
    and set_backend_state() to BUG().
    
    Initialize the backend state at the beginning of netback_probe() to
    XenbusStateInitialising, and create two new valid state transitions on
    set_backend_state(), from XenbusStateInitialising to XenbusStateClosed,
    and from XenbusStateInitialising to XenbusStateInitWait.
    Signed-off-by: default avatarFilipe Manco <filipe.manco@neclab.eu>
    Acked-by: default avatarWei Liu <wei.liu2@citrix.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    cce94483
xenbus.c 29.8 KB