2008-04-11 09:03:46

by Michael Bernhard

[permalink] [raw]
Subject: mac80211 does not delete beacons properly

Hi

I'm playing around with hostapd and observed that deleting the beacon (when hostapd terminates) is not working.

Looking at the kernel code I see the reason:

In function ieee80211_del_beacon (cfg.c) the old beacon (stored in sdata->u.ap.beacon) is removed. After that ieee80211_if_config_beacon is called.

This function (ieee80211_if_config_beacon, main.c) first checks if the driver handles beacon generation itself and therefore needs to be informed. For my card (b43) this is the case. However ieee80211_beacon_get is now called which will fail because the beacon in mac80211 is already removed.

This results in a ENOMEM error message for the caller even though the beacon is 'half' removed.

I don't know how this problem could be handled properly, therefore I post just the problem description :-)

Cheers
Mike