From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?iso-8859-1?Q?Ga=EBtan?= Rivet Subject: Re: [PATCH v3] net/failsafe: fix probe cleanup Date: Wed, 9 May 2018 13:49:23 +0200 Message-ID: <20180509114923.2f7j3oe6m5bt5je2@bidouze.vm.6wind.com> References: <1525782013-17527-1-git-send-email-rasland@mellanox.com> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Cc: dev@dpdk.org, matan@mellanox.com, thomas@monjalon.net, ophirmu@mellanox.com, stable@dpdk.org To: Raslan Darawsheh Return-path: Received: from mail-wm0-f54.google.com (mail-wm0-f54.google.com [74.125.82.54]) by dpdk.org (Postfix) with ESMTP id 2FD156CA3 for ; Wed, 9 May 2018 13:49:39 +0200 (CEST) Received: by mail-wm0-f54.google.com with SMTP id t11so24212329wmt.0 for ; Wed, 09 May 2018 04:49:39 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1525782013-17527-1-git-send-email-rasland@mellanox.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Hello Raslan, On Tue, May 08, 2018 at 03:20:13PM +0300, Raslan Darawsheh wrote: > The hot-plug alarm mechanism is responsible to practically execute both > plug in and out operations. It periodically tries to detect missed > sub-devices to be reconfigured and clean the resources of the removed > sub-devices. > > The hot-plug alarm is started by the failsafe probe function, and it's > wrongly not stopped if failsafe instance got an error. for example > when starting failsafe with a MAC option, and giving it an invalid MAC > address this will lead to a NULL pointer for the dev private field. Then > when the hotplug alarm is called it will try to access this pointer, > which will lead to a segmentation fault. > > Uninstall the hot-plug alarm in case of error in probe function. > > Fixes: a46f8d58 ("net/failsafe: add fail-safe PMD") > Cc: stable@dpdk.org > > Signed-off-by: Raslan Darawsheh > > --- > v2 changes: > Reword the commit log. > > v3 changes: > Reword the commit log. Sorry I replied to the v3 instead, my comment on the v2 still stands. The v2 was not superseded in patchwork and the commit title changed, making me think it was two different fixes. > --- > --- > drivers/net/failsafe/failsafe.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/failsafe/failsafe.c b/drivers/net/failsafe/failsafe.c > index 5e7a8ba..3a747c2 100644 > --- a/drivers/net/failsafe/failsafe.c > +++ b/drivers/net/failsafe/failsafe.c > @@ -226,7 +226,7 @@ fs_eth_dev_create(struct rte_vdev_device *vdev) > mac); > if (ret) { > ERROR("Failed to set default MAC address"); > - goto free_args; > + goto cancel_alarm; > } > } > } else { > @@ -260,6 +260,8 @@ fs_eth_dev_create(struct rte_vdev_device *vdev) > .type = RTE_INTR_HANDLE_EXT, > }; > return 0; > +cancel_alarm: > + failsafe_hotplug_alarm_cancel(dev); > free_args: > failsafe_args_free(dev); > free_subs: > -- > 2.7.4 > -- Gaëtan Rivet 6WIND