ia64/xen-unstable

changeset 3156:d0daec09aa8b

bitkeeper revision 1.1159.187.19 (41a65822miLPeexZ6MOkyk4Usl-Rpw)

Fix multicall preemption.
author kaf24@scramble.cl.cam.ac.uk
date Thu Nov 25 22:09:38 2004 +0000 (2004-11-25)
parents 1a221a308fe5
children d4bdc9cba180 a46548db5e52
files xen/common/multicall.c
line diff
     1.1 --- a/xen/common/multicall.c	Thu Nov 25 21:06:13 2004 +0000
     1.2 +++ b/xen/common/multicall.c	Thu Nov 25 22:09:38 2004 +0000
     1.3 @@ -52,9 +52,15 @@ long do_multicall(multicall_entry_t *cal
     1.4  
     1.5          if ( hypercall_preempt_check() )
     1.6          {
     1.7 -            /* If the sub-call wasn't preempted, skip over it. */
     1.8 +            /*
     1.9 +             * Copy the sub-call continuation if it was preempted.
    1.10 +             * Otherwise skip over the sub-call entirely.
    1.11 +             */
    1.12              if ( !test_bit(_MCSF_call_preempted, &mcs->flags) )
    1.13                  i++;
    1.14 +            else
    1.15 +                (void)__copy_to_user(&call_list[i], &mcs->call,
    1.16 +                                     sizeof(*call_list));
    1.17  
    1.18              /* Only create a continuation if there is work left to be done. */
    1.19              if ( i < nr_calls )