Re: [PATCH net-next] devlink: Set device as early as possible
From: Jiri Pirko <jiri@resnulli.us>
Date: 2021-08-09 09:07:40
Also in:
intel-wired-lan, linux-staging, lkml, netdev
From: Jiri Pirko <jiri@resnulli.us>
Date: 2021-08-09 09:07:40
Also in:
intel-wired-lan, linux-staging, lkml, netdev
Sun, Aug 08, 2021 at 08:57:43PM CEST, leon@kernel.org wrote:
From: Leon Romanovsky <leonro@nvidia.com> All kernel devlink implementations call to devlink_alloc() during initialization routine for specific device which is used later as a parent device for devlink_register(). Such late device assignment causes to the situation which requires us to call to device_register() before setting other parameters, but that call opens devlink to the world and makes accessible for the netlink users. Any attempt to move devlink_register() to be the last call generates the following error due to access to the devlink->dev pointer. [ 8.758862] devlink_nl_param_fill+0x2e8/0xe50 [ 8.760305] devlink_param_notify+0x6d/0x180 [ 8.760435] __devlink_params_register+0x2f1/0x670 [ 8.760558] devlink_params_register+0x1e/0x20 The simple change of API to set devlink device in the devlink_alloc() instead of devlink_register() fixes all this above and ensures that prior to call to devlink_register() everything already set. Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
Reviewed-by: Jiri Pirko <redacted>