Bruce Evans [Sat, 12 Aug 2000 20:54:47 +0000 (20:54 +0000)]
Fixed world breakage for the NOSHARED=yes case. Libraries were added to
LDFLAGS instead of to LDADD, so they ended up too early in the command
line.
Don't link to libcrypt. It is unused for static linkage and unnecessary
and only apparently used for dynamic linkage (the dynamic libskey is
linked to libcrypt to support the crypt parts of libskey which aren't
used here).
Peter Wemm [Fri, 11 Aug 2000 23:23:20 +0000 (23:23 +0000)]
Add -mpreferred-stack-boundary=2 to CFLAGS for i386. This and libstand
reduces /boot/loader from 163840 bytes to 155648 and pxeboot from 165888
bytes to 157696 bytes.
Peter Wemm [Fri, 11 Aug 2000 18:54:47 +0000 (18:54 +0000)]
Oops, forgot this file. Log message for completeness:
Clean up some low level bootstrap code:
- stop using the evil 'struct trapframe' argument for mi_startup()
(formerly main()). There are much better ways of doing it.
- do not use prepare_usermode() - setregs() in execve() will do it
all for us as long as the p_md.md_regs pointer is set. (which is
now done in machdep.c rather than init_main.c. The Alpha port did it
this way all along and is much cleaner).
- collect all the magic %cr0 etc register settings into one place and
have the AP's call that instead of using magic numbers (!!) that keep
changing over and over again.
- Make it safe to call kthread_create() earlier, including during the
device probe sequence. It doesn't need the callback mechanism that
NetBSD's version uses.
- kthreads created this way are root-less as they exist before the root
filesystem is mounted. init(1) is set up so that it aquires the root
pointers prior to running. If other kthreads want filesystem acccess
we can make this code more generic.
- set all threads start times once we have decided what time it is.
- init uses a trampoline rather than the evil prepare_usermode() hack.
- kern_descrip.c has a couple of tweaks to deal with forking when there
is no rootdir or cwd etc.
- adjust the early SYSINIT() sequence so that a few prereqisites are in
place. eg: make sure the run queue is initialized before doing forks.
With this, the USB code can easily create a kthread to do the device
tree discovery. (I have tested it, it works nicely).
There are still some open issues before this is truely useful.
- tsleep() does not like working before the clock is running. It
sort-of tries to spin wait, but it can do more useful things now.
- stopping a kthread in kld code at unload time is "interesting" but
we have a solution for that.
The Alpha code needs no changes for this. It already uses pretty much the
same strategies, but a little cleaner.
Bill Paul [Fri, 11 Aug 2000 17:47:55 +0000 (17:47 +0000)]
Fix a bug brought to light by the people working on SMPng. I don't quite
understand exactly what it is about SMPng that tickles this bug. What I
do know is that the foo_init() routine in most drivers is often called
twice when an interface is brought up. One time is due to the ifconfig(8)
command calling the SIOCSIFFLAGS ioctl to set the IFF_UP flag, and another
is probably due to the kernel calling ifp->if_init at some point. In any
case, the SMPng changes seem to affect the timing of these two events in
such a way that there is a significant delay before any packets are sent
onto the wire after the interface is first brought up. This manifested
itself locally as an SMPng test machine which failed to obtain an address
via DHCP when booting up.
It looks like the second call to fxp_init() is happening faster now than
it did before, and I think it catches the chip while it's in the process
of dealing with the configuration command from the first call. Whatever
the case, a FXP_CSR_SCB_CNA interrupt event is now generated shortly after
the second fxp_init() call. (This interrupt is apparently never generated
by a non-SMPng kernel, so nobody noticed.)
There are two problems with this: first, fxp_intr() does not handle the
FXP_CSR_SCB_CNA interrupt event (it never tests for it or does anything
to deal with it), and second, the meaning of FXP_CSR_SCB_CNA is not
documented in the driver. (Apparently it means "command unit not active.")
Bad coder. No biscuit.
The fix is to have the FXP_CSR_SCB_CNA interrupt handled just like the
FXP_SCB_STATACK_CXTNO interrupt. This prevents the state machine for
the configuration/RX filter programming stuff from getting wedged for
several seconds and preventing packet transmission.
Peter Wemm [Fri, 11 Aug 2000 09:05:12 +0000 (09:05 +0000)]
Clean up some low level bootstrap code:
- stop using the evil 'struct trapframe' argument for mi_startup()
(formerly main()). There are much better ways of doing it.
- do not use prepare_usermode() - setregs() in execve() will do it
all for us as long as the p_md.md_regs pointer is set. (which is
now done in machdep.c rather than init_main.c. The Alpha port did it
this way all along and is much cleaner).
- collect all the magic %cr0 etc register settings into one place and
have the AP's call that instead of using magic numbers (!!) that keep
changing over and over again.
- Make it safe to call kthread_create() earlier, including during the
device probe sequence. It doesn't need the callback mechanism that
NetBSD's version uses.
- kthreads created this way are root-less as they exist before the root
filesystem is mounted. init(1) is set up so that it aquires the root
pointers prior to running. If other kthreads want filesystem acccess
we can make this code more generic.
- set all threads start times once we have decided what time it is.
- init uses a trampoline rather than the evil prepare_usermode() hack.
- kern_descrip.c has a couple of tweaks to deal with forking when there
is no rootdir or cwd etc.
- adjust the early SYSINIT() sequence so that a few prereqisites are in
place. eg: make sure the run queue is initialized before doing forks.
With this, the USB code can easily create a kthread to do the device
tree discovery. (I have tested it, it works nicely).
There are still some open issues before this is truely useful.
- tsleep() does not like working before the clock is running. It
sort-of tries to spin wait, but it can do more useful things now.
- stopping a kthread in kld code at unload time is "interesting" but
we have a solution for that.
The Alpha code needs no changes for this. It already uses pretty much the
same strategies, but a little cleaner.
Sheldon Hearn [Fri, 11 Aug 2000 08:40:10 +0000 (08:40 +0000)]
While we're in here:
Remove extraneous arguments to the Nm macro.
Mark up cross-references properly.
Use proper block displays (Bd).
Use proper mark-up for author names (An).
Remove the bogus ARGUMENTS section.
Raname EXAMPLE -> EXAMPLES.
Spell ``S/Key'' consistently.
Paul Saab [Fri, 11 Aug 2000 08:36:17 +0000 (08:36 +0000)]
Add support to send the string 'PXEClient' as the Vendor class
identifier to the DHCP server. Now you can check for this string
in your dhcp configuration to decide whether you will hand out a
lease to the client or not.
Sheldon Hearn [Fri, 11 Aug 2000 08:24:39 +0000 (08:24 +0000)]
(null commit)
Reflect that the update to routed-2.22 addresses a problem discussed
in PR bin/16941. The updated release also incorporates our local
buffer overflow fix (implemented differently) and puts us in a
position where we are completely synchronized with the master
distribution, apart from the stupid spammage of the #ident
definitions, which are supposed to indicate the release version,
not individual source file revisions.
This distribution was not moved into contrib because of objections
from wollman. He feels that the software is original Berkeley
code that shouldn't be imported into contrib just because it
has an external maintainer.
Warner Losh [Thu, 10 Aug 2000 23:16:32 +0000 (23:16 +0000)]
Add stuff:
o BUILD_SUIDPERL replaces NOSUIDPERL
o New /etc/rc.conf settings for secure networking may require changes
to those upgrading.
o nullfs in loader.conf.
Warner Losh [Thu, 10 Aug 2000 22:53:49 +0000 (22:53 +0000)]
Eliminate the only setuid perl script in the tree.
Original 'C' progam submitted by Juriy Goloveshkin.
A different 'C' program also submitted by dima.
I merged and rewrote them to include error handling, use getlogin for
user name and only the BSD boilerplate license remained from the
original code. We also only allow root to get other user's keys.
Review, bikeshed and bdelint(1): myself, kris, dima, markm
Archie Cobbs [Thu, 10 Aug 2000 22:42:25 +0000 (22:42 +0000)]
- Add new unsigned and hex integer parse types; this allows simplifying
the bytearray parse type.
- Allocate (larger) temporary work buffer dynamically instead of on the
stack when comparing to the default value.
Archie Cobbs [Thu, 10 Aug 2000 20:05:12 +0000 (20:05 +0000)]
RFC 1661 requires that all LCP packets are sent with no address and
control field compression. The ng_ppp(4) node correctly follows this
rule. However, PPPoE is an exception: when doing PPPoE *all* frames
are sent with address and control field compression.
Alter this node's behavior so that when an outgoing frame is received,
any leading address and control field bytes are removed. This makes
this node compatible with ng_ppp(4).
Hajimu UMEMOTO [Thu, 10 Aug 2000 17:10:57 +0000 (17:10 +0000)]
Don't retry connecting via the same medium.
I changed to close to original code before merging IPv6 support.
It seems having delay before another try is useless. However, I'm
not sure that delay means. So, I leave it as-is.
Warner Losh [Thu, 10 Aug 2000 05:14:31 +0000 (05:14 +0000)]
o Move to recommending the {build,install}kernel targets for updating from
older versions of FreeBSD.
o Continue to document the old way of doing it with a warning stating if that
doesn't work, to do the {build,install}kernel thing.
o minor wordsmithing on what a make world really is.
Warner Losh [Thu, 10 Aug 2000 05:03:49 +0000 (05:03 +0000)]
Add a reminder note to people to disable third party modules at the
right place in the upgrade proceedure so that they don't get burned by
a crash on reboot.
Nick Hibma [Wed, 9 Aug 2000 17:41:11 +0000 (17:41 +0000)]
Finally got my brain around what a SIM UNIT number is and how it differs
from the SCSI id it has. (this avoids the confusing umass-sim32 device. It
should have been umass-sim0 all along (there is only one), and if it is
spoken to as a SCSI device the sim should be umass32.
Make the rescan actually work. We need to fill in a target and lun wildcard
and not the SCSI id of the SIM.
Nick Sayer [Wed, 9 Aug 2000 07:14:56 +0000 (07:14 +0000)]
A couple of cosmetic fixes, plus a biggie: When checking the DMA
position, channel 1's dma position register must be quiescent. So
the driver will spl, pause the DMA, delay a bit and hold as still as
possible while snapping the picture.
I'm sure there HAS to be a better way to do this, but if there is, it's
not documented.
So far as I can tell, this fixes recording, which means the Solo is open
for business.
Chris Costello [Wed, 9 Aug 2000 02:03:30 +0000 (02:03 +0000)]
Use shell matching instead of sed(1) to strip comments and blank lines.
Since it doesn't depend on anything in /usr, it should work with a NFS-mounted
/usr partition.
Thanks to Bruce Evans to bringing this to my attention.
Tor Egge [Wed, 9 Aug 2000 01:57:11 +0000 (01:57 +0000)]
Don't set flags on the mount structure before all permission checks have
been done.
Don't allow multiple mount operations with MNT_UPDATE at the same
time on the same mount point. When the first mount operation
completed, MNT_UPDATE was cleared in the mount structure, causing
the second to complete as if it was a no-update mount operation
with the following bad side effects:
- mount structure inserted multiple times onto the mountlist
- vp->v_mountedhere incorrectly set, causing next namei
operation walking into the mountpoint to crash with
a locking against myself panic.
Tor Egge [Wed, 9 Aug 2000 00:41:54 +0000 (00:41 +0000)]
Initialize *countp to 0 in stub for softdep_flushworklist().
This allows ffs_fsync() to break out of a loop that might otherwise
be infinite on kernels compiled without the SOFTUPDATES option.
The observed symptom was a system hang at the first unmount attempt.