From d5275bddb9a78c5a52ad38dacc7779f20d9a0099 Mon Sep 17 00:00:00 2001 From: Eliad Peller Date: Mon, 27 Aug 2012 18:16:11 +0300 Subject: [PATCH] wlcore: allow ACX_BA_SESSION_RX_SETUP to fail Under some circumstances, that fw might be asked to remove a rx ba sessions it doesn't know about. In this case, instead of triggering a recovery, accept the error code (CMD_STATUS_NO_RX_BA_SESSION) and ignore it. Signed-off-by: Eliad Peller --- drivers/net/wireless/ti/wlcore/acx.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/ti/wlcore/acx.c b/drivers/net/wireless/ti/wlcore/acx.c index 3dbd84ec4121..57a7fdfa46b5 100644 --- a/drivers/net/wireless/ti/wlcore/acx.c +++ b/drivers/net/wireless/ti/wlcore/acx.c @@ -1433,13 +1433,17 @@ 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; } + if (ret == CMD_STATUS_NO_RX_BA_SESSION) + wl1271_warning("no fw rx ba on tid %d", tid_index); + ret = 0; out: kfree(acx); return ret;