diff options
author | Rahul Lakkireddy <rahul.lakkireddy@chelsio.com> | 2021-11-11 15:55:16 +0530 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2021-11-11 11:42:13 +0000 |
commit | 4ca110bf8d9b31a60f8f8ff6706ea147d38ad97c (patch) | |
tree | 87c1da95f41d5c4f473233bd571f64d98db15f2a /drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c | |
parent | 0315a075f1343966ea2d9a085666a88a69ea6a3d (diff) | |
download | linux-stable-4ca110bf8d9b31a60f8f8ff6706ea147d38ad97c.tar.gz linux-stable-4ca110bf8d9b31a60f8f8ff6706ea147d38ad97c.tar.bz2 linux-stable-4ca110bf8d9b31a60f8f8ff6706ea147d38ad97c.zip |
cxgb4: fix eeprom len when diagnostics not implemented
Ensure diagnostics monitoring support is implemented for the SFF 8472
compliant port module and set the correct length for ethtool port
module eeprom read.
Fixes: f56ec6766dcf ("cxgb4: Add support for ethtool i2c dump")
Signed-off-by: Manoj Malviya <manojmalviya@chelsio.com>
Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c')
-rw-r--r-- | drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c index 5903bdb78916..129352bbe114 100644 --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c @@ -2015,12 +2015,15 @@ static int cxgb4_get_module_info(struct net_device *dev, if (ret) return ret; - if (!sff8472_comp || (sff_diag_type & 4)) { + if (!sff8472_comp || (sff_diag_type & SFP_DIAG_ADDRMODE)) { modinfo->type = ETH_MODULE_SFF_8079; modinfo->eeprom_len = ETH_MODULE_SFF_8079_LEN; } else { modinfo->type = ETH_MODULE_SFF_8472; - modinfo->eeprom_len = ETH_MODULE_SFF_8472_LEN; + if (sff_diag_type & SFP_DIAG_IMPLEMENTED) + modinfo->eeprom_len = ETH_MODULE_SFF_8472_LEN; + else + modinfo->eeprom_len = ETH_MODULE_SFF_8472_LEN / 2; } break; |