78 lines
2.9 KiB
Diff
78 lines
2.9 KiB
Diff
From 61f424197f0a6b7eb38f3efdb7573fd69745c467 Mon Sep 17 00:00:00 2001
|
|
From: Leon Romanovsky <leonro@mellanox.com>
|
|
Date: Mon, 27 Jan 2020 09:20:28 +0200
|
|
Subject: [PATCH] net/core: Replace driver version to be kernel version
|
|
|
|
driver inclusion
|
|
category: feature
|
|
bugzilla: https://gitee.com/openeuler/community-issue/issues/IANGOU?from=project-issue
|
|
|
|
----------------------------------------------------------------------
|
|
|
|
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.cz
|
|
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
|
|
Acked-by: Shannon Nelson <snelson@pensando.io>
|
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
Signed-off-by: yushi <yushi2@huawei.com>
|
|
---
|
|
net/ethtool/ioctl.c | 2 ++
|
|
1 file changed, 2 insertions(+)
|
|
|
|
diff --git a/net/ethtool/ioctl.c b/net/ethtool/ioctl.c
|
|
index 4db9512fe..e53f5a83b 100644
|
|
--- a/net/ethtool/ioctl.c
|
|
+++ b/net/ethtool/ioctl.c
|
|
@@ -21,6 +21,7 @@
|
|
#include <linux/phy.h>
|
|
#include <linux/bitops.h>
|
|
#include <linux/uaccess.h>
|
|
+#include <linux/vermagic.h>
|
|
#include <linux/vmalloc.h>
|
|
#include <linux/sfp.h>
|
|
#include <linux/slab.h>
|
|
@@ -851,6 +852,7 @@ static noinline_for_stack int ethtool_get_drvinfo(struct net_device *dev,
|
|
const struct ethtool_ops *ops = dev->ethtool_ops;
|
|
|
|
memset(&info, 0, sizeof(info));
|
|
+ strlcpy(info.version, UTS_RELEASE, sizeof(info.version));
|
|
info.cmd = ETHTOOL_GDRVINFO;
|
|
if (ops->get_drvinfo) {
|
|
ops->get_drvinfo(dev, &info);
|
|
--
|
|
2.27.0
|
|
|