Subject: Re: [Bugme-new] [Bug 11144] New: dhcp doesn't work with iwl4965

From: Patrick McHardy <[email-masked]>
Date: Wed, 23 Jul 2008 18:25:48 +0200

Patrick McHardy wrote:
> François Valenduc wrote:
>> Patrick McHardy a écrit :
>>>> In file included from net/mac80211/main.c:11:
>>>> include/net/mac80211.h: In function ‘IEEE80211_SKB_CB’:
>>>> include/net/mac80211.h:347: erreur: size of array ‘type name’ is 
>>>> negative
>>>
>>>
>>> I was afraid that might happen. This means skb->cb is not large
>>> enough to hold both the qdisc and the ieee80211 structs.
>>>
>>> Just for testing, changing (include/net/mac80211.h):
>>>
>>> #define IEEE80211_TX_INFO_DRIVER_DATA_SIZE \
>>>         (sizeof(((struct sk_buff *)0)->cb) - 8)
>>>
>>> to
>>>
>>> #define IEEE80211_TX_INFO_DRIVER_DATA_SIZE \
>>>         (sizeof(((struct sk_buff *)0)->cb) - 12)
>>>
>>> might help to get it to compile. If that doesn't work, try -16.
>>>
>>>
>> That didn't work, neither with -12 or -16.
> 
> I'll give it a try myself, please wait a few minutes.

We can't fit them into the cb together, I don't see a way to
shrink ieee80211_tx_info.

Maybe one of the wireless folks can suggest something? Is it
really necessary to pass the full struct ieee80211_tx_info
through the qdisc layer, or could the struct be split? It
needs to find a way to co-exist peacefully with qdiscs'
skb->cb usage.