提交 ab565790 编写于 作者: L Lennert Buytenhek 提交者: John W. Linville

mwl8k: remove mwl8k_queue_work()

Signed-off-by: NLennert Buytenhek <buytenh@marvell.com>
Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
上级 e6935ea1
......@@ -2425,70 +2425,6 @@ static int mwl8k_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
return rc;
}
struct mwl8k_work_struct {
/* Initialized by mwl8k_queue_work(). */
struct work_struct wt;
/* Required field passed in to mwl8k_queue_work(). */
struct ieee80211_hw *hw;
/* Required field passed in to mwl8k_queue_work(). */
int (*wfunc)(struct work_struct *w);
/* Initialized by mwl8k_queue_work(). */
struct completion *cmd_wait;
/* Result code. */
int rc;
};
static void mwl8k_config_thread(struct work_struct *wt)
{
struct mwl8k_work_struct *worker = (struct mwl8k_work_struct *)wt;
struct ieee80211_hw *hw = worker->hw;
int rc = 0;
rc = mwl8k_fw_lock(hw);
if (!rc) {
rc = worker->wfunc(wt);
mwl8k_fw_unlock(hw);
}
worker->rc = rc;
complete(worker->cmd_wait);
}
static int mwl8k_queue_work(struct ieee80211_hw *hw,
struct mwl8k_work_struct *worker,
int (*wfunc)(struct work_struct *w))
{
struct mwl8k_priv *priv = hw->priv;
unsigned long timeout = 0;
int rc = 0;
DECLARE_COMPLETION_ONSTACK(cmd_wait);
worker->hw = hw;
worker->cmd_wait = &cmd_wait;
worker->rc = 1;
worker->wfunc = wfunc;
INIT_WORK(&worker->wt, mwl8k_config_thread);
queue_work(priv->config_wq, &worker->wt);
timeout = wait_for_completion_timeout(&cmd_wait,
msecs_to_jiffies(10000));
if (timeout)
rc = worker->rc;
else {
cancel_work_sync(&worker->wt);
rc = -ETIMEDOUT;
}
return rc;
}
static int mwl8k_start(struct ieee80211_hw *hw)
{
struct mwl8k_priv *priv = hw->priv;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册