• Robert Sprowson's avatar
    Unplug/RMInsert with podule module fix · 7b7cb6d9
    Robert Sprowson authored
    During the first pass keyboard scan the ROM module nodes are built off the anchor ROMModuleChain.
    During the second pass the whole set of ROM module nodes are temporarily constructed anchored on the stack, then switched over.
    This caused a problem when a duplicate name module was encountered on a podule (eg. MbufManager in a NIC) because FindROMModule searches from the ROMModuleChain anchor, didn't find a match, so created a new node rather than linking it to the NewerVersion/OlderVersion linked list on the existing node.
    Then *Unplug and *RMInsert would say "Module is not in ROM" if the optional podule specifier was given, because the search stopped at the first node with the right name.
    
    Swap round the second pass so it anchors directly on ROMModuleChain, and keeps the first pass anchor on the stack (needed only occasionally to copy over details of modules already initialised).
    
    Tested on a Risc PC with NIC, can now selectively unplug MbufManager again.
    
    Version 5.93. Tagged as 'Kernel-5_93'
    7b7cb6d9
VersionASM 1006 Bytes