MFC: rev. 1.337, svn 180215

  Remove a bogusly introduced rtalloc_ign() in rev. 1.335/SVN 178029,
  generating an RTM_MISS for every IP packet forwarded making user space
  routing daemons unhappy.

PR:		kern/123621, kern/124540, kern/122338
MFC r180345

  Add missing information for geom_mirror metadata.

  PR:             124434
  Submitted by:   Philip M. Golluci <pgolluci at p6m7g8 dot com>
  MFC after:      3 days

  Prodded through:        bugbusters@

Approved by:	 imp (mentor, implicit)
MFC r179831

  Add another 8139D variant.

  PR:             124622
  Submitted by:   Evgeny Zhirnov <jirnov at gmail dot com>
  Approved by:    imp (mentor, implicit)
  MFC after:      3 days

Approved by:	imp (mentor, implicit)
MFC: r179925

o The FreeBSD bus_dmamap_sync(9) supports ored together flags for quite
  some time now so collapse calls accordingly.
o Given that gem_load_txmbuf() is allowed to fail resulting in a packet
  drop also for quite some time now implement the functionality of
  gem_txcksum() by means of m_pullup(9), which de-obfuscates the code
  and allows to always retrieve the correct length of the IP header.
o Add missing BUS_DMASYNC_PREREAD when syncing the control DMA maps in
  gem_rint() and gem_start_locked().
o Correct some bus_barrier(9) calls to do a read/write barrier as we
  do a read after a write. Add some missing ones in gem_mii_readreg()
  and gem_mii_writereg().
o According to the Apple GMAC driver, the GEM ASIC specification and
  the OpenSolaris eri(7D) the TX FIFO threshold has to be set to 0x4ff
  for the Gigabit variants and 0x100 for the ERI in order do avoid TX
  underruns.
o In gem_init_locked():
  - be conservative and enable the RX and TX MACs,
  - don't clear GEM_LINK otherwise we don't ever mark the link as up
    again if gem_init_locked() is called from gem_watchdog(),
  - remove superfluous setting of sc_ifflags.
o Don't bother to check whether the interface is running or whether its
  queue is empty before calling gem_start_locked() in gem_tint(), the
  former will check these anyway.
o Call gem_start_locked() in gem_watchdog() in order to try to get
  some more packets going.
o In gem_mii_writereg() after reseting the PCS restore its configuration.

GMAC testing:	grehan, marcel
Merge r180349 as well.

  SVN rev 180349 on 2008-07-07 13:08:30Z by remko

  Fix some spelling errors (improper review from my
  side).

  Submitted by:	ed, danger

Submitted by:	Florian Smeets
Improve randomization in BIND to prevent response spoofing.

Security:	FreeBSD-SA-08:06.bind
Approved by:	so (cperciva)
Thanks to:	remko, csjp
No thanks to:	bronchitis
MFC: r175565:

Xref flopen.3 which references this manual page.

PR: 112650
MFC of revision 173401, 173414 and 173396:

gaames/fortune: add FORTUNE_PATH env var, so ports of fortunes can work sanely

	This patch adds an environment variable FORTUNE_PATH, which
	works like PATH for fortune files.

PR:		bin/36867
Submitted by:	Alan Eldridge <ports@geeksrus.net>

[patch] fortune -e implementation bug

	Fix the behaviour of "-e file1 file2" to equally pick them
	instead of only picking the first one.

PR:		bin/70182
Submitted by:	Martin Kulas <coolaz@web.de>
MFC r180166.
  Remove duplicated H/W revision check.
MFC r180167.
  After the change of r176757 re(4) no longer relys on reading
  RL_TXCFG register to identify a device in device probe. Reflect the
  fact by modifing device description with general ethernet
  controller family.
  Note, rl_basetype in struct rl_type is not used and the more
  detailed information is provided with rl_hwrev structure.
MFC r180168.
  While accessing EEPROM command register use pre-defined constant
  instead of hardcoded value.
MFC r180169.
  Switch to memory space register mapping over IO space. If that
  mapping fails fall back to traditional IO space access.
MFC r180171.
  Instead of allocating variables for each events/hardware flags, use
  a dedicated flag that represents controller capabilities/events.
  This will simplify many part of code that requires different
  workaround for each controller revisions and will enhance
  readability.
  While I'm here move PHY wakeup code up before mii_phy_probe() which
  seems to help to wake PHY in some cases.
MFC of r180374

Improve the output of kldload(8) to show which module can't be loaded.

Was:            kldload: Unsupported file type
Is now:         kldload: /boot/modules/test.ko: Unsupported file type

PR:             kern/121276
Submitted by:   Edwin Groothuis <edwin@mavetju.org>
Approved by:    bde (mentor)
MFC after:      1 week
MFC r180172.
  Toggling IFF_ALLMULTI flag does not require full interface
  reintialization.
MFC r180173.
  In device detach don't access ifnet structure unless device is
  attached. This fixes NULL pointer dereference when polling(9) is
  active and unsupported hardware is detected in device attach.
MFC r180174.
  If MSI is not active make sure to disable MSI in EEPROM.
MFC r180175.
  Display detected chip revision in device attach. This will help to
  diagnose revision specific issues in future. Also add 0x to notify
  that the revision number is in hex form.
MFC r180176.
  Add basic support for RTL8168C, RTL8168CP, RTL8111C and RTL8111CP.
  ATM Tx/Rx checksum offload is supported but TSO and jumbo frame is
  not yet supported. Because these newer controllers use different
  descriptor formats, a flag RL_FLAG_DESCV2 flag was introduced to
  handle that case in Tx/Rx handler. Also newer controllers seems to
  require to not touch 'enable Tx/Rx bit' in RL_CPLUS_CMD register
  so don't blindly try to set that bits.

  Note, it seems that there is still power-saving related issue where
  driver fails to attach PHY. Rebooting seems to fix that issue but
  number of required reboots varys.

  Many thanks to users that helped during developement. I really
  appreciate their patient and test/feedbacks.
MFC r180177.
  Add a new RTL8169 variant, 8169SB(L)/8110SB(L).