Thread (5 messages) 5 messages, 2 authors, 2016-06-26

Re: [ethtool PATCH v7 2/2] ethtool: use netlink socket when AF_INET not available

flat view

From: Ben Hutchings <hidden>
Date: 2016-06-26 08:58:03

On Fri, 2016-03-25 at 09:21 -0700, David Decotigny wrote:
quoted hunk ↗ jump to hunk
From: David Decotigny <redacted>

To benefit from this, kernel commit 025c68186e07 ("netlink: add support
for NIC driver ioctls") is needed.


Signed-off-by: David Decotigny <redacted>
---
 configure.ac | 2 +-
 ethtool.c    | 7 +++++++
 2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 3105415..47d2a0f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -15,7 +15,7 @@ AM_PROG_CC_C_O
 dnl Checks for libraries.
 
 dnl Checks for header files.
-AC_CHECK_HEADERS(sys/ioctl.h)
+AC_CHECK_HEADERS(sys/ioctl.h linux/netlink.h)
This doesn't make a lot of sense.  That header has been around since
Linux 2.1.  But it didn't define NETLINK_GENERIC then.

(The test for <sys/ioctl.h> doesn't make sense either, as we include it
unconditionally!)
quoted hunk ↗ jump to hunk
 dnl Checks for typedefs, structures, and compiler characteristics.
 AC_MSG_CHECKING([whether  defines big-endian types])
diff --git a/ethtool.c b/ethtool.c
index cb3d971..314b1b8 100644
--- a/ethtool.c
+++ b/ethtool.c
@@ -42,6 +42,9 @@
 #include 
 
 #include 
+#ifdef HAVE_LINUX_NETLINK_H
+# include 
+#endif
So what I've committed instead makes this unconditional, but adds a
conditional definition of NETLINK_GENERIC.

Ben.
quoted hunk ↗ jump to hunk
 
 #ifndef MAX_ADDR_LEN
 #define MAX_ADDR_LEN	32
@@ -4645,6 +4648,10 @@ opt_found:
 
 		/* Open control socket. */
 		ctx.fd = socket(AF_INET, SOCK_DGRAM, 0);
+#ifdef HAVE_LINUX_NETLINK_H
+		if (ctx.fd < 0)
+			ctx.fd = socket(AF_NETLINK, SOCK_RAW, NETLINK_GENERIC);
+#endif
 		if (ctx.fd < 0) {
 			perror("Cannot get control socket");
 			return 70;
-- 

Ben Hutchings
compatible: Gracefully accepts erroneous data from any source

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help