Re: [PATCH 4/4] misc: hpilo: Update driver version

From: Greg KH
Date: Mon Feb 25 2019 - 16:47:35 EST


On Mon, Feb 25, 2019 at 01:28:05AM -0700, Jerry Hoemann wrote:
> On Fri, Feb 22, 2019 at 07:49:28AM +0100, Greg KH wrote:
> > On Thu, Feb 21, 2019 at 09:11:11PM -0700, Jerry Hoemann wrote:
> >
> > > Our primary means of supporting Linux to our customers is via our
> > > distro partners. While we prefer to use in distro drivers, HPE does
> > > from time to time deliver driver updates via the "Service Pack for
> > > Proliants" -- The SPP.
> >
> > That's fine, but again, does not matter to the in-kernel driver at all.
>
> Your point? No one claimed that changing the version number
> of the module changes its functionality. We're changing the driver
> version number to reflect that the driver's functionality changed.
>
> We do this to help determine the version running on a system
> in the event we have problems. It's a support issue.

You last touched that version number in 2016, despite there being
changes made to the driver in the _years_ since then. So if someone
called in and said, "I have a problem with version "1.5.0", you really
have no idea what that code is.

That shows to me that the version field in the driver means nothing, so
it should be removed.

> > I understand that in your viewpoint, your driver's version means
> > something. But in reality, it's only the kernel's version that means
> > something because your driver is just part of the overall kernel, it
> > does not stand alone.
>
> I never claimed a driver stood alone. jeezz.
>
> When you say kernel "version", are you trying to say that the version
> string printed by the kernel determines the source of the drivers?
> (I ask, because I have heard other maintainers make this claim.)

Yes.

> The kernel version string only reliably determines the base kernel build.
> Modules can be unloaded and replaced by totally new versions drastically
> different from the version that existed at the time of the base kernel build.

Sure, and if you do that you are on your own, feel free to put what ever
string you want in your external module source code.

Note, you will know that this is an "external" module, the kernel does
tell you that you did this, it is not silent at all.

> The delivery of drivers updates independent of base kernel was old
> practice when I started Unix development 30 years ago. It was not unique
> to HPE then or now. I don't see it stopping.

The old model of detaching drivers from the operating system is not at
play here. When you had different distribution channels, trying to have
a version number made sense to try to get a grip on what is running
where. That's not the case with Linux, and hasn't been for the past 20+
years.

Linux is distributed as a "whole", kernel+drivers, they are directly
tied together and are one body of work. Yes, you can have external
modules, but that is not the normal method of operation and one I could
care less about here. All I care about is that our tree works properly.

And as such, I will continue to state that an individual driver version
number means nothing, as it is the actual version of the kernel itself
that actually means something.

For drivers that actually have active development (unlike this one), it
is very simple to see how the module version gets out of whack. Take
one patch that goes into the main kernel tree, and have that backported
to the stable and LTS kernels, and all of a sudden your "version number"
means nothing, as the version number of the stable kernel's copy of the
driver did not change. And you really can't bump it to a different
number from the main version, so what do you do? Try to come up with
some other intermediate number? That's not ok as you can't keep up with
that numbering scheme as all that really matters is the kernel version
number itself!

Anyway, as this driver is obviously not under development at all, and
the changes that have happened since 2016 never caused you to change the
number, I'm not going to take this patch, sorry.

greg k-h