On Wed, 2023-03-15 at 18:58 +0530, Aditya Kumar Singh wrote: > > + { > + .cmd = NL80211_CMD_SET_6GHZ_POWER_MODE, > + .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP, > + .doit = nl80211_set_6ghz_power_mode, > + .flags = GENL_UNS_ADMIN_PERM, > + .internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV | > + NL80211_FLAG_MLO_VALID_LINK_ID), > + }, Why is this even a new command, rather than a parameter to start AP or similar? Why do we even set it in client mode from userspace? > static struct genl_family nl80211_fam __ro_after_init = { > @@ -17409,7 +17473,7 @@ static struct genl_family nl80211_fam __ro_after_init = { > .n_ops = ARRAY_SIZE(nl80211_ops), > .small_ops = nl80211_small_ops, > .n_small_ops = ARRAY_SIZE(nl80211_small_ops), > - .resv_start_op = NL80211_CMD_REMOVE_LINK_STA + 1, > + .resv_start_op = NL80211_CMD_SET_6GHZ_POWER_MODE + 1, > Obviously, this should not be done. But in any case, I don't think there's a lot of value in doing a detailed review of the code if we haven't gotten a good grasp of the semantics that you want. johannes