diff options
author | Jaehoon Chung <jh80.chung@samsung.com> | 2016-11-24 14:04:40 +0300 |
---|---|---|
committer | Ulf Hansson <ulf.hansson@linaro.org> | 2016-12-05 12:31:15 +0300 |
commit | 1c238a95a727e8cd3fe1c97a653c4101b8dd39d2 (patch) | |
tree | 95a504281a44f72750cf011bf69c22212bb70df1 /drivers/mmc/host/dw_mmc.c | |
parent | df9bcc2bc0a1f8d2963bd916698268fb2470713b (diff) | |
download | linux-1c238a95a727e8cd3fe1c97a653c4101b8dd39d2.tar.xz |
mmc: dw_mmc: check the "present" variable before checking flags
Before checking flags, it has to check "present" variable.
Otherwise, flags should be cleared everytime.
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Diffstat (limited to 'drivers/mmc/host/dw_mmc.c')
-rw-r--r-- | drivers/mmc/host/dw_mmc.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c index 0aa4bcd85bb7..c0e96ade4cc9 100644 --- a/drivers/mmc/host/dw_mmc.c +++ b/drivers/mmc/host/dw_mmc.c @@ -1536,7 +1536,8 @@ static int dw_mci_get_cd(struct mmc_host *mmc) spin_lock_bh(&host->lock); if (present && !test_and_set_bit(DW_MMC_CARD_PRESENT, &slot->flags)) dev_dbg(&mmc->class_dev, "card is present\n"); - else if (!test_and_clear_bit(DW_MMC_CARD_PRESENT, &slot->flags)) + else if (!present && + !test_and_clear_bit(DW_MMC_CARD_PRESENT, &slot->flags)) dev_dbg(&mmc->class_dev, "card is not present\n"); spin_unlock_bh(&host->lock); |