Loading drivers/net/wireless/mwl8k.c +0 −64 Original line number Diff line number Diff line Loading @@ -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; Loading Loading
drivers/net/wireless/mwl8k.c +0 −64 Original line number Diff line number Diff line Loading @@ -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; Loading