[PATCH] s390 update (24/27): boot sequence.
Rework boot sequence on s390: Traditionally, device detection os s390 is done completely at a _very_ early stage during bootup (from init_irq(), i.e. before memory management or the console are there). This has always been a bad idea, but now it broke even more since the linux driver model requires devices detection to take place after the core_initcalls are done. We now do only a small amount of scanning (probably less in the future) at the early stage, the bulk of it is done from a proper subsys_initcall(). This requires some changes in related areas: - the machine check handler initialization is split in two halves, since we want to catch major machine malfunctions as early as possible, but device machine checks can only be caught after the channel subsystem is up. - some functions that are called from the css initialization made some assumptions of when to use kmalloc or bootmem_alloc, which were broken anyway. We fix this here and hopefully can get rid of bootmem_alloc for the css completely in the future. - the debug logging feature for s390 was not used for functions in the initialization before, since it requires the memory management to be working. Now that we can be sure that it works, some special cases can be removed. Now that these changes are done, a partial implementation of the device model for the channel subsystem is possible, but at this point, none of the device drivers make use of that yet.
Showing
This diff is collapsed.
Please register or sign in to comment