summaryrefslogtreecommitdiffstats
path: root/lib/mpi/mpi-internal.h
diff options
context:
space:
mode:
authorJakub Kicinski <jakub.kicinski@netronome.com>2018-01-17 18:50:57 -0800
committerDavid S. Miller <davem@davemloft.net>2018-01-19 15:44:18 -0500
commitbcc93a23ca595fb1d7d7540bec68196a3715da13 (patch)
tree5ae832c9fcd7069aa7b97b9ae9db4dba04428ad3 /lib/mpi/mpi-internal.h
parente1a2599db564340f1bee1536177e3dfb2461e75a (diff)
downloadlinux-bcc93a23ca595fb1d7d7540bec68196a3715da13.tar.bz2
nfp: register devlink after app is created
Devlink used to have two global locks: devlink lock and port lock, our lock ordering looked like this: devlink lock -> driver's pf->lock -> devlink port lock After recent changes port lock was replaced with per-instance lock. Unfortunately, new per-instance lock is taken on most operations now. This means we can only grab the pf->lock from the port split/unsplit ops. Lock ordering looks like this: devlink lock -> driver's pf->lock -> devlink instance lock Since we can't take pf->lock from most devlink ops, make sure nfp_apps are prepared to service them as soon as devlink is registered. Locking the pf must be pushed down after nfp_app_init() callback. The init order looks like this: nfp_app_init devlink_register nfp_app_start netdev/port_register As soon as app_init is done nfp_apps must be ready to service devlink-related callbacks. apps can only register their own devlink objects from nfp_app_start. Fixes: 2406e7e546b2 ("devlink: Add per devlink instance lock") Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com> Reviewed-by: Dirk van der Merwe <dirk.vandermerwe@netronome.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'lib/mpi/mpi-internal.h')
0 files changed, 0 insertions, 0 deletions