kernel - Change lockmgr LK_SHARED behavior to fix improper recursion return

* When obtaining a LK_SHARED lock in a situation where you already own the
  lock LK_EXCLUSIVE, lockmgr would downgrade the lock to shared.

  This creates a very serious problem when large procedural recursions get
  a lock that is already being held exclusively but request a shared lock.
  When these recursions return the original top level will find its lock is
  no longer exclusive.

* This problem occured with vnode locks when a VOP_WRITE operation on a mmap'd
  space causes a VM fault which then turns around and issues a read().
  When the fault returns the vnode wound up locked shared instead of
  exclusive.

* Fix the problem by NOT downgrading an exclusive lock to shared when
  recursing on LK_SHARED.  Simply add another count to the exclusive
  lock.
kernel - Adjust UFS and HAMMER to use uiomovebp()

* Add uiomovebp(), a version of uiomove() which is aware of a locked bp
  representing the to or from buffer and can work-around issues related
  to VM faults causing recursions and deadlocks on the user buffer.

  uiomovebp() does not yet detect or handle deadlocks.  Implementing
  deadlock handling will require a certain degree of finess related to
  the vnode and bp locks and we don't want to have to do it unless we
  actually deadlock.  TODO.

* Adjust UFS, HAMMER, TMPFS, MSDOSFS, NFS, NTFS to use uiomovebp().
ixgbe: remove unneeded lockuninit call
newfs_hammer.8: Mdoc fix
pci: Disable memory address decoding before writing 0xffffffff to BAR

This makes PCIe memory mapped configuration works.

Submitted-by: Romick Romick
Tested-by: y0netan1@
pci: Enable PCIe memory mapped configuration again

bd7ad9e91e71693907a00c74ab8dfc457cd655c9 should have fixed the
system hanging seen by y0netan1@
puffs - Comment out namecache purge for now

* Comment out a namecache purge that deadlocks for now.
kernel - Fix condvar races

* Interlocked sleep was not using the PINTERLOCKED flag.

* Misc other adjustments.
Merge branch 'master' into gsocdrm_merger
bnx: Enable 500Khz MII management interface frequency

This stablizes MII read/write, thus avoid MII probing failure

Reported-by: jaydg on #dragonflybsd
Tested-by: jaydg on #dragonflybsd
bge: Always configure MII mode register
bge: Use MPSAFE callout
bce: Rework MSI checkout for 5706 and 5708
bce: Dispatch callouts to interrupt's target CPU
libc: Comment out documentation of svc_control() which we don't have.
Suppress printing of the commands for the manlint target.
Add running 'mandoc -Tlint' to the manlint target.

Also ignore the exit status here.

Suggested-by: nant
unlock_return.cocci: Add vm_object_{hold,drop}().
jme: Don't immediately recycle the TX descriptor even if it is owned by us.

This chip will always update the TX descriptor's 32bits fields in order,
so even if the status field has been updated, i.e. OWN is cleared, it still
does not mean that the buflen field has been updated.  To avoid this race
we don't immediately recycle the currently checking TX descriptor.  Instead,
next TX descriptor's OWN bit is checked, if it is cleared, then the updating
of the currently checked TX descrptor is really done.

This is intended to fix the seldom watchdog timeout that was observed on this
chip.

Thank devinchiu@jmicron.com very much for providing necessary information.
posix_memalign.3: Uncomment conformance sentence for aligned_alloc().