On Wed Mar 18, 2026 at 9:22 AM CET, Peter Korsgaard wrote:
> There is already a wait_for_device_probe() just above the loop, so what
> does this fix exactly? Do we need both?

The mmc_rescan() function (that probes the MMC device) is called in a
delayed work. When the issue occurs, MMC device has not started probing
yet (bacause the work has not been scheduled yet), so the first
wait_for_device_probe() does not wait for it. That's also the reason why
this waitfor parameter exists, otherwise the first wait_for_device_probe
would be enough to wait for the MMC device if probing wasn't deleayed.

The second call ensures that this delayed probing, which includes scaning
avaialble partitions, is done.

That's also what is done for rootwait=, there is a first call to
wait_for_device_probe() in prepare_namespace(), then the busy while loop
in wait_for_root() still wait for probing to be done.

> Interesting enough, I have never encountered this issue myself. I do use
> a partition identifier (dm-mod.waitfor="PARTLABEL=root-a") which
> presumably sidetracks the /dev/mmcblk0 available, but partition table
> not yet parsed issue.

Yes, the issue occurs only when partition scaning has not finished yet.

Reply via email to