Merge r183572, r173649, r183650, r183690, and r183764 from head to
stable/7:

  Further minor cleanups to UNIX domain sockets:

  - Staticize and locally prototype functions uipc_ctloutput(),
    unp_dispose(), unp_init(), and unp_externalize(), none of which have
    been required outside of uipc_usrreq.c since uipc_proto.c was removed.
  - Remove stale prototype for uipc_usrreq(), which has not existed in the
    code since 1997
  - Forward declare and staticize uipc_usrreqs structure in uipc_usrreq.c
    and not un.h.
  - Comment on why uipc_connect2() is still non-static -- it is used
    directly by fifofs.
  - Remove stale comments, tidy up whitespace.

  Use soconnect2() rather than directly invoking uipc_connect2() to
  interconnect two UNIX domain sockets.

  Now that portalfs doesn't directly invoke uipc_connect2(), make it a
  static symbol.

  Remove stale comment (and XXX saying so) about why we zero the file
  descriptor pointer in unp_freerights: we can no longer recurse into
  unp_gc due to unp_gc being invoked in a deferred way, but it's still
  a good idea.

  Remove stale comment: while uipc_connect2() was, until recently, not
  static so it could be used by fifofs (actually portalfs), it is now
  static.

  Submitted by:   kensmith

Approved by:	re (kensmith)
Merge r183661 from head to stable/7:

  Lock receive socket buffer in soo_stat() rather than commenting that
  we should lock it, which may marginally improve the consistency of
  the results.  Remove comment.

Approved by:	re (gnn)
MFC revision 183744

Improve entropy in source port generation for libalias consumers.

Approved by:	re (kib)
MFC r180756 (by luoqi):
Unbreak cc -pg support on i386 by changing mcount() to always preserve %ecx.

Approved by:	re (kensmith)
MFC r183600:
Change the linprocfs <pid>/maps and procfs <pid>/map handlers to use
sbuf instead of doing uiomove.

Approved by:	re (kensmith)
MFC: Fail requests to boot an amd64 kernel on an i386-only CPU.

Approved by:	re (kib)
MFC change 181604

Fix preselection on auditpipes if they have a different selection mask

Approved by:	re (kib)
MFC change 182311

Fix panics with MAC kernels when a labeled security policy is used
and IP options are present on an mbuf.

Approved by:	re (kib)
Merge r183662 and r183663 from head to stable/7:

  Don't pass curthread to sbreserve_locked() in tcp_do_segment(), as the
  netisr or ithread's socket buffer size limit is not the right limit to
  use.  Instead, pass NULL as the other two calls to sbreserve_locked()
  in the TCP input path (tcp_mss()) do.

  In practice, this is a no-op, as ithreads and the netisr run without a
  process limit on socket buffer use, and a NULL thread pointer leads to
  not using the process's limit, if any.  However, if tcp_input() is
  called in other contexts that do have limits, this may prevent the
  incorrect limit from being used.

  Rewrite sbreserve_locked()'s comment on NULL thread pointers, eliminating
  an XXXRW about the comment being stale.

Approved by:	re (gnn)
Merge r183744 from head to stable/7:

  Fix content and spelling of comment on _ipfw_insn.len -- a count of
  32-bit words, not 32-byte words.

Approved by:	re (kib)
Merge r183664 from head to stable/7:

  Remove temporary debugging KASSERT's introduced to detect protocols
  improperly invoking sosend(), soreceive(), and sopoll() instead of
  attach either specialized or _generic() versions of those functions
  to their pru_sosend, pru_soreceive, and pru_sopoll protosw methods.

Approved by:	re (kib)
Vendor import of tzdata2008h
MFV of r183861
MFC of r183864

- Minor update for Mauritius (which I don't understand)
- Syria goes to DST at 1 November instead of 1 October.
- Niue is now located at the right side of the equator.

Approved by:	re (blackend)
MFC r183660: Limit DMA memory to lower addressable 4GB, without
this patch, we can reliably provoke data corruption on systems
equipped with a plenty of memory during high load.

Approved by:	re (kib)
Some people's 6to4 routers seem to have been blowing up because of
the unlocked route caching in if_stf. Add a mutex that protects
access to cached route. Various versions of this patch were tested
by Pekka Savola, Nick Sayer and Wouter Snels.

Approved by:    re (gnn)
Merge r183675 from head to stable/7:

  In soreceive_dgram, when a 0-length buffer is passed into recv(2) and
  no data is ready, return 0 rather than blocking or returning EAGAIN.
  This is consistent with the behavior of soreceive_generic (soreceive)
  in earlier versions of FreeBSD, and restores this behavior for UDP.

  Discussed with: jhb, sam

Approved by:	re (kib)
MFC r183587:

  sc->ndis_txidx should be cycle between 0 and sc->ndis_maxpkts, not
  NDIS_TXPKTS and don't allocate unused extra spaces for
  sc->ndis_txarray and sc->ndis_txpool.

  PR:		kern/127644
  Submitted by:	Antoine Pelisse <apelisse_at_gmail.com>

Approved by:	re (gnn)
MFC: More CPUID feature flags: SSE4, X2APIC, POPCNT, DTES64, and 1GB
large pages.

Approved by:	re (kib)
MFC r182783:
  Add ZyXEL G-202

  Obtained from:	OpenBSD

Approved by:	re (kib)
MFC r182799:
  Sort products numerically.

Approved by:	re (gnn)
MFC r183814:
  Read PCI device id instead of PCI revision id. Also checks the read
  device id is JMC260 family. Previously it just verified the deivce
  is JMC260 Rev A0. This will make it easy for newer JMC2xx support.

  Pointed out by:	bouyer at NetBSD

MFC r183859:
  Make sure to read the last byte of EEPROM descriptor. Previously
  the last byte of the ethernet address was not read which in turn
  resulted in getting 5 out of the 6 bytes of ethernet address and
  always returned ENOENT. I did not notice the bug on FPGA version
  because of additional configuration data in EEPROM.

  Pointed out by:	bouyer at NetBSD

Approved by:	re (gnn)