Skip to content
Snippets Groups Projects
  • Leon Romanovsky's avatar
    devlink: Set device as early as possible · 919d13a7
    Leon Romanovsky authored
    
    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: default avatarLeon Romanovsky <leonro@nvidia.com>
    Reviewed-by: default avatarJiri Pirko <jiri@nvidia.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    919d13a7
Code owners
Assign users and groups as approvers for specific file changes. Learn more.