--- a/net/wireless/wext-core.c +++ b/net/wireless/wext-core.c @@ -367,6 +367,7 @@ static int __init wireless_nlevent_init( subsys_initcall(wireless_nlevent_init); /* Process events generated by the wireless layer or the driver. */ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)) static void wireless_nlevent_process(struct work_struct *work) { struct sk_buff *skb; @@ -382,6 +383,20 @@ static void wireless_nlevent_process(str rtnl_unlock(); } +#else +static void wireless_nlevent_process(struct work_struct *work) +{ + struct sk_buff *skb; + struct net *net; + + rtnl_lock(); + + while ((skb = skb_dequeue(&net->wext_nlevents))) + rtnl_notify(skb, 0, RTNLGRP_LINK, NULL, GFP_ATOMIC); + + rtnl_unlock(); +} +#endif static DECLARE_WORK(wireless_nlevent_work, wireless_nlevent_process); --- a/net/wireless/wext-proc.c +++ b/net/wireless/wext-proc.c @@ -98,7 +98,11 @@ static void *wireless_dev_seq_start(stru return SEQ_START_TOKEN; off = 1; +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)) for_each_netdev(net, dev) +#else + for_each_netdev(net) +#endif if (off++ == *pos) return dev; return NULL;