Source: MontaVista Software, Inc. Sergey Podstavin <spodstavin@xxxxxxxxxxxxx> MR: 14908 Type: Defect Fix Disposition: needs submitting to linuxmips-embedded mailing list Signed-off-by: Sergey Podstavin <spodstavin@xxxxxxxxxxxxx> Description: A large file transfers with errors via UART on 115200 fix Index: linux-2.6.10/arch/mips/vr5701/vr5701_sg2/irq.c =================================================================== --- linux-2.6.10.orig/arch/mips/vr5701/vr5701_sg2/irq.c +++ linux-2.6.10/arch/mips/vr5701/vr5701_sg2/irq.c @@ -79,18 +79,6 @@ asmlinkage void vr5701_sg2_irq_dispatch( u32 bitmask; u32 i; u32 intPCIStatus; - if (ddb_in32(INT1_STAT) != 0) { - printk(KERN_CRIT "NMI = %x\n", ddb_in32(NMI_STAT)); - printk(KERN_CRIT "INT0 = %x\n", ddb_in32(INT0_STAT)); - printk(KERN_CRIT "INT1 = %x\n", ddb_in32(INT1_STAT)); - printk(KERN_CRIT "INT2 = %x\n", ddb_in32(INT2_STAT)); - printk(KERN_CRIT "INT3 = %x\n", ddb_in32(INT3_STAT)); - printk(KERN_CRIT "INT4 = %x\n", ddb_in32(INT4_STAT)); - printk(KERN_CRIT "EPCI_ERR = %x\n", ddb_in32(EPCI_ERR)); - printk(KERN_CRIT "IPCI_ERR = %x\n", ddb_in32(IPCI_ERR)); - - panic("error interrupt has happened."); - } intStatus = ddb_in32(INT0_STAT); @@ -100,7 +88,6 @@ asmlinkage void vr5701_sg2_irq_dispatch( if (intStatus & 1 << 7) goto IRQ_IPCI; - IRQ_OTHER: for (i = 0, bitmask = 1; i <= NUM_5701_IRQS; bitmask <<= 1, i++) { /* do we need to "and" with the int mask? */ if (intStatus & bitmask) { @@ -117,26 +104,18 @@ asmlinkage void vr5701_sg2_irq_dispatch( do_IRQ(8 + NUM_5701_IRQS + i, regs); } } - if (!intStatus) - return; + return; IRQ_IPCI: intStatus &= ~(1 << 7); intPCIStatus = ddb_in32(IPCI_INTS); - if (!intPCIStatus) - goto IRQ_OTHER; - for (i = 0, bitmask = 1; i < NUM_5701_IPCI_IRQS; bitmask <<= 1, i++) { if (intPCIStatus & bitmask) { do_IRQ(8 + NUM_5701_IRQS + NUM_5701_EPCI_IRQS + i, regs); } } - - if (!intStatus) - return; - - goto IRQ_OTHER; + return; } void __init arch_init_irq(void)