at86rf230: add missing error handling
authorAlexander Aring <alex.aring@gmail.com>
Tue, 7 Oct 2014 08:38:26 +0000 (10:38 +0200)
committerMarcel Holtmann <marcel@holtmann.org>
Sat, 25 Oct 2014 05:56:22 +0000 (07:56 +0200)
This patch adds an async error handling function if sync state change
runs into a timeout. The async error handling function tries to recover
the phy state machine into a valid state.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
drivers/net/ieee802154/at86rf230.c

index 6857038111a0cc39614626b1331351974481c676..44d2f1de31e0695a74c3854948075de990b056be 100644 (file)
@@ -690,8 +690,10 @@ at86rf230_sync_state_change(struct at86rf230_local *lp, unsigned int state)
 
        rc = wait_for_completion_timeout(&lp->state_complete,
                                         msecs_to_jiffies(100));
-       if (!rc)
+       if (!rc) {
+               at86rf230_async_error(lp, &lp->state, -ETIMEDOUT);
                return -ETIMEDOUT;
+       }
 
        return 0;
 }