Module Name: src
Committed By: ad
Date: Sat May 16 23:48:00 UTC 2009
Modified Files:
src/sys/arch/x86/x86: ioapic.c
Log Message:
Fix suspend/resume problem with some configurations. From droch...@.
To generate a diff of this commit:
cvs rdiff -u -r1.42 -r1.43 src/sys/arch/x86/x86/ioapic.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/x86/x86/ioapic.c
diff -u src/sys/arch/x86/x86/ioapic.c:1.42 src/sys/arch/x86/x86/ioapic.c:1.43
--- src/sys/arch/x86/x86/ioapic.c:1.42 Fri May 1 09:38:24 2009
+++ src/sys/arch/x86/x86/ioapic.c Sat May 16 23:48:00 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: ioapic.c,v 1.42 2009/05/01 09:38:24 cegger Exp $ */
+/* $NetBSD: ioapic.c,v 1.43 2009/05/16 23:48:00 ad Exp $ */
/*-
* Copyright (c) 2000, 2009 The NetBSD Foundation, Inc.
@@ -64,7 +64,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ioapic.c,v 1.42 2009/05/01 09:38:24 cegger Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ioapic.c,v 1.43 2009/05/16 23:48:00 ad Exp $");
#include "opt_ddb.h"
@@ -409,14 +409,15 @@
pp = &sc->sc_pins[pin];
map = pp->ip_map;
redlo = map == NULL ? IOAPIC_REDLO_MASK : map->redir;
+ redhi = 0;
delmode = (redlo & IOAPIC_REDLO_DEL_MASK) >> IOAPIC_REDLO_DEL_SHIFT;
- redhi = (ci->ci_cpuid << IOAPIC_REDHI_DEST_SHIFT);
if (delmode == IOAPIC_REDLO_DEL_FIXED ||
delmode == IOAPIC_REDLO_DEL_LOPRI) {
if (pp->ip_type == IST_NONE) {
redlo |= IOAPIC_REDLO_MASK;
} else {
+ redhi = (ci->ci_cpuid << IOAPIC_REDHI_DEST_SHIFT);
redlo |= (idt_vec & 0xff);
redlo |= (IOAPIC_REDLO_DEL_FIXED<<IOAPIC_REDLO_DEL_SHIFT);
redlo &= ~IOAPIC_REDLO_DSTMOD;