Hi Julian, >>>>> This function emits NL80211_CMD_NEW_INTERFACE or >>>>> NL80211_CMD_DEL_INTERFACE events. This is meant to be used by the core >>>>> to notify userspace applications such as wpa_supplicant when a netdev >>>>> related to a wireless device has been added or removed. >>>>> >>>>> Signed-off-by: Denis Kenzior <denkenz@xxxxxxxxx> >>>>> --- >>>>> net/wireless/nl80211.c | 28 ++++++++++++++++++++++++++++ >>>>> net/wireless/nl80211.h | 3 +++ >>>>> 2 files changed, 31 insertions(+) >>>>> >>>>> diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c >>>>> index f39fd4d..da03e17 100644 >>>>> --- a/net/wireless/nl80211.c >>>>> +++ b/net/wireless/nl80211.c >>>>> @@ -11855,6 +11855,34 @@ void nl80211_notify_wiphy(struct cfg80211_registered_device *rdev, >>>>> NL80211_MCGRP_CONFIG, GFP_KERNEL); >>>>> } >>>>> >>>>> +void nl80211_notify_iface(struct cfg80211_registered_device *rdev, >>>>> + struct wireless_dev *wdev, >>>>> + enum nl80211_commands cmd) >>>>> +{ >>>>> + struct sk_buff *msg; >>>>> + bool removal; >>>>> + >>>>> + WARN_ON(cmd != NL80211_CMD_NEW_INTERFACE && >>>>> + cmd != NL80211_CMD_DEL_INTERFACE); >>>> >>>> I would assume that BUILD_BUG_ON does a way job better here. >>> >>> Why? I don't see why the condition would be compile-time constant as it >>> can be called from outside nl80211.c. >> >> what has that to do with it. No matter who calls it, the point is to ensure that it is called for new/del interface. And if a caller uses it for something else, then it should fail and it should fail loudly. > > Let me ask this question another way: > > How is BUILD_BUG_ON going to warn about a runtime error? how is this a runtime error in the first place? If you call it with any other nl80211_commands than the two explicitly allowed, you are doing something wrong. If BUILD_BUG_ON has limitations, then fine, but please don't tell me this is a runtime error. Regards Marcel -- 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