direct-io.hg

changeset 2814:73fa63cc2cc9

bitkeeper revision 1.1159.1.326 (418677bearNwfvI3AaLxMG1OKQfO9A)

Better do_softirq(). We know that there is at least one softirq pending
on entry, so we cget rid of the initial test for zero.
author kaf24@freefall.cl.cam.ac.uk
date Mon Nov 01 17:51:58 2004 +0000 (2004-11-01)
parents 158be1f95c02
children 5e2a9d23a580
files xen/common/softirq.c
line diff
     1.1 --- a/xen/common/softirq.c	Mon Nov 01 17:05:45 2004 +0000
     1.2 +++ b/xen/common/softirq.c	Mon Nov 01 17:51:58 2004 +0000
     1.3 @@ -23,12 +23,14 @@ asmlinkage void do_softirq()
     1.4  {
     1.5      unsigned int i, pending, cpu = smp_processor_id();
     1.6  
     1.7 -    while ( (pending = softirq_pending(cpu)) != 0 )
     1.8 -    {
     1.9 +    pending = softirq_pending(cpu);
    1.10 +    ASSERT(pending != 0);
    1.11 +
    1.12 +    do {
    1.13          i = find_first_set_bit(pending);
    1.14          clear_bit(i, &softirq_pending(cpu));
    1.15          (*softirq_handlers[i])();
    1.16 -    }
    1.17 +    } while ( (pending = softirq_pending(cpu)) != 0 );
    1.18  }
    1.19  
    1.20  void open_softirq(int nr, softirq_handler handler)