|
@@ -1908,6 +1908,11 @@ static int nl80211_get_mesh_params(struct sk_buff *skb,
|
|
|
if (err)
|
|
|
return err;
|
|
|
|
|
|
+ if (!drv->ops->get_mesh_params) {
|
|
|
+ err = -EOPNOTSUPP;
|
|
|
+ goto out;
|
|
|
+ }
|
|
|
+
|
|
|
/* Get the mesh params */
|
|
|
rtnl_lock();
|
|
|
err = drv->ops->get_mesh_params(&drv->wiphy, dev, &cur_params);
|
|
@@ -2017,6 +2022,11 @@ static int nl80211_set_mesh_params(struct sk_buff *skb, struct genl_info *info)
|
|
|
if (err)
|
|
|
return err;
|
|
|
|
|
|
+ if (!drv->ops->set_mesh_params) {
|
|
|
+ err = -EOPNOTSUPP;
|
|
|
+ goto out;
|
|
|
+ }
|
|
|
+
|
|
|
/* This makes sure that there aren't more than 32 mesh config
|
|
|
* parameters (otherwise our bitfield scheme would not work.) */
|
|
|
BUILD_BUG_ON(NL80211_MESHCONF_ATTR_MAX > 32);
|
|
@@ -2061,6 +2071,7 @@ static int nl80211_set_mesh_params(struct sk_buff *skb, struct genl_info *info)
|
|
|
err = drv->ops->set_mesh_params(&drv->wiphy, dev, &cfg, mask);
|
|
|
rtnl_unlock();
|
|
|
|
|
|
+ out:
|
|
|
/* cleanup */
|
|
|
cfg80211_put_dev(drv);
|
|
|
dev_put(dev);
|