From ce5d4b7e70251030884749d94a428c25d37b6e08 Mon Sep 17 00:00:00 2001 From: Eliad Peller Date: Tue, 27 Nov 2012 08:44:46 +0200 Subject: [PATCH] --- yaml --- r: 352195 b: refs/heads/master c: 3b44b3b3687534be24171db6ff80669b3a6dcbab h: refs/heads/master i: 352193: e356eaceb34cd4ec79d684811b63d709c5ba505a 352191: 812fe48c29114d13836fecb6bc77631adf823264 v: v3 --- [refs] | 2 +- trunk/drivers/net/wireless/ti/wlcore/acx.c | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index cd3a7e1b1902..a1695c9ae6c3 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ea5084356fb05093da9ff225fd2c2fcfd363371c +refs/heads/master: 3b44b3b3687534be24171db6ff80669b3a6dcbab diff --git a/trunk/drivers/net/wireless/ti/wlcore/acx.c b/trunk/drivers/net/wireless/ti/wlcore/acx.c index ce108a736bd0..9c32f0c840d7 100644 --- a/trunk/drivers/net/wireless/ti/wlcore/acx.c +++ b/trunk/drivers/net/wireless/ti/wlcore/acx.c @@ -1433,13 +1433,22 @@ int wl12xx_acx_set_ba_receiver_session(struct wl1271 *wl, u8 tid_index, acx->win_size = wl->conf.ht.rx_ba_win_size; acx->ssn = ssn; - ret = wl1271_cmd_configure(wl, ACX_BA_SESSION_RX_SETUP, acx, - sizeof(*acx)); + ret = wlcore_cmd_configure_failsafe(wl, ACX_BA_SESSION_RX_SETUP, acx, + sizeof(*acx), + BIT(CMD_STATUS_NO_RX_BA_SESSION)); if (ret < 0) { wl1271_warning("acx ba receiver session failed: %d", ret); goto out; } + /* sometimes we can't start the session */ + if (ret == CMD_STATUS_NO_RX_BA_SESSION) { + wl1271_warning("no fw rx ba on tid %d", tid_index); + ret = -EBUSY; + goto out; + } + + ret = 0; out: kfree(acx); return ret;