There's a whole other problem here too. When a driver printk's some partial message and then goes off to wait on the hardware to come up, what is stopping the other driver which is running in parallel from printk'ing all over that line? Absolutely nothing, in fact.
Perhaps printk outputs need unique ID codes so the logging daemons know which bits to stick together.
Or just make each message a complete atomic entity.