• Matthew Wood's avatar
    net: netconsole: cache userdata formatted string in netconsole_target · df03f830
    Matthew Wood authored
    Store a formatted string for userdata that will be appended to netconsole
    messages. The string has a capacity of 4KB, as calculated by the userdatum
    entry length of 256 bytes and a max of 16 userdata entries.
    
    Update the stored netconsole_target->userdata_complete string with the new
    formatted userdata values when a userdatum is created, edited, or
    removed. Each userdata entry contains a trailing newline, which will be
    formatted as such in netconsole messages::
    
        6.7.0-rc8-virtme,12,500,1646292204,-;test
        release=foo
        something=bar
        6.7.0-rc8-virtme,12,500,1646292204,-;another test
        release=foo
        something=bar
    
    Enforcement of MAX_USERDATA_ITEMS is done in userdatum_make_item;
    update_userdata will not check for this case but will skip any userdata
    children over the limit of MAX_USERDATA_ITEMs.
    
    If a userdata entry/dir is created but no value is provided, that entry
    will be skipped. This is in part because update_userdata() can't be
    called in userdatum_make_item() since the item will not have been added
    to the userdata config_group children yet. To preserve the experience of
    adding an empty userdata that doesn't show up in the netconsole
    messages, purposefully skip empty userdata items even when
    update_userdata() can be called.
    Co-developed-by: default avatarBreno Leitao <leitao@debian.org>
    Signed-off-by: default avatarBreno Leitao <leitao@debian.org>
    Signed-off-by: default avatarMatthew Wood <thepacketgeek@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    df03f830
netconsole.c 32.2 KB