Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 30 Sep 2002 08:48:39 -0700
From:      "David O'Brien" <obrien@freebsd.org>
To:        Joshua LeVasseur <jtl-freebsd@bothan.net>
Cc:        freebsd-ppc <freebsd-ppc@freebsd.org>
Subject:   Re: [freebsd-ppc] psim bug
Message-ID:  <20020930154839.GA36341@dragon.nuxi.com>
In-Reply-To: <0769F91E-CCBC-11D6-9A64-003065468D4E@bothan.net>
References:  <0769F91E-CCBC-11D6-9A64-003065468D4E@bothan.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Can you make a GDB bug report?  If so I can work on getting psim fixed.
http://sources.redhat.com/gdb/bugs/

On Fri, Sep 20, 2002 at 07:11:40PM +0200, Joshua LeVasseur wrote:
> Has anyone noticed a problem with psim's external interrupt delivery?  
> psim refuses to raise an external interrupt (on behalf of my IPIs) if 
> the simulator has a pending decrementer interrupt.  The bug is in 
> interrupts.c:external_interrupt().  It uses a logical inversion where 
> it should perform a bitwise inversion:
> 
>     if (!ints->pending_interrupts & external_interrupt_pending) {
>       ints->pending_interrupts |= external_interrupt_pending;
>       if (cpu_registers(processor)->msr & msr_external_interrupt_enable)
>         schedule_hardware_interrupt_delivery(processor);
>     }
> 
> The if-clause is superfluous, so I removed it:
> 
>     ints->pending_interrupts |= external_interrupt_pending;
>     if (cpu_registers(processor)->msr & msr_external_interrupt_enable)
>       schedule_hardware_interrupt_delivery(processor);
> 
> Now external interrupt delivery functions as expected.

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ppc" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020930154839.GA36341>