Move root_mount_hold() functionality to separate mutex.

It has nothing to share with mutex protecting list of mounted file systems.
Add a driver for Serial Peripheral Interface (SPI).
Add UUIDs for DragonFlyBSD's partition types.

MFC after:	2 weeks
Add DragonFlyBSD's Hammer FS types and type names.

MFC after:	2 weeks
Add aliases for DragonFlyBSD's partition types.

MFC after:	2 weeks
Allow swapping to DragonFlyBSD's swap partition.

MFC after:	2 weeks
Add disklabel64 support to GEOM_PART class.

This partitioning scheme is used in DragonFlyBSD. It is similar to
BSD disklabel, but has the following improvements:
* metadata has own dedicated place and isn't accessible through partitions;
* all offsets are 64-bit;
* supports 16 partitions by default (has reserved place for more);
* has reserved place for backup label (but not yet implemented);
* has UUIDs for partitions and partition types;

No objections from:	geom
MFC after:	2 weeks
Relnotes:	yes
Add disklabel64 support

MFC after:	2 weeks
Improve logic besides net.bpf.optimize_writers.
Direct bpf(4) consumers should now work fine with this tunable turned on.
In fact, the only case when optimized_writers can change program
behavior is direct bpf(4) consumer setting its read filter to
catch-all one.

MFC after:	2 weeks
Sponsored by:	Yandex LLC
Remove unneeded mountlist_mtx acquisition from sync_fsync().

All struct mount fields accessed by sync_fsync() are protected by MNT_MTX.
Fix various NIC drivers to properly cleanup static DMA resources.
In particular, don't check the value of the bus_dma map against NULL
to determine if either bus_dmamem_alloc() or bus_dmamap_load() succeeded.
Instead, assume that bus_dmamap_load() succeeeded (and thus that
bus_dmamap_unload() should be called) if the bus address for a resource
is non-zero, and assume that bus_dmamem_alloc() succeeded (and thus
that bus_dmamem_free() should be called) if the virtual address for a
resource is not NULL.

In many cases these bugs could result in leaks when a driver was detached.

Reviewed by:	yongari
MFC after:	2 weeks
Correct a bug in the management of the population map on big-endian
machines.  Specifically, there was a mismatch between how the routine
allocation and deallocation operations accessed the population map
and how the aggressively optimized reservation-breaking operation
accessed it.  So, problems only occurred when reservations were broken.
This change makes the routine operations access the population map in
the same way as the reservation breaking operation.

This bug was introduced in r259999.

PR:		187080
Tested by:	jmg (on an "armeb" machine)
Sponsored by:	EMC / Isilon Storage Division
Fix a few more drivers that were explicitly destroying the bus_dma
map created by bus_dmamem_alloc().
Avoid leaking file pointer on error

CID:		1222506, 1222505
Apply vendor fixes to the High Point drivers:

 - Don't call xpt_free_path() in os_query_remove_device() and
   always return TRUE.
 - Update os_buildsgl() to support build logical SG table which
   will be used by lower RAID module.
 - Return CAM_SEL_TIMEOUTstatus for SCSIcommand failed as target
   missing.

Many thanks to HighPoint for providing this driver update.

Submitted by:	Steve Chang
Reviewed by:	mav
MFC after:	3 days
Use Mt macro to properly format mailto links (patch from Franco Fichtner <franco@lastsummer.de> for Dragonfly)

Reviewed by:	des
Approved by:	des
Obtained from:	Dragonfly
MFC after:	1 week
Fix decoding of MOVSX.

Submitted by:	Wolf Ramovsky <wolf.ramovsky gmail.com>
		via core (peter)
MFC after:	2 weeks
Fix decoding of LEA when address-size prefix (67h) is present.

This is loosly based on Xorg changeset f57bc0e by Christian
Zander.

Submitted by:	Wolf Ramovsky <wolf.ramovsky gmail.com>
		via core (peter)
MFC after:	2 weeks
Fix decoding of near CALL when address-size prefix (67h) is present.

Submitted by:	Wolf Ramovsky <wolf.ramovsky gmail.com>
		via core (peter)
MFC after:	2 weeks
Unload maps for DMA buffers allocated via bus_dmamem_alloc() before
freeing the buffers.

Reviewed by:	davidcs