patch-2.3.99-pre7 linux/arch/ppc/kernel/pmac_pic.c
Next file: linux/arch/ppc/kernel/pmac_setup.c
Previous file: linux/arch/ppc/kernel/pmac_pci.c
Back to the patch index
Back to the overall index
- Lines: 47
- Date:
Tue May 2 13:05:40 2000
- Orig file:
v2.3.99-pre6/linux/arch/ppc/kernel/pmac_pic.c
- Orig date:
Wed Apr 26 16:34:07 2000
diff -u --recursive --new-file v2.3.99-pre6/linux/arch/ppc/kernel/pmac_pic.c linux/arch/ppc/kernel/pmac_pic.c
@@ -158,13 +158,13 @@
{
int irq, bits;
- for (irq = max_irqs - 1; irq > max_real_irqs; irq -= 32) {
+ for (irq = max_irqs; (irq -= 32) >= max_real_irqs; ) {
int i = irq >> 5;
bits = ld_le32(&pmac_irq_hw[i]->flag)
| ppc_lost_interrupts[i];
if (bits == 0)
continue;
- irq -= cntlzw(bits);
+ irq += __ilog2(bits);
break;
}
/* The previous version of this code allowed for this case, we
@@ -213,13 +213,13 @@
}
else
{
- for (irq = max_real_irqs - 1; irq > 0; irq -= 32) {
+ for (irq = max_real_irqs; (irq -= 32) >= 0; ) {
int i = irq >> 5;
bits = ld_le32(&pmac_irq_hw[i]->flag)
| ppc_lost_interrupts[i];
if (bits == 0)
continue;
- irq -= cntlzw(bits);
+ irq += __ilog2(bits);
break;
}
}
@@ -489,11 +489,9 @@
if (max_real_irqs > 32)
out_le32(&pmac_irq_hw[1]->enable, ppc_cached_irq_mask[1]);
(void)in_le32(&pmac_irq_hw[0]->flag);
- do {
- /* make sure mask gets to controller before we
- return to user */
- mb();
- } while(in_le32(&pmac_irq_hw[0]->enable) != ppc_cached_irq_mask[0]);
+ /* make sure mask gets to controller before we return to caller */
+ mb();
+ (void)in_le32(&pmac_irq_hw[0]->enable);
}
void
FUNET's LINUX-ADM group, [email protected]
TCL-scripts by Sam Shen (who was at: [email protected])