Hi, On Thu, Oct 17, 2019 at 6:57 AM Ulf Hansson <ulf.hansson@xxxxxxxxxx> wrote: > > Upfront in mmc_rescan() we use the host->rescan_entered flag, to allow > scanning only once for non-removable cards. Therefore, it's also not > possible that we can have bus attached, when we are scanning non-removable > cards. For this reason, let' drop the check for mmc_card_is_removable() as > it's redundant. > > Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx> > --- > drivers/mmc/core/core.c | 7 ++----- > 1 file changed, 2 insertions(+), 5 deletions(-) > > diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c > index 221127324709..6f8342702c73 100644 > --- a/drivers/mmc/core/core.c > +++ b/drivers/mmc/core/core.c > @@ -2297,11 +2297,8 @@ void mmc_rescan(struct work_struct *work) > > mmc_bus_get(host); > > - /* > - * if there is a _removable_ card registered, check whether it is > - * still present > - */ > - if (host->bus_ops && !host->bus_dead && mmc_card_is_removable(host)) > + /* Verify a registered card to be functional, else remove it. */ > + if (host->bus_ops && !host->bus_dead) > host->bus_ops->detect(host); At first I thought this was a bit more of a change than your description makes it sound like. Specifically it seemed like non-removable cards used to never call host->bus_ops->detect() here (even during the first call to mmc_rescan) but now they would call it the first time through. ...so I put in a bunch of printouts. It appears that the first time through mmc_rescan() host->bus_ops is NULL. ...ah, and this is what that sentence in your description means about having a bus attached. Now I get it! :-) ...so, right, this looks fine. Reviewed-by: Douglas Anderson <dianders@xxxxxxxxxxxx>