Re: [GIT PULL] ARM: SoC fixes for v5.10, part 3

From: Linus Torvalds
Date: Fri Nov 27 2020 - 17:59:28 EST


On Fri, Nov 27, 2020 at 12:51 PM Arnd Bergmann <arnd@xxxxxxxxxx> wrote:
>
> - Some DT patches for the Rockchip RK3399 platform,
> in particular fixing the MMC device ordering that
> recently became nondeterministic with async probe.

Uhhuh.

I didn't realize this MMC breakage happened.

That's just an MMC bug. Other subsystems have been able to do async
probing without making device ordering be random.

So this really smells wrong, and I just never realized.

Added Douglas Anderson to the cc - the whole PROBE_PREFER_ASYNCHRONOUS
behavior appears broken.

You basically should do the device numbering synchronously (or better
yet - asynchronously, but single-threaded for the subsystem), and then
asynchronously probe the actual device details after you've numbered
them reliably.

This is not something new - we do this for pretty much all the other
block devices, and MMC is just doing things wrong.

See SCSI probing for the traditional horrible cases (where just
spinning up a disk could take tens of seconds). "Slow probing" is not
an excuse of "random ordering".

Behaving randomly is simply not acceptable.

Linus