19 years agoMore constify.
Joerg Sonnenberger [Mon, 16 Aug 2004 13:51:21 +0000 (13:51 +0000)]
More constify.

19 years agoMake libftpio WARNS=6 clean.
Joerg Sonnenberger [Mon, 16 Aug 2004 12:59:21 +0000 (12:59 +0000)]
Make libftpio WARNS=6 clean.

19 years agoFix the fprintf statement for overlong domainnames.
Joerg Sonnenberger [Mon, 16 Aug 2004 05:55:13 +0000 (05:55 +0000)]
Fix the fprintf statement for overlong domainnames.

Noticed-by: dillon
19 years ago- use const for file names, static for local functions
Joerg Sonnenberger [Sun, 15 Aug 2004 17:05:06 +0000 (17:05 +0000)]
- use const for file names, static for local functions
- remove register keyword
- remove useless casts
- remove '?' case from getopt switch
- check return value of signal

Submitted-by: Liam J. Foy <liamfoy@sepulcrum.org>
- use sys/queue.h instead of hand-rolled simple list
- WARNS?= 6 clean

19 years agoMinor style changes.
Joerg Sonnenberger [Sun, 15 Aug 2004 16:12:03 +0000 (16:12 +0000)]
Minor style changes.

19 years agoAdd strotonum(3) into the !ANSI_SOURCE && !_POSIX_SOURCE && !__STRICT_ANSI
Joerg Sonnenberger [Sun, 15 Aug 2004 16:01:11 +0000 (16:01 +0000)]
Add strotonum(3) into the !ANSI_SOURCE && !_POSIX_SOURCE && !__STRICT_ANSI
part of stdlib.h.

strtonum simplifies string conversion by allowing automatic boundary checks.

Submitted-by: Andre Nathan <andre@digirati.com.br>
Obtained-from: OpenBSD

19 years ago- WARNS ?= 6 clean
Joerg Sonnenberger [Sun, 15 Aug 2004 15:06:58 +0000 (15:06 +0000)]
- WARNS ?= 6 clean
- make helper functions static and the arguments const if possible
- remove '?' case from getopt switch
- remove useless casts to void of function return values
- move the error handling label to the end of the function, we don't want
  Italian code here

19 years agoMake the addr parameter to kernacc and useracc const.
Joerg Sonnenberger [Sun, 15 Aug 2004 15:00:22 +0000 (15:00 +0000)]
Make the addr parameter to kernacc and useracc const.

Wondered-about: corecode

19 years agoIOCTL mapping layer Part II/II
Joerg Sonnenberger [Sun, 15 Aug 2004 14:15:00 +0000 (14:15 +0000)]
IOCTL mapping layer Part II/II

Convert the Linux IOCTL emulation to use the new mapping layer. This
also changes the drm(4) and aac(4) emulation of the respective APIs.

Submitted-by: Simon 'corecode' Schubert <corecode@fs.ei.tum.de>
19 years ago- remove prototype for main
Joerg Sonnenberger [Sun, 15 Aug 2004 12:27:37 +0000 (12:27 +0000)]
- remove prototype for main
- make usage() static
- remove unnecessary casts of function returns
- explicitly check input length against MAXHOSTNAMELEN for setdomainname
- explicitly terminate string after getdomainname
- minor style cleanup, this is WARNS?= 6 clean.

19 years agoAdd a missing uio_td assignment (that unionfs needs).
Matthew Dillon [Sat, 14 Aug 2004 19:55:28 +0000 (19:55 +0000)]
Add a missing uio_td assignment (that unionfs needs).

Reported-by: David Rhodus <sdrhodus@gmail.com>
19 years agoAdd DFOSVERSION for ports to check for DragonFly and allow them to handle
Joerg Sonnenberger [Sat, 14 Aug 2004 13:49:41 +0000 (13:49 +0000)]
Add DFOSVERSION for ports to check for DragonFly and allow them to handle
it accordlingly.

Submitted-by: Oliver Eikemeier <eikemeier@fillmore-labs.com>
19 years ago- remove '?' from getopt switch case
Joerg Sonnenberger [Sat, 14 Aug 2004 13:37:46 +0000 (13:37 +0000)]
- remove '?' from getopt switch case
- check the return values of gettimeofday and signal
- improve wording of failed fork() message

Submitted-by: Liam J. Foy <liamjoy@sepulcrum.org>
19 years agoMove a comment to the right place.
Jeffrey Hsu [Sat, 14 Aug 2004 06:41:33 +0000 (06:41 +0000)]
Move a comment to the right place.
Indentation changes.

19 years agoFix function definition {} placement according to our own style.
Jeroen Ruigrok/asmodai [Fri, 13 Aug 2004 19:12:52 +0000 (19:12 +0000)]
Fix function definition {} placement according to our own style.

Submitted by: Liam J. Foy <liamfoy@sepulcrum.org>

19 years agoRemove question mark (?) case statement.
Jeroen Ruigrok/asmodai [Fri, 13 Aug 2004 19:01:18 +0000 (19:01 +0000)]
Remove question mark (?) case statement.
Change %c strftime() specifier into %s to make sure we don't drop year

Submitted by: Liam J. Foy <liamfoy@sepulcrum.org>

19 years agoSplit off code in print_all_info() into print_batt_life(), print_batt_stat()
Jeroen Ruigrok/asmodai [Fri, 13 Aug 2004 18:58:55 +0000 (18:58 +0000)]
Split off code in print_all_info() into print_batt_life(), print_batt_stat()
and print_batt_time().
Add prototypes.

Vast majority submitted by: Liam J. Foy <liamfoy@sepulcrum.org>

19 years agoMake all the local functions static.
Jeroen Ruigrok/asmodai [Fri, 13 Aug 2004 18:48:29 +0000 (18:48 +0000)]
Make all the local functions static.

Partially submitted by: Liam J. Foy <liamfoy@sepulcrum.org>

19 years agoUse proper EXIT_FAILURE/EXIT_SUCCESS for exit() calls.
Jeroen Ruigrok/asmodai [Fri, 13 Aug 2004 18:44:11 +0000 (18:44 +0000)]
Use proper EXIT_FAILURE/EXIT_SUCCESS for exit() calls.

Submitted by: Liam J. Foy <liamfoy@sepulcrum.org>

19 years agoUse proper ANSI prototypes and make sure all arguments are supplied in the
Jeroen Ruigrok/asmodai [Fri, 13 Aug 2004 18:41:45 +0000 (18:41 +0000)]
Use proper ANSI prototypes and make sure all arguments are supplied in the
function definition.

Submitted partially by: Liam J. Foy <liamfoy@sepulcrum.org>

19 years agoVFS messaging/interfacing work stage 1/99. This stage replaces the old
Matthew Dillon [Fri, 13 Aug 2004 17:51:14 +0000 (17:51 +0000)]
VFS messaging/interfacing work stage 1/99.  This stage replaces the old
dynamic VFS descriptor and inlined wrapper mess with a fixed structure
and fixed procedural wrappers.  Most of the work is straightforward except
for vfs_init, which was basically rewritten (and greatly simplified).

It is my intention to make the vop_*() call wrappers eventually handle
range locking and cache coherency issues as well as implementing the
direct call -> messaging interface layer.  The call wrappers will also
API translation as we shift the APIs over to new, more powerful mechanisms
in order to allow the work to be incrementally committed.

This is the first stage of what is likely to be a huge number of stages
to modernize the VFS subsystem.

19 years agoRemove unused variable.
David Rhodus [Fri, 13 Aug 2004 14:27:29 +0000 (14:27 +0000)]
Remove unused variable.

19 years agoIOCTL mapping layer Part I/II
Joerg Sonnenberger [Fri, 13 Aug 2004 11:59:00 +0000 (11:59 +0000)]
IOCTL mapping layer Part I/II

This adds a generic framework for mapping IOCTL requests (cmds) and
attaching special processing functions. Instead of the former adhoc
code using large switch statements e.g. in emulation/linux/linux_ioctl.c,
the emulation layer registers a handler with the mappings for the request
ranges it wants to handle specially. Devices can afterwards add there
own mappings to support e.g. Linux specific IOCTLs.

The first part adds the infrastructure, the second part converts the Linux
emulation, dev/drm and dev/raid/aac.

Submitted-by: Simon 'corecode' Schubert <corecode@fs.ei.tum.de>
Some minor changes by myself.

19 years agoAdd proper prototypes for dump_packet() and pr_type().
Jeroen Ruigrok/asmodai [Fri, 13 Aug 2004 10:41:23 +0000 (10:41 +0000)]
Add proper prototypes for dump_packet() and pr_type().

19 years agoAdd the latest source versions of OpenBSD's traceroute program (which came
Jeroen Ruigrok/asmodai [Fri, 13 Aug 2004 10:39:22 +0000 (10:39 +0000)]
Add the latest source versions of OpenBSD's traceroute program (which came
from NetBSD, which came from Berkeley and was contributed by Van Jacobsen).

19 years agoAdd MODULE_VERSION(pci, 1), e.g. agp(4) can't be loaded as module otherwise.
Joerg Sonnenberger [Fri, 13 Aug 2004 08:27:02 +0000 (08:27 +0000)]
Add MODULE_VERSION(pci, 1), e.g. agp(4) can't be loaded as module otherwise.

Suggested-by: corecode
While at it, de-static pci_alloc_resource to match the prototyp. ACPI5
depends on it.

19 years agoHave make upgrade remove two stale 80211 header files that can mess
Matthew Dillon [Fri, 13 Aug 2004 05:30:02 +0000 (05:30 +0000)]
Have make upgrade remove two stale 80211 header files that can mess
up the /usr/src/usr.bin/truss build (primarily due to the way the ioctl
code just collects all the header files in existance).

19 years agoOops, undo portions of the last commit, some extra work got committed that
Matthew Dillon [Fri, 13 Aug 2004 02:59:29 +0000 (02:59 +0000)]
Oops, undo portions of the last commit, some extra work got committed that
isn't quite ready to go in yet.

19 years agoClose a kernel mem disclosure bug in linprocfs. The uio_offset was not
Matthew Dillon [Fri, 13 Aug 2004 02:50:58 +0000 (02:50 +0000)]
Close a kernel mem disclosure bug in linprocfs.  The uio_offset was not
being properly bounded.  Use uiomove_frombuf() instead of trying to
calculate it manually.

Submitted-by: =?ISO-8859-1?Q?Christer_=D6berg?= <christer.oberg@deprotect.com>
19 years agoThe base/count bounds checking was insufficient, leading to a kernel memory
Matthew Dillon [Fri, 13 Aug 2004 02:45:37 +0000 (02:45 +0000)]
The base/count bounds checking was insufficient, leading to a kernel memory
visibility hole.

Note: additional cast to unsigned to catch signed overflows added by Matt Dillon
Submitted-by: =?ISO-8859-1?Q?Christer_=D6berg?= <christer.oberg@deprotect.com>
19 years agoadd 'read1', a program that tests reading one byte at a time from a file.
Matthew Dillon [Fri, 13 Aug 2004 02:28:42 +0000 (02:28 +0000)]
add 'read1', a program that tests reading one byte at a time from a file.

19 years agoAdd message passed syscall's.
Eirik Nygaard [Thu, 12 Aug 2004 19:59:31 +0000 (19:59 +0000)]
Add message passed syscall's.

Split up sendsys2() into two parts, sendsys2() and waitsys2(). sendsys2() will
take care of the synchronous syscall's and initate asynchronous syscall's, and
waitsys2() will wait for a asynchronous syscall to finish.

Asynchronous syscall's can currently only be issued by the root user, but this
limitation will be removed when the code becomes more stable and better tested.

Add userland support for the synchronous and asynchronous sysmsg's to libcr.
Libcr defaults to the use of synchronous sysmsg's now, but this will be changes
as soon as we allow every user to do asynchronous sysmsg's.

Add a limitation to the number of sysmsg's one proc can have running at any
given time. This defaults to unlimited and can be changed with the
kern.max_sysmsg sysctl.

19 years agoAdd a description for LIST_FOREACH_MUTABLE and TAILQ_FOREACH_MUTABLE.
Joerg Sonnenberger [Thu, 12 Aug 2004 15:07:42 +0000 (15:07 +0000)]

19 years agoAdd LIST_FOREACH_MUTABLE which works like TAILQ_FOREACH_MUTABLE.
Joerg Sonnenberger [Thu, 12 Aug 2004 14:57:29 +0000 (14:57 +0000)]

19 years agoGet rid of the NO_TCSH make.conf variable. We do not support removing
Matthew Dillon [Thu, 12 Aug 2004 08:08:08 +0000 (08:08 +0000)]
Get rid of the NO_TCSH make.conf variable.   We do not support removing
/bin/csh from the base system as part of a buildworld sequence.

19 years agoThe EISA attachment of vx does have a softc, export it's size correctly.
Joerg Sonnenberger [Thu, 12 Aug 2004 06:42:59 +0000 (06:42 +0000)]
The EISA attachment of vx does have a softc, export it's size correctly.

Obtained-from: FreeBSD

19 years agoTest CVS commit.
Gregory Neil Shapiro [Thu, 12 Aug 2004 05:04:48 +0000 (05:04 +0000)]
Test CVS commit.

19 years agoAdd a state to sanity check tcp_close() to make sure it is not called
Matthew Dillon [Wed, 11 Aug 2004 02:36:22 +0000 (02:36 +0000)]
Add a state to sanity check tcp_close() to make sure it is not called

Add a 'cpu' field to the inpcb so the cpu owning a pcb can be made
well-known, for use in later assertions as we move closer to removing
the BGL.

Fix a bug in the closing of listen sockets.  The inp wildcard hash table
removal was being done asynchronously with the freeing of the inp, which
could lead to problems.  Instead of sending messages in parallel to all tcp
protocol threads to remove the wildcard hash we instead chain a single
message through all tcp protocol threads to remove the hash, then detach the
inp at the end of the chain.

There is still an issue with the socket being ripped out from under other
protocol threads which might be trying to accept connections on behalf of
the listen socket which must be resolved before the BGL can be removed (amoung
other things).

19 years agoDiscard accepted and pending connections after we detach the listen socket
Matthew Dillon [Wed, 11 Aug 2004 02:24:16 +0000 (02:24 +0000)]
Discard accepted and pending connections after we detach the listen socket
rather then before in order to be sure to catch any connections that occur
while we are attempting to detach the listen socket.

19 years agoPPP stupidly hardwires some flag constants that it 'steals' from the mbuf
Matthew Dillon [Tue, 10 Aug 2004 22:05:30 +0000 (22:05 +0000)]
PPP stupidly hardwires some flag constants that it 'steals' from the mbuf
structure.  We are now using the flag bits it stole, which resulted in
packets being dropped and other issues.

Having ppp use M_PROTOx flags rather then hardwired constants fixes the

Reported-by: Sarunas Vancevicius <vsarunas@eircom.net>
19 years agoFix gcc 3.4 build.
Eirik Nygaard [Tue, 10 Aug 2004 16:03:12 +0000 (16:03 +0000)]
Fix gcc 3.4 build.

Reported by: Simon 'corecode' Schubert <corecode@fs.ei.tum.de>

19 years agoYet another hack for x11/xorg-clients.
Joerg Sonnenberger [Tue, 10 Aug 2004 10:58:37 +0000 (10:58 +0000)]
Yet another hack for x11/xorg-clients.

19 years agoRemoved freebsd.mc line, added ports/arabic line as found in the FreeBSD
Justin C. Sherrill [Mon, 9 Aug 2004 20:55:19 +0000 (20:55 +0000)]
Removed freebsd.mc line, added ports/arabic line as found in the FreeBSD
version of refuse.  Synced refuse.README with FreeBSD version too.

Suggested by: Adrian Nida <nida@musc.edu>

19 years agoBring in FreeBSD mount.c/1.58, original commit message:
Matthew Dillon [Mon, 9 Aug 2004 20:15:23 +0000 (20:15 +0000)]
Bring in FreeBSD mount.c/1.58, original commit message:
 date: 2004/01/07 05:37:56;  author: anholt;  state: Exp;  lines: +1 -1
 Allow trailing slashes for MNT_UPDATE case (mount -u), too.

 PR:             bin/59144
 Submitted by:   Stefan Farfeleder <stefan@fafoe.narf.at>

Suggested-by: Barry Bouwsma
19 years agoSynchronize syslogd with FreeBSD. Primarily syslogd.c/1.129. This primarily
Matthew Dillon [Mon, 9 Aug 2004 20:11:19 +0000 (20:11 +0000)]
Synchronize syslogd with FreeBSD.  Primarily syslogd.c/1.129.  This primarily
adds code to avoid fsync()ing the log file line-by-line when further input
from the pipe is pending.

The FreeBSD commit message for 1.129:
 date: 2004/07/04 19:13:58;  author: cperciva;  state: Exp;  lines: +25 -3
 Where syslogd would have fsync()ed a file in the past, instead set a flag
 FFLAG_NEEDSYNC and fsync the file when select() next returns zero.  This
 dramatically speeds up the process of logging large amounts of data, while
 leaving the essential semantics (that data can be expected to be on disk
 if we crash) unchanged.

 In my tests, this speeds up the rc phase of booting by 18-20%. [1]

Suggested-by: Barry Bouwsma
Source: FreeBSD

19 years agoMerge FreeBSD ip.c/1.101, commit message:
Matthew Dillon [Mon, 9 Aug 2004 19:54:36 +0000 (19:54 +0000)]
Merge FreeBSD ip.c/1.101, commit message:

Make getprotobynumber() calls in FilterCheck conditional on the log
levels by which they are used.  On a typical production setting (no
debug or filter logging) this will save an open/read/close system
call sequence per packet, approximately halving the system overhead
and reducing the overall overhead by 38%.

Suggested-by: Barry Bouwsma
19 years agoThe SF64-PCR card has no sound support but stupidly uses the same PCI id
Matthew Dillon [Mon, 9 Aug 2004 19:49:28 +0000 (19:49 +0000)]
The SF64-PCR card has no sound support but stupidly uses the same PCI id
as other cards.  The hack that was supposed to detect the lack of sound
support does not work, causing a number of other cards to improperly probe
as not having sound support.  so disable it for the moment.  People who
actually have this card will have to set I_HAVE_SF64_PCR in their

Source: Barry Bouwsma

19 years agoffs_dirpref() calculates dirsize = (fs->fs_avgfilesize * fs->fs_avgfpdir).
Matthew Dillon [Mon, 9 Aug 2004 19:41:04 +0000 (19:41 +0000)]
ffs_dirpref() calculates dirsize = (fs->fs_avgfilesize * fs->fs_avgfpdir).
However, these two paramters can be set by the sysop such that they easily
overflow a 32 bit integer.  Use 64 bit arithmatic to prevent the overflow
and special-case values > 0x7fffffff to simply set maxcontigdirs to 1 rather
then waste time doing further 64 bit arithmatic.

Note that NetBSD also changed 'cgsize' to a 64 bit integer, but fails to
properly cast at least one of the arguments in both the dirsize and cgsize
multiplication which means that the overflow bug in NetBSD has not actually
been fixed.

This patch does not change the cgsize calculation yet, it requires more

Source: NetBSD ffs_alloc.c/1.74 from Barry Bouwsma of Tiengen.

19 years agoSince we are DragonFly we want to use the DragonFly version instead of the
Eirik Nygaard [Mon, 9 Aug 2004 15:06:44 +0000 (15:06 +0000)]
Since we are DragonFly we want to use the DragonFly version instead of the
FreeBSD one.

19 years agoSince we are DragonFly we want to use the DragonFly version instead of the
Eirik Nygaard [Mon, 9 Aug 2004 14:53:38 +0000 (14:53 +0000)]
Since we are DragonFly we want to use the DragonFly version instead of the
FreeBSD one.

19 years agoFix gcc 3.4 build.
Eirik Nygaard [Mon, 9 Aug 2004 14:47:54 +0000 (14:47 +0000)]
Fix gcc 3.4 build.
__FreeBSD_version is now not defined if __FreeBSD__ is not defined.

Reported by: Simon 'corecode' Schubert <corecode@fs.ei.tum.de> and
             "Martin P. Hellwig" <mhellwig@xs4all.nl>

19 years agoFix gcc 3.4 build.
Eirik Nygaard [Mon, 9 Aug 2004 14:40:08 +0000 (14:40 +0000)]
Fix gcc 3.4 build.
__FreeBSD_version is now not defined if __FreeBSD__ is not defined.

Reported by: Simon 'corecode' Schubert <corecode@fs.ei.tum.de> and
             "Martin P. Hellwig" <mhellwig@xs4all.nl>

19 years agoFix gcc 3.4 build.
Eirik Nygaard [Mon, 9 Aug 2004 13:55:35 +0000 (13:55 +0000)]
Fix gcc 3.4 build.
__FreeBSD_version is now not defined if __FreeBSD__ is not defined.

Reported by: Simon 'corecode' Schubert <corecode@fs.ei.tum.de> and
             "Martin P. Hellwig" <mhellwig@xs4all.nl>

19 years agoDocument that there seems to be a problem with the syncer not running
David Rhodus [Mon, 9 Aug 2004 02:59:31 +0000 (02:59 +0000)]
Document that there seems to be a problem with the syncer not running
here and that we are using a work around. If a buffer won't flush after
6 attempts we allow the syncer to run to process any soft update
dependency lists.

19 years agoGet cosmetic changes out of the way before committing SACK.
Jeffrey Hsu [Sun, 8 Aug 2004 06:33:24 +0000 (06:33 +0000)]
Get cosmetic changes out of the way before committing SACK.

19 years agoAdd bzip2 to the bootstrap tools list. The compat libs (if enabled in
Matthew Dillon [Sun, 8 Aug 2004 03:21:59 +0000 (03:21 +0000)]
Add bzip2 to the bootstrap tools list.  The compat libs (if enabled in
make.conf) need it.

19 years agoImprove compatibility with older FreeBSD-4.x systems when cross-building
Matthew Dillon [Sat, 7 Aug 2004 21:38:16 +0000 (21:38 +0000)]
Improve compatibility with older FreeBSD-4.x systems when cross-building
the DragonFly world by having the bootstrap and build tools use the
bootstrap/buildtools binaries.  In particular, we need the -i option to
patch to work to properly build csh.

19 years agoDo not hack a #define __FreeBSD_version if __FreeBSD__ does not exist,
Matthew Dillon [Sat, 7 Aug 2004 21:22:25 +0000 (21:22 +0000)]
Do not hack a #define __FreeBSD_version if __FreeBSD__ does not exist,
to keep our gcc-3.4 builds freebsd-free.

Suggested-by: Richard Nyberg <rnyberg@it.su.se>
19 years agoRemove the unconditional timer_restore in the bios call path, it is
Matthew Dillon [Sat, 7 Aug 2004 03:42:37 +0000 (03:42 +0000)]
Remove the unconditional timer_restore in the bios call path, it is
creating more problems then it is solving.

19 years agoAdd an event handler to adjust the cpu throttle state automatically when
Matthew Dillon [Sat, 7 Aug 2004 00:59:53 +0000 (00:59 +0000)]
Add an event handler to adjust the cpu throttle state automatically when
power is disconnected and when power is reconnected.  See 'sysctl hw.acpi'.
The new sysctls are hw.acpi.cpu.performance_speed and

19 years agoCorrect an inaccuracy in disklabel(8)'s manual page: the default
Chris Pressey [Fri, 6 Aug 2004 22:49:41 +0000 (22:49 +0000)]
Correct an inaccuracy in disklabel(8)'s manual page: the default
fragment size for partitions over 1GB in size is 2048, not 4096.

19 years agoeventhandler_register() M_NOWAIT->M_INTWAIT.
Matthew Dillon [Fri, 6 Aug 2004 22:32:07 +0000 (22:32 +0000)]
eventhandler_register() M_NOWAIT->M_INTWAIT.

19 years agoGCC3.4's (default) unit-at-a-time optimization is incompatible with -mrtd.
Matthew Dillon [Fri, 6 Aug 2004 20:50:35 +0000 (20:50 +0000)]
GCC3.4's (default) unit-at-a-time optimization is incompatible with -mrtd.
Bad code (missing stack pops) will be produced.  See the assembly generated
for 'xputc' with -mrtd and unit-at-a-time enabled for an example of this.

GCC3.4's unit-at-a-time seems to cause other problems as well, specifically
in boot2, as yet not tracked down, so disable unit-at-a-time optimizations
for the boot code if the compiler is not GCC2.

19 years agomake the __asm for the pushfl fakery __volatile.
Matthew Dillon [Fri, 6 Aug 2004 20:48:36 +0000 (20:48 +0000)]
make the __asm for the pushfl fakery __volatile.

19 years agoUpgrade our CVS build from 1.12.8 to 1.12.9 to fix a number of pserver
Matthew Dillon [Tue, 3 Aug 2004 18:11:56 +0000 (18:11 +0000)]
Upgrade our CVS build from 1.12.8 to 1.12.9 to fix a number of pserver
and remote cvs (ssh based) related security holes.

From-Security-Advisory: http://security.e-matters.de/advisories/092004.html
Recommended-by: Oliver Eikemeier <eikemeier@fillmore-labs.com>
19 years agoMerge from vendor branch CVS:
Matthew Dillon [Tue, 3 Aug 2004 18:08:51 +0000 (18:08 +0000)]
Merge from vendor branch CVS:
Bring cvs-1.12.9 into the CVS repository

19 years agoBring cvs-1.12.9 into the CVS repository
Matthew Dillon [Tue, 3 Aug 2004 18:08:51 +0000 (18:08 +0000)]
Bring cvs-1.12.9 into the CVS repository

19 years agoAdd re(4) to LINT as well.
Joerg Sonnenberger [Tue, 3 Aug 2004 07:26:57 +0000 (07:26 +0000)]
Add re(4) to LINT as well.

19 years agoAdd re(4) to GENERIC.
Joerg Sonnenberger [Tue, 3 Aug 2004 07:16:14 +0000 (07:16 +0000)]
Add re(4) to GENERIC.

19 years agoFix bug with tracking the previous element in a list.
Jeffrey Hsu [Tue, 3 Aug 2004 01:59:58 +0000 (01:59 +0000)]
Fix bug with tracking the previous element in a list.

Found by: edrt@citiz.net
Submitted by: pavlin@icir.org

19 years agoThe obj hierarchy must be built before the ssh-etc target can be run
Matthew Dillon [Tue, 3 Aug 2004 01:32:15 +0000 (01:32 +0000)]
The obj hierarchy must be built before the ssh-etc target can be run
(e.g. when building in nrelease), otherwise the ssh_config patch will
attempt to write out into /usr/src.  /usr/src is allowed to be read-only
(e.g. NFS mounts of /usr/src) so this doesn't work particularly well without
an obj hierarchy.

19 years agoThe TCP stack is notified every time userland reads from the TCP socket
Matthew Dillon [Tue, 3 Aug 2004 00:25:54 +0000 (00:25 +0000)]
The TCP stack is notified every time userland reads from the TCP socket
buffer, because a pure-window-update ACK might be required.  The previous
code would send a pure window update once the difference between the last
advertised window and the current window exceeded 2 segments and also when it
exceeded 1/2 the high water mark.

On GigE networks this can cause a pure window update to occur once every
8 packets (resulting in 5 acks instead of 4) prior to the TCP t_outputq
commit and once every 8 packets (resulting in 2 acks instead of 1) after
the TCP t_outputq commit.  So on a GigE network servicing a high performance
TCP stream, the result is double the number of acks that are actually

Conditionalize the 2 segment test with a sysctl.  The sysctl is
net.inet.tcp.avoid_pure_win_update and is set to 1 by default, meaning
that the 2 segment ack does NOT occur (i.e. we should get higher
performance).  It may be turned off to revert to the prior two-ack

This code is considered experimental but since it involves only a pure
window update and we still have the catch-all case this commit is enabling
the new algorithm.  Further tuning might be required, possibly reducing the
1/2 hiwat test to 1/3 or 1/4 hiwat.

Ideally we want to avoid pure window update acks entirely in the normal
streaming case, which means we want to have a TCP buffer that is large
enough to pipeline the networked stream AND the process consuming the data.
On a GigE network this typically equates to the packet batching that occurs
per interrupt.  This batching is typically 8 1448 byte segments == ~11K,
plus turn around overhead and the 1/2 hiwat test so we want an incoming
socket buffer of at least ~11K * 2 + slop which should come to around ~32K
in order to avoid sending (unnecessary) pure window updates on a high
performance TCP stream.

19 years agotcp_input()'s DELAY_ACK() code checks to see if the delayed ack timer is
Matthew Dillon [Tue, 3 Aug 2004 00:04:13 +0000 (00:04 +0000)]
tcp_input()'s DELAY_ACK() code checks to see if the delayed ack timer is
running and if it is not it starts it and returns rather then issue an
ack.  If the timer is already running tcp_input() will generate an immediate
ack, resulting in one ack every other packet.  This every-other-packet ack
is usually required to ensure that the window does not close too much and
stall the sender, but it really only exists because the tcp stack does not
look ahead to see if there are other incoming packets that need to be
processed that might themselves require additional acks.  For optimal
operation we really want to process all the pending TCP packets for
the connection before sending any 'normal' acks.

Many ethernet interfaces, including and most especially GigE interfaces,
rate-limit their interrupts.  This results in several packets being moved
from the RX ring to the TCP/IP stack all at once, in a batch.

GIVE THE TCP stack its own netisr dispatcher loop rather then using the
generic netisr dispatcher loop.  The TCP dispatcher loop will call an
additional routine, tcp_willblock(), after all messages queued to the TCP
protocol stack have been exhausted.

When tcp_input() needs to send an ack in the normal header-prediction case
it now places the TCPCB on a queue rather then send an immediate ack.
tcp_willblock() processes this queue and calls tcp_output() to send the
actual ack.

The result is that on a GigE interface which typically queues 8+ packets
per interrupt, a TCP stream will only be acked once per ~8 packets rather
then 4 times (every other packet) per ~8 packets.  This *GREATLY* reduces TCP
protocol overhead and network ack traffic on both ends of the connection.

NOTE: a later commit will deal with pure window space updates which generate
an additional ACK per ~8 packets when the user program drains the buffer.

Reviewed-by: Jeffrey Hsu <hsu@crater.dragonflybsd.org>
19 years agoMake doubly sure that timer2 is not used for speaker operation.
Matthew Dillon [Mon, 2 Aug 2004 23:20:31 +0000 (23:20 +0000)]
Make doubly sure that timer2 is not used for speaker operation.

19 years agoRip out the badly designed softint-based taskqueue used by ACPI for callbacks.
Matthew Dillon [Mon, 2 Aug 2004 19:51:09 +0000 (19:51 +0000)]
Rip out the badly designed softint-based taskqueue used by ACPI for callbacks.
This was deadlocking tsleep() calls made from AcpiOsSleep() when early ACPI
interrupts occured, such as when a laptop is booted without AC connected.

Use a kernel thread and LWKT messaging to queue callbacks requests and add
code to use DELAY instead of tsleep() for calls made to AcpiOsSleep() in
early boot before the system timeout/ticks subsystem is initialized.

Fix two bugged AcpiOsSleep() calls that were sleeping for 10 seconds instead
of 10 milliseconds.

19 years agoAdd a global, clocks_running, which tells us when timeout/ticks based clocks
Matthew Dillon [Mon, 2 Aug 2004 19:36:27 +0000 (19:36 +0000)]
Add a global, clocks_running, which tells us when timeout/ticks based clocks
can be used.

19 years agotaskqueue_create() should use M_INTWAIT rather then M_NOWAIT.
Matthew Dillon [Mon, 2 Aug 2004 19:32:28 +0000 (19:32 +0000)]
taskqueue_create() should use M_INTWAIT rather then M_NOWAIT.

19 years agoFix buggaboos that prevented ACPI_DEBUG from working.
Matthew Dillon [Mon, 2 Aug 2004 18:41:50 +0000 (18:41 +0000)]
Fix buggaboos that prevented ACPI_DEBUG from working.

19 years agoRelease to correct ressource in re_detach, this is PCI_LOIO now.
Joerg Sonnenberger [Mon, 2 Aug 2004 15:10:08 +0000 (15:10 +0000)]
Release to correct ressource in re_detach, this is PCI_LOIO now.
Remove a RE_DESC_INC from re_rxeof, a left-over from the while loop.

19 years agoForced commit to annotate the (unrelated) changes from the last commit.
Joerg Sonnenberger [Mon, 2 Aug 2004 13:35:02 +0000 (13:35 +0000)]
Forced commit to annotate the (unrelated) changes from the last commit.

RealTek doesn't seem to support memory-mapped IO for re(4), the card
generates an interrupt storm under pretty low load. Therefore change
re(4) to the slower port-mapped IO.

19 years agoChange (almost) all references to tqh_first and tqe_next and tqe_prev
Joerg Sonnenberger [Mon, 2 Aug 2004 13:22:34 +0000 (13:22 +0000)]
Change (almost) all references to tqh_first and tqe_next and tqe_prev
to the correct TAILQ macros. Exceptions are contrib/ipfilter, which will
be handled separately, and dev/misc/labpc, which makes some very wiered
things and therefore needs much more care.

19 years agoSync with FreeBSD CURRENT (most white space cleanup and ordering).
Joerg Sonnenberger [Mon, 2 Aug 2004 11:21:57 +0000 (11:21 +0000)]
Sync with FreeBSD CURRENT (most white space cleanup and ordering).
Correct a typo in the bpcd entry.

19 years agoCorrect path location search when pulling packages from GoBSD.
David Rhodus [Sun, 1 Aug 2004 04:22:49 +0000 (04:22 +0000)]
Correct path location search when pulling packages from GoBSD.
We are currently not dealing with different package versioning to
system version numbering as there is currenly no need to.

Heads up from <kg245@bellsouth.net>

19 years agoMerge from vendor branch OPENSSH:
Scott Ullrich [Sat, 31 Jul 2004 20:05:00 +0000 (20:05 +0000)]
Merge from vendor branch OPENSSH:
Missing files from OpenSSH import

19 years agoMissing files from OpenSSH import
Scott Ullrich [Sat, 31 Jul 2004 20:05:00 +0000 (20:05 +0000)]
Missing files from OpenSSH import

19 years agoMissing files from OpenSSH import
Scott Ullrich [Sat, 31 Jul 2004 20:05:00 +0000 (20:05 +0000)]
Missing files from OpenSSH import

19 years agoMerge from vendor branch OPENSSH:
Scott Ullrich [Sat, 31 Jul 2004 19:49:08 +0000 (19:49 +0000)]
Merge from vendor branch OPENSSH:
Missing files during OpenSSH import.

19 years agoMissing files during OpenSSH import.
Scott Ullrich [Sat, 31 Jul 2004 19:49:08 +0000 (19:49 +0000)]
Missing files during OpenSSH import.

19 years agoUpdate mk files list with the current supplied one.
Jeroen Ruigrok/asmodai [Sat, 31 Jul 2004 19:29:24 +0000 (19:29 +0000)]
Update mk files list with the current supplied one.
NOTE: still missing descriptions.

19 years agoMissed file from OpenSSH import.
Scott Ullrich [Sat, 31 Jul 2004 19:21:59 +0000 (19:21 +0000)]
Missed file from OpenSSH import.

Noticed-by: Kim Culhan
19 years agoImport OpenSSH 3.8.1.p1 into base.
Scott Ullrich [Sat, 31 Jul 2004 19:03:00 +0000 (19:03 +0000)]
Import OpenSSH 3.8.1.p1 into base.

Patch-submitted-by: Simon 'corecode' Schubert
Reviewed-by: Chris Pressey
Parts-obtained-from: FreeBSD

19 years agoMerge from vendor branch OPENSSH:
Scott Ullrich [Sat, 31 Jul 2004 19:03:00 +0000 (19:03 +0000)]
Merge from vendor branch OPENSSH:
Import OpenSSH 3.8.1.p1 into base.

Patch-submitted-by: Simon 'corecode' Schubert
Reviewed-by: Chris Pressey
Parts-obtained-from: FreeBSD

19 years agoImport OpenSSH 3.8.1.p1 into base.
Scott Ullrich [Sat, 31 Jul 2004 19:03:02 +0000 (19:03 +0000)]
Import OpenSSH 3.8.1.p1 into base.

Patch-submitted-by: Simon 'corecode' Schubert
Reviewed-by: Chris Pressey
Parts-obtained-from: FreeBSD

19 years agoRemove local main() definition.
Eirik Nygaard [Sat, 31 Jul 2004 11:18:43 +0000 (11:18 +0000)]
Remove local main() definition.

19 years agoAdd WARNS?=6 and remove CFLAGS=.
Eirik Nygaard [Sat, 31 Jul 2004 10:23:11 +0000 (10:23 +0000)]
Add WARNS?=6 and remove CFLAGS=.
Add missing $DragonFly$ keyword.

19 years agoDon't depend on pollution in <limits.h> for the definition of <stdint.h> macros.
Eirik Nygaard [Sat, 31 Jul 2004 10:19:53 +0000 (10:19 +0000)]
Don't depend on pollution in <limits.h> for the definition of <stdint.h> macros.
Remove local prototype for main().

Submitted by: "Liam J. Foy" <liamfoy@sepulcrum.org>
Obtained from: FreeBSD

19 years agoSince mbufs are no longer limited by an mb_map the kern.ipc.nmbufs and
Matthew Dillon [Sat, 31 Jul 2004 07:58:23 +0000 (07:58 +0000)]
Since mbufs are no longer limited by an mb_map the kern.ipc.nmbufs and
kern.ipc.nmbclusters sysctls can be made writable.

19 years agoGet rid of mb_map. Retool the mbuf and mbuf cluster allocator to use
Matthew Dillon [Sat, 31 Jul 2004 07:52:58 +0000 (07:52 +0000)]
Get rid of mb_map.  Retool the mbuf and mbuf cluster allocator to use
malloc() (our slab allocator).  Get rid of the NULL callback function for
M_EXT buffers, assign real functions for standard M_EXT buffers and add
a new flag M_EXT_CLUSTER to tell the mbuf code when an M_EXT buffer is
under management by the mbuf cluster allocator.  Get rid of the address
calculations and the char array ref count that used to exist for mbuf
clusters.  Replace with a meta-data structure to keep track of ref
counts.  Note that the new cluster code uses the new M_EXT mechanism.

Increase the default mbuf+cluster pool from 10 to 20.  Add sysctl's to
set the mbuf and mbuf cluster free-pool maximums (kern.ipc.mcl_free_max and
kern.ipc.mbuf_free_max), beyond which mbuf and mbuf cluster memory is
returned to the system.

19 years agoChange sendfile() to use the new m_ext callback scheme for cleaning up after
Matthew Dillon [Fri, 30 Jul 2004 21:56:17 +0000 (21:56 +0000)]
Change sendfile() to use the new m_ext callback scheme for cleaning up after
SFBUF's.  Remove the sf_buf_tosf() function (a hack that existed only to
support sendfile()).

19 years agoBring in the latest pkg_install sources from FreeBSD-5.
Matthew Dillon [Fri, 30 Jul 2004 04:46:14 +0000 (04:46 +0000)]
Bring in the latest pkg_install sources from FreeBSD-5.

Note that the only substantive DragonFly changes, apart from adding our
CVS id and doing a few other cleanups, are in add/main.c:getpackagesite().