MFC: r253120

- As it turns out, not only MSI-X is broken for devices passed through by
  VMware up to at least ESXi 5.1. Actually, using INTx in that case instead
  may still result in interrupt storms, with MSI being the only working
  option in some configurations. So introduce a PCI_QUIRK_DISABLE_MSIX quirk
  which only blacklists MSI-X but not also MSI and use it for the VMware
  PCI-PCI-bridges. Note that, currently, we still assume that if MSI doesn't
  work, MSI-X won't work either - but that's part of the internal logic and
  not guaranteed as part of the API contract. While at it, add and employ
  a pci_has_quirk() helper.
  Reported and tested by: Paul Bucher
- Use NULL instead of 0 for pointers.

Submitted by:	jhb (mostly)
Approved by:	re (hrs), jhb
MFC r252852:

Update hpt27xx(4) driver to address a problem reported by FreeNAS
user, where when more than one hpt27xx adapters are being used,
the "unit number" stays at 0.

Many thanks to HighPoint for providing this driver update.

(This changeset have not included change found in 249468)

(cherry picked from commit b889e129e6f2e5075c932985a8de61f69aa1a4f9)
MFC/backport core kernel and userspace parts of r237263 (TCP_OFFLOAD
rework).  MFC r237563, r239511, r243603, r245915, r245916, r245919,
r245921, r245922, r245924, r245925, r245932, r245934 too.

Build tested with make universe.

r237263:
- Updated TOE support in the kernel.
...

r237563:
Fix clang warning when compiling iw_cxgb.

r239511:
Correctly handle the case where an inp has already been dropped by the time
the TOE driver reports that an active open failed.  toe_connect_failed is
supposed to handle this but it should be provided the inpcb instead of the
tcpcb which may no longer be around.

r243603:
Make sure that tcp_timer_activate() correctly sees TCP_OFFLOAD (or not).

r245915:
Heed SO_NO_OFFLOAD.

r245916:
Teach toe_4tuple_check() to deal with IPv6 4-tuples too.

r245919:
Add TCP_OFFLOAD hook in syncache_respond for IPv6 too, just like the one
that exists for IPv4.

r245921:
There is no need to call into the TOE driver twice in pru_rcvd (tod_rcvd
and then tod_output right after that).

r245922:
Avoid NULL dereference in nd6_storelladdr when no mbuf is provided.  It
is called this way from a couple of places in the OFED code.  (toecore
calls it too but that's going to change shortly).

r245924:
Move lle_event to if_llatbl.h

lle_event replaced arp_update_event after the ARP rewrite and ended up
in if_ether.h simply because arp_update_event used to be there too.
IPv6 neighbor discovery is going to grow lle_event support and this is a
good time to move it to if_llatbl.h.

The two in-tree consumers of this event - OFED and toecore - are not
affected.

r245925:
Generate lle_event in the IPv6 neighbor discovery code too.

r245932:
Teach toe_l2_resolve to resolve IPv6 destinations too.

r245934:
Add checks for SO_NO_OFFLOAD in a couple of places that I missed earlier
in r245915.

(cherry picked from commit 14ce029690f60a751344eeb985f594e19de0534a)
MFC r252867:

Import HighPoint DC Series Data Center HBA (DC7280 and R750) driver.
This driver works for FreeBSD/i386 and FreeBSD/amd64 platforms.

Many thanks to HighPoint for providing this driver.

(This changeset have not included changes found in 249468 and 246713)

(cherry picked from commit bbe575d85898a4942c9aeee7a8e18b6549702a4a)
Make it possible to import pool if ashift increased.

(cherry-picked from TrueNAS 3b8a0f9f7963caee66433c5ac4eb435e9e8ae6f6)
Fix typo; while I'm there, also correct the description for the sysctl variable.
Increase default ashift to 4K.
Change txg_quiesce back to non-static

This change (originally eb021586e4) has been mistakenly reverted in d01b55b1c3.
It is required to make zilstat work.

Submitted by:	Davide Italiano
MFC r252380:
Unbreak "zfs jail" and "zfs unjail" (broken in stable/9 since r249643)

I missed to register zfs_ioc_jail and zfs_ioc_unjail as legacy ioctl's
with the new zfs_ioctl_register_legacy() function.

These operations do not modify pools or datasets so there is no need to
log them to pool history.

Reported by:	Alexander Leidinger <netchild@FreeBSD.org> on current@
(cherry picked from commit e9345dc8e4b904827c63d74657a9e6cb30e3c849)
MFC r252056:
Fix destroyed ZFS pools failing to import

MFC r252059:
Fix ZFS zpool freeze (debug command) not processing due to invalid ioctl call syntax.

MFC r252060:
Fix intermittent ZFS lock panic

MFC r252061:
Switch ZFS mutex_owner macro to use sx_xholder as its now exported via sx.h

(cherry picked from commit b2b7537d513594904c16ddba20ff401854d2ed19)
MFC r252390:
Remove invalid ASSERT

(cherry picked from commit dabb037967e4a7519429defe038a956acc9b0b62)
Merge r252337 from head:

  Don't try to re-insert an already present but invalid page.

  This could happen if a thread doing a page-in loses a ZFS range lock
  race to a thread writing to the same range

  This fixes "panic: vm_page_alloc: pindex already allocated" in
  http://docs.FreeBSD.org/cgi/mid.cgi?1372165971.96049.42.camel

Submitted by:	avg

(cherry picked from commit 3d1c860017700196460cc094d4718fc9052c79e5)
MFC 253887,253977:

- Use pget(PGET_CANDEBUG | PGET_NOTWEXIT) to determine if the specified
  PID is valid for monitoring in FILEMON_SET_PID ioctl.

- Set the monitored PID to -1 when the process exits.

Suggested by:	jilles
Tested by:	sjg
Clearing the rxbuf flags got lost along the way... adding it back.
Synchronize stable/9 Forth code with head via MFC of 22 revisions:
227727, 233941, 235560, 238431, 241310, 241361, 241363, 241365, 241367,
241523, 242667-242669, 242923, 243114, 243660, 244048, 244089, 244158,
253715, 254105, and 254108.

This includes critical fixes that sadly should have been merged prior.
Namely, SVN r244158 fixes a possible regression.
MFC 235964,236311,247505
	Add the INET opt file creation, module name change, and include
	making the Makefile match HEAD.
MFC r253527:
Move the convert_sigevent32() utility function into freebsd32_misc.c
for consumption outside the vfs_aio.c.

For SIGEV_THREAD_ID and SIGEV_SIGNAL notification delivery methods,
also copy in the sigev_value, since librt event pumping loop compares
note generation number with the value passed through sigev_value.
MFC r253528:
The freebsd32_lio_listio() compat syscall takes the struct sigevent32.
Regenerate.
MFC r253529:
Wrap kmq_notify(2) for compat32 to properly consume struct sigevent32
argument.