ETHTOOL_GMODULEINFO request success indicates that SFP cage is present.
Failure of ETHTOOL_GMODULEEEPROM is most likely because SFP module is
not plugged in. Add an indication to the user as to what might be the
reason for the failure.

Signed-off-by: Baruch Siach <bar...@tkos.co.il>
---
v2: Limit message to likely errno values (Andrew Lunn)
---
 ethtool.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/ethtool.c b/ethtool.c
index 1d9067e774af..63b3a095eded 100644
--- a/ethtool.c
+++ b/ethtool.c
@@ -4855,7 +4855,11 @@ static int do_getmodule(struct cmd_context *ctx)
        eeprom->offset = geeprom_offset;
        err = send_ioctl(ctx, eeprom);
        if (err < 0) {
+               int saved_errno = errno;
                perror("Cannot get Module EEPROM data");
+               if (saved_errno == ENODEV || saved_errno == EIO ||
+                               saved_errno == ENXIO)
+                       fprintf(stderr, "SFP module not in cage?\n");
                free(eeprom);
                return 1;
        }
-- 
2.29.2

Reply via email to