Re: [PATCH net-next] devlink: Set device as early as possible

From: Jiri Pirko
Date: Mon Aug 09 2021 - 05:07:40 EST


Sun, Aug 08, 2021 at 08:57:43PM CEST, leon@xxxxxxxxxx wrote:
>From: Leon Romanovsky <leonro@xxxxxxxxxx>
>
>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@xxxxxxxxxx>

Reviewed-by: Jiri Pirko <jiri@xxxxxxxxxx>