devlink: Count struct devlink consumers
authorLeon Romanovsky <leonro@nvidia.com>
Sat, 14 Aug 2021 09:57:28 +0000 (12:57 +0300)
committerDavid S. Miller <davem@davemloft.net>
Sat, 14 Aug 2021 12:59:10 +0000 (13:59 +0100)
commit437ebfd90a2567aab19dce47bafc81ebd8a63324
treefefa6f3a33ef008dea4a8f615ebafd3e1a8c9d9b
parent7ca973dc9fe589dc0ab2650641f4c7a19cc49ecd
devlink: Count struct devlink consumers

The struct devlink itself is protected by internal lock and doesn't
need global lock during operation. That global lock is used to protect
addition/removal new devlink instances from the global list in use by
all devlink consumers in the system.

The future conversion of linked list to be xarray will allow us to
actually delete that lock, but first we need to count all struct devlink
users.

The reference counting provides us a way to ensure that no new user
space commands success to grab devlink instance which is going to be
destroyed makes it is safe to access it without lock.

Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/devlink.h
net/core/devlink.c