• Martin Schwidefsky's avatar
    [PATCH] s390 update (24/27): boot sequence. · ebbde003
    Martin Schwidefsky authored
    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.
    ebbde003
s390mach.c 13 KB