Subject: Re: results of the IRC debug patch
To: Michael <macallan18@earthlink.net>
From: Tim Kelly <hockey@dialectronics.com>
List: port-macppc
Date: 12/04/2004 08:45:32
At 8:28 AM -0500 12/4/04, Tim Kelly wrote:
>I'd like to figure out if some code was
>removed that differentiated between the interrupt types when determining
>the irq handler to call. When esp and mace share the same virq 2, I don't
>see how mace's handlers get called if the virq to be processed is 2.

No code has been removed. Instead of working backwards I just looked at the
original commit. I just don't see how this code:

  irq = 31 - cntlzw(hwpend);
  is = &intrsources[irq];
  if (!have_openpic)
      gc_enable_irq(is->is_hwirq); ci->ci_ipending &= ~(1 << irq);
  splraise(is->is_mask);
  mtmsr(emsr);
  KERNEL_LOCK(LK_CANRECURSE|LK_EXCLUSIVE);
  ih = is->is_hand;
  while (ih) {
       (*ih->ih_fun)(ih->ih_arg);
       ih = ih->ih_next;
  }

differentiates between mace on virq 2 and esp on virq 2. Of course, with
irq 2 not established by if_mc.c, this conflict never occurs, and it is
conceivable that this conflict doesn't occur under any other circumstances.

tim