]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/log
FreeBSD/FreeBSD.git
12 years agoCopy over the ASM_DECLARE_FUNCTION_SIZE macro from linux64.h. This macro
andreast [Wed, 16 Nov 2011 21:22:51 +0000 (21:22 +0000)]
Copy over the ASM_DECLARE_FUNCTION_SIZE macro from linux64.h. This macro
declares the proper size of a function. Without this macro recent GNU as will
complain about with:
'Error: .size expression for main does not evaluate to a constant.'

Up to now we produce this:

.L.main:
  ....
.size   main, .-main

With the macro defined the output is this:

.L.main:
  ....
.size   main,.-.L.main

This affects only the 64-bit compiler.
Tested with world and kernel on both, 32 and 64-bit powerpc.

12 years agoEnable 64bit DMA addressing support for all msk(4) controllers.
yongari [Wed, 16 Nov 2011 19:25:26 +0000 (19:25 +0000)]
Enable 64bit DMA addressing support for all msk(4) controllers.
Unnecessarily complex LE format used on Marvell controller was
main reason not to enable 64bit DMA addressing in driver.  If high
32bit address of DMA address of TX/RX buffer is changed, driver has
to generate a new LE.  In TX path, driver will keep track of lastly
used high 32bit address of DMA address and generate a new LE
whenever it sees high address change in the DMA address. In RX path,
driver will always use two LEs to specify 64bit DMA address of RX
buffer.  If the high 32bit address of DMA address of RX buffer is
the same as previous DMA address of RX buffer, driver does not have
to use two LEs but driver will use two LEs for simplicity in RX
ring management.

One of draw back for switching to 64bit DMA addressing is that the
large amount of LEs are used to specify 64bit DMA address such that
number of available LEs for TX/RX buffers are considerably reduced.
To mitigate the issue, increase number of available LEs from 256 to
384 for TX and from 256 to 512 for RX. For 32bit architectures,
msk(4) does not use 64bit DMA addressing to save resources.

Tested by: das

12 years agoConstify stack argument for functions that don't modify it.
pjd [Wed, 16 Nov 2011 19:06:55 +0000 (19:06 +0000)]
Constify stack argument for functions that don't modify it.

Reviewed by: ed, kib, jhb

12 years agoFix make universe.
pjd [Wed, 16 Nov 2011 18:42:43 +0000 (18:42 +0000)]
Fix make universe.

12 years agoThe sys/sysctl.h header is needed when MFI_DEBUG is defined.
kib [Wed, 16 Nov 2011 18:42:39 +0000 (18:42 +0000)]
The sys/sysctl.h header is needed when MFI_DEBUG is defined.

Nod from: jhb

12 years agoFix build, use %d for int value formatting.
kib [Wed, 16 Nov 2011 18:41:59 +0000 (18:41 +0000)]
Fix build, use %d for int value formatting.

12 years agoAdd the sfxge(4) device driver, providing support for 10Gb Ethernet adapters
philip [Wed, 16 Nov 2011 17:11:13 +0000 (17:11 +0000)]
Add the sfxge(4) device driver, providing support for 10Gb Ethernet adapters
based on Solarflare SFC9000 family controllers.  The driver supports jumbo
frames, transmit/receive checksum offload, TCP Segmentation Offload (TSO),
Large Receive Offload (LRO), VLAN checksum offload, VLAN TSO, and Receive Side
Scaling (RSS) using MSI-X interrupts.

This work was sponsored by Solarflare Communications, Inc.

My sincere thanks to Ben Hutchings for doing a lot of the hard work!

Sponsored by: Solarflare Communications, Inc.
MFC after: 3 weeks

12 years agoRefactor the code that performs physically contiguous memory allocation,
alc [Wed, 16 Nov 2011 16:46:09 +0000 (16:46 +0000)]
Refactor the code that performs physically contiguous memory allocation,
yielding a new public interface, vm_page_alloc_contig().  This new function
addresses some of the limitations of the current interfaces, contigmalloc()
and kmem_alloc_contig().  For example, the physically contiguous memory that
is allocated with those interfaces can only be allocated to the kernel vm
object and must be mapped into the kernel virtual address space.  It also
provides functionality that vm_phys_alloc_contig() doesn't, such as wiring
the returned pages.  Moreover, unlike that function, it respects the low
water marks on the paging queues and wakes up the page daemon when
necessary.  That said, at present, this new function can't be applied to all
types of vm objects.  However, that restriction will be eliminated in the
coming weeks.

From a design standpoint, this change also addresses an inconsistency
between vm_phys_alloc_contig() and the other vm_phys_alloc*() functions.
Specifically, vm_phys_alloc_contig() manipulated vm_page fields that other
functions in vm/vm_phys.c didn't.  Moreover, vm_phys_alloc_contig() knew
about vnodes and reservations.  Now, vm_page_alloc_contig() is responsible
for these things.

Reviewed by: kib
Discussed with: jhb

12 years agoAdd single-message MSI support to mfi(4). It is disabled by default but
jhb [Wed, 16 Nov 2011 15:39:27 +0000 (15:39 +0000)]
Add single-message MSI support to mfi(4).  It is disabled by default but
can be enabled via the hw.mfi.msi tunable.  Many mfi(4) controllers also
support MSI-X, but in testing it seems that many adapters do not work with
MSI-X but do work with MSI.

MFC after: 2 weeks

12 years agoHandle invalid large values for getdirentries(2) data buffer size.
pho [Wed, 16 Nov 2011 10:11:55 +0000 (10:11 +0000)]
Handle invalid large values for getdirentries(2) data buffer size.

In collaboration with: kib
Reviewed by: des
Reported by: The iknowthis syscall fuzzer.
MFC after: 1 week

12 years agoWas chasing down a failure to load f/w on a 2400. It turns out that the card
mjacob [Wed, 16 Nov 2011 02:52:24 +0000 (02:52 +0000)]
Was chasing down a failure to load f/w on a 2400. It turns out that the card
is actually broken, or needs a BIOS upgrade for 64 bit loads, but this uncovered
a couple of misplaced opcode definitions and some missing continual mbox command
cases, so might as well update them here.

12 years agoThe maximum TSO frame size should be:
bz [Wed, 16 Nov 2011 02:00:55 +0000 (02:00 +0000)]
The maximum TSO frame size should be:
maximum IP datagram size (65535 bytes) +
Ethernet header size (14 bytes) +
2 * VLAN tag size (4 bytes) [1].

[1] We need to multiply by 2 to account for the double VLAN tag
    provision added in IEEE 802.1ad.

Submitted by: David Somayajulu (david.somayajulu qlogic.com)
MFC after: 4 days

12 years agoModify the new NFS client so that nfs_fsync() only calls ncl_flush()
rmacklem [Tue, 15 Nov 2011 23:35:43 +0000 (23:35 +0000)]
Modify the new NFS client so that nfs_fsync() only calls ncl_flush()
for regular files. Since other file types don't write into the
buffer cache, calling ncl_flush() is almost a no-op. However, it does
clear the NMODIFIED flag and this shouldn't be done by nfs_fsync() for
directories.

MFC after: 2 weeks

12 years agoSome brands of XHCI controllers needs more time to reset.
hselasky [Tue, 15 Nov 2011 20:48:57 +0000 (20:48 +0000)]
Some brands of XHCI controllers needs more time to reset.

Reported by: Jan Henrik Sylvester
MFC after: 1 week

12 years agoSet the MTU of an path to an approriate value if the interface MTU
tuexen [Tue, 15 Nov 2011 20:41:50 +0000 (20:41 +0000)]
Set the MTU of an path to an approriate value if the interface MTU
can't be determined.

MFC after: 3 days.

12 years agoDefine curthread as an inline function that loads the thread pointer
marius [Tue, 15 Nov 2011 20:17:18 +0000 (20:17 +0000)]
Define curthread as an inline function that loads the thread pointer
directly from g7, the pcpu pointer. This guarantees correct behavior
when the thread migrates to a different CPU.
Commit message stolen from r205431. Additional testing by Peter Jeremy.

MFC after: 3 days

12 years agoLLVM uses atomic operations, which are not supported on i386 and GCC
dim [Tue, 15 Nov 2011 20:15:58 +0000 (20:15 +0000)]
LLVM uses atomic operations, which are not supported on i386 and GCC
emits calls for them, rather than expanding them inline.  Older FreeBSD
versions compile for i386 by default and as such we end up with
unresolved symbols when we build LLVM's TableGen utility as a build
tool on them.  Add the functions that GCC emits here, but don't bother
to make them atomic. Such is not needed.

Submitted by: marcel
MFC after: 1 week

12 years agoAs it turns out, r186347 actually is insufficient to avoid the use of the
marius [Tue, 15 Nov 2011 20:11:03 +0000 (20:11 +0000)]
As it turns out, r186347 actually is insufficient to avoid the use of the
curthread-accessing part of mtx_{,un}lock(9) when using a r210623-style
curthread implementation on sparc64, crashing the kernel in its early
cycles as PCPU isn't set up, yet (and can't be set up as OFW is one of the
things we need for that, which leads to a chicken-and-egg problem). What
happens is that due to the fact that the idea of r210623 actually is to
allow the compiler to cache invocations of curthread, it factors out
obtaining curthread needed for both mtx_lock(9) and mtx_unlock(9) to
before the branch based on kobj_mutex_inited when compiling the kernel
without the debugging options. So change kobj_class_compile_static(9)
to just never acquire kobj_mtx, effectively restricting it to its
documented use, and add a kobj_init_static(9) for initializing objects
using a class compiled with the former and that also avoids using mutex(9)
(and malloc(9)). Also assert in both of these functions that they are
used in their intended way only.
While at it, inline kobj_register_method() and kobj_unregister_method()
as there wasn't much point for factoring them out in the first place
and so that a reader of the code has to figure out the locking for
fewer functions missing a KOBJ_ASSERT.
Tested on powerpc{,64} by andreast.

Reviewed by: nwhitehorn (earlier version), jhb
MFC after: 3 days

12 years agoFurther automate production release generation by naming files the right
nwhitehorn [Tue, 15 Nov 2011 18:49:27 +0000 (18:49 +0000)]
Further automate production release generation by naming files the right
things and generating checksums.

MFC after: 1 week

12 years ago- add support for Titan VScom PCIex-800H
eadler [Tue, 15 Nov 2011 17:53:29 +0000 (17:53 +0000)]
- add support for Titan VScom PCIex-800H

PR: kern/124128
Submitted by: Maxim Frolov <maxim.frolov.07@gmail.com> (original)
Approved by: jhb
MFC after: 1 week

12 years ago- add support for Broadcom 802.11bg/EDGE/GPRS CardBus (Serial)
eadler [Tue, 15 Nov 2011 17:15:09 +0000 (17:15 +0000)]
- add support for Broadcom 802.11bg/EDGE/GPRS CardBus (Serial)
- correct mislabeling of 0x432214e4 device

PR: kern/119606
Submitted by: Joe Greco <jgreco@ns.sol.net>
Approved by: jhb
MFC after: 1 week

12 years agoAdd netcat (nc) to /rescue.
des [Tue, 15 Nov 2011 16:20:39 +0000 (16:20 +0000)]
Add netcat (nc) to /rescue.

MFC after: 3 weeks

12 years agoUpdate the device pager interface, while keeping the compatibility
kib [Tue, 15 Nov 2011 14:40:00 +0000 (14:40 +0000)]
Update the device pager interface, while keeping the compatibility
layer for old KPI and KBI.  New interface should be used together with
d_mmap_single cdevsw method.

Device pager can be allocated with the cdev_pager_allocate(9)
function, which takes struct cdev_pager_ops, containing
constructor/destructor and page fault handler methods supplied by
driver.

Constructor and destructor, called at the pager allocation and
deallocation time, allow the driver to handle per-object private data.

The pager handler is called to handle page fault on the vm map entry
backed by the driver pager. Driver shall return either the vm_page_t
which should be mapped, or error code (which does not cause kernel
panic anymore). The page handler interface has a placeholder to
specify the access mode causing the fault, but currently PROT_READ is
always passed there.

Sponsored by: The FreeBSD Foundation
Reviewed by: alc
MFC after: 1 month

12 years agoRemove the condition that is always true.
kib [Tue, 15 Nov 2011 14:09:53 +0000 (14:09 +0000)]
Remove the condition that is always true.

Submitted by: alc
MFC after: 1 week

12 years agoOn some laptops it is important to re-open /dev/psm after resume. moused(8)
glebius [Tue, 15 Nov 2011 12:59:07 +0000 (12:59 +0000)]
On some laptops it is important to re-open /dev/psm after resume. moused(8)
was capable to do this upon SIGHUP for more than a decade. Automate this
via rc.resume in default installation.

12 years agoRemoved extra PRELE() call.
pho [Tue, 15 Nov 2011 09:23:21 +0000 (09:23 +0000)]
Removed extra PRELE() call.

MFC after: 1 week

12 years agoKNF
obrien [Tue, 15 Nov 2011 06:50:10 +0000 (06:50 +0000)]
KNF

12 years agoImprove the chances of matching an outputted string with the line of code.
obrien [Tue, 15 Nov 2011 06:44:07 +0000 (06:44 +0000)]
Improve the chances of matching an outputted string with the line of code.

12 years agoA regression test to ensure that arc4random returns different sequences
das [Tue, 15 Nov 2011 05:55:15 +0000 (05:55 +0000)]
A regression test to ensure that arc4random returns different sequences
in parent and child processes after a fork.

12 years agoFurther reduce diffs with OpenBSD's arc4random. The main functional
das [Tue, 15 Nov 2011 05:49:24 +0000 (05:49 +0000)]
Further reduce diffs with OpenBSD's arc4random.  The main functional
change here is to ensure that when a process forks after arc4random
is seeded, the parent and child don't observe the same random sequence.
OpenBSD's fix introduces some additional overhead in the form of a
getpid() call.  This could be improved upon, e.g., by setting a flag
in fork(), if it proves to be a problem.

This was discussed with secteam (simon, csjp, rwatson) in 2008, shortly
prior to my going out of town and forgetting all about it.  The conclusion
was that the problem with forks is worrisome, but it doesn't appear to
have introduced an actual vulnerability for any known programs.

The only significant remaining difference between our arc4random and
OpenBSD's is in how we seed the generator in arc4_stir().

12 years agoSync the style, comments, and variable names of arc4random.c with
das [Tue, 15 Nov 2011 05:45:46 +0000 (05:45 +0000)]
Sync the style, comments, and variable names of arc4random.c with
OpenBSD's version (r1.22).  While some of our style changes were
indeed small improvements, being able to easily track functionality
changes in OpenBSD seems more useful.

Also fix style bugs in the FreeBSD-specific parts of this file.

No functional changes, as verified with md5.

12 years agoReformat comment to be more readable in standard Xterm.
obrien [Tue, 15 Nov 2011 01:48:53 +0000 (01:48 +0000)]
Reformat comment to be more readable in standard Xterm.
(while I'm here, wrap other long lines)

12 years agoMove the setting of the default value for nm_wcommitsize to
rmacklem [Tue, 15 Nov 2011 01:39:02 +0000 (01:39 +0000)]
Move the setting of the default value for nm_wcommitsize to
before the nfs_decode_args() call in the new NFS client, so
that a specfied command line value won't be overwritten.
Also, modify the calculation for small values of desiredvnodes
to avoid an unusually large value or a divide by zero crash.
It seems that the default value for nm_wcommitsize is very
conservative and may need to change at some time.

PR: kern/159351
Submitted by: onwahe at gmail.com (earlier version)
Reviewed by: jhb
MFC after: 2 weeks

12 years agoRe-apply r227466 to generate hardware notes for mps(4) and mvs(4), the issues
brueffer [Mon, 14 Nov 2011 23:01:08 +0000 (23:01 +0000)]
Re-apply r227466 to generate hardware notes for mps(4) and mvs(4), the issues
were fixes.

Thanks to: gjb, manolis
Pointy hat ++: brueffer
MFC after: 3 days

12 years agoRemove list nesting in the hardware notes section, thus making it compatible with
brueffer [Mon, 14 Nov 2011 22:57:47 +0000 (22:57 +0000)]
Remove list nesting in the hardware notes section, thus making it compatible with
the hardware notes generation script.

MFC after: 3 days

12 years agoClarify hw.ti.%d.dac tunable.
yongari [Mon, 14 Nov 2011 22:16:12 +0000 (22:16 +0000)]
Clarify hw.ti.%d.dac tunable.

12 years agoDocument newly introduced a loader tunable and sysctl variables.
yongari [Mon, 14 Nov 2011 21:59:49 +0000 (21:59 +0000)]
Document newly introduced a loader tunable and sysctl variables.

12 years agoOverhaul bus_dma(9) usage in driver:
yongari [Mon, 14 Nov 2011 20:38:14 +0000 (20:38 +0000)]
Overhaul bus_dma(9) usage in driver:
 - Don't use a single big DMA block for all rings. Create separate
   DMA area for each ring instead.  Currently the following DMA
   areas are created:
Event ring, standard RX ring, jumbo RX ring, RX return ring,
hardware MAC statistics and producer/consumer status area.
   For Tigon II, mini RX ring and TX ring are additionally created.
 - Added missing bus_dmamap_sync(9) in various TX/RX paths.
 - TX ring is no longer created for Tigon 1 such that it saves more
   resources on Tigon 1.
 - Data sheet is not clear about alignment requirement of each ring
   so use 32 bytes alignment for normal DMA area but use 64 bytes
   alignment for jumbo RX ring where the extended RX descriptor
   size is 64 bytes.
 - For each TX/RX buffers use separate DMA tag(e.g. the size of a
   DMA segment, total size of DMA segments etc).
 - Tigon allows separate DMA area for event producer, RX return
   producer and TX consumer which is really cool feature.  This
   means TX and RX path could be independently run in parallel.
   However ti(4) uses a single driver lock so it's meaningless
   to have separate DMA area for these producer/consumer such that
   this change creates a single status DMA area.
 - It seems Tigon has no limits on DMA address space and I also
   don't see any problem with that but old comments in driver
   indicates there could be issues on descriptors being located in
   64bit region.  Introduce a tunable, dev.ti.%d.dac, to disable
   using 64bit DMA in driver. The default is 0 which means it would
   use full 64bit DMA.  If there are DMA issues, users can disable
   it by setting the tunable to 0.
 - Do not increase watchdog timer in ti_txeof(). Previously driver
   increased the watchdog timer whenever there are queued TX frames.
 - When stat ticks is set to 0, skip processing ti_stats_update(),
   avoiding bus_dmamap_sync(9) and updating if_collisions counter.
 - MTU does not include FCS bytes, replace it with
   ETHER_VLAN_ENCAP_LEN.

With these changes, ti(4) should work on PAE environments.
Many thanks to Jay Borkenhagen for remote hardware access.

12 years ago- add my co-mentors
rm [Mon, 14 Nov 2011 20:32:39 +0000 (20:32 +0000)]
- add my co-mentors

Approved by: novel (mentor)

12 years agoTemporary revert r227009 to fix freeze on UP systems without PREEMPTION.
mav [Mon, 14 Nov 2011 19:32:05 +0000 (19:32 +0000)]
Temporary revert r227009 to fix freeze on UP systems without PREEMPTION.

Before r215687, if some withered geom or provider could not be destroyed,
g_event thread went to sleep for 0.1s before retrying. After that change
it is just restarting immediately. r227009 made orphaned (withered) provider
to not detach immediately, but only after context switch. That made loop
inside g_event thread infinite on UP systems without PREEMPTION.

To address original problem with possible dead lock addressed by r227009
we have to fix r215687 change first, that needs some time to think and test.

12 years agoExport sysctl node for various interrupt moderation parameters and
yongari [Mon, 14 Nov 2011 19:10:20 +0000 (19:10 +0000)]
Export sysctl node for various interrupt moderation parameters and
have administrators control them.  ti(4) provides a character
device to control various other features of driver via ioctls but
users had to write their own code to manipulate these parameters.
It seems some default values for these parameters are not optimal
on today's system but leave it as it was and let administrators
change them.  The following parameters could be changed:

dev.ti.%d.rx_coal_ticks
dev.ti.%d.rx_max_coal_bds
dev.ti.%d.tx_coal_ticks
dev.ti.%d.tx_max_coal_bds
dev.ti.%d.tx_buf_ratio
dev.ti.%d.stat_ticks

The interface has to be brought down and up again before a change
takes effect.

ti(4) controller supports hardware MAC counters with additional
DMA statistics.  So it's doable to export these counters via
sysctl interface.  Unfortunately, these counters are cumulative
such that driver have to either send an explicit clear command to
controller after extracting them or have to maintain internal
counters to get actual changes.  Neither look good to me so
counters were not exported via sysctl.

12 years agoAdd DTS for the Freescale P1020RDB.
marcel [Mon, 14 Nov 2011 19:06:28 +0000 (19:06 +0000)]
Add DTS for the Freescale P1020RDB.

12 years agoFinish making 'wcommitsize' an NFS client mount option.
jhb [Mon, 14 Nov 2011 18:52:07 +0000 (18:52 +0000)]
Finish making 'wcommitsize' an NFS client mount option.

Reviewed by: rmacklem
MFC after: 1 week

12 years agoAdd DTS for the Freescale P3041DS.
marcel [Mon, 14 Nov 2011 18:51:39 +0000 (18:51 +0000)]
Add DTS for the Freescale P3041DS.

12 years agoIt's bad idea to allocate large memory, 4KB, from stack.
yongari [Mon, 14 Nov 2011 18:40:04 +0000 (18:40 +0000)]
It's bad idea to allocate large memory, 4KB, from stack.
Pre-allocate the memory in device attach time. While I'm here
remove unnecessary reassignment of error variable as it was already
initialized. Also added a missing driver lock in TIIOCSETTRACE
handler.

12 years agoSync with the old NFS client: Remove an obsolete comment.
jhb [Mon, 14 Nov 2011 18:23:50 +0000 (18:23 +0000)]
Sync with the old NFS client: Remove an obsolete comment.

12 years agoRemove a few bits of FreeBSD 2.x compatibility code.
rmh [Mon, 14 Nov 2011 18:21:27 +0000 (18:21 +0000)]
Remove a few bits of FreeBSD 2.x compatibility code.

Approved by: kib (mentor)

12 years ago- Split out a kern_posix_fadvise() from the posix_fadvise() system call so
jhb [Mon, 14 Nov 2011 18:00:15 +0000 (18:00 +0000)]
- Split out a kern_posix_fadvise() from the posix_fadvise() system call so
  it can be used by in-kernel consumers.
- Make kern_posix_fallocate() public.
- Use kern_posix_fadvise() and kern_posix_fallocate() to implement the
  freebsd32 wrappers for the two system calls.

12 years agomdoc fix for r227499.
andre [Mon, 14 Nov 2011 15:57:03 +0000 (15:57 +0000)]
mdoc fix for r227499.

Reported by: brueffer

12 years agoRemove mention of ss_fltsz and ss_fltsz_local which were retired in r226447.
andre [Mon, 14 Nov 2011 15:14:42 +0000 (15:14 +0000)]
Remove mention of ss_fltsz and ss_fltsz_local which were retired in r226447.

12 years agoNote the ip_len bug fixed in r226105 in the BUGS section.
andre [Mon, 14 Nov 2011 15:10:42 +0000 (15:10 +0000)]
Note the ip_len bug fixed in r226105 in the BUGS section.

12 years agoImport upstream changesets for the output of the "zpool" command:
mm [Mon, 14 Nov 2011 08:29:49 +0000 (08:29 +0000)]
Import upstream changesets for the output of the "zpool" command:

952 separate intent logs should be obvious in 'zpool iostat' output
1337 `zpool status -D' should tell if there are no DDT entries

References:
https://www.illumos.org/issues/952
https://www.illumos.org/issues/1337

Obtained from: Illumos (issues 952, 1337; changesets 13384, 13432)
MFC after: 1 week

12 years agoConstify args to copyiniov and copyinuio.
alfred [Mon, 14 Nov 2011 07:12:10 +0000 (07:12 +0000)]
Constify args to copyiniov and copyinuio.

12 years agoSince NFSv4 byte range locking only works for regular files,
rmacklem [Mon, 14 Nov 2011 00:10:11 +0000 (00:10 +0000)]
Since NFSv4 byte range locking only works for regular files,
add a sanity check for the vnode type to the NFSv4 client.

MFC after: 2 weeks

12 years agoMove the assignment of default values for some mount options
rmacklem [Sun, 13 Nov 2011 23:09:26 +0000 (23:09 +0000)]
Move the assignment of default values for some mount options
to before the nfs_decode_args() call in the new NFS client,
so they don't overwrite the value specified on the command line.

MFC after: 2 weeks

12 years ago- new sentence should start on new line.
eadler [Sun, 13 Nov 2011 17:07:43 +0000 (17:07 +0000)]
-  new sentence should start on new line.

PR: bin/146541
Submitted by: bjk
Approved by: bjk

12 years agoHide some more macros that will break C++ when compiling in C++ mode.
theraven [Sun, 13 Nov 2011 17:07:26 +0000 (17:07 +0000)]
Hide some more macros that will break C++ when compiling in C++ mode.

Approved by: dim (mentor)

12 years ago- fix duplicate "a a" in some comments
eadler [Sun, 13 Nov 2011 17:06:33 +0000 (17:06 +0000)]
- fix duplicate "a a" in some comments

Submitted by: eadler
Approved by: simon
MFC after: 3 days

12 years ago- add "check" option to MD5 and friends to compare files against known hash.
eadler [Sun, 13 Nov 2011 16:35:47 +0000 (16:35 +0000)]
- add "check" option to MD5 and friends to compare files against known hash.

PR: bin/146541
Submitted by: eadler
Reviewed by: jhell@dataix.net
Approved by: secteam (cperciva)
Approved by: cperciva
MFC after: 3 weeks

12 years agoThe spec says that FILE must be defined in wchar.h, but it wasn't. It
theraven [Sun, 13 Nov 2011 16:18:48 +0000 (16:18 +0000)]
The spec says that FILE must be defined in wchar.h, but it wasn't.  It
is now.  Also hide some macros in C++ mode that will break C++
namespaced calls.

Approved by: dim (mentor)

12 years agoDon't copy uninitialized memory. Also simplify the comparison
tuexen [Sun, 13 Nov 2011 11:53:18 +0000 (11:53 +0000)]
Don't copy uninitialized memory. Also simplify the comparison
of interface names.

MFC after: 3 days.

12 years agoTo limit amount of the kernel memory allocated, and to optimize the
kib [Sun, 13 Nov 2011 10:28:01 +0000 (10:28 +0000)]
To limit amount of the kernel memory allocated, and to optimize the
iteration over the fdsets, kern_select() limits the length of the
fdsets copied in by the last valid file descriptor index. If any bit
is set in a mask above the limit, current implementation ignores the
filedescriptor, instead of returning EBADF.

Fix the issue by scanning the tails of fdset before entering the
select loop and returning EBADF if any bit above last valid
filedescriptor index is set. The performance impact of the additional
check is only imposed on the (somewhat) buggy applications that pass
bad file descriptors to select(2) or pselect(2).

PR: kern/155606, kern/162379
Discussed with: cognet, glebius
Tested by: andreast (powerpc, all 64/32bit ABI combinations, big-endian),
       marius (sparc64, big-endian)
MFC after:    2 weeks

12 years agoFix spelling of extract.
alfred [Sun, 13 Nov 2011 06:39:49 +0000 (06:39 +0000)]
Fix spelling of extract.

Pointed out by: gcooper

12 years agoUtilize shell's IFS instead of forking ~6 processes to
alfred [Sun, 13 Nov 2011 03:18:57 +0000 (03:18 +0000)]
Utilize shell's IFS instead of forking ~6 processes to
handle splitting input files on a '|'.  This greatly
reduces the time taken to process several databases
during the update process.

Additionally add some more debug logging.

12 years agoThe default setting, daily_accounting_compress="NO", was causing
dougb [Sun, 13 Nov 2011 03:01:58 +0000 (03:01 +0000)]
The default setting, daily_accounting_compress="NO", was causing
only 1 old file to be saved, so fix this. Problem raised in the PR,
but actually required a different solution.

While I'm here, fix a very old off-by-one error causing 1 more file
than specified in daily_accounting_save to be saved because acct.0
was not taken into account (pun intended). Change that, and use a more
thorough method of finding old files to delete. Partly just because this
is the right thing to do, but also to silently fix the extra log that
would have been left behind forever with the previous method.

PR: conf/160848
Submitted by: Andrey Zonov <andrey@zonov.org>

12 years agoReturn the correct value for the IPV6_MULTICAST_HOPS getsockopt() call.
bz [Sun, 13 Nov 2011 02:32:10 +0000 (02:32 +0000)]
Return the correct value for the IPV6_MULTICAST_HOPS getsockopt() call.

Submitted by: rpaulo
MFC after: 3 days

12 years agoRevert 227466:
gjb [Sun, 13 Nov 2011 01:47:31 +0000 (01:47 +0000)]
Revert 227466:

- mvs.4 uses nested '.Bl' tags which appears to confuse man2hwnotes.pl
for hardware note generation

- mps.4 also breaks the build, but I haven't yet identified why

12 years agoBump date.
adrian [Sat, 12 Nov 2011 23:30:57 +0000 (23:30 +0000)]
Bump date.

12 years agoFix kernel build breakage after r227475. I had forgotten kernels are
dim [Sat, 12 Nov 2011 23:17:54 +0000 (23:17 +0000)]
Fix kernel build breakage after r227475.  I had forgotten kernels are
built with -Wundef, as opposed to world.

Additionally, cdefs.h tends to not use indentation for preprocessor
directives, so remove that too.

Pointy hat to: me

12 years agoAdd documentation for the new quiet time IE options.
adrian [Sat, 12 Nov 2011 23:17:01 +0000 (23:17 +0000)]
Add documentation for the new quiet time IE options.

Submitted by: Himali Patel <himali.patel@sibridgetech.com>
Sponsored by: Sibridge Technologies

12 years agoDon't expose the wctype.h macros in C++ mode. They cause problems when
theraven [Sat, 12 Nov 2011 20:45:10 +0000 (20:45 +0000)]
Don't expose the wctype.h macros in C++ mode.  They cause problems when
people try to invoke the namespaced versions of the functions of the
same names.

Approved by: dim (mentor)

12 years agoExpose all of the C99 limits.h stuff when we're in C++11 mode (or some approximation...
theraven [Sat, 12 Nov 2011 20:25:11 +0000 (20:25 +0000)]
Expose all of the C99 limits.h stuff when we're in C++11 mode (or some approximation thereof).  C++11 finally adds long long to C++.  Now even C++ programmers are allowed to use 64-bit integers!

Approved by: dim (mentor)

12 years agoFix SIGATOMIC_M{IN,AX} on x86-64. These are meant to be the minimum values that...
theraven [Sat, 12 Nov 2011 20:16:06 +0000 (20:16 +0000)]
Fix SIGATOMIC_M{IN,AX} on x86-64.  These are meant to be the minimum values that are allowed in a sig_atomic_t, but it looks like they were just copied from the x86 versions, so these definitions violate the C and C++ specs.  Mismatch was spotted by the libc++ test suite.

Approved by: dim (mentor)

12 years agoFix build on some archs after r227464.
mav [Sat, 12 Nov 2011 20:01:30 +0000 (20:01 +0000)]
Fix build on some archs after r227464.

12 years agoExpose the unimplemented libm functions in the math.h header. This allows C++'s...
theraven [Sat, 12 Nov 2011 19:55:48 +0000 (19:55 +0000)]
Expose the unimplemented libm functions in the math.h header.  This allows C++'s <cmath> to work without the compiler complaining that the C++ versions are calling implicitly-declared functions.  You will still get a linker error when they are called.  OpenBSD 5.0 claims to fully implement the C99 <math.h> stuff, so might be worth investigating...

Reviewed by: das
Approved by: dim (mentor)

12 years agoFix buildworld breakage due after r227464.
dim [Sat, 12 Nov 2011 19:45:56 +0000 (19:45 +0000)]
Fix buildworld breakage due after r227464.

Pointy hat to: mav

12 years agoReport the amount of memory from smbios data if provided.
emaste [Sat, 12 Nov 2011 19:02:55 +0000 (19:02 +0000)]
Report the amount of memory from smbios data if provided.

This should get the correct memory size even if a 32-bit image is running
on a machine with > 4GB of memory.  This can be useful is using a 32-bit
installer on a machine which will eventually run a 64-bit image.

Reviewed by: kmoore

12 years agoDisable writing to the extension CYCPWR1 register.
adrian [Sat, 12 Nov 2011 16:47:23 +0000 (16:47 +0000)]
Disable writing to the extension CYCPWR1 register.
This seems to make ANI behave better on the AR5416/AR5418.

Sponsored by: Hobnob, Inc.

12 years agoFix the number of decimal digits used for Swiss Francs (0 -> 2). Found by the libc...
theraven [Sat, 12 Nov 2011 14:39:20 +0000 (14:39 +0000)]
Fix the number of decimal digits used for Swiss Francs (0 -> 2).  Found by the libc++ test suite.  If there is some locale test suite somewhere, it might be worth running it...

Approved by: dim (mentor)

12 years agoAdded mps(4) and mvs(4).
brueffer [Sat, 12 Nov 2011 10:30:14 +0000 (10:30 +0000)]
Added mps(4) and mvs(4).

MFC after: 3 days

12 years agoGrammar and mdoc cleanup.
brueffer [Sat, 12 Nov 2011 10:17:23 +0000 (10:17 +0000)]
Grammar and mdoc cleanup.

MFC after: 3 days

12 years agoMajor GEOM MULTIPATH class rewrite:
mav [Sat, 12 Nov 2011 09:52:27 +0000 (09:52 +0000)]
Major GEOM MULTIPATH class rewrite:
 - Improved locking and destruction process to fix crashes.
 - Improved "automatic" configuration method to make it consistent and safe
by reading metadata back from all specified paths after writing to one.
 - Added provider size check to reduce chance of ordering conflict with
other GEOM classes.
 - Added "manual" configuration method without using on-disk metadata.
 - Added "add" and "remove" commands to allow manage paths manually.
 - Failed paths are no longer dropped from geom, but only marked as FAIL
and excluded from I/O operations.
 - Automatically restore failed paths when all others paths are marked
as failed, for example, because of device-caused (not transport) errors.
 - Added "fail" and "restore" commands to manually control FAIL flag.
 - geom is now destroyed on last path disconnection.
 - Added optional Active/Active mode support. Unlike Active/Passive
mode, load evenly distributed between all working paths. If supported by
the device, it allows to significantly improve performance, utilizing
bandwidth of all paths. It is controlled by -A option during creation.
Disabled by default now.
 - Improved `status` and `list` commands output.

Sponsored by: iXsystems, inc.
MFC after: 1 month

12 years ago- This patch adds custom IOCTLs to read and write the 4 GPIO pins on the
hselasky [Sat, 12 Nov 2011 08:40:52 +0000 (08:40 +0000)]
- This patch adds custom IOCTLs to read and write the 4 GPIO pins on the
cp2103 usb-to-serial chip.
- This patch also makes the line status polling asynchronous, to reduce
the time needed to change the GPIO pins.

Submitted by: JD Louw
MFC after: 1 week

12 years agoEnable power save mode for the USB storage device driver.
hselasky [Sat, 12 Nov 2011 08:19:36 +0000 (08:19 +0000)]
Enable power save mode for the USB storage device driver.

MFC after: 1 week

12 years agoStyle change.
hselasky [Sat, 12 Nov 2011 08:16:45 +0000 (08:16 +0000)]
Style change.
- Make it easier to port the USB code to other platforms by only using
one set of memory functions for clearing and copying memory. None of
the memory copies are overlapping. This means using bcopy() is not
required.
- Fix a compile warning when USB_HAVE_BUSDMA=0
- Add missing semicolon in avr32dci.
- Update some comments.

MFC after: 1 week

12 years agoA default route learned from the RAs could be deleted manually
qingli [Fri, 11 Nov 2011 23:22:38 +0000 (23:22 +0000)]
A default route learned from the RAs could be deleted manually
after its installation. This removal may be accidental and can
prevent the default route from being installed in the future if
the associated default router has the best preference. The cause
is the lack of status update in the default router on the state
of its route installation in the kernel FIB. This patch fixes
the described problem.

Reviewed by: hrs, discussed with hrs
MFC after: 5 days

12 years agoIn r191367 the need for if_free_type() was removed and a new member
brooks [Fri, 11 Nov 2011 22:57:52 +0000 (22:57 +0000)]
In r191367 the need for if_free_type() was removed and a new member
if_alloctype was used to store the origional interface type.  Take
advantage of this change by removing all existing uses of if_free_type()
in favor of if_free().

MFC after: 1 Month

12 years ago- add a missing "be" and "in"
eadler [Fri, 11 Nov 2011 22:27:09 +0000 (22:27 +0000)]
- add a missing "be" and "in"
- fix other errors introduced when committing r226436
- add 'function' to a sentence where it makes sense

Submitted by: delphij
Submitted by: dougb
Submitted by: jhb
Approved by: dougb
Approved by: jhb

12 years ago- add support for CP-104EL-A and CP-104JU to puc
eadler [Fri, 11 Nov 2011 22:24:16 +0000 (22:24 +0000)]
- add support for CP-104EL-A and CP-104JU to puc

PR: 151365
Submitted by: Joerg Niendorf <f5d10a@internode.on.net>
Approved by: jhb

12 years agoUse __packed to prevent alignment from taking place, which otherwise may
delphij [Fri, 11 Nov 2011 20:31:48 +0000 (20:31 +0000)]
Use __packed to prevent alignment from taking place, which otherwise may
change the on-disk format in an incompatible way.  Without this change,
msdosfs created on FreeBSD/arm would not be mountable.

PR: bin/162486
Submitted by: Ian Lepore <freebsd damnhippie dyndns org>
Reported by: Mattia Rossi <mrossi at swin.edu.au>
MFC after: 3 days

12 years agoAdded myself to committers-src.dot
theraven [Fri, 11 Nov 2011 20:13:24 +0000 (20:13 +0000)]
Added myself to committers-src.dot

Approved by: dim (mentor)

12 years agoTo send a frame, controller requires a prepended TX header and
yongari [Fri, 11 Nov 2011 19:15:32 +0000 (19:15 +0000)]
To send a frame, controller requires a prepended TX header and
the length of frame should be treated as multiple of 4. Actual
frame length is set in the TX header. The TX header position
should be aligned on 4 byte boundary and actual frame start
position should be aligned on 4 byte boundary as well. This means
we need 4(TX header length) + 3(frame length fixup) additional free
space in TX buffer in addition to actual frame length.
Make sure TX handler check these additional bytes.
ae_tx_avail_size() returns actual free space in TX buffer to ease
the calculation of available TX buffer space in caller. While I'm
here, replace magic number to appropriate sizeof operator to
enhance readability.

This change should fix controller lockup issue happened under
certain conditions but it still does not fix watchdog timeout. It
seems the watchdog timeout is side-effect of TxS and TxD
mismatches. The root cause of TxD/TxD mismatch is not known yet but
it looks like silicon bug. I guess driver may have to reinitialize
controller whenever it sees TxS and TxD mismatches but leave it as
it was at this moment.

PR: kern/145918

12 years agoFix false positive EADDRINUSE that could be returned by bind, due to
trociny [Fri, 11 Nov 2011 14:09:09 +0000 (14:09 +0000)]
Fix false positive EADDRINUSE that could be returned by bind, due to
the typo made in r227207.

Reported by: kib
Tested by: kib

12 years agoReword a sentence in the HARDWARE section a little to make it more suitable
brueffer [Fri, 11 Nov 2011 12:06:09 +0000 (12:06 +0000)]
Reword a sentence in the HARDWARE section a little to make it more suitable
for automatic hardware notes generation.

MFC after: 3 days

12 years agostruct timespec32: change types of tv_sec and tv_nsec fields to signed
pluknet [Fri, 11 Nov 2011 07:17:00 +0000 (07:17 +0000)]
struct timespec32: change types of tv_sec and tv_nsec fields to signed
to match native struct timespec ABI on __LP32__.

This change is a prerequisite for upcoming futimens()/utimensat() in whose
implementations it is assumed that timespec32 can take a negative value.

MFC after: 1 week

12 years agoStyle.
kib [Fri, 11 Nov 2011 04:13:47 +0000 (04:13 +0000)]
Style.

MFC after: 1 week

12 years agoGuard against the unlikely case of the alias path containing the '%' symbols.
kib [Fri, 11 Nov 2011 04:12:58 +0000 (04:12 +0000)]
Guard against the unlikely case of the alias path containing the '%' symbols.

Reported by: arundel
MFC after: 1 week

12 years agoWeaken the part of assertions added in the r227394. Only check that the
kib [Fri, 11 Nov 2011 04:10:36 +0000 (04:10 +0000)]
Weaken the part of assertions added in the r227394. Only check that the
process state is stopped.

MFC after: 1 week

12 years agoCorrect the types of the arguments to return probes of the syscall
rstone [Fri, 11 Nov 2011 03:49:42 +0000 (03:49 +0000)]
Correct the types of the arguments to return probes of the syscall
provider.  Previously we were erroneously supplying the argument types of
the corresponding entry probe.

Reviewed by: rpaulo
MFC after: 1 week

12 years agoConverting int to wint_t leads to broekn comparison of raw char
kevlo [Fri, 11 Nov 2011 01:35:07 +0000 (01:35 +0000)]
Converting int to wint_t leads to broekn comparison of raw char
and encoded wint_t.

Spotted by: ache