Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
[pandora-kernel.git] / net / wireless / wext-compat.c
index b84a9b4..0fd1db6 100644 (file)
@@ -66,6 +66,7 @@ int cfg80211_wext_siwmode(struct net_device *dev, struct iw_request_info *info,
        struct cfg80211_registered_device *rdev;
        struct vif_params vifparams;
        enum nl80211_iftype type;
+       int ret;
 
        if (!wdev)
                return -EOPNOTSUPP;
@@ -96,10 +97,16 @@ int cfg80211_wext_siwmode(struct net_device *dev, struct iw_request_info *info,
                return -EINVAL;
        }
 
+       if (type == wdev->iftype)
+               return 0;
+
        memset(&vifparams, 0, sizeof(vifparams));
 
-       return rdev->ops->change_virtual_intf(wdev->wiphy, dev->ifindex, type,
-                                             NULL, &vifparams);
+       ret = rdev->ops->change_virtual_intf(wdev->wiphy, dev->ifindex, type,
+                                            NULL, &vifparams);
+       WARN_ON(!ret && wdev->iftype != type);
+
+       return ret;
 }
 EXPORT_SYMBOL(cfg80211_wext_siwmode);