NetBSD/sys/net80211
thorpej 7a9a30c5e7 Define and implement a locking protocol for the ifmedia / mii layers:
- MP-safe drivers provide a mutex to ifmedia that is used to serialize
  access to media-related structures / hardware regsiters.  Converted
  drivers use the new ifmedia_init_with_lock() function for this.  The
  new name is provided to ease the transition.
- Un-converted drivers continue to call ifmedia_init(), which will supply
  a compatibility lock to be used instead.  Several media-related entry
  points must be aware of this compatibility lock, and are able to acquire
  it recursively a limited number of times, if needed.  This is a SPIN
  mutex with priority IPL_NET.
- This same lock is used to serialize access to PHY registers and other
  MII-related data structures.

The PHY drivers are modified to acquire and release the lock, as needed,
and assert the lock is held as a diagnostic aid.

The "usbnet" framework has had an overhaul of its internal locking
protocols to fit in with the media / mii changes, and the drivers adapted.

USB wifi drivers have been changed to provide their own adaptive mutex
to the ifmedia later via a new ieee80211_media_init_with_lock() function.
This is required because the USB drivers need an adaptive mutex.

Besised "usbnet", a few other drivers are converted: vmx, wm, ixgbe / ixv.

mcx also now calls ifmedia_init_with_lock() because it needs to also use
an adaptive mutex.  The mcx driver still needs to be fully converted to
NET_MPSAFE.
2020-03-15 23:04:50 +00:00
..
CHANGES
Makefile
_ieee80211.h
files.net80211
ieee80211.c Define and implement a locking protocol for the ifmedia / mii layers: 2020-03-15 23:04:50 +00:00
ieee80211.h
ieee80211_acl.c in many device attach paths, allocate memory with M_WAITOK instead of M_NOWAIT 2019-11-10 21:16:21 +00:00
ieee80211_amrr.c
ieee80211_amrr.h
ieee80211_crypto.c
ieee80211_crypto.h
ieee80211_crypto_ccmp.c
ieee80211_crypto_none.c
ieee80211_crypto_tkip.c Avoid changing signedness bit with << 24 in ieee80211_crypto_tkip.c 2019-12-19 16:29:50 +00:00
ieee80211_crypto_wep.c
ieee80211_input.c Adopt <net/if_stats.h>. 2020-01-29 05:20:26 +00:00
ieee80211_ioctl.c in many device attach paths, allocate memory with M_WAITOK instead of M_NOWAIT 2019-11-10 21:16:21 +00:00
ieee80211_ioctl.h Include <net/if.h> for IFNAMSIZ 2019-08-20 09:28:00 +00:00
ieee80211_netbsd.c Replace M_ALIGN and MH_ALIGN by m_align. 2018-12-22 14:28:56 +00:00
ieee80211_netbsd.h Define and implement a locking protocol for the ifmedia / mii layers: 2020-03-15 23:04:50 +00:00
ieee80211_node.c 0x%p --> %p for non-external codes. 2020-02-24 12:20:29 +00:00
ieee80211_node.h
ieee80211_output.c Fix printf to handle various datatypes for MHLEN. 2020-02-29 16:56:58 +00:00
ieee80211_proto.c
ieee80211_proto.h
ieee80211_radiotap.h remove __packed attribute from struct ieee80211_radiotap_header 2019-10-05 23:27:20 +00:00
ieee80211_rssadapt.c
ieee80211_rssadapt.h
ieee80211_sysctl.h
ieee80211_var.h Define and implement a locking protocol for the ifmedia / mii layers: 2020-03-15 23:04:50 +00:00
ieee80211_xauth.c