The issue seems to be that in all of these drivers, wdev is NULL when you hit set_channel() in the older and newer driver. In the old driver, cfg8011_set_freq() is called with wdev has NULL and it still calls rdev->ops->set_channel(....) which succeeds. However, in the new driver cfg80211_set_monitor_channel() is called since wdev was NULL, but now instead of still calling rdev->ops->set_channel() or rdev->ops->set_monitor_channel() it returns -EBUSY because if(!cfg80211_has_monitors_only(rdev)) returns true. Is this really the expected behavior, or is meant to only return -EBUSY if there are only monitors, rather? (i.e., if(cfg80211_has_monitors_only(rdev)) ) On Fri, Nov 2, 2012 at 2:46 PM, George Nychis <gnychis@xxxxxxxxx> wrote: > I'm still trying to track down the cause for this, but starting in > compat-wireless-3.6 (including early RCs and the most recent 3.6.2), > rt2x00 devices register with the wrong iftype. They register as > NL80211_IFTYPE_MONITOR instead of NL80211_IFTYPE_STATION, for example. > I checked cw-3.5, 3.4, 3.2, and 3.1 and none of these versions have > this bug. > > This breaks the ability to set channels, etc. Hoping to track down > the bug, but wanted to report it in the meantime and see if anyone > else has run in to it. > > - George -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html