Search Linux Wireless

Re: [PATCH 3/4] nl80211: Check that netif_runnin is true in cfg80211 code

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

 



On Fri, 2009-03-20 at 21:21 +0200, Jouni Malinen wrote:
> plain text document attachment (nl80211-check-netif-running.patch)
> We do not want to require all the drivers using cfg80211 to need to do
> this or to be prepared to handle these commands when the interface is
> down.
> 
> Signed-off-by: Jouni Malinen <jouni.malinen@xxxxxxxxxxx>

Thanks a lot, Jouni.

Acked-by: Johannes Berg <johannes@xxxxxxxxxxxxxxxx>

> ---
>  net/mac80211/cfg.c     |   25 -------------------------
>  net/wireless/nl80211.c |   40 ++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 40 insertions(+), 25 deletions(-)
> 
> --- uml.orig/net/mac80211/cfg.c	2009-03-20 18:03:53.000000000 +0200
> +++ uml/net/mac80211/cfg.c	2009-03-20 18:03:59.000000000 +0200
> @@ -728,10 +728,6 @@ static int ieee80211_add_station(struct 
>  	int err;
>  	int layer2_update;
>  
> -	/* Prevent a race with changing the rate control algorithm */
> -	if (!netif_running(dev))
> -		return -ENETDOWN;
> -
>  	if (params->vlan) {
>  		sdata = IEEE80211_DEV_TO_SUB_IF(params->vlan);
>  
> @@ -860,9 +856,6 @@ static int ieee80211_add_mpath(struct wi
>  	struct sta_info *sta;
>  	int err;
>  
> -	if (!netif_running(dev))
> -		return -ENETDOWN;
> -
>  	sdata = IEEE80211_DEV_TO_SUB_IF(dev);
>  
>  	if (sdata->vif.type != NL80211_IFTYPE_MESH_POINT)
> @@ -913,9 +906,6 @@ static int ieee80211_change_mpath(struct
>  	struct mesh_path *mpath;
>  	struct sta_info *sta;
>  
> -	if (!netif_running(dev))
> -		return -ENETDOWN;
> -
>  	sdata = IEEE80211_DEV_TO_SUB_IF(dev);
>  
>  	if (sdata->vif.type != NL80211_IFTYPE_MESH_POINT)
> @@ -1202,9 +1192,6 @@ static int ieee80211_scan(struct wiphy *
>  {
>  	struct ieee80211_sub_if_data *sdata;
>  
> -	if (!netif_running(dev))
> -		return -ENETDOWN;
> -
>  	sdata = IEEE80211_DEV_TO_SUB_IF(dev);
>  
>  	if (sdata->vif.type != NL80211_IFTYPE_STATION &&
> @@ -1220,9 +1207,6 @@ static int ieee80211_auth(struct wiphy *
>  {
>  	struct ieee80211_sub_if_data *sdata;
>  
> -	if (!netif_running(dev))
> -		return -ENETDOWN;
> -
>  	sdata = IEEE80211_DEV_TO_SUB_IF(dev);
>  
>  	if (sdata->vif.type != NL80211_IFTYPE_STATION)
> @@ -1282,9 +1266,6 @@ static int ieee80211_assoc(struct wiphy 
>  	struct ieee80211_sub_if_data *sdata;
>  	int ret;
>  
> -	if (!netif_running(dev))
> -		return -ENETDOWN;
> -
>  	sdata = IEEE80211_DEV_TO_SUB_IF(dev);
>  
>  	if (sdata->vif.type != NL80211_IFTYPE_STATION)
> @@ -1323,9 +1304,6 @@ static int ieee80211_deauth(struct wiphy
>  {
>  	struct ieee80211_sub_if_data *sdata;
>  
> -	if (!netif_running(dev))
> -		return -ENETDOWN;
> -
>  	sdata = IEEE80211_DEV_TO_SUB_IF(dev);
>  	if (sdata->vif.type != NL80211_IFTYPE_STATION)
>  		return -EOPNOTSUPP;
> @@ -1339,9 +1317,6 @@ static int ieee80211_disassoc(struct wip
>  {
>  	struct ieee80211_sub_if_data *sdata;
>  
> -	if (!netif_running(dev))
> -		return -ENETDOWN;
> -
>  	sdata = IEEE80211_DEV_TO_SUB_IF(dev);
>  
>  	if (sdata->vif.type != NL80211_IFTYPE_STATION)
> --- uml.orig/net/wireless/nl80211.c	2009-03-20 18:03:57.000000000 +0200
> +++ uml/net/wireless/nl80211.c	2009-03-20 18:03:59.000000000 +0200
> @@ -1556,6 +1556,11 @@ static int nl80211_new_station(struct sk
>  		goto out;
>  	}
>  
> +	if (!netif_running(dev)) {
> +		err = -ENETDOWN;
> +		goto out;
> +	}
> +
>  	err = drv->ops->add_station(&drv->wiphy, dev, mac_addr, &params);
>  
>   out:
> @@ -1808,6 +1813,11 @@ static int nl80211_set_mpath(struct sk_b
>  		goto out;
>  	}
>  
> +	if (!netif_running(dev)) {
> +		err = -ENETDOWN;
> +		goto out;
> +	}
> +
>  	err = drv->ops->change_mpath(&drv->wiphy, dev, dst, next_hop);
>  
>   out:
> @@ -1846,6 +1856,11 @@ static int nl80211_new_mpath(struct sk_b
>  		goto out;
>  	}
>  
> +	if (!netif_running(dev)) {
> +		err = -ENETDOWN;
> +		goto out;
> +	}
> +
>  	err = drv->ops->add_mpath(&drv->wiphy, dev, dst, next_hop);
>  
>   out:
> @@ -2380,6 +2395,11 @@ static int nl80211_trigger_scan(struct s
>  		goto out;
>  	}
>  
> +	if (!netif_running(dev)) {
> +		err = -ENETDOWN;
> +		goto out;
> +	}
> +
>  	if (drv->scan_req) {
>  		err = -EBUSY;
>  		goto out;
> @@ -2641,6 +2661,11 @@ static int nl80211_authenticate(struct s
>  		goto out;
>  	}
>  
> +	if (!netif_running(dev)) {
> +		err = -ENETDOWN;
> +		goto out;
> +	}
> +
>  	if (!info->attrs[NL80211_ATTR_MAC]) {
>  		err = -EINVAL;
>  		goto out;
> @@ -2709,6 +2734,11 @@ static int nl80211_associate(struct sk_b
>  		goto out;
>  	}
>  
> +	if (!netif_running(dev)) {
> +		err = -ENETDOWN;
> +		goto out;
> +	}
> +
>  	if (!info->attrs[NL80211_ATTR_MAC] ||
>  	    !info->attrs[NL80211_ATTR_SSID]) {
>  		err = -EINVAL;
> @@ -2767,6 +2797,11 @@ static int nl80211_deauthenticate(struct
>  		goto out;
>  	}
>  
> +	if (!netif_running(dev)) {
> +		err = -ENETDOWN;
> +		goto out;
> +	}
> +
>  	if (!info->attrs[NL80211_ATTR_MAC]) {
>  		err = -EINVAL;
>  		goto out;
> @@ -2821,6 +2856,11 @@ static int nl80211_disassociate(struct s
>  		goto out;
>  	}
>  
> +	if (!netif_running(dev)) {
> +		err = -ENETDOWN;
> +		goto out;
> +	}
> +
>  	if (!info->attrs[NL80211_ATTR_MAC]) {
>  		err = -EINVAL;
>  		goto out;
> 
> -- 
> 

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