# HG changeset patch # User yamahata@xxxxxxxxxxxxx # Date 1186648381 -32400 # Node ID b28786127bf9a973f8b8ac1f47ec469012c1d168 # Parent 840b9df48b6a4f0f569963dba01885bde2946b6b prevent soft lockup when domain destroy. linux part. repeat domain destroy hypercall until success. PATCHNAME: prevent_soft_lockup_linux_part Signed-off-by: Isaku Yamahata diff -r 840b9df48b6a -r b28786127bf9 arch/ia64/xen/xcom_privcmd.c --- a/arch/ia64/xen/xcom_privcmd.c Tue Aug 07 09:37:41 2007 +0100 +++ b/arch/ia64/xen/xcom_privcmd.c Thu Aug 09 17:33:01 2007 +0900 @@ -305,7 +305,13 @@ xencomm_privcmd_domctl(privcmd_hypercall return ret; } - ret = xencomm_arch_hypercall_domctl (op_desc); + ret = xencomm_arch_hypercall_domctl(op_desc); + if (kern_op.cmd == XEN_DOMCTL_destroydomain) { + while (ret == -EAGAIN) { + schedule(); /* prevent softlock up message */ + ret = xencomm_arch_hypercall_domctl(op_desc); + } + } /* FIXME: should we restore the handle? */ if (copy_to_user(user_op, &kern_op, sizeof(xen_domctl_t)))