Module Name: src Committed By: jruoho Date: Fri Feb 25 06:18:02 UTC 2011
Modified Files: src/sys/dev/acpi: acpi_cpu.c acpi_cpu.h Log Message: Store a pointer to cpu_info rather than cpu_info::ci_acpiid alone. To generate a diff of this commit: cvs rdiff -u -r1.26 -r1.27 src/sys/dev/acpi/acpi_cpu.c cvs rdiff -u -r1.28 -r1.29 src/sys/dev/acpi/acpi_cpu.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/acpi/acpi_cpu.c diff -u src/sys/dev/acpi/acpi_cpu.c:1.26 src/sys/dev/acpi/acpi_cpu.c:1.27 --- src/sys/dev/acpi/acpi_cpu.c:1.26 Wed Feb 16 08:35:51 2011 +++ src/sys/dev/acpi/acpi_cpu.c Fri Feb 25 06:18:02 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi_cpu.c,v 1.26 2011/02/16 08:35:51 jruoho Exp $ */ +/* $NetBSD: acpi_cpu.c,v 1.27 2011/02/25 06:18:02 jruoho Exp $ */ /*- * Copyright (c) 2010 Jukka Ruohonen <jruoho...@iki.fi> @@ -27,7 +27,7 @@ * SUCH DAMAGE. */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: acpi_cpu.c,v 1.26 2011/02/16 08:35:51 jruoho Exp $"); +__KERNEL_RCSID(0, "$NetBSD: acpi_cpu.c,v 1.27 2011/02/25 06:18:02 jruoho Exp $"); #include <sys/param.h> #include <sys/cpu.h> @@ -57,7 +57,7 @@ static void acpicpu_sysctl(device_t); static int acpicpu_object(ACPI_HANDLE, struct acpicpu_object *); -static cpuid_t acpicpu_id(uint32_t); +static struct cpu_info *acpicpu_ci(uint32_t); static uint32_t acpicpu_cap(struct acpicpu_softc *); static ACPI_STATUS acpicpu_cap_pdc(struct acpicpu_softc *, uint32_t); static ACPI_STATUS acpicpu_cap_osc(struct acpicpu_softc *, @@ -95,7 +95,7 @@ rv = acpicpu_object(aa->aa_node->ad_handle, &ao); - if (rv != 0 || acpicpu_id(ao.ao_procid) == 0xFFFFFF) + if (rv != 0 || acpicpu_ci(ao.ao_procid) == NULL) return 0; return 1; @@ -107,6 +107,7 @@ struct acpicpu_softc *sc = device_private(self); struct acpi_attach_args *aa = aux; static ONCE_DECL(once_attach); + cpuid_t id; int rv; rv = acpicpu_object(aa->aa_node->ad_handle, &sc->sc_object); @@ -122,14 +123,17 @@ sc->sc_dev = self; sc->sc_cold = true; sc->sc_node = aa->aa_node; - sc->sc_cpuid = acpicpu_id(sc->sc_object.ao_procid); - if (sc->sc_cpuid == 0xFFFFFF) { - aprint_error(": invalid CPU ID\n"); + sc->sc_ci = acpicpu_ci(sc->sc_object.ao_procid); + + if (sc->sc_ci == NULL) { + aprint_error(": invalid CPU\n"); return; } - if (acpicpu_sc[sc->sc_cpuid] != NULL) { + id = sc->sc_ci->ci_acpiid; + + if (acpicpu_sc[id] != NULL) { aprint_error(": already attached\n"); return; } @@ -138,7 +142,7 @@ aprint_normal(": ACPI CPU\n"); acpi_cpus++; - acpicpu_sc[sc->sc_cpuid] = sc; + acpicpu_sc[id] = sc; sc->sc_cap = acpicpu_cap(sc); sc->sc_flags |= acpicpu_md_quirks(); @@ -356,8 +360,8 @@ return ACPI_FAILURE(rv) ? 1 : 0; } -static cpuid_t -acpicpu_id(uint32_t id) +static struct cpu_info * +acpicpu_ci(uint32_t id) { CPU_INFO_ITERATOR cii; struct cpu_info *ci; @@ -365,10 +369,10 @@ for (CPU_INFO_FOREACH(cii, ci)) { if (id == ci->ci_acpiid) - return id; + return ci; } - return 0xFFFFFF; + return NULL; } static uint32_t Index: src/sys/dev/acpi/acpi_cpu.h diff -u src/sys/dev/acpi/acpi_cpu.h:1.28 src/sys/dev/acpi/acpi_cpu.h:1.29 --- src/sys/dev/acpi/acpi_cpu.h:1.28 Thu Jan 13 03:40:51 2011 +++ src/sys/dev/acpi/acpi_cpu.h Fri Feb 25 06:18:02 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi_cpu.h,v 1.28 2011/01/13 03:40:51 jruoho Exp $ */ +/* $NetBSD: acpi_cpu.h,v 1.29 2011/02/25 06:18:02 jruoho Exp $ */ /*- * Copyright (c) 2010 Jukka Ruohonen <jruoho...@iki.fi> @@ -178,6 +178,7 @@ struct acpicpu_softc { device_t sc_dev; + struct cpu_info *sc_ci; struct acpi_devnode *sc_node; struct acpicpu_object sc_object; @@ -203,7 +204,6 @@ kmutex_t sc_mtx; uint32_t sc_cap; uint32_t sc_flags; - cpuid_t sc_cpuid; bool sc_cold; };