[dpdk-dev] [PATCH 1/2] net/ixgbe: fix x550 code to handle unidentified PHY

Luca Boccassi bluca at debian.org
Fri Nov 2 16:21:05 CET 2018


On Fri, 2018-11-02 at 14:11 +0000, Zhang, Qi Z wrote:
> > -----Original Message-----
> > From: Luca Boccassi [mailto:bluca at debian.org]
> > Sent: Thursday, November 1, 2018 9:04 AM
> > To: dev at dpdk.org
> > Cc: Lu, Wenzhuo <wenzhuo.lu at intel.com>; Ananyev, Konstantin
> > <konstantin.ananyev at intel.com>; Zhang, Qi Z <qi.z.zhang at intel.com>;
> > Luca
> > Boccassi <bluca at debian.org>; stable at dpdk.org
> > Subject: [PATCH 1/2] net/ixgbe: fix x550 code to handle
> > unidentified PHY
> > 
> > ixgbe_identify_phy_x550em() was missing the code to handle
> > unidentified
> > PHY that has been there in 82599 so it was not able to complete
> > initialization
> > of ixgbe sequence if no sfp plugged in.
> > Port it over to return an appropriate type and complete init
> > sequence
> > properly.
> > 
> > Fixes: d2e72774e58c ("ixgbe/base: support X550")
> > Cc: stable at dpdk.org
> > 
> > Signed-off-by: Luca Boccassi <bluca at debian.org>
> > ---
> > v2: refresh to remove merge conflict with master
> > 
> >  drivers/net/ixgbe/base/ixgbe_x550.c | 19 ++++++++++++++++---
> >  1 file changed, 16 insertions(+), 3 deletions(-)
> > 
> > diff --git a/drivers/net/ixgbe/base/ixgbe_x550.c
> > b/drivers/net/ixgbe/base/ixgbe_x550.c
> > index f7b98af52..83b394861 100644
> > --- a/drivers/net/ixgbe/base/ixgbe_x550.c
> > +++ b/drivers/net/ixgbe/base/ixgbe_x550.c
> > @@ -315,13 +315,21 @@ STATIC void ixgbe_setup_mux_ctl(struct
> > ixgbe_hw
> > *hw)
> >   */
> >  STATIC s32 ixgbe_identify_phy_x550em(struct ixgbe_hw *hw)  {
> > +	s32 status;
> > +
> >  	hw->mac.ops.set_lan_id(hw);
> > 
> >  	ixgbe_read_mng_if_sel_x550em(hw);
> > 
> >  	switch (hw->device_id) {
> >  	case IXGBE_DEV_ID_X550EM_A_SFP:
> > -		return ixgbe_identify_sfp_module_X550em(hw);
> > +		status = ixgbe_identify_sfp_module_X550em(hw);
> > +		/* Set PHY type none if no PHY detected */
> > +		if (hw->phy.type == ixgbe_phy_unknown) {
> > +			hw->phy.type = ixgbe_phy_none;
> > +			return IXGBE_SUCCESS;
> > +		}
> 
> Why this can't be handled at caller, why we replace phy_unknown by
> phy_none only for x550?

Hi, thanks for the review.

I've moved the code into the caller in v3.

It's done for x550 simply because that's the hardware that we have and
that this was tested with, I didn't want to take extra risks. It's also
the hardware that our customer reported the issue with.

-- 
Kind regards,
Luca Boccassi


More information about the dev mailing list