]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/log
FreeBSD/FreeBSD.git
8 years agoFix exit status of "service routing start <af> <iface>"
asomers [Thu, 2 Jun 2016 15:31:24 +0000 (15:31 +0000)]
Fix exit status of "service routing start <af> <iface>"

etc/rc.d/routing
Ignore the exit status of options_{inet,inet6,atm}. It's
meaningless.

Reviewed by: hrs
MFC after: 4 weeks
Sponsored by: Spectra Logic Corp
Differential Revision: https://reviews.freebsd.org/D6687

8 years agousb/uhso: Don't bail out on first USB error.
pfg [Thu, 2 Jun 2016 15:30:58 +0000 (15:30 +0000)]
usb/uhso: Don't bail out on first USB error.

CID: 1305680
Submitted by: hselasky
MFC after: 3 days

8 years agoFix typos.
br [Thu, 2 Jun 2016 15:14:40 +0000 (15:14 +0000)]
Fix typos.

8 years agoxen-netfront: use callout_reset_curcpu instead of callout_reset
royger [Thu, 2 Jun 2016 14:25:10 +0000 (14:25 +0000)]
xen-netfront: use callout_reset_curcpu instead of callout_reset

This should help distribute the load of the callbacks.

Suggested by: hps
Sponsored by: Citrix Systems R&D

8 years agoAdded support for Avago/Broadcom Cutlass(12 Gbps- 16 port count) controllers.
kadesai [Thu, 2 Jun 2016 12:26:55 +0000 (12:26 +0000)]
Added support for Avago/Broadcom Cutlass(12 Gbps- 16 port count) controllers.

Submitted by:   Sumit Saxena <Sumit.Saxena@broadcom.com>
Reviewed by:    Kashyap Desai <Kashyap.Desai@broadcom.com>
MFC after:  3 days
Sponsored by:   AVAGO/BROADCOM Limited

8 years agourtw: fix unused variable assignments.
avos [Thu, 2 Jun 2016 12:01:58 +0000 (12:01 +0000)]
urtw: fix unused variable assignments.

Append CWmax and retry limitation to tp->maxretry instead of rewriting it
(will restore pre-r198194 behavior).

Noticed by: pfg, hps

Reported by: Coverity
CID: 13049371304920

8 years agoxen-netfront: perform an interface reset when changing options
royger [Thu, 2 Jun 2016 11:21:00 +0000 (11:21 +0000)]
xen-netfront: perform an interface reset when changing options

The PV backend will only pick the new options when the interface is detached
and reattached again, so perform a full reset when changing options. This is
very fast, and should not be noticeable by the user.

Reviewed by: Wei Liu <wei.liu2@citrix.com>
Sponsored by: Citrix Systems R&D
Differential revision: https://reviews.freebsd.org/D6658

8 years agoxen-netfront: release grant references used for the shared rings
royger [Thu, 2 Jun 2016 11:19:16 +0000 (11:19 +0000)]
xen-netfront: release grant references used for the shared rings

Just calling gnttab_end_foreign_access_ref doesn't free the references,
instead call gnttab_end_foreign_access with a NULL page argument in order to
have the grant references freed. The code that maps the ring
(xenbus_map_ring) already uses gnttab_grant_foreign_access which takes care
of allocating a grant reference.

Reviewed by: Wei Liu <wei.liu2@citrix.com>
Sponsored by: Citrix Systems R&D
Differential revision: https://reviews.freebsd.org/D6608

8 years agoxen-netfront: fix two hotplug related issues
royger [Thu, 2 Jun 2016 11:18:02 +0000 (11:18 +0000)]
xen-netfront: fix two hotplug related issues

This patch fixes two issues seen on hot-unplug. The first one is a panic
caused by calling ether_ifdetach after freeing the internal netfront queue
structures. ether_ifdetach will call xn_qflush, and this needs to be done
before freeing the queues. This prevents the following panic:

Fatal trap 9: general protection fault while in kernel mode
cpuid = 2; apic id = 04
instruction pointer = 0x20:0xffffffff80b1687f
stack pointer         = 0x28:0xfffffe009239e770
frame pointer         = 0x28:0xfffffe009239e780
code segment = base 0x0, limit 0xfffff, type 0x1b
= DPL 0, pres 1, long 1, def32 0, gran 1
processor eflags = interrupt enabled, resume, IOPL = 0
current process = 0 (thread taskq)
[ thread pid 0 tid 100015 ]
Stopped at      strlen+0x1f:    movq    (%rcx),%rax
db> bt
Tracing pid 0 tid 100015 td 0xfffff800038a6000
strlen() at strlen+0x1f/frame 0xfffffe009239e780
kvprintf() at kvprintf+0xfa0/frame 0xfffffe009239e890
vsnprintf() at vsnprintf+0x31/frame 0xfffffe009239e8b0
kassert_panic() at kassert_panic+0x5a/frame 0xfffffe009239e920
__mtx_lock_flags() at __mtx_lock_flags+0x164/frame 0xfffffe009239e970
xn_qflush() at xn_qflush+0x59/frame 0xfffffe009239e9b0
if_detach() at if_detach+0x17e/frame 0xfffffe009239ea10
netif_free() at netif_free+0x97/frame 0xfffffe009239ea30
netfront_detach() at netfront_detach+0x11/frame 0xfffffe009239ea40
[...]

Another panic can be triggered by hot-plugging a NIC:

Fatal trap 18: integer divide fault while in kernel mode
cpuid = 0; apic id = 00
instruction pointer = 0x20:0xffffffff80902203
stack pointer         = 0x28:0xfffffe00508d3660
frame pointer         = 0x28:0xfffffe00508d36a0
code segment = base 0x0, limit 0xfffff, type 0x1b
= DPL 0, pres 1, long 1, def32 0, gran 1
processor eflags = interrupt enabled, resume, IOPL = 0
current process = 2960 (ifconfig)
[ thread pid 2960 tid 100088 ]
Stopped at      xn_txq_mq_start+0x33:   divl    %esi,%eax
db> bt
Tracing pid 2960 tid 100088 td 0xfffff8000850aa00
xn_txq_mq_start() at xn_txq_mq_start+0x33/frame 0xfffffe00508d36a0
ether_output() at ether_output+0x570/frame 0xfffffe00508d3720
arprequest() at arprequest+0x433/frame 0xfffffe00508d3820
arp_ifinit() at arp_ifinit+0x49/frame 0xfffffe00508d3850
xn_ioctl() at xn_ioctl+0x1a2/frame 0xfffffe00508d3890
in_control() at in_control+0x882/frame 0xfffffe00508d3910
ifioctl() at ifioctl+0xda1/frame 0xfffffe00508d39a0
kern_ioctl() at kern_ioctl+0x246/frame 0xfffffe00508d3a00
sys_ioctl() at sys_ioctl+0x171/frame 0xfffffe00508d3ae0
amd64_syscall() at amd64_syscall+0x2db/frame 0xfffffe00508d3bf0
Xfast_syscall() at Xfast_syscall+0xfb/frame 0xfffffe00508d3bf0
--- syscall (54, FreeBSD ELF64, sys_ioctl), rip = 0x8011e185a, rsp =
0x7fffffffe478, rbp = 0x7fffffffe4c0 ---

This is caused by marking the driver as active before it's fully
initialized, and thus calling xn_txq_mq_start with num_queues set to 0.

Reviewed by: Wei Liu <wei.liu2@citrix.com>
Sponsored by: Citrix Systems R&D
Differential revision: https://reviews.freebsd.org/D6646

8 years agoxen-netfront: switch to using an interrupt handler
royger [Thu, 2 Jun 2016 11:16:35 +0000 (11:16 +0000)]
xen-netfront: switch to using an interrupt handler

In order to use custom taskqueues we would have to mask the interrupt, which
is basically what is already done for an interrupt handler, or else we risk
loosing interrupts. This switches netfront to the same interrupt handling
that was done before multiqueue support was added.

Reviewed by: Wei Liu <wei.liu2@citrix.com>
Sponsored by: Citrix Systems R&D

8 years agoxen-netfront: always keep the Rx ring full of requests
royger [Thu, 2 Jun 2016 11:14:26 +0000 (11:14 +0000)]
xen-netfront: always keep the Rx ring full of requests

This is based on Linux commit 1f3c2eba1e2d866ef99bb9b10ade4096e3d7607c from
David Vrabel:

A full Rx ring only requires 1 MiB of memory.  This is not enough memory
that it is useful to dynamically scale the number of Rx requests in the ring
based on traffic rates, because:

a) Even the full 1 MiB is a tiny fraction of a typically modern Linux
   VM (for example, the AWS micro instance still has 1 GiB of memory).

b) Netfront would have used up to 1 MiB already even with moderate
   data rates (there was no adjustment of target based on memory
   pressure).

c) Small VMs are going to typically have one VCPU and hence only one
   queue.

Keeping the ring full of Rx requests handles bursty traffic better than
trying to converge on an optimal number of requests to keep filled.

Reviewed by: Wei Liu <wei.liu2@citrix.com>
Sponsored by: Citrix Systems R&D

8 years agoxen-netfront: fix receiving TSO packets
royger [Thu, 2 Jun 2016 11:12:11 +0000 (11:12 +0000)]
xen-netfront: fix receiving TSO packets

Currently FreeBSD is not properly fetching the TSO information from the Xen
PV ring, and thus the received packets didn't have all the necessary
information, like the segment size or even the TSO flag set.

Sponsored by: Citrix Systems R&D

8 years agoxen: rewrite Xen error translation
royger [Thu, 2 Jun 2016 07:45:01 +0000 (07:45 +0000)]
xen: rewrite Xen error translation

Using the public Xen error code header.

Submitted by: Akshay Jaggi <akshay1994.leo@gmail.com>
Reviewed by: royger

8 years agoxen: add missing #define in include guard.
royger [Thu, 2 Jun 2016 07:43:02 +0000 (07:43 +0000)]
xen: add missing #define in include guard.

Submitted by: Akshay Jaggi <akshay1994.leo@gmail.com>
Reviewed by: royger

8 years ago[iwm] valid_{tx,rx}_ant from radio_cfg is only needed for 8000 family.
adrian [Thu, 2 Jun 2016 06:22:59 +0000 (06:22 +0000)]
[iwm] valid_{tx,rx}_ant from radio_cfg is only needed for 8000 family.

* The "if (!data->valid_tx_ant || !data->valid_rx_ant) {" check was getting
  triggered with a 3165 chipset.

Submitted by: Imre Vadasz <imre@vdsz.com>
Obtained from: DragonflyBSD 3655dfb6fc311fc83e5ce8370dd91b4cd4a37991

8 years ago[iwm] Fix several nitpicks in iwm(4).
adrian [Thu, 2 Jun 2016 05:43:16 +0000 (05:43 +0000)]
[iwm] Fix several nitpicks in iwm(4).

    Move some declarations to if_iwmreg.h.
    Remove iwm_fw_alive(); just call iwm_post_alive() directly.
    Simplify iwm_mvm_add_sta().
    Return timeout error from iwm_apm_init().
    Print a message when init (i.e. boot) firmware fails to load.
    Remove some commented-out code which wouldn't compile anyway.
    Move iwm_mvm_tx_fifo to if_iwmreg.h to match better where Linux puts it.

    Taken-From: OpenBSD (if_iwm.c r1.80 and if_iwmreg.h r1.11)

Submitted by:  Imre Vadasz <imre@vdsz.com>
Obtained from: DragonflyBSD 29fcb331e5620ae145a6ab9cdda830e22fff626a

8 years ago[iwm] Add bit-polling in Rx-DMA init code path.
adrian [Thu, 2 Jun 2016 05:00:52 +0000 (05:00 +0000)]
[iwm] Add bit-polling in Rx-DMA init code path.

    Taken-From: OpenBSD (if_iwm.c r1.80)

Submitted by: Imre Vadasz <imre@vdsz.com>
Obtained from: DragonflyBSD ed35558754288911048cb607e57c688273ebd8d4

8 years ago[iwm] Clean up iwm(4) scanning logic a bit.
adrian [Thu, 2 Jun 2016 04:54:56 +0000 (04:54 +0000)]
[iwm] Clean up iwm(4) scanning logic a bit.

Submitted by: Imre Vadasz <imre@vdsz.com>
Obtained from: DragonflyBSD 8f3ffab9136e33263d424275ec28f57ad2096437

8 years ago[iwm] Use IWM_MAX_CMD_PAYLOAD_SIZE to improve command length checks.
adrian [Thu, 2 Jun 2016 04:53:28 +0000 (04:53 +0000)]
[iwm] Use IWM_MAX_CMD_PAYLOAD_SIZE to improve command length checks.

  Taken-From: OpenBSD (parts of if_iwm.c r1.57 and if_iwmreg.h r1.10)

Obtained from: DragonflyBSD b70c1eaad06257c5c7f4d8110d21642ebec14f42

8 years ago[iwm] add if_iwm_led.c into the build.
adrian [Thu, 2 Jun 2016 04:42:45 +0000 (04:42 +0000)]
[iwm] add if_iwm_led.c into the build.

8 years ago[iwm] add LED blinking for iwm hardware that supports it.
adrian [Thu, 2 Jun 2016 04:42:28 +0000 (04:42 +0000)]
[iwm] add LED blinking for iwm hardware that supports it.

Submitted by: Imre Vadasz <imre@vdsz.com>
Obtained from: DragonflyBSD, Linux iwlwifi/mvm

8 years ago[ath] correctly shift the QCA9565 LNA config into the mci config variable.
adrian [Thu, 2 Jun 2016 04:25:54 +0000 (04:25 +0000)]
[ath] correctly shift the QCA9565 LNA config into the mci config variable.

Tested:

* QCA9565, STA + BT mode

8 years agoAddress feedback from hrs@ re: r301059 (ifconfig subnet mask)
allanjude [Thu, 2 Jun 2016 03:16:02 +0000 (03:16 +0000)]
Address feedback from hrs@ re: r301059 (ifconfig subnet mask)

- Use NI_MAXHOST to size buffers for getnameinfo()
- remove non-standard 'full' inet6 address printing
- remove 'no scope' option
- use strchr(3) to optimize replacing separator character in lladdrs

Reviewed by: gnn, jhb
Differential Revision: https://reviews.freebsd.org/D2856

8 years agoFix kernel build. Improper definition location of a variable.
gnn [Thu, 2 Jun 2016 01:59:41 +0000 (01:59 +0000)]
Fix kernel build.  Improper definition location of a variable.

8 years ago[ath] commit initial bluetooth coexistence support for the MCI NICs.
adrian [Thu, 2 Jun 2016 00:51:36 +0000 (00:51 +0000)]
[ath] commit initial bluetooth coexistence support for the MCI NICs.

This is the initial framework to call into the MCI HAL routines and drive
the basic state engine.

The MCI bluetooth coex model uses a command channel between wlan and
bluetooth, rather than a 2-wire or 3-wire signaling protocol to control things.
This means the wlan and bluetooth chip exchange a lot more information and
signaling, even at the per-packet level.  The NICs in question can share
the input LNA and output PA on the die, so they absolutely can't stomp
on each other in a silly fashion.  It also allows for the bluetooth side
to signal when profiles come and go, so the driver can take appropriate
control.  There's also the possibility of dynamic bluetooth/wlan duty cycle
control which I haven't yet really played with.

It configures things up with a static "wlan wins everything" coexistence,
configures up the available 2GHz channel map for bluetooth, sets a static
duty cycle for bluetooth/wifi traffic priority and drives the basics needed to
keep the MCI HAL code happy.

It doesn't do any actual coexistence except to default to "wlan wins everything",
which at least demonstrates that things do indeed work.  Bluetooth inquiry frames
still trump wifi (including beacons), so that demonstrates things really do
indeed seem to work.

Tested:

* AR9462 (WB222), STA mode + bt
* QCA9565 (WB335), STA mode + bt

TODO:

* .. the rest of coexistence.  yes, bluetooth, not people.  That stuff's hard.
* It doesn't do the initial BT side calibration, which requires a WLAN chip
  reset.  I'll fix up the reset path a bit more first before I enable that.
* The 1-ant and 2-ant configuration bits aren't being set correctly in
  if_ath_btcoex.c - I'll dig into that and fix it in a subsequent commit.
* It's not enabled by default for WB222/WB225 even though I believe it now
  can be - I'll chase that up in a subsequent commit.

Obtained from: Qualcomm Atheros, Linux ath9k

8 years agoBelatedly bump .Dd date for Dummynet AQM import in r300779.
truckman [Thu, 2 Jun 2016 00:42:15 +0000 (00:42 +0000)]
Belatedly bump .Dd date for Dummynet AQM import in r300779.

8 years agoAdd myself as src commiter.
landonf [Wed, 1 Jun 2016 23:20:32 +0000 (23:20 +0000)]
Add myself as src commiter.

Approved by: adrian (mentor)
Differential Revision: https://reviews.freebsd.org/D6686

8 years agoRemove the BUGS entry in memguard's man page.
markj [Wed, 1 Jun 2016 22:34:21 +0000 (22:34 +0000)]
Remove the BUGS entry in memguard's man page.

UMA refcounting is gone as of r296243, so this bug no longer exists. In
particular, it's now possible to guard mbuf clusters with memguard.

8 years agoFix memguard(9) in kernels with INVARIANTS enabled.
markj [Wed, 1 Jun 2016 22:31:35 +0000 (22:31 +0000)]
Fix memguard(9) in kernels with INVARIANTS enabled.

With r284861, UMA zones use the trash ctor and dtor by default. This is
incompatible with memguard, which frees the backing page when the item
is freed. Modify the UMA debug functions to be no-ops if the item was
allocated from memguard. This also fixes constructors such as
mb_ctor_pack(), which invokes the trash ctor in addition to performing
some initialization.

Reviewed by: glebius
MFC after: 3 weeks
Differential Revision: https://reviews.freebsd.org/D6562

8 years agoImprove the English in a comment
asomers [Wed, 1 Jun 2016 22:21:42 +0000 (22:21 +0000)]
Improve the English in a comment

sys/cddl/contrib/opensolaris/uts/common/sys/acl.h:
Improve the english in a comment.  No functional changes

Submitted by: gibbs
MFC after: 4 weeks
Sponsored by: Spectra Logic Corp

8 years agoWhen we are in panic, always go the asynchronous path in g_mirror_destroy(),
glebius [Wed, 1 Jun 2016 22:11:54 +0000 (22:11 +0000)]
When we are in panic, always go the asynchronous path in g_mirror_destroy(),
otherwise the system will hang.

This is a temporarily least intrusive crutch to get certain panicing systems
dumping. The proper fix should question is g_mirror_destroy() should be called
on a panicing system at all.

Discussed with: mav

8 years agoImport NetBSD's blacklist source from vendor tree
lidl [Wed, 1 Jun 2016 22:04:10 +0000 (22:04 +0000)]
Import NetBSD's blacklist source from vendor tree

This import includes The basic blacklist library and utility programs,
to add a system-wide packet filtering notification mechanism to
FreeBSD.

The rational behind the daemon was given by Christos Zoulas in a
presentation at vBSDcon 2015: https://youtu.be/fuuf8G28mjs

Reviewed by: rpaulo
Approved by: rpaulo
Obtained from: NetBSD
Relnotes: YES
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D5912

8 years agothr_*(2): Add xrefs to what libthr implements using each syscall.
jilles [Wed, 1 Jun 2016 21:58:13 +0000 (21:58 +0000)]
thr_*(2): Add xrefs to what libthr implements using each syscall.

Add text to thr_exit(2) and thr_new(2) discouraging their use in
applications since calling these in a process with libthr loaded will
confuse libthr and is likely to cause hangs or crashes.

The thr_kill2(2) call is not used by libthr and may be useful in special
applications.

The other calls can be used in applications but it should not be necessary.

8 years agoTag import of NetBSD's external/bsd/blacklist
lidl [Wed, 1 Jun 2016 21:52:12 +0000 (21:52 +0000)]
Tag import of NetBSD's external/bsd/blacklist

Reviewed by: rpaulo
Approved by: rpaulo
Sponsored by: The FreeBSD Foundation

8 years agoReviewed by: rpaulo
lidl [Wed, 1 Jun 2016 21:48:22 +0000 (21:48 +0000)]
Reviewed by: rpaulo
Approved by: rpaulo
Obtained from: NetBSD external/bsd/blacklist @ 20160409
Relnotes: YES
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D5912

8 years agoSkein was not meant to be connected to libcrypto
allanjude [Wed, 1 Jun 2016 20:55:25 +0000 (20:55 +0000)]
Skein was not meant to be connected to libcrypto

It is not a password hashing algorithm

Reported by: cem

8 years agoDon't call setgrent() in an unportable way.
ed [Wed, 1 Jun 2016 20:45:21 +0000 (20:45 +0000)]
Don't call setgrent() in an unportable way.

For FreeBSD 12, I'm considering updating setgrent() to have a function
prototype that conforms to POSIX. FreeBSD seems to be the only operating
system that lets setgrent() return an integer. It's also inconsistent
with setpwent().

It looks like our libcasper depends on setgrent() returning an integer.
Get rid of that.

Reviewed by: oshogbo
Differential Revision: https://reviews.freebsd.org/D6659

8 years agoRevert r301137 and r301163, and implement a correct fix
gjb [Wed, 1 Jun 2016 20:44:28 +0000 (20:44 +0000)]
Revert r301137 and r301163, and implement a correct fix
for the CONFS issue with dma.conf and ppp.conf.

Thank you very much to Bryan Drewery for looking into the
problem and providing this fix.

Pointyhat: gjb
Sponsored by: The FreeBSD Foundation

8 years agoIf the fast path unbusy in vm_page_replace() fails, slow path needs to
kib [Wed, 1 Jun 2016 20:39:00 +0000 (20:39 +0000)]
If the fast path unbusy in vm_page_replace() fails, slow path needs to
acquire the page lock, which recurses.  Avoid the recursion by reusing
the code from vm_page_remove() in a new helper
vm_page_xunbusy_maybelocked().

Reviewed by: alc
Sponsored by: The FreeBSD Foundation

8 years agoImplement a hack to re-enable installation of the dma.conf.
gjb [Wed, 1 Jun 2016 20:06:55 +0000 (20:06 +0000)]
Implement a hack to re-enable installation of the dma.conf.

The 'CONFS' entries in share/mk/bsd.confs.mk explicitly check
for the 'installconfig', but does not behave properly with the
'distribute' target.

This seems to be related to the previously-reported issues
with files within /etc in the past.

Reported by: Ben Woods
Sponsored by: The FreeBSD Foundation

8 years agoReplace constant expressions that contain multiplications by
truckman [Wed, 1 Jun 2016 20:04:24 +0000 (20:04 +0000)]
Replace constant expressions that contain multiplications by
fractional floating point values with integer divides.  This will
eliminate any chance that the compiler will generate code to evaluate
the expression using floating point at runtime.

Suggested by: bde
Submitted by: Rasool Al-Saadi <ralsaadi@swin.edu.au>
MFC after: 8 days (with r300779 and r300949)

8 years agoFix the library name.
oshogbo [Wed, 1 Jun 2016 19:54:17 +0000 (19:54 +0000)]
Fix the library name.

Reviewed by: bdrewery

8 years agops(1): Expand variables to match expanded fields
cem [Wed, 1 Jun 2016 19:54:05 +0000 (19:54 +0000)]
ps(1): Expand variables to match expanded fields

ki_flag and ki_tdflag have been 'long', not 'int', since 2000 and 2005,
respectively.

Submitted by: Shawn Wills <swills at isilon dot com>
Sponsored by: EMC / Isilon Storage Division

8 years agoDocument behavior of wait introduced in the r286698.
oshogbo [Wed, 1 Jun 2016 19:49:38 +0000 (19:49 +0000)]
Document behavior of wait introduced in the r286698.

Suggested by: glebius
Reviewed by: wblock, bjk
Differential Revision: https://reviews.freebsd.org/D6080

8 years agoiw_cxgbe: Fix panic that occurs when c4iw_ev_handler tries to acquire
np [Wed, 1 Jun 2016 18:46:54 +0000 (18:46 +0000)]
iw_cxgbe: Fix panic that occurs when c4iw_ev_handler tries to acquire
comp_handler_lock but c4iw_destroy_cq has already freed the CQ memory
(which is where the lock resides).

Submitted by: Krishnamraju Eraparaju @ Chelsio
Sponsored by: Chelsio Communications

8 years agoMicrooptimize locking primitives by avoiding unnecessary atomic ops.
mjg [Wed, 1 Jun 2016 18:32:20 +0000 (18:32 +0000)]
Microoptimize locking primitives by avoiding unnecessary atomic ops.

Inline version of primitives do an atomic op and if it fails they fallback to
actual primitives, which immediately retry the atomic op.

The obvious optimisation is to check if the lock is free and only then proceed
to do an atomic op.

Reviewed by: jhb, vangyzen

8 years agoThe (i < PROMPTLEN - 1) test added by r300442 in the code for the default
truckman [Wed, 1 Jun 2016 16:56:29 +0000 (16:56 +0000)]
The (i < PROMPTLEN - 1) test added by r300442 in the code for the default
case of \c in the prompt format string is a no-op.  We already passed
this test at the top of the loop, and i has not yet been incremented in
this path.  Change this test to (i < PROMPTLEN - 2).

Reported by: Coverity
CID: 1008328
Reviewed by: cem
MFC after: 1 week

8 years agosed(1): Fix a mismatch and sync with the OpenBSD's commit.
pfg [Wed, 1 Jun 2016 16:53:02 +0000 (16:53 +0000)]
sed(1): Fix a mismatch and sync with the OpenBSD's commit.

This was causing some strange behaviour.

Reported by: olivier
Obtained from: OpenBSD (CVS rev. 1.28)

8 years agoRevert r289096:
gjb [Wed, 1 Jun 2016 16:45:08 +0000 (16:45 +0000)]
Revert r289096:

Files listed in 'CONFS' are not properly included in new
installations (missing from base.txz), for reasons I still
do not fully understand.

This reverts the change excluding /etc/ppp/ppp.conf from
a new installation.  /etc/dma/dma.conf is also affected,
but requires a different solution, still being investigated.

Reported by: Ben Woods
Sponsored by: The FreeBSD Foundation

8 years agolibthr: Use formatted PANIC()
cem [Wed, 1 Jun 2016 16:12:26 +0000 (16:12 +0000)]
libthr: Use formatted PANIC()

No functional change, although _thread_printf() may be slightly less functional
or render some values differently from libc snprintf(3).  No ABI change.

Reviewed by: kib
Sponsored by: EMC / Isilon Storage Division
Differential Revision: https://reviews.freebsd.org/D6672

8 years agolibthr: _thread_vprintf: Enhance support for %p, %#x
cem [Wed, 1 Jun 2016 16:11:09 +0000 (16:11 +0000)]
libthr: _thread_vprintf: Enhance support for %p, %#x

No functional change.  No ABI change.

Reviewed by: kib
Sponsored by: EMC / Isilon Storage Division
Differential Revision: https://reviews.freebsd.org/D6672

8 years agolibthr: Add vprintf variant of _thread_printf, formatted PANIC()
cem [Wed, 1 Jun 2016 16:09:56 +0000 (16:09 +0000)]
libthr: Add vprintf variant of _thread_printf, formatted PANIC()

No ABI change.

Reviewed by: kib
Sponsored by: EMC / Isilon Storage Division
Differential Revision: https://reviews.freebsd.org/D6672

8 years ago[ath_hal] add azimuth timestamp payload marking for AR9380 and later chips.
adrian [Wed, 1 Jun 2016 15:56:07 +0000 (15:56 +0000)]
[ath_hal] add azimuth timestamp payload marking for AR9380 and later chips.

8 years agourtwn: unbreak CTS-to-self protection mode.
avos [Wed, 1 Jun 2016 15:47:19 +0000 (15:47 +0000)]
urtwn: unbreak CTS-to-self protection mode.

Do not set HWRTSEN bit when CTS-to-self is used; CTS2SELF bit triggers
CTS frame transmission by itself (and it does not work when HWRTSEN bit
is set).

Tested with:
 * RTL8188CUS, HOSTAP mode (11g)
 * RTL8188EU, STA mode (11g)

8 years agoFix tzsetup not installing /etc/localtime for UTC
smh [Wed, 1 Jun 2016 15:39:11 +0000 (15:39 +0000)]
Fix tzsetup not installing /etc/localtime for UTC

If tzsetup UTC is run then it successfully configured the system for UTC
including installing /etc/localtime however if the user ran just tzsetup
for interactive configuration and select UTC no /etc/localtime was installed
which resulted in failures for utilities which require said file.

Change set_zone_utc to call install_zoneinfo("UTC") to ensure that
/etc/localtime is created for interactive UTC selection.

Users who have previously run tzsetup in interactive mode and select UTC
can install the missing /etc/localtime by running tzsetup -r.

Also correct static miss-match for set_zone_utc.

MFC after: 2 weeks
Relnotes: Yes
Sponsored by: Multiplay

8 years agoEnable filemon on all architectures.
bdrewery [Wed, 1 Jun 2016 15:19:49 +0000 (15:19 +0000)]
Enable filemon on all architectures.

MFC after: 2 weeks
Sponsored by: EMC / Isilon Storage Division

8 years agourtwn: fix non-ERP BSS detection in HOSTAP mode.
avos [Wed, 1 Jun 2016 14:57:53 +0000 (14:57 +0000)]
urtwn: fix non-ERP BSS detection in HOSTAP mode.

Receive all beacons in HOSTAP mode; they will give more information about
present non-ERP / legacy BSSs (used to choose protection mode).

Tested with RTL8188CUS (HOSTAP, urtwn) + RTL8821AU (HOSTAP, 11b mode).

8 years agosfxge(4): cleanup: remove unused variables in common code
arybchik [Wed, 1 Jun 2016 14:16:16 +0000 (14:16 +0000)]
sfxge(4): cleanup: remove unused variables in common code

Submitted by:   Andy Moreton <amoreton at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week

8 years agoAdd support for loadable kernel modules.
br [Wed, 1 Jun 2016 14:12:31 +0000 (14:12 +0000)]
Add support for loadable kernel modules.

Submitted by: Yukishige Shibata <y-shibat@mtd.biglobe.ne.jp>

8 years agosfxge(4): cleanup: add missing space after if keyword
arybchik [Wed, 1 Jun 2016 14:11:40 +0000 (14:11 +0000)]
sfxge(4): cleanup: add missing space after if keyword

Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week

8 years agoBuild riscv modules as PIC.
br [Wed, 1 Jun 2016 14:05:32 +0000 (14:05 +0000)]
Build riscv modules as PIC.

Submitted by: Yukishige Shibata <y-shibat@mtd.biglobe.ne.jp>

8 years agoAdd a riscv define.
br [Wed, 1 Jun 2016 14:03:13 +0000 (14:03 +0000)]
Add a riscv define.

Submitted by: Yukishige Shibata <y-shibat@mtd.biglobe.ne.jp>

8 years agosfxge(4): set moderation in efx_ev_qcreate
arybchik [Wed, 1 Jun 2016 14:03:07 +0000 (14:03 +0000)]
sfxge(4): set moderation in efx_ev_qcreate

This simplifies setting an initial interrupt moderation value, and
avoids most calls to evx_ev_qmoderate from contexts where MCDI is
not allowed (MCDI is need for an EVQ timer workaround in a later patch).

Submitted by:   Andy Moreton <amoreton at solarflare.com>
Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D6673

8 years agoDon't build some modules on RISC-V.
br [Wed, 1 Jun 2016 13:43:43 +0000 (13:43 +0000)]
Don't build some modules on RISC-V.

Submitted by: Yukishige Shibata <y-shibat@mtd.biglobe.ne.jp>

8 years ago* Enable KDTRACE options as we support DTrace now.
br [Wed, 1 Jun 2016 12:19:00 +0000 (12:19 +0000)]
* Enable KDTRACE options as we support DTrace now.
* Add bpf device to kernel config.

8 years agoReduce the priority of cxgbei(4) driver, so it doesn't get chosen
trasz [Wed, 1 Jun 2016 12:04:04 +0000 (12:04 +0000)]
Reduce the priority of cxgbei(4) driver, so it doesn't get chosen
by default.  This is a workaround for a too simplistic ICL module
choosing mechanism.  To use it, specify offload in ctl.conf
or iscsi.conf.

This fixes a problem where "kldload cxgbei" wedges the iSCSI stack,
if you don't have a Chelsio card installed, or the endpoints of the
iSCSI session are not reachable through addresses configured
on that interface.

Reviewed by: np@
MFC after: 1 month

8 years agoDescribe default value for "offload".
trasz [Wed, 1 Jun 2016 11:45:06 +0000 (11:45 +0000)]
Describe default value for "offload".

MFC after: 1 month

8 years agoDon't use fixup for C99 and up, the compiler result is already correct.
ache [Wed, 1 Jun 2016 10:14:25 +0000 (10:14 +0000)]
Don't use fixup for C99 and up, the compiler result is already correct.

Suggested by: bde

MFC after:      1 week

8 years agoThe pr_destroy field does not allow us to run the teardown code in a
bz [Wed, 1 Jun 2016 10:14:04 +0000 (10:14 +0000)]
The pr_destroy field does not allow us to run the teardown code in a
specific order.  VNET_SYSUNINITs however are doing exactly that.
Thus remove the VIMAGE conditional field from the domain(9) protosw
structure and replace it with VNET_SYSUNINITs.
This also allows us to change some order and to make the teardown functions
file local static.
Also convert divert(4) as it uses the same mechanism ip(4) and ip6(4) use
internally.

Slightly reshuffle the SI_SUB_* fields in kernel.h and add a new ones, e.g.,
for pfil consumers (firewalls), partially for this commit and for others
to come.

Reviewed by: gnn, tuexen (sctp), jhb (kernel.h)
Obtained from: projects/vnet
MFC after: 2 weeks
X-MFC: do not remove pr_destroy
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D6652

8 years agohyperv: Rename some cleaned up/almost cleaned up files
sephe [Wed, 1 Jun 2016 09:20:52 +0000 (09:20 +0000)]
hyperv: Rename some cleaned up/almost cleaned up files

MFC after: 1 week
Sponsored by: Microsoft OSTC

8 years agoReturn real error value instead of hard-coded ENXIO (fix after r300149)
zbb [Wed, 1 Jun 2016 08:20:10 +0000 (08:20 +0000)]
Return real error value instead of hard-coded ENXIO (fix after r300149)

It is possible to return real error value in case of gic_v3_attach()
failure instead of hard-coded ENXIO.

Obtained from: Semihalf
Sponsored by: Cavium

8 years agoDefine the id_t type as required by POSIX.
ed [Wed, 1 Jun 2016 07:45:03 +0000 (07:45 +0000)]
Define the id_t type as required by POSIX.

It seems that all versions of POSIX that I could find require that
<sys/resource.h> defines id_t. Define it together with rlim_t. While
there, move these typedefs closer to the top of the header file, right
after the includes, which we do in most other header files.

8 years agohyperv/channel: Only cpu0 is supported as channel target cpu on WIN7
sephe [Wed, 1 Jun 2016 07:11:54 +0000 (07:11 +0000)]
hyperv/channel: Only cpu0 is supported as channel target cpu on WIN7

MFC after: 1 week
Sponsored by: Microsoft OSTC

8 years agohyperv/vmbus: Redefine event flags.
sephe [Wed, 1 Jun 2016 06:51:44 +0000 (06:51 +0000)]
hyperv/vmbus: Redefine event flags.

- Nuke unnecessary union.
- Avoid convoluted macro indirection.

MFC after: 1 week
Sponsored by: Microsoft OSTC
Differential Revision: https://reviews.freebsd.org/D6671

8 years agosfxge(4): cope with code duplication on SW events composition
arybchik [Wed, 1 Jun 2016 06:51:19 +0000 (06:51 +0000)]
sfxge(4): cope with code duplication on SW events composition

Sponsored by:   Solarflare Communications, Inc.
MFC after:      2 days
Differential Revision:  https://reviews.freebsd.org/D6666

8 years agoFix missing space in mandoc syntax
allanjude [Wed, 1 Jun 2016 06:18:34 +0000 (06:18 +0000)]
Fix missing space in mandoc syntax

Reported by: rpokala

8 years agobge: Force chipid to 5720 A0 for 5717 C0 in an early place
sephe [Wed, 1 Jun 2016 05:15:11 +0000 (05:15 +0000)]
bge: Force chipid to 5720 A0 for 5717 C0 in an early place

Discussed with: yongari
MFC after: 1 week
Sponsored by: Microsoft OSTC

8 years agoDon't rely on $ntpd_enable to periodically fetch the latest
cy [Wed, 1 Jun 2016 04:37:43 +0000 (04:37 +0000)]
Don't rely on $ntpd_enable to periodically fetch the latest
leapfile.

Suggested by: cperciva
MFC after: 1 week

8 years agoTurn off nfsv4acls for arm/armv6 builds, which has an impact
gjb [Wed, 1 Jun 2016 04:18:55 +0000 (04:18 +0000)]
Turn off nfsv4acls for arm/armv6 builds, which has an impact
on performance, especially with SD cards on certain SoCs.

Requested by: trasz
Discussed with: ian, kientzle

MFC after: 3 days
Sponsored by: The FreeBSD Foundation

8 years ago[ath_hal] implement shared PA handling checks, based on ath9k.
adrian [Wed, 1 Jun 2016 03:49:22 +0000 (03:49 +0000)]
[ath_hal] implement shared PA handling checks, based on ath9k.

These are apparently conditional on there being a shared PA/LNA, which
at least on AR9462/QCA9535 devices I have isn't a thing.

I'm .. not yet sure which devices it /is/ a thing, so I'll come back
to that.

Tested:

* QCA9565 STA + bluetooth

Obtained from: Linux ath9k

8 years agoUpdate zfs(8) and zpool-features(7) man pages with new hashing algorithms
allanjude [Wed, 1 Jun 2016 03:36:31 +0000 (03:36 +0000)]
Update zfs(8) and zpool-features(7) man pages with new hashing algorithms

Sponsored by: ScaleEngine Inc.

8 years ago[ath_hal] add MCI bits from ath9k for QCA9565
adrian [Wed, 1 Jun 2016 03:27:33 +0000 (03:27 +0000)]
[ath_hal] add MCI bits from ath9k for QCA9565

* Add extra debugging - the weights debugging is really useful to ensure
  things are programmed into the wlan coexistence table.  The weights are
  what traffic priority each of the various modes get (tx, tx-high-priority,
  rx-beacon, etc) if they're all zero, things work very poorly.

* Add in coex init routines from ath9k for AR9462 and QCA9565 1ANT and 2ANT.
  This control things like beacon stomping, ACK handling, antennas, PA/LNA
  shared, etc.

* Some ancillary bits.

TODO:

* There's some conditional stuff around MCI_ANT_ARCH_PA_LNA_SHARED() in ath9k
  which doesn't always enable force-on LNA.  That'll have to be examined
  and merged in as appropriate.

Obtained from: linux ath9k

8 years ago[ath_hal] add support for QCA9565 for configuring the bluetooth antenna LNA diversity.
adrian [Wed, 1 Jun 2016 03:24:53 +0000 (03:24 +0000)]
[ath_hal] add support for QCA9565 for configuring the bluetooth antenna LNA diversity.

Notably, this also sets AR_BTCOEX_WL_LNADIV to FORCE_ON, so LNA diversity
is always enabled and under control of the wifi chip.

Tested:

* QCA9565, STA + bluetooth mode

Obtained from: Linux ath9k

8 years ago[ath_hal] Allow the BT antenna diversity option to be enabled for QCA9565.
adrian [Wed, 1 Jun 2016 03:21:23 +0000 (03:21 +0000)]
[ath_hal] Allow the BT antenna diversity option to be enabled for QCA9565.

Obtained from: Linux ath9k

8 years ago[ath_hal] add QCA9565 bluteooth antenna control.
adrian [Wed, 1 Jun 2016 03:20:55 +0000 (03:20 +0000)]
[ath_hal] add QCA9565 bluteooth antenna control.

This configures the LNA antenna diversity control, which should be on
if wlan owns the LNA for bluetooth coexistence.  Otherwise, make sure
it's off.

I think this is eventually intended to allow 1-antenna bluetooth +
wifi setups for QCA9565, but I'm not sure where that's actually configured
in ath9k.

Obtained from: Linux ath9k

8 years ago[ath_hal] add extra debugging for MCI interrupts.
adrian [Wed, 1 Jun 2016 03:17:36 +0000 (03:17 +0000)]
[ath_hal] add extra debugging for MCI interrupts.

8 years agomkimg: Indicate that input file pages are unlikely to be reused.
markj [Wed, 1 Jun 2016 02:30:06 +0000 (02:30 +0000)]
mkimg: Indicate that input file pages are unlikely to be reused.

mkimg(1) uses a swap file to back input file chunks. When the output file
is being written out, blocks of the swap file are mapped and their contents
copied. This causes the backing VM pages to enter the active queue, and when
the output file is large relative to system memory (as is generally the
case), can result in a shortfall of inactive memory. This causes the
pagedaemon to aggressively scan the active queue and swap out process
memory in an attempt to meet the shortfall. Because mkimg's input files
are typically the intermediate result of some build process, there's no
need to push them all through the active queue. Use madvise(2) to indicate
that the backing pages may be reclaimed in preference to active pages. In
the case of the swap file, these pages will be freed as soon as mkimg
exits anyway.

When using mkimg on a desktop-class system with large amounts of dirty
process memory, this change substantially improves mkimg runtime and
reduces swap usage.

Reviewed by: marcel
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D6654

8 years ago[ath_hal] add extra MCI definitions used by the later chips (QCA9565/Aphrodite).
adrian [Wed, 1 Jun 2016 01:43:46 +0000 (01:43 +0000)]
[ath_hal] add extra MCI definitions used by the later chips (QCA9565/Aphrodite).

Obtained from: Linux ath9k

8 years agoWITH_META_MDE: Fix machine/include and x86/include issues.
bdrewery [Tue, 31 May 2016 23:40:21 +0000 (23:40 +0000)]
WITH_META_MDE: Fix machine/include and x86/include issues.

- Fixes 'ln: File exists' errors.
- Fixes creating include directories in the source directory as well.

Sponsored by: EMC / Isilon Storage Division

8 years agoCoverity fixes for r300906
asomers [Tue, 31 May 2016 23:26:45 +0000 (23:26 +0000)]
Coverity fixes for r300906

lib/libdevdctl/consumer.cc
In Consumer::DisconnectFromDevd, don't close the socket if it's
already closed.

cddl/usr.sbin/zfsd/case_file.cc
lib/libdevdctl/consumer.h
Delete dead code leftover from before devd(8) gained SOCK_SEQPACKET
support

Reported by: Coverity
CID: 13561551356169
Sponsored by: Spectra Logic Corp

8 years agoDefine SYSDIR earlier since the defined(FIRMWS) block depends on it.
bdrewery [Tue, 31 May 2016 23:14:15 +0000 (23:14 +0000)]
Define SYSDIR earlier since the defined(FIRMWS) block depends on it.

It uses it in a dependency, which won't work if it is not yet defined.

Sponsored by: EMC / Isilon Storage Division

8 years agoAdd missed updates for r301079 and r301084.
bdrewery [Tue, 31 May 2016 23:12:43 +0000 (23:12 +0000)]
Add missed updates for r301079 and r301084.

8 years agoWITH_META_MODE: Resolve SYSDIR to avoid changed build commands.
bdrewery [Tue, 31 May 2016 23:08:43 +0000 (23:08 +0000)]
WITH_META_MODE: Resolve SYSDIR to avoid changed build commands.

Sponsored by: EMC / Isilon Storage Division

8 years agoWITH_META_MODE: Require filemon(4) be loaded.
bdrewery [Tue, 31 May 2016 22:37:11 +0000 (22:37 +0000)]
WITH_META_MODE: Require filemon(4) be loaded.

Since META_MODE is being sold and used as a working incremental build, it won't
make much sense if filemon data is excluded.  There is no way to recover
from that in a subsequent build.

Sponsored by: EMC / Isilon Storage Division

8 years agoFix a crash while iterating compat strings when no match is found.
jmcneill [Tue, 31 May 2016 21:58:09 +0000 (21:58 +0000)]
Fix a crash while iterating compat strings when no match is found.

Spotted by: ian

8 years agoMake RLIM_INFINITY usable without including <stdint.h>.
ed [Tue, 31 May 2016 21:34:02 +0000 (21:34 +0000)]
Make RLIM_INFINITY usable without including <stdint.h>.

By using __uint64_t instead of uint64_t, this constant can also be used
if <sys/resource.h> is included on its own.

8 years agozfsd: Remove a redundant semicolon,
pfg [Tue, 31 May 2016 21:23:57 +0000 (21:23 +0000)]
zfsd: Remove a redundant semicolon,

8 years agoWITH_META_MODE: Mitigate switching from without to with META_MODE.
bdrewery [Tue, 31 May 2016 21:22:19 +0000 (21:22 +0000)]
WITH_META_MODE: Mitigate switching from without to with META_MODE.

Adding .META to targets-to-build will ensure that they will rebuild if there
is no .meta file.

Adding it to all SUFFIXES and objects ensures that at least objects will
rebuild if there is no .meta file.

This will be reverted if bmake's behavior changes to rebuild on missing .meta
files.

Sponsored by: EMC / Isilon Storage Division

8 years agoRemove mentions that PTHREAD_PROCESS_SHARED is not supported from man pages.
jilles [Tue, 31 May 2016 21:16:34 +0000 (21:16 +0000)]
Remove mentions that PTHREAD_PROCESS_SHARED is not supported from man pages.

Also add support for process-shared synchronization objects to the HISTORY
sections where they already exist.

8 years agoFix typo ESRC -> ESRCH in pthread man pages.
jilles [Tue, 31 May 2016 21:09:42 +0000 (21:09 +0000)]
Fix typo ESRC -> ESRCH in pthread man pages.