The resource_xxx routines in subr_hints.c are called before and after the

kenv environment in kern_environment.c switches to dynamic kenv. The prior
call sets the static variable hintp to the static hints in subr_hints.c
(hintmode==0).

However, changes to the environment are not detected by the resource_xxx
lookups after the change to dynamic kernel environment, so the lookup
routines only report the old stuff of hintmode==0, even after the change to
the dynamic kenv. This causes kenv users to see a different environment than
the kernel routines.

This is a problem in the mixer.c code that looks up initial mixer volume
settings from the hints: If the hints are dynamic and not from the
device.hints file, mixer.c doesn't see them, but kenv does.

The patch from the PR (modified to comply to the style of the function)
solves this.

PR:		83686
Submitted by:	Harry Coin <harrycoin@qconline.com>
This commit is contained in:
Alexander Leidinger 2005-07-31 10:46:55 +00:00
parent 3904769ba8
commit 32069af652
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=148586

View file

@ -61,6 +61,8 @@ res_find(int *line, int *startln,
char *p;
if (checkmethod) {
hintp = NULL;
switch (hintmode) {
case 0: /* loader hints in environment only */
break;