xen/pv-on-hvm kexec+kdump: reset PV devices in kexec or crash kernel
authorOlaf Hering <olaf@aepfle.de>
Thu, 25 Aug 2011 16:34:45 +0000 (18:34 +0200)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Thu, 1 Sep 2011 15:49:03 +0000 (11:49 -0400)
commit116df6f004af81925dcaa90d4a3b76da6b009427
treed70f3a4166d021a59410e49cf8c5d3fbee6ee2b9
parent62cc5fc7b2e0218144e162afb8191db9b924b5e6
xen/pv-on-hvm kexec+kdump: reset PV devices in kexec or crash kernel

After triggering a crash dump in a HVM guest, the PV backend drivers
will remain in Connected state. When the kdump kernel starts the PV
drivers will skip such devices. As a result, no root device is found and
the vmcore cant be saved.

A similar situation happens after a kexec boot, here the devices will be
in the Closed state.

With this change all frontend devices with state XenbusStateConnected or
XenbusStateClosed will be reset by changing the state file to Closing ->
Closed -> Initializing.  This will trigger a disconnect in the backend
drivers. Now the frontend drivers will find the backend drivers in state
Initwait and can connect.

Signed-off-by: Olaf Hering <olaf@aepfle.de>
[v2:
  - add timeout when waiting for backend state change
  (based on feedback from Ian Campell)
  - extent printk message to include backend string
  - add comment to fall-through case in xenbus_reset_frontend]
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
drivers/xen/xenbus/xenbus_comms.c
drivers/xen/xenbus/xenbus_probe_frontend.c