• Ulf Hansson's avatar
    mmc: block: Use the mmc host device index as the mmcblk device index · 9aaf3437
    Ulf Hansson authored
    Commit 520bd7a8 ("mmc: core: Optimize boot time by detecting cards
    simultaneously") causes regressions for some platforms.
    
    These platforms relies on fixed mmcblk device indexes, instead of
    deploying the defacto standard with UUID/PARTUUID. In other words their
    rootfs needs to be available at hardcoded paths, like /dev/mmcblk0p2.
    
    Such guarantees have never been made by the kernel, but clearly the above
    commit changes the behaviour. More precisely, because of that the order
    changes of how cards becomes detected, so do their corresponding mmcblk
    device indexes.
    
    As the above commit significantly improves boot time for some platforms
    (magnitude of seconds), let's avoid reverting this change but instead
    restore the behaviour of how mmcblk device indexes becomes picked.
    
    By using the same index for the mmcblk device as for the corresponding mmc
    host device, the probe order of mmc host devices decides the index we get
    for the mmcblk device.
    
    For those platforms that suffers from a regression, one could expect that
    this updated behaviour should be sufficient to meet their expectations of
    "fixed" mmcblk device indexes.
    
    Another side effect from this change, is that the same index is used for
    the mmc host device, the mmcblk device and the mmc block queue. That
    should clarify their relationship.
    Reported-by: default avatarPeter Hurley <peter@hurleysoftware.com>
    Reported-by: default avatarLaszlo Fiat <laszlo.fiat@gmail.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Fixes: 520bd7a8 ("mmc: core: Optimize boot time by detecting cards
    simultaneously")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
    9aaf3437
block.c 67 KB