so_pru_send_async: Use M_NOWAIT to allocate address

If the allocation failed, we just fall back to the synchronized pru_send.
Using M_WAITOK defeats the purpose of asynchronized pru_send, which tries
to prevent the current thread from being scheduled.
kernel: Remove Cyrix CPUs specific handling

* Remove kernel options, constants, detection code and special
  initialization routines for Cyrix CPUs

* Part of this code prevents the i386 vkernel from beeing compiled
  from a source tree with PAT support

* Recent versions of DragonFly cannot possibly run on machines using
  these processors anyway
mbuf: revert part of b4e5a1079d852748f03f32aae87ecdda27a538d2

Restore wlan_seqno, since ether_vlantag has been used by WME.  Fill the
implicit padding on x86_64 and add comment for their possible use.

Reported-by: Johannes Hofmann
i386: Unbreak building if the kern config only contains I686_CPU
i386: Make the system boot again

The CPU_468 etc macros also serve as the indices into i386_cpus[]
make sure that they are interleaved only by 1.
kernel/raid: CAM_NEW_TRAN_CODE is default for over 5 years.
kernel: Remove 3 unused kmalloc types: M_80211_DFS, M_ACPICMBAT, M_ATAPCI.
pmap: add dummy implementation for pmap_invalidate*

Simply call cpu_wbinvd_on_all_cpus() which is not optimal
but seems to make drm2 work.
PAT work, mapdev_attr, kmem_alloc_attr

Partially based on work by
Aggelos Economopoulos <aoiko@cc.ece.ntua.gr>
pmap: Add change_attr() stubs for non-amd64 architectures
kernel: Improve pmap_invalidate_cache_range()

* There is no need to do anything on CPUs having the self-snoop feature

* Add some consistency checks

Inspired-from: FreeBSD
kernel: Use pmap_invalidate functions

* Matt's commit brutally used invltlb and wbinvd instructions
  everywhere

* These are now contained in pmap_invalidate_range(), which will be
  optimized later

* As a rule of thumb, functions where cache and tlb handling cause
  avoidable performance degradation are tagged with "XXX not optimal"
kernel: Optimize pmap_invalidate_range()

* No need to use wbinvd here, we only have to invalidate TLB entries
  and not regular CPU caches

* There is no need to drop all TLB caches either, only invalidate a few
  page mappings on all cpus

* Use pmap->pm_active to only signal the CPUs where the pmap is in use
pat: Add BUS_DMA_NOCACHE, VM_MEMATTR definitions

Inspired-from: FreeBSD
pat: Make the API more compatible with FreeBSD
pmap: Add pmap_mapbios()

Obtained-from: FreeBSD
pat: Add pmap_invalidate_cache_pages()

Obtained-from: FreeBSD
kernel/pat: Improve kmem_alloc_attr()

With-input-from: Matthew Dillon
socket: Avoid possible race between netmsg_so_notify() and sowakeup()

The race is concerning SSB_MEVENT setup and testing.  Originally:

             CPU X                          CPU Y
    get token                                 :
    if (predict cond false) {                 :
           :                        set predict cond true
           :                        if (SSB_MEVENT) {
           :                            get token
           :                            wake up notifies
           :                            rel token
           :                        }
        queue notify                          :
        set SSB_MEVENT                        :
    }                                         :
    rel token

This commit always set SSB_MEVENT before predict testing, after getting
the socket token, so the race could be avoided.

Reviewed-by: dillon@
kernel: Remove some no longer used options.