linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] libertas_tf/mac80211: fix mesh mode for libertas_tf
@ 2010-09-08 23:34 Steve deRosier
  2010-09-08 23:34 ` [PATCH 1/2] libertas_tf: Fixed mesh mode to get mesh established Steve deRosier
  2010-09-08 23:34 ` [PATCH 2/2] mac80211: Fix dangling pointer in ieee80211_xmit Steve deRosier
  0 siblings, 2 replies; 3+ messages in thread
From: Steve deRosier @ 2010-09-08 23:34 UTC (permalink / raw)
  To: linux-wireless, linville; +Cc: johannes, javier

- Steve

[PATCH 1/2] libertas_tf: Fixed mesh mode to get mesh established
[PATCH 2/2] mac80211: Fix dangling pointer in ieee80211_xmit

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH 1/2] libertas_tf: Fixed mesh mode to get mesh established
  2010-09-08 23:34 [PATCH 0/2] libertas_tf/mac80211: fix mesh mode for libertas_tf Steve deRosier
@ 2010-09-08 23:34 ` Steve deRosier
  2010-09-08 23:34 ` [PATCH 2/2] mac80211: Fix dangling pointer in ieee80211_xmit Steve deRosier
  1 sibling, 0 replies; 3+ messages in thread
From: Steve deRosier @ 2010-09-08 23:34 UTC (permalink / raw)
  To: linux-wireless, linville; +Cc: johannes, javier, Steve deRosier

Along with some firmware changes, slight adjustments were needed
the driver to get mesh beacons through the firmware in mesh mode.

Signed-off-by: Steve deRosier <steve@cozybit.com>
---
 drivers/net/wireless/libertas_tf/main.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/drivers/net/wireless/libertas_tf/main.c b/drivers/net/wireless/libertas_tf/main.c
index 0b03fd5..647d195 100644
--- a/drivers/net/wireless/libertas_tf/main.c
+++ b/drivers/net/wireless/libertas_tf/main.c
@@ -428,6 +428,7 @@ static int lbtf_op_add_interface(struct ieee80211_hw *hw,
 	switch (vif->type) {
 	case NL80211_IFTYPE_MESH_POINT:
 	case NL80211_IFTYPE_AP:
+	case NL80211_IFTYPE_ADHOC:
 		lbtf_set_mode(priv, LBTF_AP_MODE);
 		break;
 	case NL80211_IFTYPE_STATION:
@@ -485,6 +486,7 @@ static u64 lbtf_op_prepare_multicast(struct ieee80211_hw *hw,
 	int i;
 	struct netdev_hw_addr *ha;
 	int mc_count = netdev_hw_addr_list_count(mc_list);
+	lbtf_deb_enter(LBTF_DEB_MACOPS);
 
 	if (!mc_count || mc_count > MRVDRV_MAX_MULTICAST_LIST_SIZE)
 		return mc_count;
@@ -494,6 +496,7 @@ static u64 lbtf_op_prepare_multicast(struct ieee80211_hw *hw,
 	netdev_hw_addr_list_for_each(ha, mc_list)
 		memcpy(&priv->multicastlist[i++], ha->addr, ETH_ALEN);
 
+	lbtf_deb_leave_args(LBTF_DEB_MACOPS, "count: %d", mc_count);
 	return mc_count;
 }
 
@@ -512,10 +515,13 @@ static void lbtf_op_configure_filter(struct ieee80211_hw *hw,
 	*new_flags &= SUPPORTED_FIF_FLAGS;
 
 	if (!changed_flags) {
+		lbtf_deb_macops("no flags changed");
 		lbtf_deb_leave(LBTF_DEB_MACOPS);
 		return;
 	}
 
+	lbtf_deb_macops("New flags 0x%x", *new_flags);
+
 	if (*new_flags & (FIF_PROMISC_IN_BSS))
 		priv->mac_control |= CMD_ACT_MAC_PROMISCUOUS_ENABLE;
 	else
@@ -566,7 +572,6 @@ static void lbtf_op_bss_info_changed(struct ieee80211_hw *hw,
 				kfree_skb(beacon);
 				priv->beacon_enable = bss_conf->enable_beacon;
 				priv->beacon_int = bss_conf->beacon_int;
-				lbtf_set_bssid(priv, 1, bss_conf->bssid);
 				lbtf_beacon_ctrl(priv, bss_conf->enable_beacon,
 						 bss_conf->beacon_int);
 			}
-- 
1.7.0


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH 2/2] mac80211: Fix dangling pointer in ieee80211_xmit
  2010-09-08 23:34 [PATCH 0/2] libertas_tf/mac80211: fix mesh mode for libertas_tf Steve deRosier
  2010-09-08 23:34 ` [PATCH 1/2] libertas_tf: Fixed mesh mode to get mesh established Steve deRosier
@ 2010-09-08 23:34 ` Steve deRosier
  1 sibling, 0 replies; 3+ messages in thread
From: Steve deRosier @ 2010-09-08 23:34 UTC (permalink / raw)
  To: linux-wireless, linville; +Cc: johannes, javier, Steve deRosier

hdr pointer is left dangling after call to ieee80211_skb_resize. This
can cause guards around mesh path selection to fail.

Signed-off-by: Steve deRosier <steve@cozybit.com>
---
 net/mac80211/tx.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index ccf3737..e1733dc 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -1609,6 +1609,7 @@ static void ieee80211_xmit(struct ieee80211_sub_if_data *sdata,
 		return;
 	}
 
+	hdr = (struct ieee80211_hdr *) skb->data;
 	info->control.vif = &sdata->vif;
 
 	if (ieee80211_vif_is_mesh(&sdata->vif) &&
-- 
1.7.0


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2010-09-08 23:34 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-09-08 23:34 [PATCH 0/2] libertas_tf/mac80211: fix mesh mode for libertas_tf Steve deRosier
2010-09-08 23:34 ` [PATCH 1/2] libertas_tf: Fixed mesh mode to get mesh established Steve deRosier
2010-09-08 23:34 ` [PATCH 2/2] mac80211: Fix dangling pointer in ieee80211_xmit Steve deRosier

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).