Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp934094pxb; Wed, 3 Mar 2021 21:37:35 -0800 (PST) X-Google-Smtp-Source: ABdhPJzTmfX7782AY5pwQQ15Wi4dv9GUvcyNuuASdH1nFWlW06OmPcvzYA9os4Tjo0QQ+zCdgJ76 X-Received: by 2002:a50:e1c9:: with SMTP id m9mr2600558edl.307.1614836254752; Wed, 03 Mar 2021 21:37:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1614836254; cv=none; d=google.com; s=arc-20160816; b=0ExZePLe9bGqitXQs0lfQlbuwAgSeuqdaV4OOPclTEyHGsKESMe9USBJ9rO+ra3g0H fHopVvwhE5MU6A9Oug/czOy7eivW9+TF6rLbt3Rb9spH1p4Nmnk9mEfDg2gDLewY57bm FSQfK0kbB5riRyPRHkWM8j9e8FO0Ue54WiFyNraUIUWzg8trR4WV9mM50PvHr1SKsce5 PdSD+HsTJOI9rQ+T7c/hcE9gb3ffhM29Ah6AEFN78zfHbRlkoXWOedl2PRpWwBO0TruA jwzZxuR84FeX+gEX9SxaxsGcjV8nuvxIiUkDnkBRUSl7GhEkU4TRkwh5xaTzREFUP9Hj m+fQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=ChiCCkiCsXQxiUixofhODiitqcy5zpCs8hKaFZVKRjI=; b=JJ7BD2qYsbEdjXxCPI1mXfvWKKMuu53s/W/+KqN8qOgwM4+5X6C9HN1jRulb2P/v87 9goDpr6bw3dZW9QeTCzkzFDEvJxYVeoRMsKRVBQro3t03VLO72atuJOg2WhlZxc1T4fn TpAXE8ABoT8AiNSdQUp0/swJs9NlqC4WFqJ1znDjU6aBKmuVQKNbI7JpIY9BtiFlp2Ht 98dAqZ8RO+Ba/D3MG2sSuPBdfE9CCp55QhjRW5Yk9iHWg4HWFrwLPGwhPcQonS2xJ5Uq w6ObNiIUmiNDPCrL1nMIC13tZQUZ0IYFVGSzKN//NFx6QoOBbsRWMmlPJ/1Rt5zn4mOX GZPQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b="XH9FrLA/"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id r14si16027843edb.408.2021.03.03.21.37.12; Wed, 03 Mar 2021 21:37:34 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b="XH9FrLA/"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1576519AbhCBEaL (ORCPT + 99 others); Mon, 1 Mar 2021 23:30:11 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44802 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1380482AbhCBBxC (ORCPT ); Mon, 1 Mar 2021 20:53:02 -0500 Received: from mail-io1-xd35.google.com (mail-io1-xd35.google.com [IPv6:2607:f8b0:4864:20::d35]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 24F3FC061788 for ; Mon, 1 Mar 2021 17:51:18 -0800 (PST) Received: by mail-io1-xd35.google.com with SMTP id u8so19988261ior.13 for ; Mon, 01 Mar 2021 17:51:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=ChiCCkiCsXQxiUixofhODiitqcy5zpCs8hKaFZVKRjI=; b=XH9FrLA/2st5+fTiC6HJTOSf1MwNIWxkjsihf73fTh7kndO6L7cbplAGk5wrk3f+Bd J65pMiwHsVzExSIZAIqmYrj64nyh2BDfz+hwVYfokEn0+0RtC0wVX3/5YWF1x9TlyfXi qHM1MDkz3jgzQTAo5gqt8jAd0mGP+w3XT4U14= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=ChiCCkiCsXQxiUixofhODiitqcy5zpCs8hKaFZVKRjI=; b=qmM+GpFTjcspvLJeCimORrgx94r76GuFuDeiMz0GgqIAkIrVpn6nvUbjlsmbiLdu+V JlVUUWY5vNbFPYA3bOXYmHhmiREOtiQfysqriG7TUmEJNZIpuT/Xyz+ekfadMXdAwu+y oy8AfPcpSW9nuuXQXtXtNHleT1iFHOEZLuFtqCzUHFDw2YK2X9OranMoCw9oNzg0PUZ3 FDiEuWLVyUvXDtxvMzBAxs8S1+qvqagzKRSZeRAO/7VjZF7ddNbIhyqeHJD6uXVJhtjg sMolPdIK5yd322lMiuzAQmJi00PjoK4l8xMN0/7Ucl5/MqglS3fFZ2oPVif2eZSJj/6u e8+A== X-Gm-Message-State: AOAM530iCwe6eFBMsDZliGYdopDe84QG5t1M7wOfEKhH0i1/yaz/6K/9 2e3Ucxo/NjnCBPXUepvWsobcD0JjeFpzHbOAwpDX8w== X-Received: by 2002:a02:1704:: with SMTP id 4mr19127370jah.121.1614649877502; Mon, 01 Mar 2021 17:51:17 -0800 (PST) MIME-Version: 1.0 References: <20210223142908.23374-1-youghand@codeaurora.org> In-Reply-To: <20210223142908.23374-1-youghand@codeaurora.org> From: Abhishek Kumar Date: Mon, 1 Mar 2021 17:51:05 -0800 Message-ID: Subject: Re: [PATCH v3] ath10k: skip the wait for completion to recovery in shutdown path To: Youghandhar Chintala Cc: ath10k , ath10k-review.external@qti.qualcomm.com, Kalle Valo , "David S. Miller" , Jakub Kicinski , linux-wireless , netdev , LKML , Douglas Anderson , Brian Norris Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch seems to address the comments on v2. Overall this patch LGTM. Reviewed-by: Abhishek Kumar On Tue, Feb 23, 2021 at 6:29 AM Youghandhar Chintala wrote: > > Currently in the shutdown callback we wait for recovery to complete > before freeing up the resources. This results in additional two seconds > delay during the shutdown and thereby increase the shutdown time. > > As an attempt to take less time during shutdown, remove the wait for > recovery completion in the shutdown callback and added an API to freeing > the reosurces in which they were common for shutdown and removing > the module. > > Tested-on: WCN3990 hw1.0 SNOC WLAN.HL.3.1-01040-QCAHLSWMTPLZ-1 > > Signed-off-by: Youghandhar Chintala > Change-Id: I65bc27b5adae1fedc7f7b367ef13aafbd01f8c0c > --- > Changes from v2: > -Corrected commit text and added common API for freeing the > resources for shutdown and unloading the module > --- > drivers/net/wireless/ath/ath10k/snoc.c | 29 ++++++++++++++++++-------- > 1 file changed, 20 insertions(+), 9 deletions(-) > > diff --git a/drivers/net/wireless/ath/ath10k/snoc.c b/drivers/net/wireless/ath/ath10k/snoc.c > index 84666f72bdfa..70b3f2bd1c81 100644 > --- a/drivers/net/wireless/ath/ath10k/snoc.c > +++ b/drivers/net/wireless/ath/ath10k/snoc.c > @@ -1781,17 +1781,11 @@ static int ath10k_snoc_probe(struct platform_device *pdev) > return ret; > } > > -static int ath10k_snoc_remove(struct platform_device *pdev) > +static int ath10k_snoc_free_resources(struct ath10k *ar) > { > - struct ath10k *ar = platform_get_drvdata(pdev); > struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); > > - ath10k_dbg(ar, ATH10K_DBG_SNOC, "snoc remove\n"); > - > - reinit_completion(&ar->driver_recovery); > - > - if (test_bit(ATH10K_SNOC_FLAG_RECOVERY, &ar_snoc->flags)) > - wait_for_completion_timeout(&ar->driver_recovery, 3 * HZ); > + ath10k_dbg(ar, ATH10K_DBG_SNOC, "snoc free resources\n"); > > set_bit(ATH10K_SNOC_FLAG_UNREGISTERING, &ar_snoc->flags); > > @@ -1805,12 +1799,29 @@ static int ath10k_snoc_remove(struct platform_device *pdev) > return 0; > } > > +static int ath10k_snoc_remove(struct platform_device *pdev) > +{ > + struct ath10k *ar = platform_get_drvdata(pdev); > + struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); > + > + ath10k_dbg(ar, ATH10K_DBG_SNOC, "snoc remove\n"); > + > + reinit_completion(&ar->driver_recovery); > + > + if (test_bit(ATH10K_SNOC_FLAG_RECOVERY, &ar_snoc->flags)) > + wait_for_completion_timeout(&ar->driver_recovery, 3 * HZ); > + > + ath10k_snoc_free_resources(ar); > + > + return 0; > +} > + > static void ath10k_snoc_shutdown(struct platform_device *pdev) > { > struct ath10k *ar = platform_get_drvdata(pdev); > > ath10k_dbg(ar, ATH10K_DBG_SNOC, "snoc shutdown\n"); > - ath10k_snoc_remove(pdev); > + ath10k_snoc_free_resources(ar); > } > > static struct platform_driver ath10k_snoc_driver = { > -- > 2.29.0 >