Thread (78 messages) 78 messages, 7 authors, 2022-05-25

Re: [PATCH v2 1/7] net/ixgbe: Fix ixgbe_is_sfp() to return valid result for X550EM_a devs

From: Stephen Douthit <hidden>
Date: 2021-12-20 21:32:32

On 12/20/21 02:45, Wang, Haiyue wrote:
quoted
-----Original Message-----
From: Stephen Douthit <redacted>
Sent: Tuesday, December 7, 2021 06:19
To: Wang, Haiyue <redacted>; Lu, Wenzhuo <redacted>
Cc: dev@dpdk.org; Wen Wang <redacted>; Stephen Douthit <redacted>;
stable@dpdk.org
Subject: [PATCH v2 1/7] net/ixgbe: Fix ixgbe_is_sfp() to return valid result for X550EM_a devs

Currently all X500EM* MAC types fallthrough to the default case and get
reported as non-SFP regardless of media type, which isn't correct.

Fixes: 0790adeb567 ("ixgbe/base: support X550em_a device")
Cc: stable@dpdk.org

Signed-off-by: Stephen Douthit <redacted>
---
  drivers/net/ixgbe/ixgbe_ethdev.c | 14 ++++++++++++++
  1 file changed, 14 insertions(+)
diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index fe61dba81d..66f7af95de 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -781,6 +781,20 @@ ixgbe_is_sfp(struct ixgbe_hw *hw)
       case ixgbe_phy_sfp_passive_unknown:
               return 1;
       default:
+             /* x550em devices may be SFP, check media type */
+             switch (hw->mac.type) {
+             case ixgbe_mac_X550EM_x:
+             case ixgbe_mac_X550EM_a:
+                     switch (hw->mac.ops.get_media_type(hw)) {
Use the API 'ixgbe_get_media_type' to avoid ops null ?
Ok, I can change it.

Note that there's already a mix of calls with and without the null check
wrapper in the file already though, so maybe worth future cleanup.

$ grep get_media_type drivers/net/ixgbe/ixgbe_ethdev.c
         if (diag && (hw->mac.ops.get_media_type(hw) == ixgbe_media_type_copper)) {
         if (hw->mac.ops.get_media_type(hw) == ixgbe_media_type_copper) {
         if (hw->mac.ops.get_media_type(hw) == ixgbe_media_type_copper) {
         if (hw->mac.ops.get_media_type(hw) == ixgbe_media_type_copper) {
         if (hw->mac.ops.get_media_type(hw) == ixgbe_media_type_copper) {
         if (ixgbe_get_media_type(hw) == ixgbe_media_type_fiber) {
                 if (ixgbe_get_media_type(hw) == ixgbe_media_type_fiber) {
quoted
+                     case ixgbe_media_type_fiber:
+                     case ixgbe_media_type_fiber_qsfp:
+                             return 1;
+                     default:
+                             return 0;
Since we care 'return 1' only, then the two defaults just "break;" ?
quoted
+                     }
+             default:
+                     return 0;
Just 'break;'
quoted
+             }
               return 0;
Then this default '0' will be used.
Ok, will change.

Thanks,
Steve
quoted
       }
  }
--
2.31.1
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help