Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp17568120ybl; Thu, 2 Jan 2020 07:52:52 -0800 (PST) X-Google-Smtp-Source: APXvYqxgcwBe+ROc1YwBeea0EvhYOCA0lnvzBzA2CIHJ81oDuaxXAkSmUi6fOYV+zylJkY23zUD8 X-Received: by 2002:a05:6830:1248:: with SMTP id s8mr91877649otp.202.1577980372149; Thu, 02 Jan 2020 07:52:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1577980372; cv=none; d=google.com; s=arc-20160816; b=nN37GB1oR6Y85O6aCGY7nuTgGMwbJ7F20+I3+FC/A8qas62Fx1qsrtQxscKXdGc0hu ZEbmQ0SC8Hfhu53Lxp+ts11xGXgZHx6fMBaa+n8NP4iGgcrfhLK0NzdOI0Pbl0ViYkMI DJObEjph7kBfSXhktOmA2+P2Spz5sjDXAGigaF3ShsWXJBUyWzHAdBh61B58DugPAPfA ouYgJaXl5azswpqYHHNJ0ciY6oUDpo++l9I3Fg/D12tqULYk5kK/7bf7Xo6tp5DW6uUx yAWPAel2TnMwSQkqDBJoQPDTg4WxpRZpqlZaObUV1ObMB0Q4Jt2OhOzf3UtwsakYWzWK LjIg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=l8GiNbTzB0gxgqSfCeGUqR2N+xB9TfANszBuH6xbhVk=; b=XC9rgfrKZX88WvzxAhf9XzSKxdFItb6L67AjNtrUkvpS9mXRes7ia1jhA4X5Rirt8P GYfzXUdYjMOaoDiGuiAAXeQ2VNUfF2f7V4EBo8h3l1CZukzAiN5mMKn2lJd7u2yqukAr GCPeAxzPbZV2dmV7O7wJWYkVsRDvTxujWNiAIBqx3C9wmnAm4Jha95ck60gJ7WB7C5Qb ST8e/SHPew3D+abb0gQ1tXgWa0AUgdBqAelzTPi55UhdAwxfUvmWQUVl2LfZUyq8C50V fmNO+DogLlVDu7XBhbezRZ7y6kqAUMaEiWQl75xNwAeOqtLe4/yZi8Vg/QkY4mDO5jq7 thJA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@broadcom.com header.s=google header.b=V9mfQO+l; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=broadcom.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id i5si25722825otr.293.2020.01.02.07.52.40; Thu, 02 Jan 2020 07:52:52 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@broadcom.com header.s=google header.b=V9mfQO+l; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=broadcom.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728819AbgABPvV (ORCPT + 99 others); Thu, 2 Jan 2020 10:51:21 -0500 Received: from mail-pl1-f196.google.com ([209.85.214.196]:42612 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728770AbgABPvU (ORCPT ); Thu, 2 Jan 2020 10:51:20 -0500 Received: by mail-pl1-f196.google.com with SMTP id p9so17955776plk.9 for ; Thu, 02 Jan 2020 07:51:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=l8GiNbTzB0gxgqSfCeGUqR2N+xB9TfANszBuH6xbhVk=; b=V9mfQO+lvFeoyC1d29u4/iGjL9H5Kx7299Phh07rMp8378POUNc83NRtQwgB6UuNE4 wtTjq8Hj7hmFN0IAZhc0+Q6SA1+BGLFrNK/ItlzwXNL+LTB4iFpQ4ntD8lbhXlaz1Y+T AvUAqBz/N/bI0m2byK+NEugJ5lI+wCFqTmQjg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=l8GiNbTzB0gxgqSfCeGUqR2N+xB9TfANszBuH6xbhVk=; b=k/ksdsHU0eozwg95CFtX/zsX3cahm5cqVpoTWQtY6FYij7syiD+OHU58GAF8o8OKwo 8AX9+PB4L9hZfIvshTNbhokNCuY+KS7Zh3NCWR94Vumb7ippIing6iLuOyoIArR8wobN mw1R0NCW2DamjujI6YuZj9EByUBGGlHP+PNJl74xHyCt1sB24bcYF/iw9Xh+SvwN0Gky RxaAkxAgdTysjh1qW8clP0SMh3Ze7aOG+7iYv0ao69a3QLgNZMnS2fvoV0M1bPKUzpJt VwUisl4X+AXsB9DcrrM5YzpdTDtxtFvgRwwamPGuPLwq8HBqvE+RDMs7fTLUVFMcCcrl XYww== X-Gm-Message-State: APjAAAWDofGo3JpPS6wrSk8Cm4qlaLABPfRZKk1KXg9zwCy3pMGFa80x 9UaXeVGYgV2PK248+TTXhrlakw== X-Received: by 2002:a17:902:b10d:: with SMTP id q13mr77923301plr.14.1577980280225; Thu, 02 Jan 2020 07:51:20 -0800 (PST) Received: from Ninja.ibn.broadcom.net ([192.19.234.250]) by smtp.gmail.com with ESMTPSA id d2sm11499420pjv.18.2020.01.02.07.51.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 02 Jan 2020 07:51:19 -0800 (PST) From: Vikas Gupta To: Michael Chan , "David S. Miller" , Jiri Pirko , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Cc: vasundhara-v.volam@broadcom.com, vikram.prakash@broadcom.com, Vikas Gupta Subject: [PATCH v1 3/3] bnxt_en: Call recovery done after reset is successfully done Date: Thu, 2 Jan 2020 21:18:11 +0530 Message-Id: <1577980091-25118-4-git-send-email-vikas.gupta@broadcom.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1577980091-25118-1-git-send-email-vikas.gupta@broadcom.com> References: <1577980091-25118-1-git-send-email-vikas.gupta@broadcom.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return EINPROGRESS to devlink health reporter recover as we are not yet done and call devlink_health_reporter_recovery_done once reset is successfully completed from workqueue context. Signed-off-by: Vikas Gupta --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 1 + drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c | 14 ++++++++++++-- drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.h | 1 + 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index 7b0fe19..39d4309 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -10822,6 +10822,7 @@ static void bnxt_fw_reset_task(struct work_struct *work) smp_mb__before_atomic(); clear_bit(BNXT_STATE_IN_FW_RESET, &bp->state); bnxt_ulp_start(bp, rc); + bnxt_dl_health_recovery_done(bp); bnxt_dl_health_status_update(bp, true); rtnl_unlock(); break; diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c index 3eedd44..0c3d224 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c @@ -89,7 +89,7 @@ static int bnxt_fw_reset_recover(struct devlink_health_reporter *reporter, return -EOPNOTSUPP; bnxt_fw_reset(bp); - return 0; + return -EINPROGRESS; } static const @@ -116,7 +116,7 @@ static int bnxt_fw_fatal_recover(struct devlink_health_reporter *reporter, else if (event == BNXT_FW_EXCEPTION_SP_EVENT) bnxt_fw_exception(bp); - return 0; + return -EINPROGRESS; } static const @@ -262,6 +262,16 @@ void bnxt_dl_health_status_update(struct bnxt *bp, bool healthy) health->fatal = false; } +void bnxt_dl_health_recovery_done(struct bnxt *bp) +{ + struct bnxt_fw_health *hlth = bp->fw_health; + + if (hlth->fatal) + devlink_health_reporter_recovery_done(hlth->fw_fatal_reporter); + else + devlink_health_reporter_recovery_done(hlth->fw_reset_reporter); +} + static const struct devlink_ops bnxt_dl_ops = { #ifdef CONFIG_BNXT_SRIOV .eswitch_mode_set = bnxt_dl_eswitch_mode_set, diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.h b/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.h index 6db6c3d..08aaa44 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.h +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.h @@ -58,6 +58,7 @@ struct bnxt_dl_nvm_param { void bnxt_devlink_health_report(struct bnxt *bp, unsigned long event); void bnxt_dl_health_status_update(struct bnxt *bp, bool healthy); +void bnxt_dl_health_recovery_done(struct bnxt *bp); void bnxt_dl_fw_reporters_create(struct bnxt *bp); void bnxt_dl_fw_reporters_destroy(struct bnxt *bp, bool all); int bnxt_dl_register(struct bnxt *bp); -- 2.7.4