From: Pierre Ossman Date: Sun, 22 Oct 2006 20:13:10 +0000 (+0200) Subject: mmc: Fix mmc_delay() function X-Git-Tag: firefly_0821_release~30985^2~47^2~565^2~4 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=73778120c4088a0a7b59c4c378904f7a230b4820;p=firefly-linux-kernel-4.4.55.git mmc: Fix mmc_delay() function Several fixes for mmc_delay(): * Repair if-clause that was supposed to detect sub-hz delays. * Change yield() to cond_resched() as yield() no longer has the semantics we desire. * mmc_delay() is used to guarantee protocol delays, so we cannot return early (i.e. use _interruptable). Based on patch by Amol Lad. Signed-off-by: Pierre Ossman --- diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c index 1593a6a632cf..82b7643c1654 100644 --- a/drivers/mmc/mmc.c +++ b/drivers/mmc/mmc.c @@ -454,11 +454,11 @@ static void mmc_deselect_cards(struct mmc_host *host) static inline void mmc_delay(unsigned int ms) { - if (ms < HZ / 1000) { - yield(); + if (ms < 1000 / HZ) { + cond_resched(); mdelay(ms); } else { - msleep_interruptible (ms); + msleep(ms); } }