Tidy up a little - don't try to print anything or enable interrupts after
we start changing translation registers. Also, call ExitBootServices
before we jump into the kernel.
Ian Dowse [Mon, 24 Sep 2001 18:29:20 +0000 (18:29 +0000)]
The addition of i_dirhash to struct inode pushed RELENG_4's
sizeof(struct inode) into a new malloc bucket on the i386. This
didn't happen in -current due to the removal of i_lock, but it does
no harm to apply the workaround to -current first.
Reduce the size of the i_spare[] array in struct inode from 4 to
3 entries, and change ext2fs to use i_din.di_spare[1] so that it
does not need i_spare[3].
David E. O'Brien [Mon, 24 Sep 2001 18:17:11 +0000 (18:17 +0000)]
Back out rev 1.274. The previous behavior was documented in rc.8 and
the original commit of local_startup depended on the scripts being
executable; so there is too much precedence to change it now. About all
anyone could agree on is that rev 1.274 broke POLA and before rev 1.274
also broke POLA.
Add a couple of functions to create persistent variables that will
survive a sysinstall Ctrl-C -> 'Restart'. This fixes another annoying
bug where restarting sysinstall will try to reload kernel modules and
do other external things that have already been done. For now, use
these persistent variables to keep track of module, usbd, and pccardd
initialization.
Bruce A. Mah [Sun, 23 Sep 2001 22:32:09 +0000 (22:32 +0000)]
The README file in the floppies/ directory of a distribution should
come from the installation document (of the release documentation)
not the readme. The installation document is the one that has the
content of the old FLOPPIES.TXT.
Reinitialize the keyboard after the ACPI resume event.
I am not sure if this is absolutely necessary on all systems. Yet,
there certainly are motherboards and notebook systems which require
this, although there are other systems which just don't. I hope we
shall know when to do this on which systems, as the development of our
ACPI subsystem progresses... (I know we didn't need this for the APM
resume.)
Warner Losh [Sun, 23 Sep 2001 06:36:41 +0000 (06:36 +0000)]
Fix grammar of the newest UPDATING entry. Also, minor rewording of
grant to use this document to be less restrictive than before. The
document now can be used without restriction.
Mike Heffner [Sun, 23 Sep 2001 04:07:26 +0000 (04:07 +0000)]
Don't add space after comma unless there was already one (prevents a
rare overflow). Optimize loop slightly. Don't exit if realloc can't
shrink a buffer (just continue and use the larger buffer).
John Baldwin [Sat, 22 Sep 2001 21:19:55 +0000 (21:19 +0000)]
Since we no longer inline any debugging code in the mutex operations, move
all the debugging code into the function versions of the mutex operations
in kern_mutex.c. This reduced the __mtx_* macros to simply wrappers of
the _{get,rel}_lock_* macros, so the __mtx_* macros were also abolished in
favor of just calling the _{get,rel}_lock_* macros. The tangled hairy mass
of macros calling macros is at least a bit more sane now.
* Turn off memory descriptor debugging - its served its purpose.
* Don't get confused when memory regions don't lie on page boundaries -
remember our page size is typically larger than the firmware's page size.
* Add a function ia64_running_in_simulator() which is intended to detect
whether the kernel is running in SKI or on real hardware.
Add a function to free all of sysinstall's internal variables from the
environment. This fixes an annoying bug where hitting Ctrl-C and
telling sysinstall to 'restart' will do no such thing since many of
the options are still set and so you won't be prompted for them
again.
Use the isDebug() function rather than making up a new environment
variable to check for debug functionality. Previously, you had to set
both 'debug' and 'SYSINSTALL_DEBUG' to get a log of sysinstall's
activities. Now, only 'debug' is necessary.
Give the pps driver an additional 8 inputs if we can persuade the
ppc to go into EPP mode. These 8 inputs are timestamped in polled
loop so their resolution will be nanoseconds but their granularity
will only be 1/hz.
Remove IFCAP_HWCSUM, it is merely a luxury #define, not a real flag.
Remove explicit mention of IP stack, since it might not be accurate for all
interfaces.
Change if_enable to if_capenable, as it is spelled.
Crist J. Clark [Sat, 22 Sep 2001 09:33:00 +0000 (09:33 +0000)]
Fixing a bug that causes very short uptimes (less than one minute) to
be 30 seconds off. (Thanks to Vladimir B.Grebenschikov
<vova@express.ru> for the PR and ru for a more elegant fix.)
Scott Long [Sat, 22 Sep 2001 04:26:35 +0000 (04:26 +0000)]
Note in the BUGS section that the driver will not work on controllers that
have version 1.x firmware. This might also need to go into the release
documentation, as many people seem to have been bitten by this.
John Baldwin [Fri, 21 Sep 2001 23:15:10 +0000 (23:15 +0000)]
Use __FILE__ and __LINE__ explicitly since we know we will be using them
when calling _mtx_assert() to prevent mtx_assert() from requiring
sys/lock.h as well as sys/mutex.h.
John Baldwin [Fri, 21 Sep 2001 22:22:25 +0000 (22:22 +0000)]
Use the passed in thread pointer instead of curthread in calls to
selrecord() in ptcpoll(). The pre-KSE code used the passed in proc pointer
rather than curproc, and an earlier seltrue() call uses the passed in
thread and not curthread.
John Baldwin [Fri, 21 Sep 2001 22:06:22 +0000 (22:06 +0000)]
The P_SELECT flag was moved from p->p_flag to td->td_flags, but p_flag
was locked by the proc lock and td_flags is locked by the sched_lock.
The places that read, set, and cleared TDF_SELECT weren't updated, so they
read and modified td_flags w/o holding the sched_lock, meaning that they
could corrupt the per-thread flags field. As an immediate band-aid,
grab sched_lock while reading and manipulating td_flags in relation to
TDF_SELECT. This will probably be cleaned up some later on.
Robert Watson [Fri, 21 Sep 2001 21:33:22 +0000 (21:33 +0000)]
o Introduce eaccess(2), a version of access(2) that uses the effective
credentials rather than the real credentials. This is useful for
implementing GUI's which need to modify icons based on access rights,
but where use of open(2) is too expensive, use of stat(2) doesn't
reflect the file system's real protection model, and use of
access() suffers from real/effective credential confusion. This
implementation provides the same semantics as the call of the same
name on SCO OpenServer. Note: using this call improperly can
leave you subject to some of the same races present in the
access(2) call.
o To implement this, break out the basic logic of access(2) into
vpaccess(), which accepts a passed credential to perform the
invocation of VOP_ACCESS(). Add eaccess(2) to invoke vpaccess(),
and modify access(2) to use vpaccess().
Robert Watson [Fri, 21 Sep 2001 21:28:43 +0000 (21:28 +0000)]
o Fix two eaccess() checks -- in one case, the wrong test file
was used, resulting in a regression failure, and in the other,
the test on an error return was inverted.
Introduce new syscons(4) kernel options:
- SC_CUT_SPACES2TABS - when copying text into the cut buffer convert leading
spaces into the tabs;
- SC_CUT_SEPCHARS="XYZ" - treat supplied characters as possible words
separators when the driver searches for words boundaries when doing cut
operation.
Also unify cut code a bit to decrease amount of duplicated code. This fixes
line cut mode, so that it is no longer pads line with useless spaces.
John Baldwin [Fri, 21 Sep 2001 19:26:57 +0000 (19:26 +0000)]
Remove a bogus comment. "atomic" doesn't mean that the operation is done
as a physical atomic operation. That would require the code to use the
atomic API, which it does not. Instead, the operation is made psuedo
atomic (hence the quotes) by use of the lock to protect clearing all of the
flags in question.