• Amit Cohen's avatar
    netdevsim: fib: Convert the current occupancy to an atomic variable · 9e635a21
    Amit Cohen authored
    When route is added/deleted, the appropriate counter is increased/decreased
    to maintain number of routes.
    
    User can limit the number of routes and then according to the appropriate
    counter, adding more routes than the limitation is forbidden.
    
    Currently, there is one lock which protects hashtable, list and accounting.
    
    Handling the counters will be performed from both atomic context and
    non-atomic context, while the hashtable and the list will be used only from
    non-atomic context and therefore will be protected by a separate lock.
    
    Protect accounting by using an atomic variable, so lock is not needed.
    
    v2:
    * Use atomic64_sub() in nsim_nexthop_account()'s error path
    Signed-off-by: default avatarAmit Cohen <amcohen@nvidia.com>
    Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
    Reviewed-by: default avatarDavid Ahern <dsahern@kernel.org>
    Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    9e635a21
fib.c 29 KB