From owner-freebsd-ppc Fri Sep 20 10:11:43 2002 Delivered-To: freebsd-ppc@freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 13B2B37B401 for ; Fri, 20 Sep 2002 10:11:42 -0700 (PDT) Received: from bothawui.bothan.net (bothawui.bothan.net [66.92.184.160]) by mx1.FreeBSD.org (Postfix) with SMTP id 7896543E6A for ; Fri, 20 Sep 2002 10:11:41 -0700 (PDT) (envelope-from jtl-freebsd@bothan.net) Received: (qmail 32739 invoked from network); 20 Sep 2002 17:11:40 -0000 Received: from unknown (HELO bothan.net) (127.0.0.1) by localhost with SMTP; 20 Sep 2002 17:11:40 -0000 Date: Fri, 20 Sep 2002 19:11:40 +0200 Mime-Version: 1.0 (Apple Message framework v546) Content-Type: text/plain; charset=US-ASCII; format=flowed Subject: [freebsd-ppc] psim bug From: Joshua LeVasseur To: freebsd-ppc Content-Transfer-Encoding: 7bit Message-Id: <0769F91E-CCBC-11D6-9A64-003065468D4E@bothan.net> X-Mailer: Apple Mail (2.546) Sender: owner-freebsd-ppc@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG 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