diff --git a/opticsmon/ethtool.c b/opticsmon/ethtool.c index a448eb25..ac1a07fb 100644 --- a/opticsmon/ethtool.c +++ b/opticsmon/ethtool.c @@ -56,13 +56,13 @@ int ethtool_nl_connect(struct ethtool_nl_ctx *ctx) sk = nl_socket_alloc(); if (!sk) { nl_perror(NLE_NOMEM, "alloc"); - return EXIT_FAILURE; + return -ENOMEM; } rc = genl_connect(sk); if (rc) { nl_perror(rc, "connect"); - rc = EXIT_FAILURE; + rc = -EIO; goto err_free; } @@ -72,7 +72,7 @@ int ethtool_nl_connect(struct ethtool_nl_ctx *ctx) fprintf(stderr, "Ethtool netlink family not found\n"); else nl_perror(ethtool_id, "ctrl resolve"); - rc = EXIT_FAILURE; + rc = -EIO; goto err_close; } ctx->sk = sk; diff --git a/opticsmon/opticsmon.c b/opticsmon/opticsmon.c index 6d7595b1..c50275d4 100644 --- a/opticsmon/opticsmon.c +++ b/opticsmon/opticsmon.c @@ -398,7 +398,9 @@ int main(int argc, char **argv) int ret; parse_cmdline(argc, argv, &ctx.opts); - ethtool_nl_connect(&ctx.ethtool_ctx); + ret = ethtool_nl_connect(&ctx.ethtool_ctx); + if (ret) + return ret; if (ctx.opts.monitor) ret = monitor_mode(&ctx); else