summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authornjl <njl@FreeBSD.org>2004-02-14 03:17:30 +0000
committernjl <njl@FreeBSD.org>2004-02-14 03:17:30 +0000
commit67995bef83d9d8c84403dab3348106cf5b861d10 (patch)
tree8629574917c3379e57d327a6dd7488f0142bbadf /sys
parent7211bcf2019b26fb855f291b27f8ba11d8e28b30 (diff)
downloadFreeBSD-src-67995bef83d9d8c84403dab3348106cf5b861d10.zip
FreeBSD-src-67995bef83d9d8c84403dab3348106cf5b861d10.tar.gz
Fix hw.acpi.os_name by renaming it to hw.acpi.osname. The "_name" suffix
is reserved by the loader, and thus any tunable name with that suffix will be silently discarded. Document this in the header and man page so that other developers do not develop so many bumps on the head after banging it against the wall. Detective work by: Mark Santcroos, grehan
Diffstat (limited to 'sys')
-rw-r--r--sys/boot/forth/loader.conf.54
-rw-r--r--sys/dev/acpica/Osd/OsdTable.c12
-rw-r--r--sys/sys/kernel.h3
3 files changed, 12 insertions, 7 deletions
diff --git a/sys/boot/forth/loader.conf.5 b/sys/boot/forth/loader.conf.5
index 89a803f..414784e 100644
--- a/sys/boot/forth/loader.conf.5
+++ b/sys/boot/forth/loader.conf.5
@@ -132,6 +132,10 @@ special value
.Dq abort ,
which aborts the bootstrap process, use of this setting should be avoided.
.El
+.Pp
+.Em WARNING:
+developers should never use these suffixes for any kernel environment
+variables (tunables) or conflicts will result.
.Sh DEFAULT SETTINGS
Most of
.Nm Ns 's
diff --git a/sys/dev/acpica/Osd/OsdTable.c b/sys/dev/acpica/Osd/OsdTable.c
index 2f057d2..0b94ad3 100644
--- a/sys/dev/acpica/Osd/OsdTable.c
+++ b/sys/dev/acpica/Osd/OsdTable.c
@@ -38,8 +38,8 @@
#undef _COMPONENT
#define _COMPONENT ACPI_TABLES
-static char acpi_os_name[128];
-TUNABLE_STR("hw.acpi.os_name", acpi_os_name, sizeof(acpi_os_name));
+static char acpi_osname[128];
+TUNABLE_STR("hw.acpi.osname", acpi_osname, sizeof(acpi_osname));
ACPI_STATUS
AcpiOsPredefinedOverride (
@@ -50,11 +50,9 @@ AcpiOsPredefinedOverride (
return (AE_BAD_PARAMETER);
*NewVal = NULL;
- if (strncmp(InitVal->Name, "_OS_", 4) == 0 &&
- getenv_string("hw.acpi.os_name", acpi_os_name, sizeof(acpi_os_name))) {
-
- printf("ACPI: Overriding _OS definition with \"%s\"\n", acpi_os_name);
- *NewVal = acpi_os_name;
+ if (strncmp(InitVal->Name, "_OS_", 4) == 0 && strlen(acpi_osname) > 0) {
+ printf("ACPI: Overriding _OS definition with \"%s\"\n", acpi_osname);
+ *NewVal = acpi_osname;
}
return (AE_OK);
diff --git a/sys/sys/kernel.h b/sys/sys/kernel.h
index fe75bf2..d0f449d 100644
--- a/sys/sys/kernel.h
+++ b/sys/sys/kernel.h
@@ -265,6 +265,9 @@ void sysinit_add(struct sysinit **set, struct sysinit **set_end);
* Infrastructure for tunable 'constants'. Value may be specified at compile
* time or kernel load time. Rules relating tunables together can be placed
* in a SYSINIT function at SI_SUB_TUNABLES with SI_ORDER_LAST.
+ *
+ * WARNING: developers should never use the reserved suffixes specified in
+ * loader.conf(5) for any tunables or conflicts will result.
*/
extern void tunable_int_init(void *);
OpenPOWER on IntegriCloud