aboutsummaryrefslogtreecommitdiffstats
path: root/linux-2.4.26-xen-sparse
diff options
context:
space:
mode:
authoriap10@labyrinth.cl.cam.ac.uk <iap10@labyrinth.cl.cam.ac.uk>2004-08-10 20:51:11 +0000
committeriap10@labyrinth.cl.cam.ac.uk <iap10@labyrinth.cl.cam.ac.uk>2004-08-10 20:51:11 +0000
commit3cdfd04b47860811ff2012a7b28964e7499b0bca (patch)
treea377733797d3f7ed637e09d570a19e193aabd995 /linux-2.4.26-xen-sparse
parent29ab24c974a09f578e6e8fff173ac0e895a1e9db (diff)
downloadxen-3cdfd04b47860811ff2012a7b28964e7499b0bca.tar.gz
xen-3cdfd04b47860811ff2012a7b28964e7499b0bca.tar.bz2
xen-3cdfd04b47860811ff2012a7b28964e7499b0bca.zip
bitkeeper revision 1.1159.20.1 (4119353fK0fKs_SYKxrgvHgZ7WbE4Q)
migration blkdev and netdev resume fixes
Diffstat (limited to 'linux-2.4.26-xen-sparse')
-rw-r--r--linux-2.4.26-xen-sparse/arch/xen/drivers/blkif/frontend/main.c12
-rw-r--r--linux-2.4.26-xen-sparse/arch/xen/kernel/setup.c5
2 files changed, 15 insertions, 2 deletions
diff --git a/linux-2.4.26-xen-sparse/arch/xen/drivers/blkif/frontend/main.c b/linux-2.4.26-xen-sparse/arch/xen/drivers/blkif/frontend/main.c
index 015d62c624..0d5fd96968 100644
--- a/linux-2.4.26-xen-sparse/arch/xen/drivers/blkif/frontend/main.c
+++ b/linux-2.4.26-xen-sparse/arch/xen/drivers/blkif/frontend/main.c
@@ -805,4 +805,16 @@ void blkdev_suspend(void)
void blkdev_resume(void)
{
+ ctrl_msg_t cmsg;
+ blkif_fe_driver_status_changed_t st;
+
+
+ /* Send a driver-UP notification to the domain controller. */
+ cmsg.type = CMSG_BLKIF_FE;
+ cmsg.subtype = CMSG_BLKIF_FE_DRIVER_STATUS_CHANGED;
+ cmsg.length = sizeof(blkif_fe_driver_status_changed_t);
+ st.status = BLKIF_DRIVER_STATUS_UP;
+ memcpy(cmsg.msg, &st, sizeof(st));
+ ctrl_if_send_message_block(&cmsg, NULL, 0, TASK_UNINTERRUPTIBLE);
}
+
diff --git a/linux-2.4.26-xen-sparse/arch/xen/kernel/setup.c b/linux-2.4.26-xen-sparse/arch/xen/kernel/setup.c
index c218d199d1..6acd49bc06 100644
--- a/linux-2.4.26-xen-sparse/arch/xen/kernel/setup.c
+++ b/linux-2.4.26-xen-sparse/arch/xen/kernel/setup.c
@@ -1200,6 +1200,7 @@ static void __do_suspend(void)
/* Hmmm... a cleaner interface to suspend/resume blkdevs would be nice. */
extern void blkdev_suspend(void);
extern void blkdev_resume(void);
+ extern void netif_resume(void);
extern void time_suspend(void);
extern void time_resume(void);
@@ -1248,8 +1249,8 @@ static void __do_suspend(void)
__sti();
- //blkdev_resume();
- //netdev_resume();
+ blkdev_resume();
+ netif_resume();
out:
if ( suspend_record != NULL )