Why would there be pending requests while host is suspending? Is the kernel framework not handling sync before going to suspend? However, the mmc_blk_suspend() would be called before the host driver suspends (as all the driver suspend routines are serialized) which means it stops block layer to queue more I/O requests well before the host driver start suspend. Does this sequence break in your case?
I have observed this issue for different cases (one case was logging to eMMC). The idea is simply that we would like to be sure that we do not wait "forever", no matter if the "upper layers" misbehaved in the suspend sequence.
Your concern seems to be valid for SDIO case, but again the function driver must be intelligent enough to return -EBUSY as it knows that it had posted a request to MMC.
For SDIO, should we really assume that function driver has implemented a suspend function and moreover that it actually always behaves as we expect?
Br Ulf Hansson -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html