]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/log
FreeBSD/FreeBSD.git
10 years agoDocument BSDINSTALL_TMPBOOT environment variable introduced by SVN r256343.
Devin Teske [Tue, 15 Oct 2013 14:46:37 +0000 (14:46 +0000)]
Document BSDINSTALL_TMPBOOT environment variable introduced by SVN r256343.

10 years agogjb writes: when doing encrypted zfs install, loader.conf should be updated
Devin Teske [Tue, 15 Oct 2013 14:18:15 +0000 (14:18 +0000)]
gjb writes: when doing encrypted zfs install, loader.conf should be updated
so bootpool is imported after boot:
        zpool_cache_load="YES"
        zpool_cache_type="/boot/zfs/zpool.cache"
        zpool_cache_name="/boot/zfs/zpool.cache"
otherwise /boot is a broken symlink after the system is up.
http://lists.freebsd.org/pipermail/freebsd-fs/2013-July/017891.html
NOTE: Fix a comment while here.

Reviewed by: gjb

10 years agoRevert r256514 for libkvm. It wasn't correct actually and breaks build.
Gleb Smirnoff [Tue, 15 Oct 2013 13:53:35 +0000 (13:53 +0000)]
Revert r256514 for libkvm. It wasn't correct actually and breaks build.

10 years ago Make getutxent(3) more robust against bad utx.log files. Whenever we read
Gleb Smirnoff [Tue, 15 Oct 2013 13:32:01 +0000 (13:32 +0000)]
  Make getutxent(3) more robust against bad utx.log files. Whenever we read
zeroes, don't stop processing the file, but read until its end or valid
data.

In collaboration with: ed

10 years agoUnhide "Serial Number" lines from bootverbose. That information may be
Alexander Motin [Tue, 15 Oct 2013 12:59:40 +0000 (12:59 +0000)]
Unhide "Serial Number" lines from bootverbose.  That information may be
useful for system administration to have in hard copy (in logs) if one of
several devices suddenly dies.

Requested by: glebius
MFC after: 1 week

10 years ago- Utilize counter(9) to accumulate statistics on interface addresses. Add
Gleb Smirnoff [Tue, 15 Oct 2013 11:37:57 +0000 (11:37 +0000)]
- Utilize counter(9) to accumulate statistics on interface addresses. Add
  four counters to struct ifaddr. This kills '+=' on a variables shared
  between processors for every packet.
- Nuke struct if_data from struct ifaddr.
- In ip_input() do not put a reference on ifaddr, instead update statistics
  right now in place and do IN_IFADDR_RUNLOCK(). These removes atomic(9)
  for every packet. [1]
- To properly support NET_RT_IFLISTL sysctl used by getifaddrs(3), in
  rtsock.c fill if_data fields using counter_u64_fetch().
- Accidentially fix bug in COMPAT_32 version of NET_RT_IFLISTL, which
  took if_data not from the ifaddr, but from ifaddr's ifnet. [2]

Submitted by: melifaro [1], pluknet[2]
Sponsored by: Netflix
Sponsored by: Nginx, Inc.

10 years agoPush some defines under _KERNEL, improve styling and comments.
Gleb Smirnoff [Tue, 15 Oct 2013 10:43:26 +0000 (10:43 +0000)]
Push some defines under _KERNEL, improve styling and comments.

10 years ago Remove ifa_mtx. It was used only in one place in kernel, and ifnet's
Gleb Smirnoff [Tue, 15 Oct 2013 10:41:22 +0000 (10:41 +0000)]
  Remove ifa_mtx. It was used only in one place in kernel, and ifnet's
ifaddr lock can substitute it there.

Discussed with: melifaro, ae
Sponsored by: Netflix
Sponsored by: Nginx, Inc.

10 years ago Remove ifa_init() and provide ifa_alloc() that will allocate and setup
Gleb Smirnoff [Tue, 15 Oct 2013 10:31:42 +0000 (10:31 +0000)]
  Remove ifa_init() and provide ifa_alloc() that will allocate and setup
struct ifaddr internally.

Sponsored by: Netflix
Sponsored by: Nginx, Inc.

10 years ago Hide 'struct ifaddr' definition from userland. Two tools left that use it,
Gleb Smirnoff [Tue, 15 Oct 2013 10:19:24 +0000 (10:19 +0000)]
  Hide 'struct ifaddr' definition from userland. Two tools left that use it,
namely ipftest(1) and ifmcstat(1). These sniff structure definition using
_WANT_IFADDR define.

Sponsored by: Netflix
Sponsored by: Nginx, Inc.

10 years agoRemove unsigned < 0 check.
Gleb Smirnoff [Tue, 15 Oct 2013 10:12:19 +0000 (10:12 +0000)]
Remove unsigned < 0 check.

10 years agoRemove useless check of ia6 against NULL, right after dereferencing it.
Gleb Smirnoff [Tue, 15 Oct 2013 10:11:23 +0000 (10:11 +0000)]
Remove useless check of ia6 against NULL, right after dereferencing it.

10 years agoNow counter_u64_t is known to userland, thus remove hack from r253086.
Gleb Smirnoff [Tue, 15 Oct 2013 10:09:33 +0000 (10:09 +0000)]
Now counter_u64_t is known to userland, thus remove hack from r253086.

Sponsored by: Netflix
Sponsored by: Nginx, Inc.

10 years ago- While we are spreading the counter(9) across network stack, more userland
Gleb Smirnoff [Tue, 15 Oct 2013 10:05:37 +0000 (10:05 +0000)]
- While we are spreading the counter(9) across network stack, more userland
tools would need to know about the counter_u64_t type. Allow to include
sys/counter.h from userspace.
- Utilize now defined type in kvm_counter_u64_fetch().

Sponsored by: Netflix
Sponsored by: Nginx, Inc.

10 years ago Rewrite netstat/if.c to use getifaddrs(3) and getifmaddrs(3) instead of
Gleb Smirnoff [Tue, 15 Oct 2013 09:55:07 +0000 (09:55 +0000)]
  Rewrite netstat/if.c to use getifaddrs(3) and getifmaddrs(3) instead of
libkvm digging in kernel memory. This is possible since r231506 made
getifaddrs(3) to supply if_data for each ifaddr.

  The pros of this change is that now netstat(1) doesn't know about kernel
struct ifnet and struct ifaddr. And these structs are about to change
significantly in head soon. New netstat binary will work well with 10.0
and any future kernel.

  The cons is that now it isn't possible to obtain interface statistics
from a vmcore.

  Functions intpr() and sidewaysintpr() were rewritten from scratch.

  The output of netstat(1) has underwent the following changes:

1) The MTU is not printed for protocol addresses, since it has no notion.
   Dash is printed instead. If there would be a strong desire to return
   previous output, it is doable.
2) Output interface queue drops are not printed. Currently this data isn't
   available to userland via any API. We plan to drop 'struct ifqueue' from
   'struct ifnet' very soon, so old kvm(3) access to queue drops is soon
   to be broken, too. The plan is that drivers would handle their queues
   theirselves and a new field in if_data would be updated in case of drops.
3) In-kernel reference count for multicast addresses isn't printed. I doubt
   that anyone used it. Anyway, netstat(1) is sysadmin tool, not kernel
   debugger.

Sponsored by: Netflix
Sponsored by: Nginx, Inc.

10 years agoRemove unsigned comparison < 0
Kevin Lo [Tue, 15 Oct 2013 09:29:36 +0000 (09:29 +0000)]
Remove unsigned comparison < 0

Found by: LLVM
Reviewed by: zbb

10 years agoRemove obtained, but never used data.
Gleb Smirnoff [Tue, 15 Oct 2013 09:21:05 +0000 (09:21 +0000)]
Remove obtained, but never used data.

Found by: gcc

10 years agoUse INADDR_NONE instead of -1 to check inet_addr() result.
Kevin Lo [Tue, 15 Oct 2013 07:37:30 +0000 (07:37 +0000)]
Use INADDR_NONE instead of -1 to check inet_addr() result.

Reviewed by: glebius

10 years agoTreat INADDR_NONE as uint32_t.
Kevin Lo [Tue, 15 Oct 2013 07:35:39 +0000 (07:35 +0000)]
Treat INADDR_NONE as uint32_t.

Reviewed by: glebius

10 years agoAdd a sysctl kern.disallow_high_osrel which disables executing the
Konstantin Belousov [Tue, 15 Oct 2013 06:38:40 +0000 (06:38 +0000)]
Add a sysctl kern.disallow_high_osrel which disables executing the
images compiled on the world with higher major version number than the
high version number of the booted kernel.  Default to disable.

Sponsored by: The FreeBSD Foundation
Discussed with: bapt
MFC after: 1 week

10 years agoBy default, allow up to SSIZE_MAX i/o for non-devfs files.
Konstantin Belousov [Tue, 15 Oct 2013 06:35:22 +0000 (06:35 +0000)]
By default, allow up to SSIZE_MAX i/o for non-devfs files.

Sponsored by: The FreeBSD Foundation
Reminded by: Dmitry Sivachenko <trtrmitya@gmail.com>
MFC after: 1 month
X-MFC-note: stable/10 only

10 years agoSimilar to debug.iosize_max_clamp sysctl, introduce
Konstantin Belousov [Tue, 15 Oct 2013 06:33:10 +0000 (06:33 +0000)]
Similar to debug.iosize_max_clamp sysctl, introduce
devfs_iosize_max_clamp sysctl, which allows/disables SSIZE_MAX-sized
i/o requests on the devfs files.

Sponsored by: The FreeBSD Foundation
Reminded by: Dmitry Sivachenko <trtrmitya@gmail.com>
MFC after: 1 week

10 years agoRemove two instances of ARGSUSED comment, and wrap lines nearby the
Konstantin Belousov [Tue, 15 Oct 2013 06:28:11 +0000 (06:28 +0000)]
Remove two instances of ARGSUSED comment, and wrap lines nearby the
code that is to be changed.

Sponsored by: The FreeBSD Foundation
MFC after: 1 week

10 years agoAdd new USB ID.
Hans Petter Selasky [Tue, 15 Oct 2013 06:23:54 +0000 (06:23 +0000)]
Add new USB ID.

PR: usb/182936
Submitted by: Keith White <kwhite@site.uottawa.ca>
MFC after: 1 week

10 years agoAdd support for Mercurial repositories.
Rui Paulo [Tue, 15 Oct 2013 05:50:02 +0000 (05:50 +0000)]
Add support for Mercurial repositories.

10 years ago- Fix "ifname|addr" syntax support in jail_{jname}_ip.
Hiroki Sato [Tue, 15 Oct 2013 04:54:49 +0000 (04:54 +0000)]
- Fix "ifname|addr" syntax support in jail_{jname}_ip.
- Create /var/run/jail_{jname}.id because ezjail-admin depends on it.

10 years agoElminate NON_LEAF and use NESTED instead to unify our assembler
Warner Losh [Tue, 15 Oct 2013 04:45:09 +0000 (04:45 +0000)]
Elminate NON_LEAF and use NESTED instead to unify our assembler
conventions.

Reviewed by: jmallet@

10 years agoReplace NLEAF with LEAF_NOPROFILE to unify the conventions we use in
Warner Losh [Tue, 15 Oct 2013 04:44:21 +0000 (04:44 +0000)]
Replace NLEAF with LEAF_NOPROFILE to unify the conventions we use in
our assembler files.

Reviewed by: jmallet@

10 years agoReplace uses of the ALEAF macro with XLEAF and remove ALEAF macro to
Warner Losh [Tue, 15 Oct 2013 04:43:31 +0000 (04:43 +0000)]
Replace uses of the ALEAF macro with XLEAF and remove ALEAF macro to
try to unify the conventions used in our assembler.

Reviewed by: jmallet@

10 years agoMove DO_AST into pcb.h where it should have been all along. Move some
Warner Losh [Tue, 15 Oct 2013 04:36:34 +0000 (04:36 +0000)]
Move DO_AST into pcb.h where it should have been all along. Move some
common macros for saving/restoring registers into pcb.h as well.

10 years agoMove DO_AST into pcb.h where it should have been all along. Move some
Warner Losh [Tue, 15 Oct 2013 04:32:06 +0000 (04:32 +0000)]
Move DO_AST into pcb.h where it should have been all along. Move some
common macros for saving/restoring registers into pcb.h as well.

Reviewed by: jmallet@

10 years agoAdd the long-missing spibus_if.m to the MFILES list.
Ian Lepore [Tue, 15 Oct 2013 03:55:42 +0000 (03:55 +0000)]
Add the long-missing spibus_if.m to the MFILES list.

10 years agoUpdate the AR934x SoC support.
Adrian Chadd [Tue, 15 Oct 2013 03:28:32 +0000 (03:28 +0000)]
Update the AR934x SoC support.

* Add the MDIO clock probe during clock initialisation;
* Update the ethernet PLL configuration function to use the correct
  values;
* Add a GMAC block configuration to pull the configuration out of hints;
* Add an ethernet switch reconfiguration method.

Tested:

* AR9344 SoC (DB120)

.. however, this has been tested with extra patches in my tree (to fix
the ethernet/MDIO support, SPI support, ethernet switch support)
and thus it isn't enough to bring the full board support up.

10 years agoUpdate the AR933x SoC support to include a few new knobs:
Adrian Chadd [Tue, 15 Oct 2013 03:23:08 +0000 (03:23 +0000)]
Update the AR933x SoC support to include a few new knobs:

* Initialise the MDIO clock to default to the reference clock;
* Add some code to allow the hints mechanism to allow setup of the GMAC
  config block.
* Document how the switch is wired up internally.

Tested:

* AR9331 SoC (Carambola 2)

10 years agoAdd executable bit to docsinstall [old] and entropy [new] scripts.
Devin Teske [Tue, 15 Oct 2013 02:07:29 +0000 (02:07 +0000)]
Add executable bit to docsinstall [old] and entropy [new] scripts.

Approved by: re (gjb)

10 years agoFix the Atheros MIPS startup path a little.
Adrian Chadd [Tue, 15 Oct 2013 01:37:00 +0000 (01:37 +0000)]
Fix the Atheros MIPS startup path a little.

* Print out the platform frequency the same as the other frequencies.
* Print out the MDIO frequency.
* Optionally do GMAC and ethernet switch setup if required.

Tested:

* AR9344

10 years agoAdd new features - an MDIO clock, WMAC reset, GMAC reset and ethernet
Adrian Chadd [Tue, 15 Oct 2013 01:35:48 +0000 (01:35 +0000)]
Add new features - an MDIO clock, WMAC reset, GMAC reset and ethernet
switch reset/initialise functions.

The AR934x and QC955x SoCs both have a configurable MDIO base clock.
The others have the MDIO clock use the same clock as the system
reference clock, whatever that may be.

Tested:

* AR9344 SoC

TODO:

* mips24k - AR933x would be fine for now, just to ensure that things
  are sane.

10 years agoAdd AR934x, AR8327 register definitions.
Adrian Chadd [Tue, 15 Oct 2013 00:26:02 +0000 (00:26 +0000)]
Add AR934x, AR8327 register definitions.

Obtained from: Linux/OpenWRT

10 years agoAdd the rest of the AR934x SoC reset register definitions.
Adrian Chadd [Mon, 14 Oct 2013 23:58:52 +0000 (23:58 +0000)]
Add the rest of the AR934x SoC reset register definitions.

Obtained from: Linux/OpenWRT

10 years agoAdd register definitions for the AR933x SoC GMAC (ie, ethernet MAC)
Adrian Chadd [Mon, 14 Oct 2013 23:57:12 +0000 (23:57 +0000)]
Add register definitions for the AR933x SoC GMAC (ie, ethernet MAC)
control block.

The GMAC configuration block allows for some configuration of how
the GMAC0 (ie, arge0) port is connected to the on-board switch
(if indeed there is one.)  It both can be pushed into the on-board
switch; it could also be torn out and exposed via an external
MII (and that operational mode is also controllable.)

Obtained from: Linux/OpenWRT

10 years agocxgbe(4): Store the log2 of the # of doorbells per BAR2 page for both
Navdeep Parhar [Mon, 14 Oct 2013 23:32:56 +0000 (23:32 +0000)]
cxgbe(4): Store the log2 of the # of doorbells per BAR2 page for both
ingress and egress queues, and for both T4 and T5.  These values are
used by the T4/T5 iWARP driver.

10 years agoUpdate krping to the latest upstream code. Move all the FreeBSD
Navdeep Parhar [Mon, 14 Oct 2013 23:02:05 +0000 (23:02 +0000)]
Update krping to the latest upstream code.  Move all the FreeBSD
specific parts to krping_dev.c, which leaves the other files as
close to their upstream versions as possible.

10 years agoDelete all of the old RDMA code (except krping, which was switched to
Navdeep Parhar [Mon, 14 Oct 2013 22:39:08 +0000 (22:39 +0000)]
Delete all of the old RDMA code (except krping, which was switched to
use sys/ofed some time back).  This has been sitting around as dead code
in the tree for a very long time.

10 years agocxgbe(4): Update T4 and T5 firmwares to 1.9.12.0
Navdeep Parhar [Mon, 14 Oct 2013 21:25:07 +0000 (21:25 +0000)]
cxgbe(4): Update T4 and T5 firmwares to 1.9.12.0

10 years agoRename libbsdyml to libyaml, make private, and bump
Bryan Drewery [Mon, 14 Oct 2013 18:31:15 +0000 (18:31 +0000)]
Rename libbsdyml to libyaml, make private, and bump
SHLIB_MAJOR to 1.0

Suggested by: des
Approved by: bapt
MFC after: 1 week

10 years agoMake di_blocks unsigned in UFS1 as is the case already for UFS2.
Pedro F. Giffuni [Mon, 14 Oct 2013 18:17:09 +0000 (18:17 +0000)]
Make di_blocks unsigned in UFS1 as is the case already for UFS2.

Most of the code between UFS1 and UFS2 is shared so this change
is pretty safe. Not only this makes UFS1 and 2 consistent but it
also matches what NetBSD and MacOS X have for some years now.

Reviewed by: mckusick
MFC after: 1 month

10 years agoAdd needed files to the KLD random.ko.
Mark Murray [Mon, 14 Oct 2013 17:43:22 +0000 (17:43 +0000)]
Add needed files to the KLD random.ko.

Approved by: re (kib)

10 years ago- Normalize jailname. "example.com" is converted to "example_com".
Hiroki Sato [Mon, 14 Oct 2013 11:05:13 +0000 (11:05 +0000)]
- Normalize jailname.  "example.com" is converted to "example_com".
- Fix a bug that some $jail_{jname}_foo variables did not work.
- Fix a bug which prevented $jail_devfs_ruleset from working[1].
- Move $jail_parameters to the last of the configuraiton lines[1].

Reported by: Jase Thew[1]
Approved by: re (glebius)

10 years agoReduce disc1.iso image size by installing the userland with
Glen Barber [Sun, 13 Oct 2013 15:49:50 +0000 (15:49 +0000)]
Reduce disc1.iso image size by installing the userland with
the WITHOUT_PROFILE=1 option set, trimming 56MB from the image.

Approved by: re (glebius)
MFC after: 1 week
Sponsored by: The FreeBSD Foundation

10 years agoCentralize the detection logic for the Hyper-V hypervisor.
Justin T. Gibbs [Sun, 13 Oct 2013 02:41:30 +0000 (02:41 +0000)]
Centralize the detection logic for the Hyper-V hypervisor.

Submitted by: Roger Pau Monné
Sponsored by: Citrix Systems R&D
Reviewed by: gibbs, grehan
Approved by: re (gjb)

sys/sys/systm.h:
 * Add a new VM_GUEST type, VM_GUEST_HV (HyperV guest).

sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c:
sys/dev/hyperv/vmbus/hv_hv.c:
sys/dev/hyperv/stordisengage/hv_ata_pci_disengage.c:
 * Set vm_guest to VM_GUEST_HV and use that on other HyperV related
   devices instead of cloning the cpuid hypervisor check.
 * Cleanup the vmbus_identify function.

10 years agoAllow FreeBSD to be booted from CDROM media on XenServer 6.2 and
Justin T. Gibbs [Sun, 13 Oct 2013 02:34:20 +0000 (02:34 +0000)]
Allow FreeBSD to be booted from CDROM media on XenServer 6.2 and
prior releases.

Submitted by: Roger Pau Monné
Sponsored by: Citrix Systems R&D
Reviewed by: gibbs
Approved by: re (gjb)

sys/dev/xen/blkfront/blkfront.c:
On XenServer versions up to an including 6.2, paravirtualized
CDROM support is broken.  When running in an HVM domain,
ignore paravirtualized instances of CDROM media, and instead
rely on native drivers attaching to emulated hardware.  This
functions correctly on all currently known Xen based
platforms.

10 years agoThere is an issue (not seen in our testing) where "yarrow" and
Mark Murray [Sun, 13 Oct 2013 00:10:48 +0000 (00:10 +0000)]
There is an issue (not seen in our testing) where "yarrow" and
"dummy" switch priorities, and the users are left with no usable
/dev/random. The fix assigns priories to these and gives the users
what they want. The override tuneable has a stupid name (blame me!)
and this fixes it to be something that 'sysctl kern.random' emits
and is the right thing to set.

Approved by: re (gjb)
Approved by: secteam (cperciva)

10 years agoMake sure a vaiable is always initialised.
Mark Murray [Sat, 12 Oct 2013 23:19:01 +0000 (23:19 +0000)]
Make sure a vaiable is always initialised.

10 years agoFix a problem where the priority order of yarrow,dummy can get reversed
Mark Murray [Sat, 12 Oct 2013 23:15:06 +0000 (23:15 +0000)]
Fix a problem where the priority order of yarrow,dummy can get reversed
to dummy,yarrow and break the usability of /dev/random.

Fix the name of the tunable to something logical that 'sysctl kern.random'
emits.

Submitted by: des@ (the idea, code by me)

10 years agoFix signed integer overflow detection in f_expand_number() of strings.subr.
Devin Teske [Sat, 12 Oct 2013 19:52:27 +0000 (19:52 +0000)]
Fix signed integer overflow detection in f_expand_number() of strings.subr.

Approved by: re (glebius)

10 years agoImplement the virtio block 'get-ident' operation. This eliminates the
Peter Grehan [Sat, 12 Oct 2013 19:31:19 +0000 (19:31 +0000)]
Implement the virtio block 'get-ident' operation. This eliminates the
annoying verbose boot error of the form

   g_handleattr: vtbd0 bio_length 24 len 28 -> EFAULT

The ident returned by bhyve is a text string 'BHYVE-XXXX-XXXX', where
the X's are the first bytes of the md5 hash of the backing filename.

Reviewed by: neel
Approved by: re (gjb)

10 years ago- Add mount.fdescfs parameter to jail(8). This is similar to
Hiroki Sato [Sat, 12 Oct 2013 17:27:59 +0000 (17:27 +0000)]
- Add mount.fdescfs parameter to jail(8). This is similar to
  mount.devfs but mounts fdescfs.  The mount happens just after
  mount.devfs.

- rc.d/jail now displays whole error message from jail(8) when a jail
  fails to start.

Approved by: re (gjb)

10 years agoMFC - tracking commit
Mark Murray [Sat, 12 Oct 2013 16:03:31 +0000 (16:03 +0000)]
MFC - tracking commit

10 years agoMerge from project branch. Uninteresting commits are trimmed.
Mark Murray [Sat, 12 Oct 2013 12:57:57 +0000 (12:57 +0000)]
Merge from project branch. Uninteresting commits are trimmed.

Refactor of /dev/random device. Main points include:

* Userland seeding is no longer used. This auto-seeds at boot time
on PC/Desktop setups; this may need some tweeking and intelligence
from those folks setting up embedded boxes, but the work is believed
to be minimal.

* An entropy cache is written to /entropy (even during installation)
and the kernel uses this at next boot.

* An entropy file written to /boot/entropy can be loaded by loader(8)

* Hardware sources such as rdrand are fed into Yarrow, and are no
longer available raw.

------------------------------------------------------------------------
r256240 | des | 2013-10-09 21:14:16 +0100 (Wed, 09 Oct 2013) | 4 lines

Add a RANDOM_RWFILE option and hide the entropy cache code behind it.
Rename YARROW_RNG and FORTUNA_RNG to RANDOM_YARROW and RANDOM_FORTUNA.
Add the RANDOM_* options to LINT.

------------------------------------------------------------------------
r256239 | des | 2013-10-09 21:12:59 +0100 (Wed, 09 Oct 2013) | 2 lines

Define RANDOM_PURE_RNDTEST for rndtest(4).

------------------------------------------------------------------------
r256204 | des | 2013-10-09 18:51:38 +0100 (Wed, 09 Oct 2013) | 2 lines

staticize struct random_hardware_source

------------------------------------------------------------------------
r256203 | markm | 2013-10-09 18:50:36 +0100 (Wed, 09 Oct 2013) | 2 lines

Wrap some policy-rich code in 'if NOTYET' until we can thresh out
what it really needs to do.

------------------------------------------------------------------------
r256184 | des | 2013-10-09 10:13:12 +0100 (Wed, 09 Oct 2013) | 2 lines

Re-add /dev/urandom for compatibility purposes.

------------------------------------------------------------------------
r256182 | des | 2013-10-09 10:11:14 +0100 (Wed, 09 Oct 2013) | 3 lines

Add missing include guards and move the existing ones out of the
implementation namespace.

------------------------------------------------------------------------
r256168 | markm | 2013-10-08 23:14:07 +0100 (Tue, 08 Oct 2013) | 10 lines

Fix some just-noticed problems:

o Allow this to work with "nodevice random" by fixing where the
MALLOC pool is defined.

o Fix the explicit reseed code. This was correct as submitted, but
in the project branch doesn't need to set the "seeded" bit as this
is done correctly in the "unblock" function.

o Remove some debug ifdeffing.

o Adjust comments.

------------------------------------------------------------------------
r256159 | markm | 2013-10-08 19:48:11 +0100 (Tue, 08 Oct 2013) | 6 lines

Time to eat crow for me.

I replaced the sx_* locks that Arthur used with regular mutexes;
this turned out the be the wrong thing to do as the locks need to
be sleepable. Revert this folly.

# Submitted by: Arthur Mesh <arthurmesh@gmail.com> (In original diff)

------------------------------------------------------------------------
r256138 | des | 2013-10-08 12:05:26 +0100 (Tue, 08 Oct 2013) | 10 lines

Add YARROW_RNG and FORTUNA_RNG to sys/conf/options.

Add a SYSINIT that forces a reseed during proc0 setup, which happens
fairly late in the boot process.

Add a RANDOM_DEBUG option which enables some debugging printf()s.

Add a new RANDOM_ATTACH entropy source which harvests entropy from the
get_cyclecount() delta across each call to a device attach method.

------------------------------------------------------------------------
r256135 | markm | 2013-10-08 07:54:52 +0100 (Tue, 08 Oct 2013) | 8 lines

Debugging. My attempt at EVENTHANDLER(multiuser) was a failure; use
EVENTHANDLER(mountroot) instead.

This means we can't count on /var being present, so something will
need to be done about harvesting /var/db/entropy/... .

Some policy now needs to be sorted out, and a pre-sync cache needs
to be written, but apart from that we are now ready to go.

Over to review.

------------------------------------------------------------------------
r256094 | markm | 2013-10-06 23:45:02 +0100 (Sun, 06 Oct 2013) | 8 lines

Snapshot.

Looking pretty good; this mostly works now. New code includes:

* Read cached entropy at startup, both from files and from loader(8)
preloaded entropy. Failures are soft, but announced. Untested.

* Use EVENTHANDLER to do above just before we go multiuser. Untested.

------------------------------------------------------------------------
r256088 | markm | 2013-10-06 14:01:42 +0100 (Sun, 06 Oct 2013) | 2 lines

Fix up the man page for random(4). This mainly removes no-longer-relevant
details about HW RNGs, reseeding explicitly and user-supplied
entropy.

------------------------------------------------------------------------
r256087 | markm | 2013-10-06 13:43:42 +0100 (Sun, 06 Oct 2013) | 6 lines

As userland writing to /dev/random is no more, remove the "better
than nothing" bootstrap mode.

Add SWI harvesting to the mix.

My box seeds Yarrow by itself in a few seconds! YMMV; more to follow.

------------------------------------------------------------------------
r256086 | markm | 2013-10-06 13:40:32 +0100 (Sun, 06 Oct 2013) | 11 lines

Debug run. This now works, except that the "live" sources haven't
been tested. With all sources turned on, this unlocks itself in
a couple of seconds! That is no my box, and there is no guarantee
that this will be the case everywhere.

* Cut debug prints.

* Use the same locks/mutexes all the way through.

* Be a tad more conservative about entropy estimates.

------------------------------------------------------------------------
r256084 | markm | 2013-10-06 13:35:29 +0100 (Sun, 06 Oct 2013) | 5 lines

Don't use the "real" assembler mnemonics; older compilers may not
understand them (like when building CURRENT on 9.x).

# Submitted by: Konstantin Belousov <kostikbel@gmail.com>

------------------------------------------------------------------------
r256081 | markm | 2013-10-06 10:55:28 +0100 (Sun, 06 Oct 2013) | 12 lines

SNAPSHOT.

Simplify the malloc pools; We only need one for this device.

Simplify the harvest queue.

Marginally improve the entropy pool hashing, making it a bit faster
in the process.

Connect up the hardware "live" source harvesting. This is simplistic
for now, and will need to be made rate-adaptive.

All of the above passes a compile test but needs to be debugged.

------------------------------------------------------------------------
r256042 | markm | 2013-10-04 07:55:06 +0100 (Fri, 04 Oct 2013) | 25 lines

Snapshot. This passes the build test, but has not yet been finished or debugged.

Contains:

* Refactor the hardware RNG CPU instruction sources to feed into
the software mixer. This is unfinished. The actual harvesting needs
to be sorted out. Modified by me (see below).

* Remove 'frac' parameter from random_harvest(). This was never
used and adds extra code for no good reason.

* Remove device write entropy harvesting. This provided a weak
attack vector, was not very good at bootstrapping the device. To
follow will be a replacement explicit reseed knob.

* Separate out all the RANDOM_PURE sources into separate harvest
entities. This adds some secuity in the case where more than one
is present.

* Review all the code and fix anything obviously messy or inconsistent.
Address som review concerns while I'm here, like rename the pseudo-rng
to 'dummy'.

# Submitted by: Arthur Mesh <arthurmesh@gmail.com> (the first item)

------------------------------------------------------------------------
r255319 | markm | 2013-09-06 18:51:52 +0100 (Fri, 06 Sep 2013) | 4 lines

Yarrow wants entropy estimations to be conservative; the usual idea
is that if you are certain you have N bits of entropy, you declare
N/2.

------------------------------------------------------------------------
r255075 | markm | 2013-08-30 18:47:53 +0100 (Fri, 30 Aug 2013) | 4 lines

Remove short-lived idea; thread to harvest (eg) RDRAND enropy into the
usual harvest queues. It was a nifty idea, but too heavyweight.

# Submitted by: Arthur Mesh <arthurmesh@gmail.com>

------------------------------------------------------------------------
r255071 | markm | 2013-08-30 12:42:57 +0100 (Fri, 30 Aug 2013) | 4 lines

Separate out the Software RNG entropy harvesting queue and thread
into its own files.

# Submitted by:  Arthur Mesh <arthurmesh@gmail.com>

------------------------------------------------------------------------
r254934 | markm | 2013-08-26 20:07:03 +0100 (Mon, 26 Aug 2013) | 2 lines

Remove the short-lived namei experiment.

------------------------------------------------------------------------
r254928 | markm | 2013-08-26 19:35:21 +0100 (Mon, 26 Aug 2013) | 2 lines

Snapshot; Do some running repairs on entropy harvesting. More needs
to follow.

------------------------------------------------------------------------
r254927 | markm | 2013-08-26 19:29:51 +0100 (Mon, 26 Aug 2013) | 15 lines

Snapshot of current work;

1) Clean up namespace; only use "Yarrow" where it is Yarrow-specific
or close enough to the Yarrow algorithm. For the rest use a neutral
name.

2) Tidy up headers; put private stuff in private places. More could
be done here.

3) Streamline the hashing/encryption; no need for a 256-bit counter;
128 bits will last for long enough.

There are bits of debug code lying around; these will be removed
at a later stage.

------------------------------------------------------------------------
r254784 | markm | 2013-08-24 14:54:56 +0100 (Sat, 24 Aug 2013) | 39 lines

1) example (partially humorous random_adaptor, that I call "EXAMPLE")
 * It's not meant to be used in a real system, it's there to show how
   the basics of how to create interfaces for random_adaptors. Perhaps
   it should belong in a manual page

2) Move probe.c's functionality in to random_adaptors.c
 * rename random_ident_hardware() to random_adaptor_choose()

3) Introduce a new way to choose (or select) random_adaptors via tunable
"rngs_want" It's a list of comma separated names of adaptors, ordered
by preferences. I.e.:
rngs_want="yarrow,rdrand"

Such setting would cause yarrow to be preferred to rdrand. If neither of
them are available (or registered), then system will default to
something reasonable (currently yarrow). If yarrow is not present, then
we fall back to the adaptor that's first on the list of registered
adaptors.

4) Introduce a way where RNGs can play a role of entropy source. This is
mostly useful for HW rngs.

The way I envision this is that every HW RNG will use this
functionality by default. Functionality to disable this is also present.
I have an example of how to use this in random_adaptor_example.c (see
modload event, and init function)

5) fix kern.random.adaptors from
kern.random.adaptors: yarrowpanicblock
to
kern.random.adaptors: yarrow,panic,block

6) add kern.random.active_adaptor to indicate currently selected
adaptor:
root@freebsd04:~ # sysctl kern.random.active_adaptor
kern.random.active_adaptor: yarrow

# Submitted by: Arthur Mesh <arthurmesh@gmail.com>

Submitted by: Dag-Erling Smørgrav <des@FreeBSD.org>, Arthur Mesh <arthurmesh@gmail.com>
Reviewed by: des@FreeBSD.org
Approved by: re (delphij)
Approved by: secteam (des,delphij)

10 years agoFix the formatting for the danish keymap.
Eitan Adler [Sat, 12 Oct 2013 07:00:51 +0000 (07:00 +0000)]
Fix the formatting for the danish keymap.

Reported by: dteske
Approved by: re (glebius)

10 years agoRemove most of the ATF tools and the _atf user.
Rui Paulo [Sat, 12 Oct 2013 06:06:53 +0000 (06:06 +0000)]
Remove most of the ATF tools and the _atf user.

This is necessary because ATF is deprecated and it will be replaced by Kyua.

Submitted by: jmmv@netbsd.org
Reviewed by: Garrett Cooper
Approved by: re

10 years agoFix a lock-order reversal in the net driver by dropping the lock
Peter Grehan [Sat, 12 Oct 2013 00:32:34 +0000 (00:32 +0000)]
Fix a lock-order reversal in the net driver by dropping the lock
and holding a reference prior to calling further into the hyperv
stack.

Added missing FreeBSD idents.

Submitted by: Microsoft hyperv dev team
Approved by: re@ (gjb)

10 years agoFix vmbus channel memory leak where incorrect length parameter was
Peter Grehan [Fri, 11 Oct 2013 21:30:27 +0000 (21:30 +0000)]
Fix vmbus channel memory leak where incorrect length parameter was
being passed to contigfree().

Submitted by: Microsoft hyperv dev team
Approved by: re@ (glebius)

10 years agoRemove the dumpdev configuration dialog, merge it into the regular
Devin Teske [Fri, 11 Oct 2013 21:23:44 +0000 (21:23 +0000)]
Remove the dumpdev configuration dialog, merge it into the regular
services configuration and enable it by default. Committed with
slight change to menu text for length and content.

Submitted by: Allan Jude <freebsd@allanjude.com>
Approved by: re (glebius)

10 years agoIncorporate PR bin/161547 to detect when an interface is wireless.
Devin Teske [Fri, 11 Oct 2013 21:12:48 +0000 (21:12 +0000)]
Incorporate PR bin/161547 to detect when an interface is wireless.
Patch from PR modified slightly for whitespace and style.

PR: bin/161547
Submitted by: Warren Block <wblock@wonkity.com>
Reviewed by: Allan Jude <freebsd@allanjude.com>
Approved by: re (glebius)

10 years agoFix for i386.
Mark Murray [Fri, 11 Oct 2013 20:53:25 +0000 (20:53 +0000)]
Fix for i386.

10 years agoRewrite the keymap module to display an actual menu of selectable
Devin Teske [Fri, 11 Oct 2013 20:52:42 +0000 (20:52 +0000)]
Rewrite the keymap module to display an actual menu of selectable
keymaps *and* provide a mechanism for testing the selection. With
this commit, bsdinstall is no longer dependent on kbdmap(1). The
keymap test menu was originally submitted by Warren Block but was
modified).

Submitted by: Warren Block <wblock@wonkity.com>
Reviewed by: Allan Jude <freebsd@allanjude.com>
Approved by: re (glebius)

10 years agoAdd zfsboot module as an option for automatic configuration. Default is
Devin Teske [Fri, 11 Oct 2013 20:41:35 +0000 (20:41 +0000)]
Add zfsboot module as an option for automatic configuration. Default is
to run interactively but it can be scripted too (optinally completely
non-interactive). Currently supports GELI and all ZFS vdev types. Also
performs validation on selections/settings providing error messages if
necessary, explaining (in plain language) what the issue is. Currently
the auto partitioning of naked disks only supports GPT and MBR (VTOC8
pending for sparc64), so is only available for i386/amd64 install.

Submitted by: Allan Jude <freebsd@allanjude.com>, myself
Reviewed by: Allan Jude <freebsd@allanjude.com>
Approved by: re (glebius)

10 years agoIn sys/dev/bxe/bxe.c, print bus_addr_t values using %#jx, to fix several
Dimitry Andric [Fri, 11 Oct 2013 20:35:12 +0000 (20:35 +0000)]
In sys/dev/bxe/bxe.c, print bus_addr_t values using %#jx, to fix several
gcc warnings for PAE kernels.

Approved by: re (glebius)
Reviewed by: davidch, edavis

10 years agoAfter installation, dump 4096 bytes from /dev/random to /entropy in the
Dag-Erling Smørgrav [Fri, 11 Oct 2013 20:21:44 +0000 (20:21 +0000)]
After installation, dump 4096 bytes from /dev/random to /entropy in the
newly installed system.  This should greatly increase the amount of
entropy available when SSH host keys are generated during first boot.

Reviewed by:    markm, nathanw
Approved by: re (gjb)

10 years agoAdd new f_expand_number() (shadowing expand_number(3)).
Devin Teske [Fri, 11 Oct 2013 20:12:30 +0000 (20:12 +0000)]
Add new f_expand_number() (shadowing expand_number(3)).

Approved by: re (glebius)

10 years agoRemove extraneous (but harmless) leading /.
Dag-Erling Smørgrav [Fri, 11 Oct 2013 20:11:24 +0000 (20:11 +0000)]
Remove extraneous (but harmless) leading /.

Noticed by:     Herbert J. Skuhra <hskuhra@eumx.net>
Approved by: re (gjb)

10 years agoStore descriptions for DEVICE_TYPE_DISK and fix static-defaults mapping.
Devin Teske [Fri, 11 Oct 2013 20:10:41 +0000 (20:10 +0000)]
Store descriptions for DEVICE_TYPE_DISK and fix static-defaults mapping.
Add a default description for bhyve block disk device while we're here.

Approved by: re (glebius)

10 years agoRemove extraneous \n.
Dag-Erling Smørgrav [Fri, 11 Oct 2013 20:10:18 +0000 (20:10 +0000)]
Remove extraneous \n.

Noticed by:     Nikolai Lifanov <lifanov@mail.lifanov.com>

Approved by: re (gjb)

10 years agoAdd $VAR_ZFSINTERACTIVE (zfsInteractive) and new f_zfsinteractive() for
Devin Teske [Fri, 11 Oct 2013 20:08:34 +0000 (20:08 +0000)]
Add $VAR_ZFSINTERACTIVE (zfsInteractive) and new f_zfsinteractive() for
determining when a script wants to be nonInteractive but selectively
wants ZFS operations to be *interactive* (this is analgous to already
existing $VAR_NETINTERACTIVE (netInteractive) and f_netinteractive()
used for the same purpose (script wants to be nonInteractive but wants
network operations to be *interactive*).

Approved by: re (glebius)

10 years agoFix a bug that would occur in application death when debugging was enabled
Devin Teske [Fri, 11 Oct 2013 20:07:04 +0000 (20:07 +0000)]
Fix a bug that would occur in application death when debugging was enabled
if you ended up in f_dialog_*_constrain() (indirectly, of course) with a
purposefully-set NULL height, width, or rows parameter (because you didn't
care to have that attribute calculated). Fix typo in a comment while here.

Approved by: re (glebius)

10 years agoDocument XENHVM and xenpci are mutually inclusive.
Glen Barber [Fri, 11 Oct 2013 19:40:28 +0000 (19:40 +0000)]
Document XENHVM and xenpci are mutually inclusive.

Submitted by:   gibbs
Approved by:    re (delphij)
Sponsored by:   The FreeBSD Foundation

10 years agoFix NetBSD release number
Eitan Adler [Fri, 11 Oct 2013 18:51:37 +0000 (18:51 +0000)]
Fix NetBSD release number

Submitted by: pluknet
Approved by: re (glebius)

10 years agoAdd keymap.subr for presenting custom keymap dialogs (with X11 support).
Devin Teske [Fri, 11 Oct 2013 18:21:05 +0000 (18:21 +0000)]
Add keymap.subr for presenting custom keymap dialogs (with X11 support).

Approved by: re (glebius)

10 years agoAdd a USE_DIALOG global (analogous to USE_XDIALOG); useful for inserting
Devin Teske [Fri, 11 Oct 2013 18:14:49 +0000 (18:14 +0000)]
Add a USE_DIALOG global (analogous to USE_XDIALOG); useful for inserting
text into a prompt or command syntax iff dialog(1) is in-use.

Approved by: re (glebius)

10 years agoFix a minor bug; if strings.subr was included by itself it may not have
Devin Teske [Fri, 11 Oct 2013 17:54:22 +0000 (17:54 +0000)]
Fix a minor bug; if strings.subr was included by itself it may not have
access to f_dprintf from common.subr -- fix this by including common.subr.

Approved by: re (glebius)

10 years agoAdd support for obtaining the capacity of disks. Add comment while here.
Devin Teske [Fri, 11 Oct 2013 17:52:43 +0000 (17:52 +0000)]
Add support for obtaining the capacity of disks. Add comment while here.

Approved by: re (glebius)

10 years agoFix mode page length calculation to remove last garbage line from the
Alexander Motin [Fri, 11 Oct 2013 17:00:09 +0000 (17:00 +0000)]
Fix mode page length calculation to remove last garbage line from the
`camcontrol mode daX -l` output.

PR
Approved by: re (gjb)
MFC after: 2 weeks

10 years agoDo not provide a hint of the guest's OS version
Bryan Venteicher [Fri, 11 Oct 2013 06:48:40 +0000 (06:48 +0000)]
Do not provide a hint of the guest's OS version

The calculation can overflow if __FreeBSD_version is big
enough, and it does not appear to be required.

Reported by: grehan
Approved by: re (gjb)

10 years agoAllow the legacy CDROM device to be accessed in a FreeBSD guest, while
Peter Grehan [Thu, 10 Oct 2013 22:46:49 +0000 (22:46 +0000)]
Allow the legacy CDROM device to be accessed in a FreeBSD guest, while
still using enlightened drivers for other block devices.

Submitted by: Microsoft hyperv dev team, mav@
Approved by: re@

10 years agoAdd dependency on ibcore now that it has been modularized.
Navdeep Parhar [Thu, 10 Oct 2013 22:38:35 +0000 (22:38 +0000)]
Add dependency on ibcore now that it has been modularized.

Approved by: re (gjb)

10 years agoFixed the media type shown via ifconfig.
Eric Davis [Thu, 10 Oct 2013 21:10:51 +0000 (21:10 +0000)]
Fixed the media type shown via ifconfig.
Fixed a panic that occurs when bringing up an interface on 57710/57711
running very old bootcode versions.
Fixed how bool is defined for those who have been using this code on older
versions of FreeBSD.

Approved by:    re@ (gjb)
Approved by:    davidch (mentor)

10 years agoBump OS versions in the toolchain triples to 11.0, and bump the
Dimitry Andric [Thu, 10 Oct 2013 20:47:11 +0000 (20:47 +0000)]
Bump OS versions in the toolchain triples to 11.0, and bump the
__FreeBSD_cc_version predefined macros in clang and gcc.

Approved by: re (gjb)

10 years agoFix the "am I a net80211 vap" check for bpf listeners.
Adrian Chadd [Thu, 10 Oct 2013 19:56:31 +0000 (19:56 +0000)]
Fix the "am I a net80211 vap" check for bpf listeners.

I changed it to use if_transmit a while ago but apparently with monitor
mode the if_transmit method is overridden.

This is (mostly) a workaround until a more permanent solution can be
found.

Submitted by: Patrick Kelsey <kelsey@ieee.org>
Approved by: re@ (gjb)

10 years agoSanitize the %eflags returned by BIOS routines. Some BIOS routines enter
John Baldwin [Thu, 10 Oct 2013 19:51:38 +0000 (19:51 +0000)]
Sanitize the %eflags returned by BIOS routines.  Some BIOS routines enter
protected mode and may leave protected-mode-specific flags like PSL_NT set
when they return to real mode.  This can cause a fault when BTX re-enters
protected mode after the BIOS mode returns.

PR: amd64/182740
Reported by: Julian Pidancet <julian.pidancet@gmail.com>
Approved by: re (gjb)
MFC after: 1 week

10 years agoIn sys/arm/versatile/versatile_pci.c, add a default handler, to fix a
Dimitry Andric [Thu, 10 Oct 2013 19:40:01 +0000 (19:40 +0000)]
In sys/arm/versatile/versatile_pci.c, add a default handler, to fix a
gcc warning about uninitialized use of a variable.

Approved by: re (gjb)

10 years agoTurn it all the way up to 11:
Glen Barber [Thu, 10 Oct 2013 18:05:13 +0000 (18:05 +0000)]
Turn it all the way up to 11:

- Update FreeBSD version in:
  - UPDATING
  - sys/conf/newvers.sh

- Add 11.0 FreeBSD version for manual pages

- Bump __FreeBSD_version to 1100000

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation

10 years agoNew committer info.
Eric Davis [Thu, 10 Oct 2013 17:41:41 +0000 (17:41 +0000)]
New committer info.

Approved by: re@ (gjb)
Approved by: davidch (mentor)

10 years agoUpdate head/ to ALPHA6 in preparation of branching to stable/10.
Glen Barber [Thu, 10 Oct 2013 17:39:39 +0000 (17:39 +0000)]
Update head/ to ALPHA6 in preparation of branching to stable/10.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation

10 years agoIn sys/dev/hyperv, fix a number of gcc warnings about usage of anonymous
Dimitry Andric [Thu, 10 Oct 2013 16:25:53 +0000 (16:25 +0000)]
In sys/dev/hyperv, fix a number of gcc warnings about usage of anonymous
union members in strict C99, by giving them names.  While here, add some
FreeBSD keywords where they were missing.

Approved by: re (gjb)
Reviewed by: grehan

10 years agoTidy up the output of "sysctl vm.phys_free".
Alan Cox [Thu, 10 Oct 2013 16:11:45 +0000 (16:11 +0000)]
Tidy up the output of "sysctl vm.phys_free".

Approved by: re (glebius)
Sponsored by: EMC / Isilon Storage Division

10 years agoIgnore attempts to set the nmbcluster sysctls to their current value
John Baldwin [Thu, 10 Oct 2013 16:11:34 +0000 (16:11 +0000)]
Ignore attempts to set the nmbcluster sysctls to their current value
rather than failing with an error.

Reviewed by: andre
Approved by: re (delphij)
MFC after: 2 weeks

10 years agoFix for When more than one NIC is present.
Alfred Perlstein [Thu, 10 Oct 2013 14:03:03 +0000 (14:03 +0000)]
Fix for When more than one NIC is present.

The device name was incorrect due to a specific function we ported
from the Linux driver that is not FBSD compatible.  This resulted
with a false sysctl registration and some more problematic issues.

The patch basically revokes it all together.

Submitted by: Meny Yossefi (menyy mellanox.com)

Approved by: re

10 years agoRemove unimplemented options from iscsi.conf(5) manual page, mention
Edward Tomasz Napierala [Thu, 10 Oct 2013 11:28:20 +0000 (11:28 +0000)]
Remove unimplemented options from iscsi.conf(5) manual page, mention
that it's being used by both initiators, and change the title to make
it more easily searchable.

Approved by: re (glebius)
Sponsored by: FreeBSD Foundation

10 years agoMFV r255257: 4082 zfs receive gets EFBIG from dmu_tx_hold_free()
Andriy Gapon [Thu, 10 Oct 2013 09:53:46 +0000 (09:53 +0000)]
MFV r255257: 4082 zfs receive gets EFBIG from dmu_tx_hold_free()

  illumos change 14172:be36a38bac3d:
  illumos ZFS issues:
    4082 zfs receive gets EFBIG from dmu_tx_hold_free()

Please note that this change is slightly different from r255257, because
it is merged out of order with other (larger) upstream changes.

PR: kern/182570
Reported by: Keith White <kwhite@site.uottawa.ca>
Tested by: Keith White <kwhite@site.uottawa.ca>
Approved by: re (glebius)
MFC after: 1 week
X-MFC after: r254753