Subject: Re: [RFC 04/20] RDMA/irdma: Add driver framework definitions

From: Jason Gunthorpe <[email-masked]>
Date: Fri, 4 Oct 2019 23:45:24 +0000

On Fri, Oct 04, 2019 at 01:12:22PM -0700, Jeff Kirsher wrote:

> > > +	if (ldev->version.major != I40E_CLIENT_VERSION_MAJOR ||
> > > +	    ldev->version.minor != I40E_CLIENT_VERSION_MINOR) {
> > > +		pr_err("version mismatch:\n");
> > > +		pr_err("expected major ver %d, caller specified major
> > > ver %d\n",
> > > +		       I40E_CLIENT_VERSION_MAJOR, ldev->version.major);
> > > +		pr_err("expected minor ver %d, caller specified minor
> > > ver %d\n",
> > > +		       I40E_CLIENT_VERSION_MINOR, ldev->version.minor);
> > > +		return -EINVAL;
> > > +	}
> > 
> > This is can't be in upstream code, we don't support out-of-tree
> > modules,
> > everything else will have proper versions.
> 
> Who is the "we" in this context?

Upstream sensibility - if we start doing stuff like this then we will
end up doing it everwhere.

> you support out-of-tree drivers, they do exist and this code would
> ensure that if a "out-of-tree" driver is loaded, the driver will do a
> sanity check to ensure the RDMA driver will work.

I don't see how this is any different from any of the other myriad of
problems out of tree modules face. 

Someone providing out of tree modules has to provide enough parts of
their driver so that it only consumes the stable ABI from the distro
kernel.

Pretty normal stuff really.

Jason