Date: Fri, 20 Sep 2002 19:11:40 +0200 From: Joshua LeVasseur <jtl-freebsd@bothan.net> To: freebsd-ppc <freebsd-ppc@freebsd.org> Subject: [freebsd-ppc] psim bug Message-ID: <0769F91E-CCBC-11D6-9A64-003065468D4E@bothan.net>
next in thread | raw e-mail | index | archive | help
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. -Josh 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?0769F91E-CCBC-11D6-9A64-003065468D4E>