Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2ebb939a authored by David Vrabel's avatar David Vrabel Committed by Konrad Rzeszutek Wilk
Browse files

xen-kbdfront: handle backend CLOSED without CLOSING



Backend drivers shouldn't transistion to CLOSED unless the frontend is
CLOSED.  If a backend does transition to CLOSED too soon then the
frontend may not see the CLOSING state and will not properly shutdown.

So, treat an unexpected backend CLOSED state the same as CLOSING.

Acked-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: default avatarDavid Vrabel <david.vrabel@citrix.com>
Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
parent 01bc825f
Loading
Loading
Loading
Loading
+4 −1
Original line number Original line Diff line number Diff line
@@ -311,7 +311,6 @@ static void xenkbd_backend_changed(struct xenbus_device *dev,
	case XenbusStateReconfiguring:
	case XenbusStateReconfiguring:
	case XenbusStateReconfigured:
	case XenbusStateReconfigured:
	case XenbusStateUnknown:
	case XenbusStateUnknown:
	case XenbusStateClosed:
		break;
		break;


	case XenbusStateInitWait:
	case XenbusStateInitWait:
@@ -350,6 +349,10 @@ static void xenkbd_backend_changed(struct xenbus_device *dev,


		break;
		break;


	case XenbusStateClosed:
		if (dev->state == XenbusStateClosed)
			break;
		/* Missed the backend's CLOSING state -- fallthrough */
	case XenbusStateClosing:
	case XenbusStateClosing:
		xenbus_frontend_closed(dev);
		xenbus_frontend_closed(dev);
		break;
		break;