diff options
author | Andreas Fenkart <afenkart@gmail.com> | 2015-07-17 03:13:06 -0400 |
---|---|---|
committer | Kalle Valo <kvalo@codeaurora.org> | 2015-08-06 03:09:13 -0400 |
commit | c5bc15fce6aa33b7aeba4e049ceacfab66fa4a9f (patch) | |
tree | f1d5cfd5d0ee3c7586666210f44b3a43f7330b29 | |
parent | e9f21d403699a4d299a02df107326f11acecd13e (diff) |
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>
-rw-r--r-- | drivers/net/wireless/mwifiex/cmdevt.c | 1 | ||||
-rw-r--r-- | drivers/net/wireless/mwifiex/sta_ioctl.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/mwifiex/util.c | 12 |
3 files changed, 6 insertions, 11 deletions
diff --git a/drivers/net/wireless/mwifiex/cmdevt.c b/drivers/net/wireless/mwifiex/cmdevt.c index 6458e17304ca..27b778d5164e 100644 --- a/drivers/net/wireless/mwifiex/cmdevt.c +++ b/drivers/net/wireless/mwifiex/cmdevt.c | |||
@@ -976,7 +976,6 @@ mwifiex_cmd_timeout_func(unsigned long function_context) | |||
976 | 976 | ||
977 | if (cmd_node->wait_q_enabled) { | 977 | if (cmd_node->wait_q_enabled) { |
978 | adapter->cmd_wait_q.status = -ETIMEDOUT; | 978 | adapter->cmd_wait_q.status = -ETIMEDOUT; |
979 | wake_up_interruptible(&adapter->cmd_wait_q.wait); | ||
980 | mwifiex_cancel_pending_ioctl(adapter); | 979 | mwifiex_cancel_pending_ioctl(adapter); |
981 | } | 980 | } |
982 | } | 981 | } |
diff --git a/drivers/net/wireless/mwifiex/sta_ioctl.c b/drivers/net/wireless/mwifiex/sta_ioctl.c index d8b7d9c20450..a6c8a4f7bfe9 100644 --- a/drivers/net/wireless/mwifiex/sta_ioctl.c +++ b/drivers/net/wireless/mwifiex/sta_ioctl.c | |||
@@ -66,8 +66,8 @@ int mwifiex_wait_queue_complete(struct mwifiex_adapter *adapter, | |||
66 | if (status <= 0) { | 66 | if (status <= 0) { |
67 | if (status == 0) | 67 | if (status == 0) |
68 | status = -ETIMEDOUT; | 68 | status = -ETIMEDOUT; |
69 | mwifiex_dbg(adapter, ERROR, | 69 | mwifiex_dbg(adapter, ERROR, "cmd_wait_q terminated: %d\n", |
70 | "cmd_wait_q terminated: %d\n", status); | 70 | status); |
71 | mwifiex_cancel_all_pending_cmd(adapter); | 71 | mwifiex_cancel_all_pending_cmd(adapter); |
72 | return status; | 72 | return status; |
73 | } | 73 | } |
diff --git a/drivers/net/wireless/mwifiex/util.c b/drivers/net/wireless/mwifiex/util.c index 2504e422364a..a5f34f2c1086 100644 --- a/drivers/net/wireless/mwifiex/util.c +++ b/drivers/net/wireless/mwifiex/util.c | |||
@@ -496,16 +496,12 @@ int mwifiex_recv_packet(struct mwifiex_private *priv, struct sk_buff *skb) | |||
496 | int mwifiex_complete_cmd(struct mwifiex_adapter *adapter, | 496 | int mwifiex_complete_cmd(struct mwifiex_adapter *adapter, |
497 | struct cmd_ctrl_node *cmd_node) | 497 | struct cmd_ctrl_node *cmd_node) |
498 | { | 498 | { |
499 | mwifiex_dbg(adapter, CMD, | 499 | WARN_ON(!cmd_node->wait_q_enabled); |
500 | "cmd completed: status=%d\n", | 500 | mwifiex_dbg(adapter, CMD, "cmd completed: status=%d\n", |
501 | adapter->cmd_wait_q.status); | 501 | adapter->cmd_wait_q.status); |
502 | 502 | ||
503 | *(cmd_node->condition) = true; | 503 | *cmd_node->condition = true; |
504 | 504 | wake_up_interruptible(&adapter->cmd_wait_q.wait); | |
505 | if (adapter->cmd_wait_q.status == -ETIMEDOUT) | ||
506 | mwifiex_dbg(adapter, ERROR, "cmd timeout\n"); | ||
507 | else | ||
508 | wake_up_interruptible(&adapter->cmd_wait_q.wait); | ||
509 | 505 | ||
510 | return 0; | 506 | return 0; |
511 | } | 507 | } |