Bug 204401 - Inconsistent wireless extensions
Summary: Inconsistent wireless extensions
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Red Hat Enterprise Linux 4
Classification: Red Hat
Component: kernel
Version: 4.4
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
: ---
Assignee: David Woodhouse
QA Contact: Brian Brock
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2006-08-28 20:59 UTC by Matthew Booth
Modified: 2007-11-17 01:14 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2006-09-13 19:25:07 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description Matthew Booth 2006-08-28 20:59:34 UTC
WIRELESS_EXT in include/linux/wireless.h changed between 2.6.9-34.0.2.EL-i686
and 2.6.9-42.0.2.EL from 16 to 18. However, the API does not appear to
correspond to version 18 of the wireless extensions.

Specifically, the madwifi driver no longer compiles under RHEL4. It fails in the
following struct:

static struct iw_handler_def ieee80211_iw_handler_def = {
#define N(a)    (sizeof (a) / sizeof (a[0]))
    .standard       = (iw_handler *) ieee80211_handlers,
    .num_standard       = N(ieee80211_handlers),
    .private        = (iw_handler *) ieee80211_priv_handlers,
    .num_private        = N(ieee80211_priv_handlers),
    .private_args       = (struct iw_priv_args *) ieee80211_priv_args,
    .num_private_args   = N(ieee80211_priv_args),
#if WIRELESS_EXT >= 17
    .get_wireless_stats = ieee80211_iw_getstats,
#endif
#undef N
};

because get_wireless_stats is now expected to be in struct iw_handler_def, but
it is not. get_wireless_stats moved into struct iw_handler_def from struct
net_device between versions 16 and 17 of the wireless extensions. The diff is here:

http://www.hpl.hp.co.uk/personal/Jean_Tourrilhes/Linux/iw269_we17-12.diff

Comment 2 John W. Linville 2006-09-13 19:25:07 UTC
This is NOTABUG.  The relocating get_wireless_stats to iw_handler_def was 
optional for drivers in the upstream kernel under WE-17.  Leaving it in the 
netdev structure was perfectly acceptable.  Moving it breaks kABI guarantees 
in RHEL only for the benefit for those who are recompiling anyway (and hence 
should be capable of making minor source changes as necessary).


Note You need to log in before you can comment on or make changes to this bug.