Warner Losh [Thu, 13 Jun 2002 07:19:31 +0000 (07:19 +0000)]
Use a cv rather than tsleep and friends to do the sleep/wakeup
handshake between the ISR and the worker thread. Move the mutex lock
so that it only protects the cv_wait. This elimiates the not sleeping
with pccbb1 held messages some people were seeing.
Almost complete rewrite of the lpc commands 'abort', 'enable', 'disable',
'restart', 'start', 'stop' and 'up'. These are commands which mainly
just alter the access bits on the lock-file of a queue, and they all
now use a central routine to do that. This reduces the amount of code
that is run as the priv userid, and eliminates a number of cases where
error messages were written while that priv uid was in effect.
As far as users are concerned, there should be no noticable difference
in the new versions. In case there *is*, the previous implementations
are still there as 'xabort', 'xenable', etc, so they are available for
instant fallback. If no one reports a problem after a few weeks, then
a later update will remove those x-commands.
Reviewed by: freebsd-audit and freebsd-print@bostonradio.org
MFC after: 10 days
Brian Somers [Wed, 12 Jun 2002 21:36:07 +0000 (21:36 +0000)]
Don't forget to process the Ident field on the front of
RAD_MICROSOFT_MS_CHAP_ERROR and RAD_MICROSOFT_MS_CHAP2_SUCCESS
messages, and remove the hack in chap.c to ignore that ident field
on the client side.
This anomoly was hacked around during development, and I forgot to
go back and fix it properly.
Thomas Moestl [Wed, 12 Jun 2002 19:20:57 +0000 (19:20 +0000)]
Add PCI bus enumeration and latency timer setup to the sparc64 MD PCI
code. Both tasks are not always performed completely by the firmware.
The former is required to get some e450 models to boot; the latter fixes
the repeated fifo underruns with hme(4)s and gem(4)s observed on some
machines (and probably performance problems with other peripherals as
well).
Bruce Evans [Wed, 12 Jun 2002 13:30:52 +0000 (13:30 +0000)]
If trap() is called when ddb is active, then go directly to trap_fatal();
do not blunder around enabling interrupts and running trap handlers.
trap_pfault() will normally pass control to ddb's fault handler which
will normally do the right thing.
This bug is very old. but in old versions of FreeBSD it is probably only
serious for trap handling that involves sleeping. In -current, attempting
to examine unmapped memory while stopped at a breakpoint at mi_switch()
was always fatal.
Juli Mallett [Wed, 12 Jun 2002 04:18:31 +0000 (04:18 +0000)]
String lengths and sizeof()s are size_t not int. Mark an unused parameter
of ReadMakefile as __unused, it's there because this function is used by
the abstracted list interface which normally deals with item handlers which
take two arguments. Add a missing static prototype.
These attributes may be supplied by a RADIUS server when MSCHAPv2 is
used to authenticate.
It *should* now be possible to build ppp with -DNODES and still support
CHAP/MSCHAP/MSCHAPv2/MPPE via a RADIUS server, but the code isn't yet
smart enough to do that (building with -DNODES just looses these
facilities).
Brian Somers [Wed, 12 Jun 2002 00:21:07 +0000 (00:21 +0000)]
Add the following functions:
rad_request_authenticator()
Returns the Request-Authenticator relevant to the most recently received
RADIUS response.
rad_server_secret()
Returns the Shared Secret relevant to the most recently received
RADIUS response.
Neither of these functions should be necessary, however, the
MS-MPPE-Recv-Key and MS-MPPE-Send-Key Microsoft Vendor Specific
attributes are supplied in a mangled (encrypted) format, requiring
this information to demangle.
It's not clear whether these functions should be replaced with a
rad_demangle() function or whether these attributes are one-offs.
Bruce A. Mah [Tue, 11 Jun 2002 23:06:41 +0000 (23:06 +0000)]
Add role="historic" attributes to all release notes that were MFC-ed
as of 4.6-RELEASE (or earlier). This commit shouldn't have any immediate
effect, but we'll eventually use some stylesheet magic to remove
the historic release notes from the output stream. This will have
the effect of making the 5.0-RELEASE release notes contain material
only relevent to -CURRENT *or* recently MFC-ed to 4-STABLE.
The stylesheet fixes will follow later, once I work out a couple more
details. I wanted to get this commit done now, before anything gets
MFC-ed in the post-4.6 world (so we don't need to go back later and
figure this out).
If a historic release note gets modified, it may very well be
appropriate to remove its historic attribute.
Alfred Perlstein [Tue, 11 Jun 2002 21:22:32 +0000 (21:22 +0000)]
This actually compiles under lint now, by effectively #if 0'ing it
when compiling LINT, linking LINT was broke, so unbreak by removing
the preprocessor directives.
Matthew Dillon [Mon, 10 Jun 2002 21:15:50 +0000 (21:15 +0000)]
Correct a bug in the last commit. The whole point of creating a 'done:'
goto target was so the cache could be freed. So free the cache after
done: rather then before done: (!)
Maxim Sobolev [Mon, 10 Jun 2002 19:25:21 +0000 (19:25 +0000)]
- Whitespace only: use return statement consistentlt (return (foo), not
return(foo)), kill extra blank names between function names;
- fix format string in printf(): devtoname() returns string, not pointer.
Matthew Dillon [Mon, 10 Jun 2002 18:52:31 +0000 (18:52 +0000)]
In tracking down an installation seg fault with then openoffice port
Martin Blapp determined that the elf dynamic loader was at fault. In
particular, the loader uses alloca() to allocate a symbol cache on the
stack. Normally this would work just fine, but if the loader is called
from a threaded program and the object being loaded is fairly large the
alloca() can blow away the thread stack and effect other nearby thread
stacks as well. My testing showed that the symbol cache can be as large
as 250KBytes during the openoffice port build and install sequence. Martin
was able to work around the problem by disabling the symbol cache
(cache = NULL;). However, this solution is not adequate for commit because
it can cause an enormous cpu burden for applications which do a lot of
dynamic loading (e.g. like konqueror).
The solution is to use anonymous mmap() to temporarily allocate space to
hold the symbol cache. In testing I found that replacing the alloca()
with mmap() has no observable degredation in performance.
It should be noted that this bug does not necessarily cause an immediate
crash but can instead result in long term corruption and instability in
applications that load modules from threads. The bug is almost certainly
responsible for some of the instabilities found in konqueror, for example,
and possibly netscape too.
Sleuthing work by: Martin Blapp <mb@imp.ch>
X-MFC after: Before or after the 4.6 release depending on the release engineers
Juli Mallett [Mon, 10 Jun 2002 09:03:49 +0000 (09:03 +0000)]
Add another example for using paste(1) since tjr seemed to want more examples
on IRC. This one is to create a colon seperated list of directories from
find(1), suitable for use in the shell's PATH.
Alan Cox [Mon, 10 Jun 2002 06:11:45 +0000 (06:11 +0000)]
o In vm_map_entry_create(), call uma_zalloc() with M_NOWAIT on system maps.
Submitted by: tegge
o Eliminate the "!mapentzone" check from vm_map_entry_create() and
vm_map_entry_dispose(). Reviewed by: tegge
o Fix white-space usage in vm_map_entry_create().
Tim J. Robbins [Mon, 10 Jun 2002 06:06:20 +0000 (06:06 +0000)]
Correctly handle global substitutions where the pattern is only "$", the
EOL anchor, when the last input line does not end in a newline character.
Picked up by the GNU sed test suite.
Juli Mallett [Mon, 10 Jun 2002 05:03:20 +0000 (05:03 +0000)]
Note early appearence of some commands. These actually appeared in PWB, but
it seems we don't have a macro for that yet, so list them in the first UNIX
release since then that we have a .At for: v7.
Ian Dowse [Mon, 10 Jun 2002 03:25:23 +0000 (03:25 +0000)]
Correct the logic for determining whether the per-CPU locks need
to be destroyed. This fixes a problem where destroying a UMA zone
would fail to destroy all zone mutexes.
Alan Cox [Sun, 9 Jun 2002 20:25:18 +0000 (20:25 +0000)]
o Add vm_map_wire() for wiring contiguous regions of either kernel
or user vm_maps. This implementation has two key benefits when compared
to vm_map_{user_,}pageable(): (1) it avoids a race condition through
the use of "in-transition" vm_map entries and (2) it eliminates lock
recursion on the vm_map.
Note: there is still an error case that requires clean up.
Mike Barcroft [Sun, 9 Jun 2002 19:39:18 +0000 (19:39 +0000)]
o Remove include of <sys/types.h>, it adds too much pollution;
instead, add typedefs of only gid_t, time_t, and uid_t.
o Remove an unneeded conditional that hid macros that are in the
implementation namespace and therefore don't need to be hidden when
_POSIX_SOURCE is defined.
o Adjust some conditionals for compatibility with X/Open and POSIX.
o Note missing functions getpwnam_r() and getpwuid_r().
Fix driver to re-enable sound output on AD1816 based cards caused by an
obviously bogous return value of ad1816chan_setformat().
PR: 37932
Submitted by: Martin Kaeske <Martin.Kaeske@Stud.TU-Ilmenau.DE>
Reviewed by: hm
MFC after: 10 days
Replace <strings.h> with <string.h>. No functions from the former are
used in this file, and strlen() needs to be prototyped by the latter,
for this to compile without warnings.