• Ido Schimmel's avatar
    drop_monitor: Reset per-CPU data before starting to trace · 44075f56
    Ido Schimmel authored
    The function reset_per_cpu_data() allocates and prepares a new skb for
    the summary netlink alert message ('NET_DM_CMD_ALERT'). The new skb is
    stored in the per-CPU 'data' variable and the old is returned.
    
    The function is invoked during module initialization and from the
    workqueue, before an alert is sent. This means that it is possible to
    receive an alert with stale data, if we stopped tracing when the
    hysteresis timer ('data->send_timer') was pending.
    
    Instead of invoking the function during module initialization, invoke it
    just before we start tracing and ensure we get a fresh skb.
    
    This also allows us to remove the calls to initialize the timer and the
    work item from the module initialization path, since both could have
    been triggered by the error paths of reset_per_cpu_data().
    Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    44075f56
drop_monitor.c 11.9 KB