Sync lagg(4) with head, merging r240742, r241619:

  r240742 | glebius | 2012-09-20 14:05:10 +0400 (чт, 20 сен 2012) | 4 lines

  Convert lagg(4) to use if_transmit instead of if_start.

  In collaboration with:  thompsa, sbruno, fabient

  r241619 | emax | 2012-10-17 02:43:14 +0400 (ср, 17 окт 2012) | 5 lines

  report total number of ports for each lagg(4) interface
  via net.link.lagg.X.count sysctl
Merge r241037 from head:
  The drbr(9) API appeared to be so unclear, that most drivers in
  tree used it incorrectly, which lead to inaccurate overrated
  if_obytes accounting. The drbr(9) used to update ifnet stats on
  drbr_enqueue(), which is not accurate since enqueuing doesn't
  imply successful processing by driver. Dequeuing neither mean
  that. Most drivers also called drbr_stats_update() which did
  accounting again, leading to doubled if_obytes statistics. And
  in case of severe transmitting, when a packet could be several
  times enqueued and dequeued it could have been accounted several
  times.

  o Thus, make drbr(9) API thinner. Now drbr(9) merely chooses between
    ALTQ queueing or buf_ring(9) queueing.
    - It doesn't touch the buf_ring stats any more.
    - It doesn't touch ifnet stats anymore.
    - drbr_stats_update() no longer exists.

  o buf_ring(9) handles its stats itself:
    - It handles br_drops itself.
    - br_prod_bytes stats are dropped. Rationale: no one ever
      reads them but update of a common counter on every packet
      negatively affects performance due to excessive cache
      invalidation.
    - buf_ring_enqueue_bytes() reduced to buf_ring_enqueue(), since
      we no longer account bytes.

  o Drivers handle their stats theirselves: if_obytes, if_omcasts.

  o mlx4(4), igb(4), em(4), vxge(4), oce(4) and  ixv(4) no longer
    use drbr_stats_update(), and update ifnet stats theirselves.

  o bxe(4) was the most correct driver, it didn't call
    drbr_stats_update(), thus it was the only driver accurate under
    moderate load. Now it also maintains stats itself.

  o ixgbe(4) had already taken stats from hardware, so just
    - drop software stats updating.
    - take multicast packet count from hardware as well.

  o mxge(4) just no longer needs NO_SLOW_STATS define.

  o cxgb(4), cxgbe(4) need no change, since they obtain stats
    from hardware.

  Reviewed by:  jfv, gnn
Merge r242467 from head:
  - If DRM_DEBUG_DEFAULT_ON is defined, then initialize drm_debug_flagi to
    all supported debugging bits.
  - If DRM_DEBUG_DEFAULT_ON isn't defined, then initialize drm_debug_flag
    to zero.

  DRM_DEBUG_DEFAULT_ON is defined when module is build with -DDEBUG_DRM
  or if kernel config has 'options DEBUG_DRM'.

  Reviewed by:  kib
MFC: r242864

  i386 comconsole: don't loop forever if hardware doesn't respond.
MFC: r242863

  add detection of serial console presence to btx and boot2-like blocks.
MFC: r242855, r242865

  - use -march=i386 for both i386 and amd64 builds.
  - cosmetic changes to reduce diffs against i386.
MFC: r239063, r239064, r239069, r240852, r240854

  - boot2: bunch of variables are turned into uint8_t.
  - boot2: Remove unnecessary initializations.
  - loader: replace ugly inb/outb re-implementations with cpufunc.h.
  - Reduce diffs against i386.
MFC: r242870

  Fix build mpboot.s with clang.
MFC: r242866, r242871

  Use ANSI prototype to fix build with clang.
MFC: r240855, r242867, r242868, r242869

  MFi386: r237445

    Commit changes missed from r237435.  Properly calculate the signal
    trampoline addresses after the shared page is enabled.  Handle FreeBSD
    ABIs without shared page support too.

  MFi386: r238792

    Introduce curpcb magic variable.

  MFi386: r211924

    Register an interrupt vector for DTrace return probes.

  Fix some KASSERTs.
  They are missing changes from r208833, r227394 and r227442.

  Reduce diffs against i386.
MFC r242862: zfs_ioc_destroy_snaps_nvl: remove disk device entries for
zvol snapshots
MFC r243213: spa_import_rootpool: fall back to use configuration from zpool.cache
MFC r242568: zfs_vnode_lock: no need to double-guess caller's intentions here
MFC r242569: opensolaris_lookup: use vfs_busy in traverse before calling VFS_ROOT
MFC r242570: zfs_umount: no need to set MNTK_UNMOUNTF here, dounmount
handles that
MFC r242571: zfs_vnode_forget: dispose of larvae vnode using public vfs
api (mostly)
MFC r242572: opensolaris compat: clear VI_MOUNT before returning if
mount_snapshot fails
MFC r242573: zfs: set MNTK_EXTENDED_SHARED flag
MFC r242574: zfsctl_snapdir_lookup: obtain a snapname in the remount case
MFC r243348:

Do not expose LIBCXXRT and LIBCPLUSPLUS in bsd.libnames.mk, if
WITHOUT_LIBCPLUSPLUS is specified.

Submitted by:	Garrett Cooper <yanegomi@gmail.com>