|   | 
      | 
  
  
      | 
      | 
  
 
     | 
    | 
  
  
     | 
    | 
  
  
    |   | 
      | 
  
  
    | 
         
xen-devel
[Xen-devel] question on the use of fs in evtchn.c
 
       while ( (l1i = ffs(l1)) != 0 )
                               ^^
        {
            l1i--;
            l1 &= ~(1 << l1i);
            l2 = s->evtchn_pending[l1i] & ~s->evtchn_mask[l1i];
            while ( (l2i = ffs(l2)) != 0 )
                                    ^^
            {
                l2i--;
                l2 &= ~(1 << l2i);
                port = (l1i << 5) + l2i;
this is in:
"../linux-2.4.26-xenU/arch/xen/kernel/evtchn.c" 
The problem is that ffs will return -1 if l1 is 0. Yeah, I know, unlikely,
but if it ever happens that l1 or l2 are 0, well, you're in for a fun
time. In any event, the loop condition holds for both a valid result and 
an error, which may not be what you really want to do. 
In the plan 9 port this is:
       while ( (l1i = ffs(l1)) > 0 )
                               ^
        {
            l1i--;
            l1 &= ~(1 << l1i);
            l2 = s->evtchn_pending[l1i] & ~s->evtchn_mask[l1i];
            while ( (l2i = ffs(l2)) > 0 )
                                    ^
            {
                l2i--;
                l2 &= ~(1 << l2i);
                port = (l1i << 5) + l2i;
A little paranoid, I realize, but mistakes happen. I can't think of a case 
where this would happen, but what the heck. Maybe if l1 is 0 it should 
complain ...
BTW my little patch for level (not edge) VIRQ_TIMER interrupts is giving
me something more like what I expect from timer interrupts. I hope you'll
at least consider the idea.
ron
-- 
LANL CCS-1 email flavor:
***** Correspondence   []
***** DUSA LACSI-HW    [ ]
***** DUSA LACSI-OS    [x ]
***** DUSA LACSI-CS    [ ]
-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/xen-devel
 |   
 
| <Prev in Thread] | 
Current Thread | 
[Next in Thread>
 |  
- [Xen-devel] question on the use of fs in evtchn.c,
ron minnich <=
 
 
 |  
  
 | 
    | 
  
  
    |   | 
    |