From cdd6eb99c2f96a38cc3db938ad4e90012a9016c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1n=20Tomko?= Date: Mon, 18 Sep 2017 13:21:47 -0400 Subject: [PATCH] configure: fix check for DEVLINK_CMD_ESWITCH_GET Instead of checking for all possible constants that every kernel header with devlink support should have (and defining HAVE_DECL_DEVLINK as 1 if any of them is present due to the way AC_CHECK_DECLS works), only check for DEVLINK_CMD_ESWITCH_GET. This is the name of the constant since kernel 4.11. Between 4.8 and 4.11, the now deprecated spelling DEVLINK_CMD_ESWITCH_MODE_GET was used. Assume DEVLINK_ESWITCH_MODE_SWITCHDEV is available, since it was introduced along with the deprecated spelling. --- configure.ac | 13 +++++++------ src/util/virnetdev.c | 4 ++-- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/configure.ac b/configure.ac index c9509c7f96..d817975a57 100644 --- a/configure.ac +++ b/configure.ac @@ -628,15 +628,16 @@ if test "$with_linux" = "yes"; then fi dnl -dnl check for kernel headers required by devlink +dnl check for DEVLINK_CMD_ESWITCH_GET +dnl +dnl Assume DEVLINK_ESWITCH_MODE_SWITCHDEV is also +dnl available, as it was introudced in kernel 4.8 +dnl along with the original spelling of this constant +dnl (DEVLINK_CMD_ESWITCH_MODE_GET, not supported by libvirt) dnl if test "$with_linux" = "yes"; then AC_CHECK_HEADERS([linux/devlink.h]) - AC_CHECK_DECLS([DEVLINK_GENL_VERSION, DEVLINK_GENL_NAME, DEVLINK_ATTR_MAX, DEVLINK_CMD_ESWITCH_GET, DEVLINK_ATTR_BUS_NAME, DEVLINK_ATTR_DEV_NAME, DEVLINK_ATTR_ESWITCH_MODE, DEVLINK_ESWITCH_MODE_SWITCHDEV], - [AC_DEFINE([HAVE_DECL_DEVLINK], - [1], - [whether devlink declarations are available])], - [], + AC_CHECK_DECLS([DEVLINK_CMD_ESWITCH_GET], [], [], [[#include ]]) fi diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c index 0406939254..41a659732b 100644 --- a/src/util/virnetdev.c +++ b/src/util/virnetdev.c @@ -59,7 +59,7 @@ # include #endif -#if HAVE_DECL_DEVLINK +#if HAVE_LINUX_DEVLINK_H # include #endif @@ -3120,7 +3120,7 @@ virNetDevGetEthtoolFeatures(virBitmapPtr bitmap, } -# if HAVE_DECL_DEVLINK +# if HAVE_DECL_DEVLINK_CMD_ESWITCH_GET /** * virNetDevPutExtraHeader * reserve and prepare room for an extra header