Skip to contentSkip to conversation

Function name collisions with mac80211

DISCUSSION Kadianakis George 2 participants 2 messages Dec 15, 2009

lore
Share & tools
lore
#0 lore raw

Greetings,

a function name collision issue spawned off a Gentoo bug [1].

Basically, functions in the rtl8187se staging driver collide with functions in the mac80211 source not allowing kernel compilation with both CONFIG_RTL8187SE and CONFIG_MAC80211 set.

Changes that cause this issue are:
a) commit 103bf9f7d35849bce52ad412e4da5063b0716969:
mac80211: remove ieee80211_rx namespace hack
Where ieee80211_rx() starts getting exported instead of __ieee80211_rx() which used to get exported.
b) commit c6e43bc83fd0f156eeb64bc2fa47323fdff16ba8
Staging: rtl8187se/ieee80211: remove superfluous ieee80211_* defines
Where #define ieee80211_wake_queue ieee80211_wake_queue_rtl
and #define ieee80211_stop_queue ieee80211_stop_queue_rtl
get removed effectively exposing the collision with the mac80211
functions of the same names.

The collisions are not restricted to the rtl8187se driver, like the following example:
c) commit 5d9baea95f45bddcecab050de1af2ef678e85339
Staging: rtl8192su: make private ieee80211 stack really private
Had the exact same effect as b) to the rtl8192su driver.
d) A quick grep of the three functions in Gentoo bug report shows many instances of them in the drivers/staging directory.

[1]: http://bugs.gentoo.org/show_bug.cgi?id=296920

#1 lore raw
Quoted 27 lines · Kadianakis George

Greetings,

a function name collision issue spawned off a Gentoo bug [1].

Basically, functions in the rtl8187se staging driver collide with functions in the mac80211 source not allowing kernel compilation with both CONFIG_RTL8187SE and CONFIG_MAC80211 set.

Changes that cause this issue are:
a) commit 103bf9f7d35849bce52ad412e4da5063b0716969:

   mac80211: remove ieee80211_rx namespace hack

Where ieee80211_rx() starts getting exported instead of __ieee80211_rx() which used to get exported.
b) commit c6e43bc83fd0f156eeb64bc2fa47323fdff16ba8
Staging: rtl8187se/ieee80211: remove superfluous ieee80211_* defines
Where #define ieee80211_wake_queue ieee80211_wake_queue_rtl
and #define ieee80211_stop_queue ieee80211_stop_queue_rtl
get removed effectively exposing the collision with the mac80211
functions of the same names.

The collisions are not restricted to the rtl8187se driver, like the following example:
c) commit 5d9baea95f45bddcecab050de1af2ef678e85339
Staging: rtl8192su: make private ieee80211 stack really private
Had the exact same effect as b) to the rtl8192su driver.
d) A quick grep of the three functions in Gentoo bug report shows many instances of them in the drivers/staging directory.

Quoted 1 line

[1]: http://bugs.gentoo.org/show_bug.cgi?id=296920

I suggest you change the function names in drivers/staging.

Joh

Signature · 2 lines
John W. Linville		Someday the world will need a hero, and you
[email protected]			might be all we have.  Be ready.