Skip to contentSkip to conversation

ppc64: Fix new mpic driver on some POWER3

PATCH New Benjamin Herrenschmidt 1 participant 1 message Oct 26, 2004

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ppc64: Fix new mpic driver on some POWER3

Hi !

On machines using the "ISU" mecanism for the MPIC, the new driver didn't properly calculate the new interrupt count when an ISU was added. That would cause later on failure to request interrupts in the offending range.

arch/ppc64/kernel/mpic.c +4 -2
Index: linux-work/arch/ppc64/kernel/mpic.c
===================================================================
@@ -580,11 +580,13 @@
 void __init mpic_assign_isu(struct mpic *mpic, unsigned int isu_num,
 			    unsigned long phys_addr)
 {
+	unsigned int isu_first = isu_num * mpic->isu_size;
+
 	BUG_ON(isu_num >= MPIC_MAX_ISU);
 
 	mpic->isus[isu_num] = ioremap(phys_addr, MPIC_IRQ_STRIDE * mpic->isu_size);
-	if ((isu_num + mpic->isu_size) > mpic->num_sources)
-		mpic->num_sources = isu_num + mpic->isu_size;
+	if ((isu_first + mpic->isu_size) > mpic->num_sources)
+		mpic->num_sources = isu_first + mpic->isu_size;
 }
 
 void __init mpic_setup_cascade(unsigned int irq, mpic_cascade_t handler,