Blob Blame History Raw
From 42a4461854ab308ebcebb99df7085e1e896f8fa5 Mon Sep 17 00:00:00 2001
From: Timothy Redaelli <tredaelli@redhat.com>
Date: Fri, 10 Feb 2017 12:51:09 +0100
Subject: [PATCH] macsec: show usage even if the module is not available

Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1367071
Upstream Status: iproute2.git commit 688f9aa

commit 688f9aa4f24ffac148f6b4127602f10a7837d4ba
Author: Sabrina Dubroca <sd@queasysnail.net>
Date:   Tue Aug 16 16:26:56 2016 +0200

    macsec: show usage even if the module is not available

    Currently, the `ip macsec` command tries to initialize a genl context
    even when we just want to see the help for the command, which doesn't
    require to talk to the kernel at all.

    Delay genl initialization, which can fail if the module isn't loaded,
    until the point where we will actually need it.

    Fixes: b26fc590ce62 ("ip: add MACsec support")
    Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>

Signed-off-by: Timothy Redaelli <tredaelli@redhat.com>
---
 ip/ipmacsec.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/ip/ipmacsec.c b/ip/ipmacsec.c
index f05b27a..127fa1e 100644
--- a/ip/ipmacsec.c
+++ b/ip/ipmacsec.c
@@ -986,15 +986,15 @@ static int do_show(int argc, char **argv)
 
 int do_ipmacsec(int argc, char **argv)
 {
-	if (genl_init_handle(&genl_rth, MACSEC_GENL_NAME, &genl_family))
-		exit(1);
-
 	if (argc < 1)
 		ipmacsec_usage();
 
 	if (matches(*argv, "help") == 0)
 		ipmacsec_usage();
 
+	if (genl_init_handle(&genl_rth, MACSEC_GENL_NAME, &genl_family))
+		exit(1);
+
 	if (matches(*argv, "show") == 0)
 		return do_show(argc-1, argv+1);
 
-- 
1.8.3.1