When monitor mode is changed to BSS or IBSS, data trasnfer can not happen
because proper transmit function is not assigend for BSS ,IBSS mode.
This patch fixes this problem assigning the ieee80211_subif_start_xmit
to device's hard_start_xmit function.
Signed-off-by: Abhijeet Kolekar <[email protected]>
Acked-by: Zhu Yi <[email protected]>
---
net/mac80211/iface.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
index 672cec6..df9d617 100644
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -97,12 +97,14 @@ static void ieee80211_setup_sdata(struct ieee80211_sub_if_data *sdata,
switch (type) {
case IEEE80211_IF_TYPE_AP:
+ sdata->dev->hard_start_xmit = ieee80211_subif_start_xmit;
skb_queue_head_init(&sdata->u.ap.ps_bc_buf);
INIT_LIST_HEAD(&sdata->u.ap.vlans);
break;
case IEEE80211_IF_TYPE_MESH_POINT:
case IEEE80211_IF_TYPE_STA:
case IEEE80211_IF_TYPE_IBSS:
+ sdata->dev->hard_start_xmit = ieee80211_subif_start_xmit;
ifsta = &sdata->u.sta;
INIT_WORK(&ifsta->work, ieee80211_sta_work);
setup_timer(&ifsta->timer, ieee80211_sta_timer,
--
1.5.4.3
On Fri, 2008-09-12 at 10:42 -0700, Abhijeet Kolekar wrote:
> When monitor mode is changed to BSS or IBSS, data trasnfer can not happen
> because proper transmit function is not assigend for BSS ,IBSS mode.
> This patch fixes this problem assigning the ieee80211_subif_start_xmit
> to device's hard_start_xmit function.
>
> Signed-off-by: Abhijeet Kolekar <[email protected]>
> Acked-by: Zhu Yi <[email protected]>
Thanks for the fix. Unfortunately, you missed WDS and VLAN. Please just
do the assignment once before the switch so that only monitor gets
changed.
johannes