diff --git a/arch/x86/scc/icc.c b/arch/x86/scc/icc.c index 50d60dcd..f11184e1 100644 --- a/arch/x86/scc/icc.c +++ b/arch/x86/scc/icc.c @@ -465,29 +465,29 @@ void icc_mail_check(void) /* print status information */ kprintf( "my_ue = %d\n", my_ue ); kprintf( "irq_status_addr: %x\n", irq_status ); - + for( i=0; i<2; ++i ) { /* read status register */ irq_status_reg = (volatile uint64_t*)(FPGA_BASE + IRQ_STATUS + my_ue*8); irq_status = *irq_status_reg; kprintf( "irq_status: %x\n", irq_status ); - + /* determine interrupt sources */ for( source = 0; irq_status != 0; irq_status >>= 1, ++source ) { - if( irq_status & 0x1 ) { + if( (irq_status & 0x1) != 0 ) { kprintf( "check mail for source %d\n", source ); - } + } } + + /* reset status register */ + irq_reset_reg = (volatile uint64_t*)(FPGA_BASE + IRQ_RESET + my_ue*8); + *irq_reset_reg = ~(0); + + kprintf( "irq_status: %x\n", *irq_status_reg ); + + } - - /* reset status register */ - irq_reset_reg = (volatile uint64_t*)(FPGA_BASE + IRQ_RESET + my_ue*8); - *irq_reset_reg = ~(0); - - kprintf( "irq_status: %x\n", *irq_status_reg ); - - -/* + /* int res; while( (res = iRCCE_mail_recv(&header)) == iRCCE_SUCCESS ) { icc_mail_check_tag(header);