• Douglas Anderson's avatar
    pstore/ram: Improve backward compatibility with older Chromebooks · 1614e921
    Douglas Anderson authored
    When you try to run an upstream kernel on an old ARM-based Chromebook
    you'll find that console-ramoops doesn't work.
    
    Old ARM-based Chromebooks, before <https://crrev.com/c/439792>
    ("ramoops: support upstream {console,pmsg,ftrace}-size properties")
    used to create a "ramoops" node at the top level that looked like:
    
    / {
      ramoops {
        compatible = "ramoops";
        reg = <...>;
        record-size = <...>;
        dump-oops;
      };
    };
    
    ...and these Chromebooks assumed that the downstream kernel would make
    console_size / pmsg_size match the record size.  The above ramoops
    node was added by the firmware so it's not easy to make any changes.
    
    Let's match the expected behavior, but only for those using the old
    backward-compatible way of working where ramoops is right under the
    root node.
    
    NOTE: if there are some out-of-tree devices that had ramoops at the
    top level, left everything but the record size as 0, and somehow
    doesn't want this behavior, we can try to add more conditions here.
    Signed-off-by: default avatarDouglas Anderson <dianders@chromium.org>
    Signed-off-by: default avatarKees Cook <keescook@chromium.org>
    1614e921
ram.c 24.8 KB