On 11-7-2016 9:39, Marcel Holtmann wrote:
> 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 <denk...@gmail.com>
>>>>>> ---
>>>>>> 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.

Hi Marcel,

Indeed it is not a run-time error. The limitation of BUILD_BUG_ON is
that the condition has to be compile-time constant. This means upon
compiling nl80211.c. BUILD_BUG_ON does not work at link-time so upon
linking nl80211.o with core.o where the function is called from (in
patches 2 and 3).


Regards,
Arend
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to