• P
    xen: fix xen-bus state model to allow frontend re-connection · 67bc8e00
    Paul Durrant 提交于
    There is a flaw in the xen-bus state model. To allow a frontend to re-
    connect the backend state of an online XenDevice is transitioned from
    Closed to InitWait, but this is currently done unilaterally which is
    incorrect. The backend state should remain Closed until the frontend state
    transitions to Initialising.
    
    This patch removes the automatic backend state transition from
    xen_device_backend_state_changed() and, instead, adds an extra check in
    xen_device_frontend_state_changed() to determine whether a frontend is
    trying to re-connect to a previously Closed XenDevice. Only if this is
    found to be the case is the backend state transitioned from Closed to
    InitWait. Note that this transition will be common amongst all XenDevice
    classes and hence xen_device_frontend_state_changed() returns immediately
    afterwards without calling into the XenDeviceClass frontend_changed()
    method.
    Signed-off-by: NPaul Durrant <paul.durrant@citrix.com>
    Acked-by: NAnthony PERARD <anthony.perard@citrix.com>
    Signed-off-by: NAnthony PERARD <anthony.perard@citrix.com>
    67bc8e00
xen-bus.c 33.0 KB