diff options
Diffstat (limited to 'cpu/ppc4xx/interrupts.c')
| -rw-r--r-- | cpu/ppc4xx/interrupts.c | 7 | 
1 files changed, 4 insertions, 3 deletions
diff --git a/cpu/ppc4xx/interrupts.c b/cpu/ppc4xx/interrupts.c index 698bcb57d..8620e2b48 100644 --- a/cpu/ppc4xx/interrupts.c +++ b/cpu/ppc4xx/interrupts.c @@ -218,15 +218,16 @@ static void uic_interrupt(u32 uic_base, int vec_base)  			} else {  				set_dcr(uic_base + UIC_ER,  					get_dcr(uic_base + UIC_ER) & -					~(0x80000000 >> vec)); +					~(0x80000000 >> (vec & 0x1f)));  				printf("Masking bogus interrupt vector %d"  				       " (UIC_BASE=0x%x)\n", vec, uic_base);  			}  			/* -			 * After servicing the interrupt, we have to remove the status indicator. +			 * After servicing the interrupt, we have to remove the +			 * status indicator  			 */ -			set_dcr(uic_base + UIC_SR, (0x80000000 >> vec)); +			set_dcr(uic_base + UIC_SR, (0x80000000 >> (vec & 0x1f)));  		}  		/*  |