From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 8B63B14EC; Wed, 10 May 2017 11:49:43 +0200 (CEST) Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 May 2017 02:49:42 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.38,318,1491289200"; d="scan'208";a="98062138" Received: from fyigit-mobl1.ger.corp.intel.com (HELO [10.237.220.81]) ([10.237.220.81]) by orsmga005.jf.intel.com with ESMTP; 10 May 2017 02:49:40 -0700 To: Gregory Etelson , dev@dpdk.org Cc: Wei Dai , wenzhuo.lu@intel.com, konstantin.ananyev@intel.com, stable@dpdk.org References: <1494399602-33955-1-git-send-email-wei.dai@intel.com> <1659459.pG3zMYDirW@polaris> From: Ferruh Yigit Message-ID: <3d3e5d4b-f493-78e0-b275-077c5b88adc0@intel.com> Date: Wed, 10 May 2017 10:49:40 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.1.0 MIME-Version: 1.0 In-Reply-To: <1659459.pG3zMYDirW@polaris> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [dpdk-stable] [PATCH] net/ixgbe: fix calling null function of VF X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 May 2017 09:49:44 -0000 On 5/10/2017 10:34 AM, Gregory Etelson wrote: > Hello, > > The patch you proposed fixed a crash I experienced in IXGBE VF. > However, there's still another crash possibility > if the code will proceed with speed == 0 condition to ixgbe_get_link_capabilities > VF mac.ops.get_link_capabilities is also set to NULL; There seems a NULL check in that path, so it should be OK, can you please check: ixgbe_get_link_capabilities() return ixgbe_call_func(hw, hw->mac.ops.get_link_capabilities, .) ... #define ixgbe_call_func(hw, func, params, error) \ (func != NULL) ? func params : error So, if hw->mac.ops.get_link_capabilities == NULL, this will return IXGBE_NOT_IMPLEMENTED > > Regards, > Gregory > > > On Wednesday, 10 May 2017 10:00:02 IDT Wei Dai wrote: >> hw->mac.ops.get_media-type() of ixgbe VF is NULL and should not >> be called directly. It had better be replaced by calling >> ixgbe_get_media_type( ) to avoid crash. >> >> Fixes: c12d22f65b13 ("net/ixgbe: ensure link status is updated") >> Cc: stable@dpdk.org >> >> Signed-off-by: Wei Dai >> --- >> drivers/net/ixgbe/ixgbe_ethdev.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c >> index ec667d8..ed2baec 100644 >> --- a/drivers/net/ixgbe/ixgbe_ethdev.c >> +++ b/drivers/net/ixgbe/ixgbe_ethdev.c >> @@ -3799,7 +3799,7 @@ ixgbe_dev_link_update(struct rte_eth_dev *dev, int wait_to_complete) >> hw->mac.get_link_status = true; >> >> if ((intr->flags & IXGBE_FLAG_NEED_LINK_CONFIG) && >> - hw->mac.ops.get_media_type(hw) == ixgbe_media_type_fiber) { >> + ixgbe_get_media_type(hw) == ixgbe_media_type_fiber) { >> speed = hw->phy.autoneg_advertised; >> if (!speed) >> ixgbe_get_link_capabilities(hw, &speed, &autoneg); >> >