Search Linux Wireless

Re: [PATCH 12/13] mac80211: allow mac80211 drivers to get to struct ieee80211_hw from wiphy

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 2009-01-15 at 16:12 -0800, Luis R. Rodriguez wrote:
> If a driver is given a wiphy and it wants to get to its private
> mac80211 driver area it can use wiphy_to_ieee80211_hw() to get first
> to its ieee80211_hw and then access the private structure via hw->priv. The
> wiphy_priv() is already being used internally by mac80211 and drivers
> should not use this. This can be helpful in a drivers reg_notifier().
> 
> Signed-off-by: Luis R. Rodriguez <lrodriguez@xxxxxxxxxxx>

Acked-by: Johannes Berg <johannes@xxxxxxxxxxxxxxxx>

> ---
>  include/net/mac80211.h |   13 +++++++++++++
>  net/mac80211/util.c    |    9 +++++++++
>  2 files changed, 22 insertions(+), 0 deletions(-)
> 
> diff --git a/include/net/mac80211.h b/include/net/mac80211.h
> index 9a5869e..b29c41b 100644
> --- a/include/net/mac80211.h
> +++ b/include/net/mac80211.h
> @@ -965,6 +965,19 @@ struct ieee80211_hw {
>  };
>  
>  /**
> + * wiphy_to_ieee80211_hw - return a mac80211 driver hw struct from a wiphy
> + *
> + * @wiphy: the &struct wiphy which we want to query
> + *
> + * mac80211 drivers can use this to get to their respective
> + * &struct ieee80211_hw. Drivers wishing to get to their own private
> + * structure can then access it via hw->priv. Note that mac802111 drivers should
> + * not use wiphy_priv() to try to get their private driver structure as this
> + * is already used internally by mac80211.
> + */
> +struct ieee80211_hw *wiphy_to_ieee80211_hw(struct wiphy *wiphy);
> +
> +/**
>   * SET_IEEE80211_DEV - set device for 802.11 hardware
>   *
>   * @hw: the &struct ieee80211_hw to set the device for
> diff --git a/net/mac80211/util.c b/net/mac80211/util.c
> index 963e047..9016c8d 100644
> --- a/net/mac80211/util.c
> +++ b/net/mac80211/util.c
> @@ -41,6 +41,15 @@ const unsigned char rfc1042_header[] __aligned(2) =
>  const unsigned char bridge_tunnel_header[] __aligned(2) =
>  	{ 0xaa, 0xaa, 0x03, 0x00, 0x00, 0xf8 };
>  
> +struct ieee80211_hw *wiphy_to_ieee80211_hw(struct wiphy *wiphy)
> +{
> +	struct ieee80211_local *local;
> +	BUG_ON(!wiphy);
> +
> +	local = wiphy_priv(wiphy);
> +	return &local->hw;
> +}
> +EXPORT_SYMBOL(wiphy_to_ieee80211_hw);
>  
>  u8 *ieee80211_get_bssid(struct ieee80211_hdr *hdr, size_t len,
>  			enum nl80211_iftype type)

Attachment: signature.asc
Description: This is a digitally signed message part


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux