Module Name:    src
Committed By:   chs
Date:           Sun Mar 31 19:34:25 UTC 2013

Modified Files:
        src/sys/arch/x86/acpi: acpi_machdep.c

Log Message:
yet more fixes for PR 47648 / PR 47016:
when using a temporary mp_intr_map, initialize the "flags" field
as well as "redir" since apic_set_redir() uses both.  fix how
the flags field is change when applying an override, the trigger
and polarity sub-fields aren't just one bit like they are in redir.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/sys/arch/x86/acpi/acpi_machdep.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/acpi/acpi_machdep.c
diff -u src/sys/arch/x86/acpi/acpi_machdep.c:1.5 src/sys/arch/x86/acpi/acpi_machdep.c:1.6
--- src/sys/arch/x86/acpi/acpi_machdep.c:1.5	Mon Mar 25 01:30:37 2013
+++ src/sys/arch/x86/acpi/acpi_machdep.c	Sun Mar 31 19:34:24 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: acpi_machdep.c,v 1.5 2013/03/25 01:30:37 chs Exp $ */
+/* $NetBSD: acpi_machdep.c,v 1.6 2013/03/31 19:34:24 chs Exp $ */
 
 /*
  * Copyright 2001 Wasabi Systems, Inc.
@@ -40,7 +40,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: acpi_machdep.c,v 1.5 2013/03/25 01:30:37 chs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: acpi_machdep.c,v 1.6 2013/03/31 19:34:24 chs Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -163,12 +163,14 @@ acpi_md_OsInstallInterruptHandler(uint32
 		if (polarity == ACPI_MADT_POLARITY_ACTIVE_HIGH ||
 		    (!sci && polarity == ACPI_MADT_POLARITY_CONFORMS)) {
 			mpflags &= ~MPS_INTPO_ACTLO;
+			mpflags |= MPS_INTPO_ACTHI;
 			redir &= ~IOAPIC_REDLO_ACTLO;
 		}
 		if (trigger == ACPI_MADT_TRIGGER_EDGE ||
 		    (!sci && trigger == ACPI_MADT_TRIGGER_CONFORMS)) {
 			type = IST_EDGE;
 			mpflags &= ~(MPS_INTTR_LEVEL << 2);
+			mpflags |= (MPS_INTTR_EDGE << 2);
 			redir &= ~IOAPIC_REDLO_LEVEL;
 		}
 	}
@@ -200,6 +202,7 @@ acpi_md_OsInstallInterruptHandler(uint32
 			mipp = &sc->sc_pins[pin].ip_map;
 			*mipp = &tmpmap;
 			tmpmap.redir = redir;
+			tmpmap.flags = mpflags;
 		}
 	} else
 #endif

Reply via email to