2009-09-22 07:34:56

by Holger Schurig

[permalink] [raw]
Subject: BUGLET? cfg80211: .dumpit methods called twice

I just noticed that all functions mentioned on .dumpit in
net/wireless/nl80211.c are actually called twice.

For example, I've added

--- linux-wl.orig/net/wireless/nl80211.c 2009-09-18
14:44:28.000000000 +0200
+++ linux-wl/net/wireless/nl80211.c 2009-09-18
14:45:41.000000000 +0200
@@ -2919,6 +2919,8 @@ static int nl80211_trigger_scan(struct s
enum ieee80211_band band;
size_t ie_len;

+ printk("##HS %s:%d\n", __func__, __LINE__);
+
if (!is_valid_ie_attr(info->attrs[NL80211_ATTR_IE]))
return -EINVAL;

and when I now issue one "iw eth1 scan dump" I get two logs of
this printk in my dmesg.

AFAIK it doesn't cause any harm, but it's not that efficient and
it might cause harm in the future if any of the .dumpit methods
has the "right" side-effects.

--
http://www.holgerschurig.de


2009-09-23 07:02:05

by Johannes Berg

[permalink] [raw]
Subject: Re: BUGLET? cfg80211: .dumpit methods called twice

On Tue, 2009-09-22 at 09:33 +0200, Holger Schurig wrote:
> I just noticed that all functions mentioned on .dumpit in
> net/wireless/nl80211.c are actually called twice.
>
> For example, I've added
>
> --- linux-wl.orig/net/wireless/nl80211.c 2009-09-18
> 14:44:28.000000000 +0200
> +++ linux-wl/net/wireless/nl80211.c 2009-09-18
> 14:45:41.000000000 +0200
> @@ -2919,6 +2919,8 @@ static int nl80211_trigger_scan(struct s
> enum ieee80211_band band;
> size_t ie_len;
>
> + printk("##HS %s:%d\n", __func__, __LINE__);
> +
> if (!is_valid_ie_attr(info->attrs[NL80211_ATTR_IE]))
> return -EINVAL;
>
> and when I now issue one "iw eth1 scan dump" I get two logs of
> this printk in my dmesg.
>
> AFAIK it doesn't cause any harm, but it's not that efficient and
> it might cause harm in the future if any of the .dumpit methods
> has the "right" side-effects.

Umm, that's expected since dumpit() effectively runs until it returns no
more data.

johannes


Attachments:
signature.asc (801.00 B)
This is a digitally signed message part