Search Linux Wireless

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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



François Valenduc wrote:
I did the bisection again, this time on the whole tree and the first bad commit is again the one I mentioned previously:

175f9c1bba9b825d22b142d183c9e175488b260c is first bad commit
commit 175f9c1bba9b825d22b142d183c9e175488b260c
Author: Jussi Kivilinna <jussi.kivilinna@xxxxxxxx>
Date:   Sun Jul 20 00:08:47 2008 -0700

   net_sched: Add size table for qdiscs

   Add size table functions for qdiscs and calculate packet size in
   qdisc_enqueue().

   Based on patch by Patrick McHardy
    http://marc.info/?l=linux-netdev&m=115201979221729&w=2

This time, I didn't encounter kernels which didn't compile. So, I didn't use git-reset or git-bisect skip.


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.

diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 4dd3d93..e19815e 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -19,6 +19,7 @@
 #include <linux/wireless.h>
 #include <linux/device.h>
 #include <linux/ieee80211.h>
+#include <net/sched_generic.h>
 #include <net/wireless.h>
 #include <net/cfg80211.h>
 
@@ -343,7 +344,10 @@ struct ieee80211_tx_info {
 
 static inline struct ieee80211_tx_info *IEEE80211_SKB_CB(struct sk_buff *skb)
 {
-	return (struct ieee80211_tx_info *)skb->cb;
+	BUILD_BUG_ON(sizeof(skb->cb) <
+		     sizeof(struct qdisc_skb_cb) +
+		     sizeof(struct ieee80211_tx_info));
+	return (struct ieee80211_tx_info *)qdisc_skb_cb(skb)->data;
 }
 
 

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux