Эх сурвалжийг харах

mwifiex: do not return success when command times out

wait_event_interruptible_timeout() returns 0 upon timeout. We should
convert it to a negative error code (such as -ETIMEDOUT) instead of
returning it directly, as return code of 0 indicates that command was
executed.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Dmitry Torokhov 10 жил өмнө
parent
commit
4e0ff946ee

+ 2 - 0
drivers/net/wireless/mwifiex/sta_ioctl.c

@@ -64,6 +64,8 @@ int mwifiex_wait_queue_complete(struct mwifiex_adapter *adapter,
 						  *(cmd_queued->condition),
 						  *(cmd_queued->condition),
 						  (12 * HZ));
 						  (12 * HZ));
 	if (status <= 0) {
 	if (status <= 0) {
+		if (status == 0)
+			status = -ETIMEDOUT;
 		dev_err(adapter->dev, "cmd_wait_q terminated: %d\n", status);
 		dev_err(adapter->dev, "cmd_wait_q terminated: %d\n", status);
 		mwifiex_cancel_all_pending_cmd(adapter);
 		mwifiex_cancel_all_pending_cmd(adapter);
 		return status;
 		return status;