Since commit 049c58539f5d ("devlink: mnlg: Add support for extended ack")
devlink requires NETLINK_{CAP,EXT}_ACK. This prevents devlink from
working with older kernels that don't support these features.

host # ./devlink/devlink
Failed to connect to devlink Netlink

Fixes: 049c58539f5d ("devlink: mnlg: Add support for extended ack")
Cc: Arkadi Sharshevsky <arka...@mellanox.com>
Cc: Stephen Hemminger <step...@networkplumber.org>
Signed-off-by: Ivan Vecera <ivec...@redhat.com>
---
 devlink/mnlg.c | 14 +++-----------
 1 file changed, 3 insertions(+), 11 deletions(-)

diff --git a/devlink/mnlg.c b/devlink/mnlg.c
index 3d28453a..c33c90be 100644
--- a/devlink/mnlg.c
+++ b/devlink/mnlg.c
@@ -271,15 +271,9 @@ struct mnlg_socket *mnlg_socket_open(const char 
*family_name, uint8_t version)
        if (!nlg->nl)
                goto err_mnl_socket_open;
 
-       err = mnl_socket_setsockopt(nlg->nl, NETLINK_CAP_ACK, &one,
-                                   sizeof(one));
-       if (err)
-               goto err_mnl_set_ack;
-
-       err = mnl_socket_setsockopt(nlg->nl, NETLINK_EXT_ACK, &one,
-                                   sizeof(one));
-       if (err)
-               goto err_mnl_set_ext_ack;
+       /* Older kernels may no support capped/extended ACK reporting */
+       mnl_socket_setsockopt(nlg->nl, NETLINK_CAP_ACK, &one, sizeof(one));
+       mnl_socket_setsockopt(nlg->nl, NETLINK_EXT_ACK, &one, sizeof(one));
 
        err = mnl_socket_bind(nlg->nl, 0, MNL_SOCKET_AUTOPID);
        if (err < 0)
@@ -305,8 +299,6 @@ struct mnlg_socket *mnlg_socket_open(const char 
*family_name, uint8_t version)
 err_mnlg_socket_recv_run:
 err_mnlg_socket_send:
 err_mnl_socket_bind:
-err_mnl_set_ext_ack:
-err_mnl_set_ack:
        mnl_socket_close(nlg->nl);
 err_mnl_socket_open:
        free(nlg->buf);
-- 
2.16.1

Reply via email to