ia64/xen-unstable

changeset 3093:4565455d7f26

bitkeeper revision 1.1159.1.444 (41a475d57yTjHY9plDmeNIUQ3XedOQ)

evtchn.c:
Check event pending after processing an IRQ since interrupts might have
been enabled during the irq handler.
author cl349@arcadians.cl.cam.ac.uk
date Wed Nov 24 11:51:49 2004 +0000 (2004-11-24)
parents c5bce79aef35
children 42bdac6c8985 624548f0c77b
files linux-2.6.9-xen-sparse/arch/xen/kernel/evtchn.c
line diff
     1.1 --- a/linux-2.6.9-xen-sparse/arch/xen/kernel/evtchn.c	Wed Nov 24 11:49:43 2004 +0000
     1.2 +++ b/linux-2.6.9-xen-sparse/arch/xen/kernel/evtchn.c	Wed Nov 24 11:51:49 2004 +0000
     1.3 @@ -108,9 +108,12 @@ asmlinkage void evtchn_do_upcall(struct 
     1.4              l1i--;
     1.5              l1 &= ~(1 << l1i);
     1.6          
     1.7 -            l2 = s->evtchn_pending[l1i] & ~s->evtchn_mask[l1i];
     1.8 -            while ( (l2i = ffs(l2)) != 0 )
     1.9 +            for ( ;; )
    1.10              {
    1.11 +                l2 = s->evtchn_pending[l1i] & ~s->evtchn_mask[l1i];
    1.12 +                l2i = ffs(l2);
    1.13 +                if ( l2i == 0 )
    1.14 +                    break;
    1.15                  l2i--;
    1.16                  l2 &= ~(1 << l2i);
    1.17