diff options
Diffstat (limited to 'drivers/net/ethernet/pensando/ionic/ionic_devlink.c')
| -rw-r--r-- | drivers/net/ethernet/pensando/ionic/ionic_devlink.c | 18 | 
1 files changed, 9 insertions, 9 deletions
diff --git a/drivers/net/ethernet/pensando/ionic/ionic_devlink.c b/drivers/net/ethernet/pensando/ionic/ionic_devlink.c index b41301a5b0df..c7d0e195d176 100644 --- a/drivers/net/ethernet/pensando/ionic/ionic_devlink.c +++ b/drivers/net/ethernet/pensando/ionic/ionic_devlink.c @@ -64,7 +64,7 @@ struct ionic *ionic_devlink_alloc(struct device *dev)  {  	struct devlink *dl; -	dl = devlink_alloc(&ionic_dl_ops, sizeof(struct ionic)); +	dl = devlink_alloc(&ionic_dl_ops, sizeof(struct ionic), dev);  	return devlink_priv(dl);  } @@ -82,7 +82,7 @@ int ionic_devlink_register(struct ionic *ionic)  	struct devlink_port_attrs attrs = {};  	int err; -	err = devlink_register(dl, ionic->dev); +	err = devlink_register(dl);  	if (err) {  		dev_warn(ionic->dev, "devlink_register failed: %d\n", err);  		return err; @@ -91,20 +91,20 @@ int ionic_devlink_register(struct ionic *ionic)  	attrs.flavour = DEVLINK_PORT_FLAVOUR_PHYSICAL;  	devlink_port_attrs_set(&ionic->dl_port, &attrs);  	err = devlink_port_register(dl, &ionic->dl_port, 0); -	if (err) +	if (err) {  		dev_err(ionic->dev, "devlink_port_register failed: %d\n", err); -	else -		devlink_port_type_eth_set(&ionic->dl_port, -					  ionic->lif->netdev); +		devlink_unregister(dl); +		return err; +	} -	return err; +	devlink_port_type_eth_set(&ionic->dl_port, ionic->lif->netdev); +	return 0;  }  void ionic_devlink_unregister(struct ionic *ionic)  {  	struct devlink *dl = priv_to_devlink(ionic); -	if (ionic->dl_port.registered) -		devlink_port_unregister(&ionic->dl_port); +	devlink_port_unregister(&ionic->dl_port);  	devlink_unregister(dl);  }  | 
