Commit 6a7e25c7 authored by Leon Romanovsky's avatar Leon Romanovsky Committed by David S. Miller

net/core: Replace driver version to be kernel version

In order to stop useless driver version bumps and unify output
presented by ethtool -i, let's set default version string.

As Linus said in [1]: "Things are supposed to be backwards and
forwards compatible, because we don't accept breakage in user
space anyway. So versioning is pointless, and only causes
problems."

They cause problems when users start to see version changes
and expect specific set of features which will be different
for stable@, vanilla and distribution kernels.

Distribution kernels are based on some kernel version with extra
patches on top, for example, in RedHat world this "extra" is a lot
and for them your driver version say nothing. Users who run vanilla
kernels won't use driver version information too, because running
such kernels requires knowledge and understanding.

Another set of problems are related to difference in versioning scheme
and such doesn't allow to write meaningful automation which will work
sanely on all ethtool capable devices.

Before this change:
[leonro@erver ~]$ ethtool -i eth0
driver: virtio_net
version: 1.0.0
After this change and once ->version assignment will be deleted
from virtio_net:
[leonro@server ~]$ ethtool -i eth0
driver: virtio_net
version: 5.5.0-rc6+

Link: https://lore.kernel.org/ksummit-discuss/CA+55aFx9A=5cc0QZ7CySC4F2K7eYaEfzkdYEc9JaNgCcV25=rg@mail.gmail.com/
Link: https://lore.kernel.org/linux-rdma/20200122152627.14903-1-michal.kalderon@marvell.com/T/#md460ff8f976c532a89d6860411c3c50bb811038b
Link: https://lore.kernel.org/linux-rdma/20200127060835.GA570@unicorn.suse.czSigned-off-by: default avatarLeon Romanovsky <leonro@mellanox.com>
Acked-by: default avatarShannon Nelson <snelson@pensando.io>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 7d999687
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
#include <linux/phy.h> #include <linux/phy.h>
#include <linux/bitops.h> #include <linux/bitops.h>
#include <linux/uaccess.h> #include <linux/uaccess.h>
#include <linux/vermagic.h>
#include <linux/vmalloc.h> #include <linux/vmalloc.h>
#include <linux/sfp.h> #include <linux/sfp.h>
#include <linux/slab.h> #include <linux/slab.h>
...@@ -655,6 +656,7 @@ static noinline_for_stack int ethtool_get_drvinfo(struct net_device *dev, ...@@ -655,6 +656,7 @@ static noinline_for_stack int ethtool_get_drvinfo(struct net_device *dev,
memset(&info, 0, sizeof(info)); memset(&info, 0, sizeof(info));
info.cmd = ETHTOOL_GDRVINFO; info.cmd = ETHTOOL_GDRVINFO;
strlcpy(info.version, UTS_RELEASE, sizeof(info.version));
if (ops->get_drvinfo) { if (ops->get_drvinfo) {
ops->get_drvinfo(dev, &info); ops->get_drvinfo(dev, &info);
} else if (dev->dev.parent && dev->dev.parent->driver) { } else if (dev->dev.parent && dev->dev.parent->driver) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment