dragonfly.git
16 years agoCleanup pass. Removed code that is not needed anymore.
David Rhodus [Fri, 21 May 2004 15:41:23 +0000 (15:41 +0000)]
Cleanup pass. Removed code that is not needed anymore.
Cleanup VOP_LEASE() uses and document.

Add in a debug function for buffer pool statistical information which can
be toggled via debug.syncprt.

16 years agoFix SYSCTL description style.
Hiten Pandya [Fri, 21 May 2004 14:26:28 +0000 (14:26 +0000)]
Fix SYSCTL description style.

16 years agoDocument the pmap_kenter_quick(9) function. While I am here, fix
Hiten Pandya [Fri, 21 May 2004 11:03:14 +0000 (11:03 +0000)]
Document the pmap_kenter_quick(9) function.  While I am here, fix
comment style for pmap_kenter(9).

16 years agoIt is DragonFly BSD, not FreeBSD. Correct config(8) files.
Hiten Pandya [Fri, 21 May 2004 10:47:45 +0000 (10:47 +0000)]
It is DragonFly BSD, not FreeBSD.  Correct config(8) files.

16 years agoThe default shell for the user `man' is nologin(8). Make the examples
Chris Pressey [Fri, 21 May 2004 05:27:12 +0000 (05:27 +0000)]
The default shell for the user `man' is nologin(8).  Make the examples
of su(1)'s usage (hopefully) more elucidating to new administrators in
light of this fact.

16 years agoPass the proper mask/match arguments to cdevsw_add() so the various sound
Matthew Dillon [Fri, 21 May 2004 01:14:27 +0000 (01:14 +0000)]
Pass the proper mask/match arguments to cdevsw_add() so the various sound
device minor numbers do not override each other's major numbers / cdevsw
structures.

Reported-by: Emiel Kollof <coolvibe@hackerheaven.org> and others
16 years agoGet rid of VM_WAIT and VM_WAITPFAULT crud, replace with calls to
Matthew Dillon [Thu, 20 May 2004 22:42:25 +0000 (22:42 +0000)]
Get rid of VM_WAIT and VM_WAITPFAULT crud, replace with calls to
vm_wait() and vm_waitpfault().  This is a non-operational change.

vm_page.c now uses the _vm_page_list_find() inline (which itself is only
in vm_page.c) for various critical path operations.

16 years agoCleanup pass. No operational changes.
Matthew Dillon [Thu, 20 May 2004 22:40:29 +0000 (22:40 +0000)]
Cleanup pass.  No operational changes.

16 years agoGet rid of obsolete PQ_ options.
Matthew Dillon [Thu, 20 May 2004 22:38:32 +0000 (22:38 +0000)]
Get rid of obsolete PQ_ options.

16 years agoCleanup pass. No operational changes.
Matthew Dillon [Thu, 20 May 2004 22:35:39 +0000 (22:35 +0000)]
Cleanup pass.  No operational changes.

16 years agoCleanup compile issues with the recent dev_t changes.
Matthew Dillon [Thu, 20 May 2004 21:47:23 +0000 (21:47 +0000)]
Cleanup compile issues with the recent dev_t changes.

16 years agoCleanup compile issues with the recent dev_t changes.
Matthew Dillon [Thu, 20 May 2004 21:44:00 +0000 (21:44 +0000)]
Cleanup compile issues with the recent dev_t changes.

16 years agoMake the primary PQ_ macros available to modules by creating the pageq
Matthew Dillon [Thu, 20 May 2004 21:40:52 +0000 (21:40 +0000)]
Make the primary PQ_ macros available to modules by creating the pageq
array based on the maximum cache size instead of the selected cache
size.   Remove obsolete PQ_ options (leaving only PQ_CACHESIZE).

Move the vm_page_list_find() inline out of vm_page.h and into vm_page.c,
and provide an external function for other modules that use it.

Remove the 'disable page coloring' option (that nobody has ever used),
and related conditionals.  Page coloring never hurts and is now always on
to some degree.

Suggested-by: Hiten Pandya <hmp@backplane.com>
Agreed-with: Alan Cox <alc@cs.rice.edu>

16 years agoClarify how our `test -w' is a superset of POSIX' requirements.
Chris Pressey [Thu, 20 May 2004 21:07:23 +0000 (21:07 +0000)]
Clarify how our `test -w' is a superset of POSIX' requirements.

16 years agoUpdate the mlock(2) manual page:
Hiten Pandya [Thu, 20 May 2004 20:54:50 +0000 (20:54 +0000)]
Update the mlock(2) manual page:

* Remove a long obsolete paragraph from the BUGS section.
* Bump the date.

Obtained-from: Alan Cox <alc at freebsd.org> (FreeBSD Project)

16 years agoStyle(9) cleanup to src/usr.sbin: remove remaining `register' keywords.
Chris Pressey [Thu, 20 May 2004 19:24:43 +0000 (19:24 +0000)]
Style(9) cleanup to src/usr.sbin: remove remaining `register' keywords.

16 years agoCorrect sort order of SUBDIRs.
Chris Pressey [Thu, 20 May 2004 19:09:27 +0000 (19:09 +0000)]
Correct sort order of SUBDIRs.

16 years agoStyle(9) cleanup to src/sys/netinet6:
Chris Pressey [Thu, 20 May 2004 18:30:36 +0000 (18:30 +0000)]
Style(9) cleanup to src/sys/netinet6:

- Convert K&R-style function definitions to ANSI style.

Submitted-by: Andre Nathan <andre@digirati.com.br>
Double-checked-by: YONETANI Tomokazu <qhwt+dragonfly-submit@les.ath.cx>
16 years agoPoint the remote site to use gobsd.com so the remote option now works.
David Rhodus [Thu, 20 May 2004 15:53:16 +0000 (15:53 +0000)]
Point the remote site to use gobsd.com so the remote option now works.

Ex. cvs# pkg_add -r bash-2.05b.007.tgz

16 years agoStyle(9) cleanup to src/sys/vfs, stage 21/21: unionfs.
Chris Pressey [Thu, 20 May 2004 05:09:18 +0000 (05:09 +0000)]
Style(9) cleanup to src/sys/vfs, stage 21/21: unionfs.

- Convert K&R-style function definitions to ANSI style.

Submitted-by: Andre Nathan <andre@digirati.com.br>
Additional-reformatting-by: cpressey
16 years agoPut snd_recover in the same cache line as snd_una. Make room in the
Jeffrey Hsu [Thu, 20 May 2004 04:32:59 +0000 (04:32 +0000)]
Put snd_recover in the same cache line as snd_una.  Make room in the
snd_una cache line by coalescing the t_force field into t_flags and moving
snd_up into the old t_force slot.

16 years agoTrade off more writes for a simpler check for when to pull up snd_recover.
Jeffrey Hsu [Thu, 20 May 2004 04:28:52 +0000 (04:28 +0000)]
Trade off more writes for a simpler check for when to pull up snd_recover.

16 years agoUsing the new contrib rev mechanism, bring cvs up to 1.12.8. Add patch files
Matthew Dillon [Thu, 20 May 2004 02:27:57 +0000 (02:27 +0000)]
Using the new contrib rev mechanism, bring cvs up to 1.12.8.  Add patch files
for our few remaining local patches (-j rev:DATE and -g).

16 years agoDevice layer rollup commit.
Matthew Dillon [Wed, 19 May 2004 22:53:06 +0000 (22:53 +0000)]
Device layer rollup commit.

* cdevsw_add() is now required.  cdevsw_add() and cdevsw_remove() may specify
  a mask/match indicating the range of supported minor numbers.  Multiple
  cdevsw_add()'s using the same major number, but distinctly different
  ranges, may be issued.  All devices that failed to call cdevsw_add() before
  now do.

* cdevsw_remove() now automatically marks all devices within its supported
  range as being destroyed.

* vnode->v_rdev is no longer resolved when the vnode is created.  Instead,
  only v_udev (a newly added field) is resolved.  v_rdev is resolved when
  the vnode is opened and cleared on the last close.

* A great deal of code was making rather dubious assumptions with regards
  to the validity of devices associated with vnodes, primarily due to
  the persistence of a device structure due to being indexed by (major, minor)
  instead of by (cdevsw, major, minor).  In particular, if you run a program
  which connects to a USB device and then you pull the USB device and plug
  it back in, the vnode subsystem will continue to believe that the device
  is open when, in fact, it isn't (because it was destroyed and recreated).

  In particular, note that all the VFS mount procedures now check devices
  via v_udev instead of v_rdev prior to calling VOP_OPEN(), since v_rdev
  is NULL prior to the first open.

* The disk layer's device interaction has been rewritten.  The disk layer
  (i.e. the slice and disklabel management layer) no longer overloads
  its data onto the device structure representing the underlying physical
  disk.  Instead, the disk layer uses the new cdevsw_add() functionality
  to register its own cdevsw using the underlying device's major number,
  and simply does NOT register the underlying device's cdevsw.  No
  confusion is created because the device hash is now based on
  (cdevsw,major,minor) rather then (major,minor).

  NOTE: This also means that underlying raw disk devices may use the entire
  device minor number instead of having to reserve the bits used by the disk
  layer, and also means that can we (theoretically) stack a fully
  disklabel-supported 'disk' on top of any block device.

* The new reference counting scheme prevents this by associating a device
  with a cdevsw and disconnecting the device from its cdevsw when the cdevsw
  is removed.  Additionally, all udev2dev() lookups run through the cdevsw
  mask/match and only successfully find devices still associated with an
  active cdevsw.

* Major work on MFS:  MFS no longer shortcuts vnode and device creation.  It
  now creates a real vnode and a real device and implements real open and
  close VOPs.  Additionally, due to the disk layer changes, MFS is no longer
  limited to 255 mounts.  The new limit is 16 million.  Since MFS creates a
  real device node, mount_mfs will now create a real /dev/mfs<PID> device
  that can be read from userland (e.g. so you can dump an MFS filesystem).

* BUF AND DEVICE STRATEGY changes.  The struct buf contains a b_dev field.
  In order to properly handle stacked devices we now require that the b_dev
  field be initialized before the device strategy routine is called.  This
  required some additional work in various VFS implementations.  To enforce
  this requirement, biodone() now sets b_dev to NODEV.  The new disk layer
  will adjust b_dev before forwarding a request to the actual physical
  device.

* A bug in the ISO CD boot sequence which resulted in a panic has been fixed.

Testing by: lots of people, but David Rhodus found the most aggregious bugs.

16 years agoStyle(9) cleanup to src/sys/vfs, stage 20/21: umapfs.
Chris Pressey [Tue, 18 May 2004 16:57:01 +0000 (16:57 +0000)]
Style(9) cleanup to src/sys/vfs, stage 20/21: umapfs.

- Convert K&R-style function definitions to ANSI style.

Submitted-by: Andre Nathan <andre@digirati.com.br>
Additional-reformatting-by: cpressey
16 years agoStyle(9) cleanup to src/sys/vfs, stage 19/21: ufs.
Chris Pressey [Tue, 18 May 2004 00:16:46 +0000 (00:16 +0000)]
Style(9) cleanup to src/sys/vfs, stage 19/21: ufs.

- Convert K&R-style function definitions to ANSI style.

Submitted-by: Andre Nathan <andre@digirati.com.br>
Additional-reformatting-by: cpressey
16 years agoQuickly fix an MLINK while no one is looking...
Hiten Pandya [Mon, 17 May 2004 22:48:09 +0000 (22:48 +0000)]
Quickly fix an MLINK while no one is looking...

16 years agoDocument the ``resource management'' (rman) abstraction in rman(9).
Hiten Pandya [Mon, 17 May 2004 21:46:40 +0000 (21:46 +0000)]
Document the ``resource management'' (rman) abstraction in rman(9).

The rman(9) manual page has sufficient information on the rman_*
functions and some background on the concept of regions and
resources and how rman(9) abstracts them.

Install the necessary MLINKs.

Note:
Some of the functions have been commented out in the mdoc(7) until
I or Joerg get around to updating the DragonFly rman(9) abstraction.
After that is done, other parts of the maual page can be expanded.

Obtained-from:   FreeBSD (HEAD)
Adapted-by: Hiten Pandya <hmp@backplane.com>
16 years agoFix catman(1) so that it recognizes valid manpage names as valid.
Chris Pressey [Mon, 17 May 2004 17:44:26 +0000 (17:44 +0000)]
Fix catman(1) so that it recognizes valid manpage names as valid.
Compare the char at the pointer to '\0', not the pointer itself.

16 years agoBring in a better seeding and random number generation algorithm from
Matthew Dillon [Mon, 17 May 2004 07:35:55 +0000 (07:35 +0000)]
Bring in a better seeding and random number generation algorithm from
FreeBSD for the (old) rand() API.  Add sranddev() to the library and clean
up the manual page.  Note that we are currently using /dev/urandom to
generate the seed to avoid boot-time blocking issues.

Submitted-by: "William M. Grim" <wgrim@siue.edu>
Reviewed by: Joerg Sonnenberger and others

16 years agoFix more ^T panics. calcru() and p_comm also need p_thread checks. Just
Matthew Dillon [Mon, 17 May 2004 07:12:31 +0000 (07:12 +0000)]
Fix more ^T panics.  calcru() and p_comm also need p_thread checks.  Just
move all process data extraction to a critical section and be done with it.

16 years agoFix another race in ^T. ttyprintf() can block, during which time the
Matthew Dillon [Mon, 17 May 2004 02:44:31 +0000 (02:44 +0000)]
Fix another race in ^T.  ttyprintf() can block, during which time the
pointers passed to it may become invalid.  An interrupt can unblock a
process making the p_wmesg (p_thread->td_wmesg) reference either invalid
or cause it to return NULL in between the check and the ttyprintf().

16 years agoINCSLINKS cannot be used to make softlinks within machine/ because
Matthew Dillon [Mon, 17 May 2004 01:03:54 +0000 (01:03 +0000)]
INCSLINKS cannot be used to make softlinks within machine/ because
buildworld's temporary include hierarchy uses a softlink into the source
tree for machine/ (so read only mounts of /usr/src would fail).

Instead, we will require that buildworld properly reference the include
files in their natural locations (e.g. <dev/video/...) and we fix the
softlinks in the make upgrade (upgrade_etc) target.

16 years agoRemove two mis-added .orig files.
Eirik Nygaard [Sun, 16 May 2004 09:22:31 +0000 (09:22 +0000)]
Remove two mis-added .orig files.

Approved-by: Matthew Dillon
16 years agoAdd an MLINK for KKASSERT(9).
Hiten Pandya [Sat, 15 May 2004 19:44:17 +0000 (19:44 +0000)]
Add an MLINK for KKASSERT(9).

16 years agoAdd dev/video/bktr and dev/video/meteor to the header file list.
Joerg Sonnenberger [Sat, 15 May 2004 18:12:01 +0000 (18:12 +0000)]
Add dev/video/bktr and dev/video/meteor to the header file list.
Add symlinks for the old locations of ioctl_meteor.h and ioctl_bt848.h.

16 years agoUpdate bktr(4) to FreeBSD current's version. This most importantly
Joerg Sonnenberger [Sat, 15 May 2004 17:54:13 +0000 (17:54 +0000)]
Update bktr(4) to FreeBSD current's version. This most importantly
includes a new msp driver based on the Linux Brooktree driver.

Add support for Terratec TValue submitted by Patrick Mauritz
<oxygene@studentenbude.ath.cx>.

The ioctl headers are moved into the MI dev/ tree, symlinks for
compatibiliy are added in a separate commit.

16 years agoTemporary switch cc3 to the old stabs debugging format to unbreak gdb5.
Joerg Sonnenberger [Sat, 15 May 2004 16:17:57 +0000 (16:17 +0000)]
Temporary switch cc3 to the old stabs debugging format to unbreak gdb5.
This can be removed once proper DWARF2 support works again in gdb5 or
gdb6 hits the tree.

16 years agoUpdate tcpdump to version 3.8.3
Eirik Nygaard [Sat, 15 May 2004 12:29:42 +0000 (12:29 +0000)]
Update tcpdump to version 3.8.3

Submitted-by: Brock Johnson <wildefire@isentry.homelinux.org>
16 years agoUpdate libpcap to version 0.8.3
Eirik Nygaard [Sat, 15 May 2004 12:28:33 +0000 (12:28 +0000)]
Update libpcap to version 0.8.3

Submitted-by: Brock Johnson <wildefire@isentry.homelinux.org>
16 years agoMerge from vendor branch TCPDUMP:
Eirik Nygaard [Sat, 15 May 2004 12:25:28 +0000 (12:25 +0000)]
Merge from vendor branch TCPDUMP:
Import of tcpdump 3.8.3

Submitted-by: Brock Johnson <wildefire@isentry.homelinux.org>
16 years agoImport of tcpdump 3.8.3
Eirik Nygaard [Sat, 15 May 2004 12:25:28 +0000 (12:25 +0000)]
Import of tcpdump 3.8.3

Submitted-by: Brock Johnson <wildefire@isentry.homelinux.org>
16 years agoMerge from vendor branch LIBPCAP:
Eirik Nygaard [Sat, 15 May 2004 12:19:49 +0000 (12:19 +0000)]
Merge from vendor branch LIBPCAP:
Import of libpcap 0.8.3

Submitted-by: Brock Johnson <wildefire@isentry.homelinux.org>
16 years agoImport of libpcap 0.8.3
Eirik Nygaard [Sat, 15 May 2004 12:19:49 +0000 (12:19 +0000)]
Import of libpcap 0.8.3

Submitted-by: Brock Johnson <wildefire@isentry.homelinux.org>
16 years agoAdd a manual page which documents the generic hash routines, i.e.
Hiten Pandya [Fri, 14 May 2004 18:11:44 +0000 (18:11 +0000)]
Add a manual page which documents the generic hash routines, i.e.
hashinit(9) and phashinit(9).  Code references also provided.

Relevant MLINKs have been added.

16 years agoRemove an extra comma at the end of .Nm list.
Hiten Pandya [Fri, 14 May 2004 16:23:17 +0000 (16:23 +0000)]
Remove an extra comma at the end of .Nm list.

16 years agodevice switch 1/many: Remove d_autoq, add d_clone (where d_autoq was).
Matthew Dillon [Thu, 13 May 2004 23:49:26 +0000 (23:49 +0000)]
device switch 1/many: Remove d_autoq, add d_clone (where d_autoq was).

d_autoq was used to allow the device port dispatch to mix old-style synchronous
calls with new style messaging calls within a particular device.  It was never
used for that purpose.

d_clone will be more fully implemented as work continues.  We are going to
install d_port in the dev_t (struct specinfo) structure itself and d_clone
will be needed to allow devices to 'revector' the port on a minor-number
by minor-number basis, in particular allowing minor numbers to be directly
dispatched to distinct threads.  This is something we will be needing later
on.

16 years agosf_buf_ref() needs a critical section. Note that the function is not
Matthew Dillon [Thu, 13 May 2004 19:46:18 +0000 (19:46 +0000)]
sf_buf_ref() needs a critical section.  Note that the function is not
currently used.

Noticed-by: hmp
16 years agomalloc() flags cleanup and fixes. Get rid of M_NOWAIT in places where the
Matthew Dillon [Thu, 13 May 2004 19:44:33 +0000 (19:44 +0000)]
malloc() flags cleanup and fixes.  Get rid of M_NOWAIT in places where the
malloc must succeed for proper device operation to occur, replacing with
M_WAITOK or M_INTWAIT as appropriate.  Use M_ZERO instead of bzero().

16 years agoClose an interrupt race between vm_page_lookup() and (typically) a
Matthew Dillon [Thu, 13 May 2004 17:40:19 +0000 (17:40 +0000)]
Close an interrupt race between vm_page_lookup() and (typically) a
vm_page_sleep_busy() check by using the correct spl protection.
An interrupt can occur inbetween the two operations and unbusy/free
the page in question, causing the busy check to fail and for the code
to fall through and then operate on a page that may have been freed
and possibly even reused.   Also note that vm_page_grab() had the same
issue between the lookup, busy check, and vm_page_busy() call.

Close an interrupt race when scanning a VM object's memq.  Interrupts
can free pages, removing them from memq, which interferes with memq scans
and can cause a page unassociated with the object to be processed as if it
were associated with the object.

Calls to vm_page_hold() and vm_page_unhold() require spl protection.

Rename the passed socket descriptor argument in sendfile() to make the
code more readable.

Fix several serious bugs in procfs_rwmem().  In particular, force it to
block if a page is busy and then retry.

Get rid of vm_pager_map_pag() and vm_pager_unmap_page(), make the functions
that used to use these routines use SFBUF's instead.

Get rid of the (userland?) 4MB page mapping feature in pmap_object_init_pt()
for now.  The code appears to not track the page directory properly and
could result in a non-zero page being freed as PG_ZERO.

This commit also includes updated code comments and some additional
non-operational code cleanups.

16 years agoRemove DIAGNOSTIC elements that are no longer correct.
Matthew Dillon [Thu, 13 May 2004 17:24:49 +0000 (17:24 +0000)]
Remove DIAGNOSTIC elements that are no longer correct.

16 years agoAdd PCI IDs for i865 agpgart support.
Joerg Sonnenberger [Thu, 13 May 2004 14:33:14 +0000 (14:33 +0000)]
Add PCI IDs for i865 agpgart support.

Submitted-by: Patrick mauritz <oxygene@studentenbude.ath.cx>
16 years agosf_buf_free() requires a critical section to safely manipulate the free
Matthew Dillon [Thu, 13 May 2004 01:34:03 +0000 (01:34 +0000)]
sf_buf_free() requires a critical section to safely manipulate the free
list and possibly even the reference count field.  ( sf_buf_alloc() is
already using a critical section ).

16 years agoAdd a read-only sysctl for observing the maximum number of
Hiten Pandya [Thu, 13 May 2004 00:44:12 +0000 (00:44 +0000)]
Add a read-only sysctl for observing the maximum number of
available sf_bufs.

In the future, we could add another sysctl for observing
the number of sf_bufs in use.

16 years agoAttempting to access a device which has been destroyed, such as a UMASS
Matthew Dillon [Thu, 13 May 2004 00:23:39 +0000 (00:23 +0000)]
Attempting to access a device which has been destroyed, such as a UMASS
device which has been pulled out and detached from its /dev/daX entry,
panics the system.  This occurs because the device might not be immediately
(or ever) removed from the device hash after the device has been destroyed.
It's fields are cleared, leading to a NULL function call.

Fix the panic by installing a dummy cdevsw when the device is destroyed
rather then NULLing it out.

Reported-by: Sascha Wildner <saw@online.de>
16 years agoIn sodealloc(), use do_setopt_accept_filter() to free an accept filter
Hiten Pandya [Wed, 12 May 2004 20:21:21 +0000 (20:21 +0000)]
In sodealloc(), use do_setopt_accept_filter() to free an accept filter
instead of doing it manually.

16 years agoThree minor fixes:
Chris Pressey [Wed, 12 May 2004 01:48:40 +0000 (01:48 +0000)]
Three minor fixes:

- Add viddev definition for serial console support.
- In moused_start, run vidcontrol only once instead of (number of
/dev/ttyv* minus 1) times.  This gets rid of a slew of redundant
boot-time error messages.
- Add moused_stop routine to kill the mouse daemon and turn off the
mouse pointer when the 'stop' argument is specified.

Submitted-by: Sascha Wildner <saw@online.de>
Tested-by: walt <wa1ter@myrealbox.com>,
           YONETANI Tomokazu <qhwt+dragonfly-submit@les.ath.cx>

16 years agoReadd em_read_reg_io and em_write_reg_io for workarounds in various
Joerg Sonnenberger [Tue, 11 May 2004 22:55:15 +0000 (22:55 +0000)]
Readd em_read_reg_io and em_write_reg_io for workarounds in various
chip revision. This is a newbusifyed version of the original code.

16 years agoFix a bug in sys/pipe.c. xio_init_ubuf() might not be able to load up the
Matthew Dillon [Tue, 11 May 2004 22:48:53 +0000 (22:48 +0000)]
Fix a bug in sys/pipe.c.  xio_init_ubuf() might not be able to load up the
requested number of bytes even if the request is limited to XIO_INTERNAL_SIZE
if the user buffer base is not page-aligned.  XIO will set xio_bytes to the
actual size of the buffer.

Note that this bug was never exercised due to the 64KB pipe kmem buffer size
limit, so it could not have been the cause of recent problems.

Use kmem_alloc_nofault() instead of kmem_alloc_pageable() for the kmem
reservation.  This is more correct but should have no actual effect on
the system.

16 years agoFollowup log-only addendum: It turns out that last commit did not solve
Matthew Dillon [Tue, 11 May 2004 20:37:21 +0000 (20:37 +0000)]
Followup log-only addendum: It turns out that last commit did not solve
anything, there was a protective conditional in place that I missed.

16 years agoMerge with FreeBSD (RELENG_4) src/usr.sbin/timed/timedc/timedc.c,
Chris Pressey [Tue, 11 May 2004 19:22:25 +0000 (19:22 +0000)]
Merge ... FreeBSD (RELENG_4) src/usr.sbin/timed/timedc/timedc.c,
revision 1.4:

Prefer #include'ing <string.h> over <strings.h>.

Submitted-by: Xin Li <delphij@frontfree.net>
16 years agoAdd an assertion to sys_pipe to cover a possible overrun case and reorder
Matthew Dillon [Tue, 11 May 2004 18:05:08 +0000 (18:05 +0000)]
Add an assertion to sys_pipe to cover a possible overrun case and reorder
the zone cache code in zalloc() to not assign the link pointer until
after various sanity checks are performed.

16 years ago- remove em_adapter_list, it was not used for anything beside adding and
Joerg Sonnenberger [Tue, 11 May 2004 14:00:20 +0000 (14:00 +0000)]
- remove em_adapter_list, it was not used for anything beside adding and
  removing entries
- fix const warning for em_strings
- convert u_intXX_t to uintXX_t
- style(9) changes for whitespace e.g. consistent use of tabs
- use snprintf to build the adapter version string, we are embedding a
  string which could grow in size
- remove check for device_get_softc(dev) == NULL, this must not happen
- prefer device_printf and if_printf over printf("em0d: ...", addapter->unit)
- make some pointer checks explicit against NULL
- remove some of the #ifdef FreeBSD cases which are not interesting for us
- remove trailing return; in void functions
- use the pci accessor functions for the subsystem id and vendor
- start using bus_alloc_resource_any
- remove em_read_reg_io, em_write_reg_io, em_io_read and em_io_write,
  those are unused and doesn't fit into our newbus scheme.

16 years agoAdd the lockf regression test from NetBSD, slightly modified to test
Joerg Sonnenberger [Tue, 11 May 2004 08:03:57 +0000 (08:03 +0000)]
Add the lockf regression test from NetBSD, slightly modified to test
setuid as well. If this is installed setuid, testing the change_euid
is possible, but this is not the default.

16 years agolf_alloc_range() must initialize the returned structure sufficiently such that
Matthew Dillon [Tue, 11 May 2004 02:11:36 +0000 (02:11 +0000)]
lf_alloc_range() must initialize the returned structure sufficiently such that
lf_destroy_range() doesn't explode on us and corrupt system memory.

This should fix the serious FS corruption reports we've been getting.

16 years agolf_setlock() was not returning the correct error code due to an 'int error'
Matthew Dillon [Tue, 11 May 2004 00:06:20 +0000 (00:06 +0000)]
lf_setlock() was not returning the correct error code due to an 'int error'
shadow declaration.

16 years agoDo not specify a macro as first argument to the literal macros
Hiten Pandya [Mon, 10 May 2004 13:49:28 +0000 (13:49 +0000)]
Do not specify a macro as first argument to the literal macros
(.Ql,.Li etc) otherwise the desired effect is not achieved.

16 years agoCorrect usage of the `.Em' macro.
Hiten Pandya [Mon, 10 May 2004 13:47:42 +0000 (13:47 +0000)]
Correct usage of the `.Em' macro.

16 years agoCorrect the usage of the .Dx macro.
Hiten Pandya [Mon, 10 May 2004 13:47:02 +0000 (13:47 +0000)]
Correct the usage of the .Dx macro.

16 years agoRemove extraneous `.El' macro.
Hiten Pandya [Mon, 10 May 2004 13:46:35 +0000 (13:46 +0000)]
Remove extraneous `.El' macro.

16 years agoCorrect the usage of the .Dx macro to avoid mdoc errors.
Hiten Pandya [Mon, 10 May 2004 13:46:10 +0000 (13:46 +0000)]
Correct the usage of the .Dx macro to avoid mdoc errors.

16 years agoAdd entry for the CAPS IPC library. It is now possible to refer to the
Hiten Pandya [Mon, 10 May 2004 13:37:35 +0000 (13:37 +0000)]
Add entry for the CAPS IPC library.  It is now possible to refer to the
CAPS library in manual pages.

16 years agoCorrect the use of the .Dx/.Fx macro.
Hiten Pandya [Mon, 10 May 2004 13:22:50 +0000 (13:22 +0000)]
Correct the use of the .Dx/.Fx macro.

16 years agoRemove erroneous use of the `Fl' mdoc macro and replace it with
Hiten Pandya [Mon, 10 May 2004 13:17:41 +0000 (13:17 +0000)]
Remove erroneous use of the `Fl' mdoc macro and replace it with
a an escaped hyphen.

16 years agoMdoc(7) police:
Hiten Pandya [Mon, 10 May 2004 13:16:43 +0000 (13:16 +0000)]
Mdoc(7) police:

* use .Po/.Pc for parenthesis that extend more than one line

* correct position of the .Fx macro to silence mdoc errors

16 years agoMdoc(7) police:
Hiten Pandya [Mon, 10 May 2004 13:11:12 +0000 (13:11 +0000)]
Mdoc(7) police:

* move the .Dx macro onto second line so that it does not generate
  an mdoc error.

* correct and simplify a nearby sentence.

16 years agoRemove unneeded empty line to silence mdoc(7) warnings.
Hiten Pandya [Mon, 10 May 2004 13:07:18 +0000 (13:07 +0000)]
Remove unneeded empty line to silence mdoc(7) warnings.

16 years agoCorrect mdoc(7).
Hiten Pandya [Mon, 10 May 2004 13:06:53 +0000 (13:06 +0000)]
Correct mdoc(7).

* use .Po/.Pc for parenthesis which extend more than a line

* .In is not a callable macro from anything other than SYNOPSIS,
  use .Pa (pathname) macro instead

16 years agoUpdate the suser(9) manual page about reality.
Hiten Pandya [Mon, 10 May 2004 13:00:37 +0000 (13:00 +0000)]
Update the suser(9) manual page about reality.

* cleanup prototypes and add suser_proc(9) and suser_cred(9)

* use correct english and grammer, nuke hard sentence breaks

* remove deprecated and old information

* inform about the necessity of doing credential checks
  (i.e. only if it is attached to a process)

* cleanup mdoc(7) and bump date

16 years agoUpdate the KASSERT(9) manual page to reality.
Hiten Pandya [Mon, 10 May 2004 12:22:36 +0000 (12:22 +0000)]
Update the KASSERT(9) manual page to reality.

* document the KKASSERT(9) macro

* cleanup sentences and grammar, consolidate information

* use correct mdoc(7)

* update EXAMPLES section

16 years agoUpdate the DELAY(9) manual page about the header file where
Hiten Pandya [Mon, 10 May 2004 12:07:20 +0000 (12:07 +0000)]
Update the DELAY(9) manual page about the header file where
it lives.  Cleanup some mdoc(7) while I am here.

16 years agoUpdate the tsleep(9) manual page about our reality.
Hiten Pandya [Mon, 10 May 2004 12:04:36 +0000 (12:04 +0000)]
Update the tsleep(9) manual page about our reality.

* update prototype of tsleep(9)

* remove information about deprecated interfaces which existed
  in FreeBSD-3.x/4.x land, such as asleep/await etc.

* provide an IMPLEMENTATION NOTES section which informs the user
  about why we do not require priority information for tsleep(9).

* explain the P_SINTR flag.

* cleanup mdoc(7), bump the date and provide more informationa in
  the description line of the manual page so it easily appears when
  an apropos for `sleep' or 'block' is done.

Note, the MLINKs to the deprecated interfaces have not been removed
so that if someone comes hoping along looking for it, they are
directed to a manual page which at the least provides some information
on the subject of waiting on events.

16 years agoAdd MLINK busdma(9) which points to bus_dma(9).
Hiten Pandya [Mon, 10 May 2004 11:20:46 +0000 (11:20 +0000)]
Add MLINK busdma(9) which points to bus_dma(9).

16 years agoRemove newline from panic(9) message, it is redundant.
Hiten Pandya [Mon, 10 May 2004 11:05:13 +0000 (11:05 +0000)]
Remove newline from panic(9) message, it is redundant.

16 years agoRemove newline from panic(9) message, it is redundant.
Hiten Pandya [Mon, 10 May 2004 10:51:32 +0000 (10:51 +0000)]
Remove newline from panic(9) message, it is redundant.

16 years agoRemove redundant newline in a call to panic(9).
Hiten Pandya [Mon, 10 May 2004 10:37:46 +0000 (10:37 +0000)]
Remove redundant newline in a call to panic(9).

16 years agoSync em(4) with FreeBSD current. Most important is the initial bus DMA support.
Joerg Sonnenberger [Mon, 10 May 2004 10:36:25 +0000 (10:36 +0000)]
Sync em(4) with FreeBSD current. Most important is the initial bus DMA support.
Also use callout directly and not timeout.

16 years agoFix a bug in bsd.port.mk that was causing 'make clean' to fail in some
Chris Pressey [Mon, 10 May 2004 04:46:01 +0000 (04:46 +0000)]
Fix a bug in bsd.port.mk that was causing 'make clean' to fail in some
ports directories with mysterious symptoms like 'cd: can't cd to &&'.

The problem was that the text of the DragonFly port override warning
message was mistakenly being injected into the output of the
'*-depends-list' targets.  Although the message was being explicitly
filtered out if the target was 'all-depends-list', the targets
'build-depends-list' and 'run-depends-list', exercised indirectly by
'make clean', still allowed it to slip through.

Encountered-by: walt <wa1ter@myrealbox.com> and others
Detective-work-by: walt <wa1ter@myrealbox.com>
Patch-written-by: cpressey
Approved-by: dillon
16 years agoAdd a readonly sysctl for the `kern.mmxopt' loader tunable (same name).
Hiten Pandya [Sun, 9 May 2004 22:56:22 +0000 (22:56 +0000)]
Add a readonly sysctl for the `kern.mmxopt' loader tunable (same name).

16 years agoMake a small grammar correction: "...most forms of the disklabel
Chris Pressey [Sun, 9 May 2004 22:55:31 +0000 (22:55 +0000)]
Make a small grammar correction: "...most forms of the disklabel
command access the..." instead of "...most disklabel access the..."

16 years agoStyle(9) cleanup to src/sys/vfs, stage 17/21: udf.
Chris Pressey [Sun, 9 May 2004 22:15:00 +0000 (22:15 +0000)]
Style(9) cleanup to src/sys/vfs, stage 17/21: udf.

- Convert K&R-style function definitions to ANSI style.

Note: I chose to leave the formatting of the existing ANSI declarations
alone, as changes to them would mess up the alignment of the associated
comments and the net effect would fail to make the source any more
readable.  A future cleanup could move these comments into the comment
blocks preceding each function definition.

Submitted-by: Andre Nathan <andre@digirati.com.br>
Additional-reformatting-by: cpressey
16 years agoFix two bugs in the lockf code. The first one is a missing reinitialization
Joerg Sonnenberger [Sun, 9 May 2004 11:51:10 +0000 (11:51 +0000)]
Fix two bugs in the lockf code. The first one is a missing reinitialization
of the type field if an existing lock is extended to cover a bigger range
with a different type. The second is related to the problem reported by
Joerg Anslik <joerg@anslik.de> and comes from capturing real uid changes,
but using the effective uid userinfo structure for the accounting.

16 years agoMove accounting of sendfile header bytes sent down one level to handle
Jeffrey Hsu [Sun, 9 May 2004 00:32:41 +0000 (00:32 +0000)]
Move accounting of sendfile header bytes sent down one level to handle
non-blocking sockets properly.

16 years agoKKASSERT that we require inp->inp_pcbinfo, in in_pcbinswildcardhash().
Hiten Pandya [Sat, 8 May 2004 13:30:52 +0000 (13:30 +0000)]
KKASSERT that we require inp->inp_pcbinfo, in in_pcbinswildcardhash().

16 years agoPeter Edwards brought up an interesting NFS bug which we both originally
Matthew Dillon [Sat, 8 May 2004 04:11:48 +0000 (04:11 +0000)]
Peter Edwards brought up an interesting NFS bug which we both originally
thought would be a fairly straightforward bug fix.  But it turns out to
require a nasty hack to fix.

The issue is that near the file EOF NFS uses piecemeal writes and
piecemeal buffer cache buffers.  The result is that manipulation through
the buffer cache only sets some of the m->valid bits in the associated
vm_page(s).  This case may also occur in the middle of a file if for
example a file is piecemeal written and then ftruncated to be much
larger (or lseek/write at a much higher seek position).

The nfs_getpages() routine was assuming that if m->valid was non-0, the
page is basically valid and no read rpc is required to fill it.

The problem is that if you mmap() a piecemeal VM page and fault it in,
m->valid is set to VM_PAGE_BITS_ALL (0xFF). Then, later, when NFS flushes
the buffer cache, only some of the m->valid bits are clear (e.g. 0xFC).
A later page fault will cause NFS to believe that the page is sufficiently
valid and vm_fault will then zero-out the first X bytes of the page when,
in fact, we really should have done an I/O to refill those X bytes.

The fix in PR misc/64816 (FreeBSD) tried to solve this by checking to see
if the m->valid bits were 'sufficiently valid' in the file EOF case but
tesing with fsx resulted in several failure modes.  This doesn't work
because (1) if you extend the file w/ ftruncate or lseek/write these
partially valid pages can end up in the middle of the file rather then
just at the end and (2) There may be a dirty buffer associated with these
pages, meaning that the pages may contain dirty data, and we cannot safely
overwrite the pages with a new read I/O.

The solution in this patch is to deal with the screwy m->valid bit clearing
but special-casing NFS and then having the BIO system clear ALL the m->valid
bits instead of just some of them when NFS calls vinvalbuf().  That way
m->valid will be set to 0 when the buffer is invalidated and the
nfs_getpages() code can be left doing it's simple 'if any m->valid bits
are set assume the whole page is valid' test.  In order for the BIO system
to safely be able to do this (so as not to invalidate portions of a VM page
associated with an adjacent buffer), the NFS io size has been further
restricted to be an integral multiple of PAGE_SIZE.

This is a terrible hack but there is no other way to fix the problem short
of rewriting the entire buffer cache.  We will do that eventually, but not
now.

Reported-by: Peter Edwards <peter.edwards@vordel.com>
Referencing-PR: misc/64816 by Patrick Mackinlay <patrick@spacesurfer.com>

16 years agoFix IPV6 listen(). It was simply a matter of a missing
Matthew Dillon [Sat, 8 May 2004 02:38:36 +0000 (02:38 +0000)]
Fix IPV6 listen().  It was simply a matter of a missing
in_pcbinswildcardhash() call.

Submitted-by: Jeffrey Hsu <hsu@freebsd.org>
Reported-by: "Erik P. Skaalerud" <erik@pentadon.com> and others
16 years agoMove the fsx filesystem tester program from /usr/src/tools/regression to
Matthew Dillon [Fri, 7 May 2004 18:04:46 +0000 (18:04 +0000)]
Move the fsx filesystem tester program from /usr/src/tools/regression to
/usr/src/test/stress and add a sample script.

16 years agoAdd the filesystem/NFS stress tester program, adapted for BSD by Jordan
Matthew Dillon [Fri, 7 May 2004 17:51:02 +0000 (17:51 +0000)]
Add the filesystem/NFS stress tester program, adapted for BSD by Jordan
Hubbard of Apple, originally written by Silicon Graphics, Inc, and
modified by many people, including the SUSE Linux project.

16 years agoMerge rev 1.10 from FreeBSD:
Joerg Sonnenberger [Fri, 7 May 2004 14:37:31 +0000 (14:37 +0000)]
Merge rev 1.10 from FreeBSD:
- stream bus spce access functions, which do not perform a byte order
  conversion (while the normal access functinos would if the bus endianess
  differs from the CPU endianess).

16 years agoFix panic due to the way change_ruid handles the userinfo.
Joerg Sonnenberger [Fri, 7 May 2004 10:09:25 +0000 (10:09 +0000)]
Fix panic due to the way change_ruid handles the userinfo.
The old code assumed that both the structure for the old and the new
user exists. This works fine if change_ruid is called for a real change,
but doesn't if new_ruid == ruid since the old structure == new struct, which
is dropped in the middle.