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;
 };
 

Reply via email to