Right now, 'iw phy ... reg get' gets translated to NLM_F_DUMP, which
dumps all domains. But this command really is looking for non-DUMP
semantics -- it only wants the domain for the specified wiphy, or (per
the kernel's choice) the global, if the wiphy doesn't have its own.
We can achieve this by skipping the handle_reg_get() -> "reg dump"
indirection.
[ with a wiphy-specific domain ]
Before:
# iw phy phy0 reg get
global
country XX: DFS-YYY
[...]
phy#0
country AA: DFS-BBB
[...]
After:
# iw phy phy0 reg get
phy#0
country AA: DFS-BBB
[...]
[ without a wiphy-specific domain ]
Before and after (unchanged):
# iw phy phy0 reg get
global
country XX: DFS-YYY
[...]
Signed-off-by: Brian Norris <briannorris@chromium.org>
Link: https://lore.kernel.org/r/20200331232833.142026-1-briannorris@chromium.org
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
}
COMMAND(reg, get, NULL, NL80211_CMD_GET_REG, 0, CIB_NONE, handle_reg_get,
"Print out the kernel's current regulatory domain information.");
}
COMMAND(reg, get, NULL, NL80211_CMD_GET_REG, 0, CIB_NONE, handle_reg_get,
"Print out the kernel's current regulatory domain information.");
-COMMAND(reg, get, NULL, NL80211_CMD_GET_REG, 0, CIB_PHY, handle_reg_get,
+COMMAND(reg, get, NULL, NL80211_CMD_GET_REG, 0, CIB_PHY, handle_reg_dump,
"Print out the devices' current regulatory domain information.");
HIDDEN(reg, dump, NULL, NL80211_CMD_GET_REG, NLM_F_DUMP, CIB_NONE,
handle_reg_dump);
"Print out the devices' current regulatory domain information.");
HIDDEN(reg, dump, NULL, NL80211_CMD_GET_REG, NLM_F_DUMP, CIB_NONE,
handle_reg_dump);