Subject: Re: [PATCH 07/22] RDMA/irdma: Register an auxiliary driver and implement private channel OPs

From: Jason Gunthorpe <[email-masked]>
Date: Mon, 25 Jan 2021 20:59:28 -0400

On Tue, Jan 26, 2021 at 12:42:16AM +0000, Saleem, Shiraz wrote:

> I think this essentially means doing away with .open/.close piece. 

Yes, that too, and probably the FSM as well.

> Or are you saying that is ok?  Yes we had a discussion in the past
> and I thought we concluded. But maybe I misunderstood.
> 
> https://lore.kernel.org/linux-rdma/[email-masked]/

Well, having now seen how aux bus ended up and the way it effected the
mlx5 driver, I am more firmly of the opinion this needs to be
fixed. It is extremly hard to get everything right with two different
registration schemes running around.

You never answered my question:

> Still, you need to be able to cope with the user unbinding your
> drivers in any order via sysfs. What happens to the VFs when the PF is
> unbound and releases whatever resources? This is where the broadcom
> driver ran into troubles..

?

> PF due to underlying config changes which require a
> de-reg/re-registration of the ibdevice.  Today such config changes
> are handled with the netdev PCI driver using the .close() private
> callback into rdma driver which unregister ibdevice in PF while
> allowing the RDMA VF to survive.

Putting resources the device needs to function in the aux driver is no
good, managing shared resources is the role of the PCI function owning
core driver.

If you put the open/close on the aux device_driver struct and got rid
of the redundant life cycle stuff, it might be OK enough, assuming
there is a good answer to the question above.

Jason