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

From: Patrick McHardy <[email-masked]>
Date: Wed, 23 Jul 2008 17:52:38 +0200

François Valenduc wrote:
> Patrick McHardy a écrit :
>>> I think I know whats happening (Jussi CCed). That commit introduced
>>> a qdisc_skb_cb, which conflicts with the mac80211 usage of skb->cb.
>>> mac80211 seems to expect the CB to survive the qdisc layer, which
>>> is wrong. One possibility to fix this (or just test my theory)
>>> would be to make sure they don't clash by adding the struct
>>> ieee80211_tx_info to qdisc_skb_cb->data. Something like this patch.
>>>
>>
> I tested your last patch. Unfortunately, I get the following compile error:
> 
> 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.
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to [email-masked]
More majordomo info at  http://vger.kernel.org/majordomo-info.html