net: ena: fix broken interface between ENA driver and FW
authorArthur Kiyanovski <akiyano@amazon.com>
Wed, 26 Feb 2020 10:03:35 +0000 (12:03 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 27 Feb 2020 04:47:58 +0000 (20:47 -0800)
In this commit we revert the part of
commit 1a63443afd70 ("net/amazon: Ensure that driver version is aligned to the linux kernel"),
which breaks the interface between the ENA driver and FW.

We also replace the use of DRIVER_VERSION with DRIVER_GENERATION
when we bring back the deleted constants that are used in interface with
ENA device FW.

This commit does not change the driver version reported to the user via
ethtool, which remains the kernel version.

Fixes: 1a63443afd70 ("net/amazon: Ensure that driver version is aligned to the linux kernel")
Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/amazon/ena/ena_netdev.c
drivers/net/ethernet/amazon/ena/ena_netdev.h

index 4faf81c..555c727 100644 (file)
@@ -3090,7 +3090,11 @@ static void ena_config_host_info(struct ena_com_dev *ena_dev,
        host_info->os_dist = 0;
        strncpy(host_info->os_dist_str, utsname()->release,
                sizeof(host_info->os_dist_str) - 1);
-       host_info->driver_version = LINUX_VERSION_CODE;
+       host_info->driver_version =
+               (DRV_MODULE_GEN_MAJOR) |
+               (DRV_MODULE_GEN_MINOR << ENA_ADMIN_HOST_INFO_MINOR_SHIFT) |
+               (DRV_MODULE_GEN_SUBMINOR << ENA_ADMIN_HOST_INFO_SUB_MINOR_SHIFT) |
+               ("K"[0] << ENA_ADMIN_HOST_INFO_MODULE_TYPE_SHIFT);
        host_info->num_cpus = num_online_cpus();
 
        host_info->driver_supported_features =
index 74c7f10..97dfd0c 100644 (file)
 #include "ena_com.h"
 #include "ena_eth_com.h"
 
+#define DRV_MODULE_GEN_MAJOR   2
+#define DRV_MODULE_GEN_MINOR   1
+#define DRV_MODULE_GEN_SUBMINOR 0
+
 #define DRV_MODULE_NAME                "ena"
+#ifndef DRV_MODULE_GENERATION
+#define DRV_MODULE_GENERATION \
+       __stringify(DRV_MODULE_GEN_MAJOR) "."   \
+       __stringify(DRV_MODULE_GEN_MINOR) "."   \
+       __stringify(DRV_MODULE_GEN_SUBMINOR) "K"
+#endif
+
 #define DEVICE_NAME    "Elastic Network Adapter (ENA)"
 
 /* 1 for AENQ + ADMIN */