Skip to contentSkip to conversation

network: mac80211: rework multicast patches for mac80211

PATCH In review Arend van Spriel 2 participants 3 messages Dec 22, 2013 – Jan 2, 2014

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 network: mac80211: rework multicast patches for mac80211

Fixing up the patches for mac80211 that were located under collateral-evolutions/network/25-multicast-list_head.

---
 .../include_net_mac80211.patch                     |   14 +--------
 .../net_mac80211_driver-ops.patch                  |   33 +-------------------
 .../net_mac80211_iface.patch                       |   16 +++-------
 3 files changed, 6 insertions(+), 57 deletions(-)
patches/collateral-evolutions/network/25-multicast-list_head/include_net_mac80211.patch +1 -13
index 1635cd0..ae30fe1 100644
@@ -1,6 +1,6 @@
 --- a/include/net/mac80211.h
 +++ b/include/net/mac80211.h
-@@ -2719,14 +2719,24 @@ struct ieee80211_ops {
+@@ -2719,8 +2719,12 @@ struct ieee80211_ops {
  	void (*stop_ap)(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
  
  	u64 (*prepare_multicast)(struct ieee80211_hw *hw,
@@ -13,15 +13,3 @@
  				 unsigned int changed_flags,
  				 unsigned int *total_flags,
  				 u64 multicast);
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
- 	void (*set_multicast_list)(struct ieee80211_hw *hw,
- 				   struct ieee80211_vif *vif, bool allmulti,
- 				   struct netdev_hw_addr_list *mc_list);
-+#else
-+	void (*set_multicast_list)(struct ieee80211_hw *hw,
-+				   struct ieee80211_vif *vif, bool allmulti,
-+				   int mc_count, struct dev_addr_list *ha);
-+#endif
- 
- 	int (*set_tim)(struct ieee80211_hw *hw, struct ieee80211_sta *sta,
- 		       bool set);
patches/collateral-evolutions/network/25-multicast-list_head/net_mac80211_driver-ops.patch +1 -32
index 042cca7..0332c91 100644
@@ -1,6 +1,6 @@
 --- a/net/mac80211/driver-ops.h
 +++ b/net/mac80211/driver-ops.h
-@@ -228,20 +228,35 @@ static inline void drv_bss_info_changed(
+@@ -228,14 +228,28 @@ static inline void drv_bss_info_changed(
  }
  
  static inline u64 drv_prepare_multicast(struct ieee80211_local *local,
@@ -29,34 +29,3 @@
  
  	trace_drv_return_u64(local, ret);
  
- 	return ret;
- }
- 
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
- static inline void drv_set_multicast_list(struct ieee80211_local *local,
- 					  struct ieee80211_sub_if_data *sdata,
- 					  struct netdev_hw_addr_list *mc_list)
-@@ -257,6 +272,23 @@ static inline void drv_set_multicast_lis
- 					       allmulti, mc_list);
- 	trace_drv_return_void(local);
- }
-+#else
-+static inline void drv_set_multicast_list(struct ieee80211_local *local,
-+					  struct ieee80211_sub_if_data *sdata,
-+					  int mc_count, struct dev_addr_list *ha)
-+{
-+	bool allmulti = sdata->flags & IEEE80211_SDATA_ALLMULTI;
-+
-+	trace_drv_set_multicast_list(local, sdata, mc_count);
-+
-+	check_sdata_in_driver(sdata);
-+
-+	if (local->ops->set_multicast_list)
-+		local->ops->set_multicast_list(&local->hw, &sdata->vif,
-+					       allmulti, mc_count, ha);
-+	trace_drv_return_void(local);
-+}
-+#endif
- 
- static inline void drv_configure_filter(struct ieee80211_local *local,
- 					unsigned int changed_flags,
patches/collateral-evolutions/network/25-multicast-list_head/net_mac80211_iface.patch +4 -12
index d196bca..e03645b 100644
@@ -1,6 +1,6 @@
 --- a/net/mac80211/iface.c
 +++ b/net/mac80211/iface.c
-@@ -807,8 +807,13 @@ static void ieee80211_do_stop(struct iee
+@@ -808,8 +808,13 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
  	if (sdata->dev) {
  		netif_addr_lock_bh(sdata->dev);
  		spin_lock_bh(&local->filter_lock);
@@ -14,17 +14,9 @@
  		spin_unlock_bh(&local->filter_lock);
  		netif_addr_unlock_bh(sdata->dev);
  	}
-@@ -1022,10 +1027,20 @@ static void ieee80211_set_multicast_list
- 	if (sdata->vif.type != NL80211_IFTYPE_MONITOR &&
- 	    sdata->vif.type != NL80211_IFTYPE_AP_VLAN &&
- 	    sdata->vif.type != NL80211_IFTYPE_AP)
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
- 		drv_set_multicast_list(local, sdata, &dev->mc);
-+#else
-+		drv_set_multicast_list(local, sdata, dev->mc_count,
-+				       dev->mc_list);
-+#endif
- 
+@@ -1009,7 +1014,12 @@ static void ieee80211_set_multicast_list(struct net_device *dev)
+ 		sdata->flags ^= IEEE80211_SDATA_PROMISC;
+ 	}
  	spin_lock_bh(&local->filter_lock);
 +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
  	__hw_addr_sync(&local->mc_list, &dev->mc, dev->addr_len);
Signature · 1 line
1.7.10.4
#1 lore raw
Quoted 9 lines · Arend van Spriel

Fixing up the patches for mac80211 that were located under collateral-evolutions/network/25-multicast-list_head.

---
 .../include_net_mac80211.patch                     |   14 +--------
 .../net_mac80211_driver-ops.patch                  |   33 +-------------------
 .../net_mac80211_iface.patch                       |   16 +++-------
 3 files changed, 6 insertions(+), 57 deletions(-)

This patch does not apply for me on current master:

hauke@hauke-desktop:~/compat-wireless/backports$ patch -p1 < tmp.patch
patching file
patches/collateral-evolutions/network/25-multicast-list_head/include_net_mac80211.patch
Hunk #1 FAILED at 1.
1 out of 2 hunks FAILED -- saving rejects to file
patches/collateral-evolutions/network/25-multicast-list_head/include_net_mac80211.patch.rej
patching file
patches/collateral-evolutions/network/25-multicast-list_head/net_mac80211_driver-ops.patch
patching file
patches/collateral-evolutions/network/25-multicast-list_head/net_mac80211_iface.patch
Hunk #1 FAILED at 1.
Hunk #2 FAILED at 14.
2 out of 2 hunks FAILED -- saving rejects to file
patches/collateral-evolutions/network/25-multicast-list_head/net_mac80211_iface.patch.rej

Is it based on master of this repository:
git://git.kernel.org/pub/scm/linux/kernel/git/backports/backports.git

Hauke

#2 lore raw
Quoted 29 lines · Hauke Mehrtens
Quoted 9 lines · Arend van Spriel

Fixing up the patches for mac80211 that were located under collateral-evolutions/network/25-multicast-list_head.

---
 .../include_net_mac80211.patch                     |   14 +--------
 .../net_mac80211_driver-ops.patch                  |   33 +-------------------
 .../net_mac80211_iface.patch                       |   16 +++-------
 3 files changed, 6 insertions(+), 57 deletions(-)

This patch does not apply for me on current master:

hauke@hauke-desktop:~/compat-wireless/backports$ patch -p1 < tmp.patch
patching file
patches/collateral-evolutions/network/25-multicast-list_head/include_net_mac80211.patch
Hunk #1 FAILED at 1.
1 out of 2 hunks FAILED -- saving rejects to file
patches/collateral-evolutions/network/25-multicast-list_head/include_net_mac80211.patch.rej
patching file
patches/collateral-evolutions/network/25-multicast-list_head/net_mac80211_driver-ops.patch
patching file
patches/collateral-evolutions/network/25-multicast-list_head/net_mac80211_iface.patch
Hunk #1 FAILED at 1.
Hunk #2 FAILED at 14.
2 out of 2 hunks FAILED -- saving rejects to file
patches/collateral-evolutions/network/25-multicast-list_head/net_mac80211_iface.patch.rej
Quoted 2 lines

Is it based on master of this repository:
git://git.kernel.org/pub/scm/linux/kernel/git/backports/backports.git

Had a good vacation so .... let me check. Oh, and best wishes ;-)

Gr. AvS