We have this construction:

if (a && b && !c)
   finalize;
else
   block;
   finalize;

Which is equivalent by boolean logic to:

if (!a || !b || c)
   block;
finalize;

Which is simpler code.

Signed-off-by: Linus Walleij <linus.wall...@linaro.org>
---
 drivers/mmc/core/core.c | 27 ++++++++++++++++-----------
 1 file changed, 16 insertions(+), 11 deletions(-)

diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
index b2e7a6dfcbf0..8dbed198750f 100644
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@ -172,14 +172,16 @@ void mmc_request_done(struct mmc_host *host, struct 
mmc_request *mrq)
 
        trace_mmc_request_done(host, mrq);
 
-       if (err && cmd->retries && !mmc_card_removed(host->card)) {
-               /*
-                * Request starter must handle retries - see
-                * mmc_wait_for_req_done().
-                */
-               if (mrq->done)
-                       mrq->done(mrq);
-       } else {
+       /*
+        * We list various conditions for the command to be considered
+        * properly done:
+        *
+        * - There was no error, OK fine then
+        * - We are not doing some kind of retry
+        * - The card was removed (...so just complete everything no matter
+        *   if there are errors or retries)
+        */
+       if (!err || !cmd->retries || mmc_card_removed(host->card)) {
                mmc_should_fail_request(host, mrq);
 
                if (!host->ongoing_mrq)
@@ -211,10 +213,13 @@ void mmc_request_done(struct mmc_host *host, struct 
mmc_request *mrq)
                                mrq->stop->resp[0], mrq->stop->resp[1],
                                mrq->stop->resp[2], mrq->stop->resp[3]);
                }
-
-               if (mrq->done)
-                       mrq->done(mrq);
        }
+       /*
+        * Request starter must handle retries - see
+        * mmc_wait_for_req_done().
+        */
+       if (mrq->done)
+               mrq->done(mrq);
 }
 
 EXPORT_SYMBOL(mmc_request_done);
-- 
2.9.3

Reply via email to