Use the MAKEDEV_CHECKNAME flag to check for an invalid device name and return
an error instead of panicking.

Obtained from:	NetApp
Fix changes made in r249408.

In some cases, kern_envp is set by the architecture code and env_pos does
not contain the length of the static kernel environment. In these cases
r249408 causes the kernel to discard the environment.

Fix this by updating the check for empty static env to *kern_envp != '\0'

Reported by:	np@
MFprojects/camlock r248894:
Use full freeze while PMP does hard reset. This is only cosmetical change.
Print device sizes in MB/GB not MiB/GiB since that's how SD/MMC cards
are sold.
Cache device parent rather than requesting it multiple times in a
look to save a few cycles.
Remove stray =
Merge branch 'master' of https://github.com/bsdimp/freebsd