mwifiex: simplify mwifiex_complete_cmd
600f5d909a54("mwifiex: cleanup ioctl wait queue and abstraction layer") introduced the wakeup_interruptible suppression in mwifiex_complete_cmd b1a47aa5e1e1("mwifiex: fix system hang issue in cmd timeout error case") then added wakup_interruptible to mwifiex_cmd_timeout_func the single place setting a status of ETIMEDOUT. Instead of doing extra work, using the standard call-chain will have the same effect: mwifiex_cancel_pending_ioctl -> mwifiex_recycle_cmd_node -> mwifiex_insert_cmd_to_free_q -> mwifiex_complete_cmd -> wake_up_interruptible The difference is that previously the condition was not set to true, but that's probably just an oversight in b1a47aa5e1e1 and shouldn't have any consequence Signed-off-by: Andreas Fenkart <afenkart@gmail.com> Acked-by: Amitkumar Karwar <akarwar@marvell.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
e9f21d4036
commit
c5bc15fce6
@ -976,7 +976,6 @@ mwifiex_cmd_timeout_func(unsigned long function_context)
|
||||
|
||||
if (cmd_node->wait_q_enabled) {
|
||||
adapter->cmd_wait_q.status = -ETIMEDOUT;
|
||||
wake_up_interruptible(&adapter->cmd_wait_q.wait);
|
||||
mwifiex_cancel_pending_ioctl(adapter);
|
||||
}
|
||||
}
|
||||
|
@ -66,8 +66,8 @@ int mwifiex_wait_queue_complete(struct mwifiex_adapter *adapter,
|
||||
if (status <= 0) {
|
||||
if (status == 0)
|
||||
status = -ETIMEDOUT;
|
||||
mwifiex_dbg(adapter, ERROR,
|
||||
"cmd_wait_q terminated: %d\n", status);
|
||||
mwifiex_dbg(adapter, ERROR, "cmd_wait_q terminated: %d\n",
|
||||
status);
|
||||
mwifiex_cancel_all_pending_cmd(adapter);
|
||||
return status;
|
||||
}
|
||||
|
@ -496,16 +496,12 @@ int mwifiex_recv_packet(struct mwifiex_private *priv, struct sk_buff *skb)
|
||||
int mwifiex_complete_cmd(struct mwifiex_adapter *adapter,
|
||||
struct cmd_ctrl_node *cmd_node)
|
||||
{
|
||||
mwifiex_dbg(adapter, CMD,
|
||||
"cmd completed: status=%d\n",
|
||||
WARN_ON(!cmd_node->wait_q_enabled);
|
||||
mwifiex_dbg(adapter, CMD, "cmd completed: status=%d\n",
|
||||
adapter->cmd_wait_q.status);
|
||||
|
||||
*(cmd_node->condition) = true;
|
||||
|
||||
if (adapter->cmd_wait_q.status == -ETIMEDOUT)
|
||||
mwifiex_dbg(adapter, ERROR, "cmd timeout\n");
|
||||
else
|
||||
wake_up_interruptible(&adapter->cmd_wait_q.wait);
|
||||
*cmd_node->condition = true;
|
||||
wake_up_interruptible(&adapter->cmd_wait_q.wait);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user