cvs-src summary for May 31 - June 7

Mark Johnston mjohnston at
Tue Jun 8 03:56:44 GMT 2004

FreeBSD cvs-src summary for 31/05/04 to 07/06/04
This is a regular weekly summary of FreeBSD's cutting-edge development.
It is intended to help the FreeBSD community keep up with the fast-paced
work going on in FreeBSD-CURRENT by distilling the deluge of data from
the CVS mailing list into a (hopefully) easy-to-read newsletter.  This
newsletter is marked up in reStructuredText_, so any odd punctuation
that you see is likely intended for the reST parser.

.. _reStructuredText:

You can get old summaries, and an HTML version of this one, at  Please send any comments to Mark Johnston
(mark at

For Lukasz Dudek and Szymon Roczniak's Polish translations of these
summaries, which may lag the English ones slightly, please see

.. contents::

New features
New per-device sysctls being used
Dag-Erling Smorgrav (des) made several commits updating drivers to use the
`new device-specific sysctl tree`_, named "dev".  He first did the fxp
driver for Intel Ethernet cards, then the ndis driver, for emulation of
Windows's NDIS layer.

.. _`new device-specific sysctl tree`:

Major enhancements to sunlabel
Joerg Wunsch (joerg) committed several significant enhancements to
sunlabel, which edits partitions on Sun disks.  He added the -c
option, to calculate sizes in cylinders and the -h option, to use
human-readable numbers.  He also implemented VTOC (volume table of
contents), which allows sunlabel to achieve the full functionality of
Solaris's format command, with some enhancements, like the ability to edit
volume-manager-encapsulated labels.  He also added a proper man page.

accept locking added
Robert Watson (rwatson) added accept locking, which serializes access to
a number of socket-related variables used by the accept system call.  He
also rewrote some of the socket code to correct locking problems and race

newsyslog gains D flag
Garance A. Drosehn (gad) added a new flag, D, to newsyslog.conf.  When the
flag is specified on one of the entries, rotated log files will have the
NODUMP flag set on them after they are created, to prevent their being
backed up by dump.

arl driver MFC'ed
Max Khon merged the arl driver, for Aironet Arlan 655 wireless network
adapters, to 4.x.  He also merged the related arlcontrol utility.

Notable changes
Outdated MIDI drivers and framework removed
Seigo Tanimura (tanimura) removed the MIDI drivers and framework, since
they will soon be replaced with a new module-friendly MIDI implementation
by Matthew Kanner (matk).

tty code cleanup
Poul-Henning Kamp (phk) made some large cleanups to the tty code, with
the goal of eliminating the ttyregister call in favor of ttymalloc, and
using functions to manipulate tty objects instead of modifying the object
directly.  This will make it possible to add proper reference counting to
the tty code.


arlconfig changed to arlcontrol
Max Khon (fjoe) renamed arlconfig, the tool for configurating the Aironet
Arlan 655, to arlcontrol.

Discussion topics
Using the new device sysctl tree
Maxime Henrion (mux) changed the fxp driver to use the device sysctl tree,
as mentioned `last week`_.  This spawned a couple of related threads.
First, Nate Lawson (njl) asked whether it's possible to suppress printing
of the device-tree-specific nodes with % signs in them; Maxime didn't know
of any way other than just using grep -v to filter them out.  Scott Long
(scottl) noted that the scheme Maxime had set up, using individual device
names in the tree (like dev.fxp0), doesn't allow for global variables
instead of per-interface ones.  Maxime answered that the fxp driver's
variables don't have to be global, but that the problem will probably come
up in the future for drivers that use global settings.  He speculated
about a userland program to add the functionality; Scott pointed out that
that won't work for settings needed to boot the system.

.. _`last week`:

Dag-Erling Smorgrav (des) responded to Scott's suggestion of
using dev.fxp.0.varname and dev.fxp.globalvarname to represent
interface-specific vs. global values, saying it would be easy to do and
that he would work on patches.  M. Warner Losh (imp) asked how identical
global and per-interface variables would be treated, and what API could be
used to set the variables.  Dag-Erling answered that it's up to the driver
author to decide how global vs. per-interface variables will be treated,
and also noted that he planned to use a scheme like dev.fxp.fxp0 instead
of dev.fxp.0, in case there were multiple devices with the same number
but different names.  Warner answered that that should never happen, also
asking about the API.  Dag-Erling `explained the api`_ and decided to use
the dev.fxp.0 scheme instead of dev.fxp.fxp0.  He later `committed code`_
to implement this.

.. _`explained the api`:
.. _`committed code`:

bios_string function added
Poul-Henning Kamp (phk) added a bios_string function, which searches a
given range of the BIOS for the supplied string.  The function is intended
for looking for specific strings in the BIOS to identify a platform.  Nate
Lawson (njl) asked whether the need to align memory should be addressed in
the function, and also asked about whether BIOS memory is all mapped into
kernel memory, as Poul-Henning's code treats it to be.  David Xu answered
that 4 megabytes of the BIOS is mapped, and Poul-Henning said that it is
all mapped, as far as he knows; he also suggested waiting on the alignment
until it's shown to be needed.  Nate responded that ACPI BIOS access must
be 16-byte-aligned, and John Baldwin (jhb) added that the multiprocessor
table, $PIR, _32_, and $PnP must also be 16-byte-aligned.

John Baldwin asked whether Poul-Henning's code is very different from
bios_sigsearch.  Poul-Henning answered that bios_string allows you to
search any range, as opposed to bios_sigsearch, which is limited.  John
suggested one could be implemented in terms of the other; Poul-Henning
answered that he was not against merging them, but that it may not be
needed, as the functions are small.

David O'Brien (obrien) suggested that the function could go into a
machine-independent file, since it's usable on amd64 as-is.  John answered
that he doesn't consider it machine-independent, but that it could go in a
tree dedicated to x86 processors.  David agreed.

Important bug fixes
Routing table manipulation by jailed root fixed
Colin Percival (cperciva) applied a patch to the jail code that prevents
a jailed root user from manipulating the system's routing table.  This
issue was present in 4.8 and 4.9, but no 5.x releases, and is also fixed
in 4.10-RELEASE.  This bug is covered by `FreeBSD-SA-04:12.jailroute`_,
which credits its discovery to Pawel Malachowski.

.. _`FreeBSD-SA-04:12.jailroute`:

Core dumps over 2 GB fixed on 64-bit platforms
Tim J. Robbins fixed a bug in the core dumping code that prevented it from
dumping core files greater than 2 GB on 64-bit platforms.  The bug was
reported by Willem Jan Withagen in `PR 67546`_, but Tim used a different

.. _`PR 67546`:

Other bug fixes
Maxim Konovalov (maxim) merged a fix for a buffer overrun in the IP output
code to 4.x.  The bug was reported by Andrei Iltchenko.

John Baldwin (jhb) fixed a panic on systems with multiple PCI bridges and
ACPI turned off.

John Baldwin (jhb) fixed a bug in 4.x that could cause divide-by-zero
faults on machines without Hyperthreading.

Bill Paul (wpaul) fixed NDIS support for the Intel 2100 Centrino wireless

Bruce Evans (bde) fixed several bugs in the floating-point math code that
caused incorrect results.  Some of the bugs were hidden on i386 systems by
a precision-enhancing trick.

David Schultz (das) fixed a bug in the math code for calculating tangents
that affected precision.

More information about the freebsd-current mailing list