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;

Reply via email to