The PCMCIA code does initializations in the wrong order, and
asynchronously (ie from multiple different threads). And init_pcmcia_ds()
really depends on the actual low-level drivers having had time to
register, since the PCMCIA code never had any sane way to inform the DS
layer that a new client driver had registered.
Thus the delay by init_pcmcia_ds() - to give time for drivers to
initialize. And the yenta driver needs some time.. That time apparently
went up a bit, probably due to the tq/work changes.
The _right_ thing to do is to not have init_pcmcia_ds() depend on
low-level drivers being initialized, but instead do that DS thing
_early_, and then when each driver initializes it would tell the DS layer.
But that's not how the PCMCIA code was organized..
Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/