xenbus: delay xenbus frontend resume if xenstored is not running
authorAurelien Chartier <aurelien.chartier@citrix.com>
Tue, 28 May 2013 17:09:56 +0000 (18:09 +0100)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Wed, 29 May 2013 13:04:19 +0000 (09:04 -0400)
commit2abb274629614bef4044a0b98ada42e977feadfd
tree0c4ef9f17333b7e6ec558a10cf7d218a52d85276
parent1d7004f0593f631b78745e4c835d8e09b31f4996
xenbus: delay xenbus frontend resume if xenstored is not running

If the xenbus frontend is located in a domain running xenstored, the device
resume is hanging because it is happening before the process resume. This
patch adds extra logic to the resume code to check if we are the domain
running xenstored and delay the resume if needed.

Signed-off-by: Aurelien Chartier <aurelien.chartier@citrix.com>
[Changes in v2:
- Instead of bypassing the resume, process it in a workqueue]
[Changes in v3:
- Add a struct work in xenbus_device to avoid dynamic allocation
- Several small code fixes]
[Changes in v4:
- Use a dedicated workqueue]
[Changes in v5:
- Move create_workqueue error handling to xenbus_frontend_dev_resume]
Acked-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
drivers/xen/xenbus/xenbus_probe_frontend.c
include/xen/xenbus.h