Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 291422
b: refs/heads/master
c: 177958e
h: refs/heads/master
v: v3
  • Loading branch information
Johannes Berg authored and John W. Linville committed Mar 12, 2012
1 parent a8082c6 commit 350a640
Show file tree
Hide file tree
Showing 6 changed files with 1 addition and 162 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 3789d59c24cb142e4590492c3b5137a7c3dec352
refs/heads/master: 177958e9679c23537411066cc41b205635dacb14
41 changes: 0 additions & 41 deletions trunk/include/net/mac80211.h
Original file line number Diff line number Diff line change
Expand Up @@ -1765,20 +1765,6 @@ enum ieee80211_ampdu_mlme_action {
IEEE80211_AMPDU_TX_OPERATIONAL,
};

/**
* enum ieee80211_tx_sync_type - TX sync type
* @IEEE80211_TX_SYNC_AUTH: sync TX for authentication
* (and possibly also before direct probe)
* @IEEE80211_TX_SYNC_ASSOC: sync TX for association
* @IEEE80211_TX_SYNC_ACTION: sync TX for action frame
* (not implemented yet)
*/
enum ieee80211_tx_sync_type {
IEEE80211_TX_SYNC_AUTH,
IEEE80211_TX_SYNC_ASSOC,
IEEE80211_TX_SYNC_ACTION,
};

/**
* enum ieee80211_frame_release_type - frame release reason
* @IEEE80211_FRAME_RELEASE_PSPOLL: frame released for PS-Poll
Expand Down Expand Up @@ -1889,26 +1875,6 @@ enum ieee80211_frame_release_type {
* of the bss parameters has changed when a call is made. The callback
* can sleep.
*
* @tx_sync: Called before a frame is sent to an AP/GO. In the GO case, the
* driver should sync with the GO's powersaving so the device doesn't
* transmit the frame while the GO is asleep. In the regular AP case
* it may be used by drivers for devices implementing other restrictions
* on talking to APs, e.g. due to regulatory enforcement or just HW
* restrictions.
* This function is called for every authentication, association and
* action frame separately since applications might attempt to auth
* with multiple APs before chosing one to associate to. If it returns
* an error, the corresponding authentication, association or frame
* transmission is aborted and reported as having failed. It is always
* called after tuning to the correct channel.
* The callback might be called multiple times before @finish_tx_sync
* (but @finish_tx_sync will be called once for each) but in practice
* this is unlikely to happen. It can also refuse in that case if the
* driver cannot handle that situation.
* This callback can sleep.
* @finish_tx_sync: Called as a counterpart to @tx_sync, unless that returned
* an error. This callback can sleep.
*
* @prepare_multicast: Prepare for multicast filter configuration.
* This callback is optional, and its return value is passed
* to configure_filter(). This callback must be atomic.
Expand Down Expand Up @@ -2180,13 +2146,6 @@ struct ieee80211_ops {
struct ieee80211_bss_conf *info,
u32 changed);

int (*tx_sync)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
const u8 *bssid, enum ieee80211_tx_sync_type type);
void (*finish_tx_sync)(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
const u8 *bssid,
enum ieee80211_tx_sync_type type);

u64 (*prepare_multicast)(struct ieee80211_hw *hw,
struct netdev_hw_addr_list *mc_list);
void (*configure_filter)(struct ieee80211_hw *hw,
Expand Down
35 changes: 0 additions & 35 deletions trunk/net/mac80211/driver-ops.h
Original file line number Diff line number Diff line change
Expand Up @@ -168,41 +168,6 @@ static inline void drv_bss_info_changed(struct ieee80211_local *local,
trace_drv_return_void(local);
}

static inline int drv_tx_sync(struct ieee80211_local *local,
struct ieee80211_sub_if_data *sdata,
const u8 *bssid,
enum ieee80211_tx_sync_type type)
{
int ret = 0;

might_sleep();

check_sdata_in_driver(sdata);

trace_drv_tx_sync(local, sdata, bssid, type);
if (local->ops->tx_sync)
ret = local->ops->tx_sync(&local->hw, &sdata->vif,
bssid, type);
trace_drv_return_int(local, ret);
return ret;
}

static inline void drv_finish_tx_sync(struct ieee80211_local *local,
struct ieee80211_sub_if_data *sdata,
const u8 *bssid,
enum ieee80211_tx_sync_type type)
{
might_sleep();

check_sdata_in_driver(sdata);

trace_drv_finish_tx_sync(local, sdata, bssid, type);
if (local->ops->finish_tx_sync)
local->ops->finish_tx_sync(&local->hw, &sdata->vif,
bssid, type);
trace_drv_return_void(local);
}

static inline u64 drv_prepare_multicast(struct ieee80211_local *local,
struct netdev_hw_addr_list *mc_list)
{
Expand Down
43 changes: 0 additions & 43 deletions trunk/net/mac80211/driver-trace.h
Original file line number Diff line number Diff line change
Expand Up @@ -308,49 +308,6 @@ TRACE_EVENT(drv_bss_info_changed,
)
);

DECLARE_EVENT_CLASS(tx_sync_evt,
TP_PROTO(struct ieee80211_local *local,
struct ieee80211_sub_if_data *sdata,
const u8 *bssid,
enum ieee80211_tx_sync_type type),
TP_ARGS(local, sdata, bssid, type),

TP_STRUCT__entry(
LOCAL_ENTRY
VIF_ENTRY
__array(char, bssid, ETH_ALEN)
__field(u32, sync_type)
),

TP_fast_assign(
LOCAL_ASSIGN;
VIF_ASSIGN;
memcpy(__entry->bssid, bssid, ETH_ALEN);
__entry->sync_type = type;
),

TP_printk(
LOCAL_PR_FMT VIF_PR_FMT " bssid:%pM type:%d",
LOCAL_PR_ARG, VIF_PR_ARG, __entry->bssid, __entry->sync_type
)
);

DEFINE_EVENT(tx_sync_evt, drv_tx_sync,
TP_PROTO(struct ieee80211_local *local,
struct ieee80211_sub_if_data *sdata,
const u8 *bssid,
enum ieee80211_tx_sync_type type),
TP_ARGS(local, sdata, bssid, type)
);

DEFINE_EVENT(tx_sync_evt, drv_finish_tx_sync,
TP_PROTO(struct ieee80211_local *local,
struct ieee80211_sub_if_data *sdata,
const u8 *bssid,
enum ieee80211_tx_sync_type type),
TP_ARGS(local, sdata, bssid, type)
);

TRACE_EVENT(drv_prepare_multicast,
TP_PROTO(struct ieee80211_local *local, int mc_count),

Expand Down
1 change: 0 additions & 1 deletion trunk/net/mac80211/ieee80211_i.h
Original file line number Diff line number Diff line change
Expand Up @@ -388,7 +388,6 @@ struct ieee80211_mgd_auth_data {

u8 key[WLAN_KEY_LEN_WEP104];
u8 key_len, key_idx;
bool synced;
bool done;

size_t ie_len;
Expand Down
41 changes: 0 additions & 41 deletions trunk/net/mac80211/mlme.c
Original file line number Diff line number Diff line change
Expand Up @@ -1770,11 +1770,6 @@ static void ieee80211_destroy_auth_data(struct ieee80211_sub_if_data *sdata,

lockdep_assert_held(&sdata->u.mgd.mtx);

if (auth_data->synced)
drv_finish_tx_sync(sdata->local, sdata,
auth_data->bss->bssid,
IEEE80211_TX_SYNC_AUTH);

if (!assoc) {
sta_info_destroy_addr(sdata, auth_data->bss->bssid);

Expand Down Expand Up @@ -1862,10 +1857,6 @@ ieee80211_rx_mgmt_auth(struct ieee80211_sub_if_data *sdata,

printk(KERN_DEBUG "%s: authenticated\n", sdata->name);
out:
if (ifmgd->auth_data->synced)
drv_finish_tx_sync(sdata->local, sdata, bssid,
IEEE80211_TX_SYNC_AUTH);
ifmgd->auth_data->synced = false;
ifmgd->auth_data->done = true;
ifmgd->auth_data->timeout = jiffies + IEEE80211_AUTH_WAIT_ASSOC;
run_again(ifmgd, ifmgd->auth_data->timeout);
Expand Down Expand Up @@ -2005,11 +1996,6 @@ static void ieee80211_destroy_assoc_data(struct ieee80211_sub_if_data *sdata,

lockdep_assert_held(&sdata->u.mgd.mtx);

if (assoc_data->synced)
drv_finish_tx_sync(sdata->local, sdata,
assoc_data->bss->bssid,
IEEE80211_TX_SYNC_ASSOC);

if (!assoc) {
sta_info_destroy_addr(sdata, assoc_data->bss->bssid);

Expand Down Expand Up @@ -2255,14 +2241,6 @@ ieee80211_rx_mgmt_assoc_resp(struct ieee80211_sub_if_data *sdata,
} else {
printk(KERN_DEBUG "%s: associated\n", sdata->name);

/* tell driver about sync done first */
if (assoc_data->synced) {
drv_finish_tx_sync(sdata->local, sdata,
assoc_data->bss->bssid,
IEEE80211_TX_SYNC_ASSOC);
assoc_data->synced = false;
}

if (!ieee80211_assoc_success(sdata, *bss, mgmt, len)) {
/* oops -- internal error -- send timeout for now */
ieee80211_destroy_assoc_data(sdata, true);
Expand Down Expand Up @@ -2747,14 +2725,6 @@ static int ieee80211_probe_auth(struct ieee80211_sub_if_data *sdata)
if (WARN_ON_ONCE(!auth_data))
return -EINVAL;

if (!auth_data->synced) {
int ret = drv_tx_sync(local, sdata, auth_data->bss->bssid,
IEEE80211_TX_SYNC_AUTH);
if (ret)
return ret;
}
auth_data->synced = true;

auth_data->tries++;

if (auth_data->tries > IEEE80211_AUTH_MAX_TRIES) {
Expand Down Expand Up @@ -2811,14 +2781,6 @@ static int ieee80211_do_assoc(struct ieee80211_sub_if_data *sdata)

lockdep_assert_held(&sdata->u.mgd.mtx);

if (!assoc_data->synced) {
int ret = drv_tx_sync(local, sdata, assoc_data->bss->bssid,
IEEE80211_TX_SYNC_ASSOC);
if (ret)
return ret;
}
assoc_data->synced = true;

assoc_data->tries++;
if (assoc_data->tries > IEEE80211_ASSOC_MAX_TRIES) {
printk(KERN_DEBUG "%s: association with %pM timed out\n",
Expand Down Expand Up @@ -3245,9 +3207,6 @@ int ieee80211_mgd_auth(struct ieee80211_sub_if_data *sdata,

err = ieee80211_probe_auth(sdata);
if (err) {
if (auth_data->synced)
drv_finish_tx_sync(local, sdata, req->bss->bssid,
IEEE80211_TX_SYNC_AUTH);
sta_info_destroy_addr(sdata, req->bss->bssid);
goto err_clear;
}
Expand Down

0 comments on commit 350a640

Please sign in to comment.