iface.c (0e028ab0fb2da47fd235dafd4159859892e73d08) iface.c (99932d4fc03a13bb3e94938fe25458fabc8f2fc3)
1/*
2 * Interface handling
3 *
4 * Copyright 2002-2005, Instant802 Networks, Inc.
5 * Copyright 2005-2006, Devicescape Software, Inc.
6 * Copyright (c) 2006 Jiri Benc <jbenc@suse.cz>
7 * Copyright 2008, Johannes Berg <johannes@sipsolutions.net>
8 *

--- 819 unchanged lines hidden (view full) ---

828 spin_unlock_bh(&local->filter_lock);
829 netif_addr_unlock_bh(sdata->dev);
830 }
831
832 del_timer_sync(&local->dynamic_ps_timer);
833 cancel_work_sync(&local->dynamic_ps_enable_work);
834
835 cancel_work_sync(&sdata->recalc_smps);
1/*
2 * Interface handling
3 *
4 * Copyright 2002-2005, Instant802 Networks, Inc.
5 * Copyright 2005-2006, Devicescape Software, Inc.
6 * Copyright (c) 2006 Jiri Benc <jbenc@suse.cz>
7 * Copyright 2008, Johannes Berg <johannes@sipsolutions.net>
8 *

--- 819 unchanged lines hidden (view full) ---

828 spin_unlock_bh(&local->filter_lock);
829 netif_addr_unlock_bh(sdata->dev);
830 }
831
832 del_timer_sync(&local->dynamic_ps_timer);
833 cancel_work_sync(&local->dynamic_ps_enable_work);
834
835 cancel_work_sync(&sdata->recalc_smps);
836 sdata_lock(sdata);
837 sdata->vif.csa_active = false;
836 sdata->vif.csa_active = false;
838 sdata_unlock(sdata);
839 cancel_work_sync(&sdata->csa_finalize_work);
840
841 cancel_delayed_work_sync(&sdata->dfs_cac_timer_work);
842
843 if (sdata->wdev.cac_started) {
844 chandef = sdata->vif.bss_conf.chandef;
845 WARN_ON(local->suspended);
846 mutex_lock(&local->mtx);

--- 207 unchanged lines hidden (view full) ---

1054
1055static void ieee80211_uninit(struct net_device *dev)
1056{
1057 ieee80211_teardown_sdata(IEEE80211_DEV_TO_SUB_IF(dev));
1058}
1059
1060static u16 ieee80211_netdev_select_queue(struct net_device *dev,
1061 struct sk_buff *skb,
837 cancel_work_sync(&sdata->csa_finalize_work);
838
839 cancel_delayed_work_sync(&sdata->dfs_cac_timer_work);
840
841 if (sdata->wdev.cac_started) {
842 chandef = sdata->vif.bss_conf.chandef;
843 WARN_ON(local->suspended);
844 mutex_lock(&local->mtx);

--- 207 unchanged lines hidden (view full) ---

1052
1053static void ieee80211_uninit(struct net_device *dev)
1054{
1055 ieee80211_teardown_sdata(IEEE80211_DEV_TO_SUB_IF(dev));
1056}
1057
1058static u16 ieee80211_netdev_select_queue(struct net_device *dev,
1059 struct sk_buff *skb,
1062 void *accel_priv)
1060 void *accel_priv,
1061 select_queue_fallback_t fallback)
1063{
1064 return ieee80211_select_queue(IEEE80211_DEV_TO_SUB_IF(dev), skb);
1065}
1066
1067static const struct net_device_ops ieee80211_dataif_ops = {
1068 .ndo_open = ieee80211_open,
1069 .ndo_stop = ieee80211_stop,
1070 .ndo_uninit = ieee80211_uninit,
1071 .ndo_start_xmit = ieee80211_subif_start_xmit,
1072 .ndo_set_rx_mode = ieee80211_set_multicast_list,
1073 .ndo_change_mtu = ieee80211_change_mtu,
1074 .ndo_set_mac_address = ieee80211_change_mac,
1075 .ndo_select_queue = ieee80211_netdev_select_queue,
1076};
1077
1078static u16 ieee80211_monitor_select_queue(struct net_device *dev,
1079 struct sk_buff *skb,
1062{
1063 return ieee80211_select_queue(IEEE80211_DEV_TO_SUB_IF(dev), skb);
1064}
1065
1066static const struct net_device_ops ieee80211_dataif_ops = {
1067 .ndo_open = ieee80211_open,
1068 .ndo_stop = ieee80211_stop,
1069 .ndo_uninit = ieee80211_uninit,
1070 .ndo_start_xmit = ieee80211_subif_start_xmit,
1071 .ndo_set_rx_mode = ieee80211_set_multicast_list,
1072 .ndo_change_mtu = ieee80211_change_mtu,
1073 .ndo_set_mac_address = ieee80211_change_mac,
1074 .ndo_select_queue = ieee80211_netdev_select_queue,
1075};
1076
1077static u16 ieee80211_monitor_select_queue(struct net_device *dev,
1078 struct sk_buff *skb,
1080 void *accel_priv)
1079 void *accel_priv,
1080 select_queue_fallback_t fallback)
1081{
1082 struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
1083 struct ieee80211_local *local = sdata->local;
1084 struct ieee80211_hdr *hdr;
1085 struct ieee80211_radiotap_header *rtap = (void *)skb->data;
1086
1087 if (local->hw.queues < IEEE80211_NUM_ACS)
1088 return 0;

--- 720 unchanged lines hidden ---
1081{
1082 struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
1083 struct ieee80211_local *local = sdata->local;
1084 struct ieee80211_hdr *hdr;
1085 struct ieee80211_radiotap_header *rtap = (void *)skb->data;
1086
1087 if (local->hw.queues < IEEE80211_NUM_ACS)
1088 return 0;

--- 720 unchanged lines hidden ---