Re: [PATCH net-next v1 4/5] net/mlx5: Register separate reload devlink ops for multiport device

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 29 Sep 2021 17:16:28 +0300 Leon Romanovsky wrote:
> > > @@ -808,6 +812,9 @@ int mlx5_devlink_register(struct devlink *devlink)
> > >  	if (err)
> > >  		goto traps_reg_err;
> > >  
> > > +	if (!mlx5_core_is_mp_slave(dev))
> > > +		devlink_set_ops(devlink, &mlx5_devlink_reload);  
> > 
> > Does this work? Where do you make a copy of the ops? 🤔 You can't modify
> > the driver-global ops, to state the obvious.  
> 
> devlink_ops pointer is not constant at this stage, so why can't I copy
> reload_* pointers to the "main" devlink ops?
> 
> I wanted to avoid to copy all pointers.

Hm. I must be missing a key piece here. IIUC you want to have different
ops based on some device property. But there is only one

static struct devlink_ops mlx5_devlink_ops;

so how can two devlink instances in the system use that and have
different ops without a copy?





[Index of Archives]     [Linux Driver Development]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux