From patchwork Tue Aug 15 04:56:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Chan X-Patchwork-Id: 13353532 X-Patchwork-Delegate: kuba@kernel.org Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net [23.128.96.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 820F9A92D for ; Tue, 15 Aug 2023 04:57:25 +0000 (UTC) Received: from mail-qk1-x733.google.com (mail-qk1-x733.google.com [IPv6:2607:f8b0:4864:20::733]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0D1E4BF for ; Mon, 14 Aug 2023 21:57:23 -0700 (PDT) Received: by mail-qk1-x733.google.com with SMTP id af79cd13be357-76ca7b4782cso336123585a.0 for ; Mon, 14 Aug 2023 21:57:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1692075442; x=1692680242; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=MmMu7UcUW457ZlEl9FnGVgUZh/rocF3n78Amv/6AaVo=; b=hT04zln+vkmAxlQIE0+58Uh2aB36iAq5bAk9POYHo6h6kvDbW627gLJAV3YKC/H+vP WvyiQTLIKAvrPNAIqkM6AaIJEaoVqI1bqIwfZMy0JdT35oH8eX5wkzsdKGpwV3Lq6/4s HfyNkQlJkgY6Ljo8z641Up4Xnzt6HfvNJCfMk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692075442; x=1692680242; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=MmMu7UcUW457ZlEl9FnGVgUZh/rocF3n78Amv/6AaVo=; b=Y+NVcjLR3P1nxSjUXcJ+L1zfHyUswxfK94UdUvj0z7YXTpqgq/Fo0Gui5iFhchoWf0 BEsbJK57YW8Yyow0CSJgwePCRMSMN+CD4gRPbIngfjSTcNbVB2ibaiEZBoADAVQnNm4w Uk9fQMe8xXRJr+vl+cFAS01+aZiC8XFpeUtNEgjMGU+a+9MZEDF5fGzw+w/Cfo/KvKMJ 5BEy7oywrsefJ+D8IJ+kKzJRfHcQo/v5zSE4IpQ/WmnTG9PE2zgwkr6jtah52JgkZn4N IruGJEWdqr2gnc4yQ5261nkR+ZS13fr4MQK6QRVHxpgCfZtcEXaZRySvXtxVYq6fdLt/ rlYQ== X-Gm-Message-State: AOJu0YzI7uVgWQtVSerGZqsigrEW9dzQmPvavNoLOKJQwpxjollELIr5 oCr6waRU8Bdj/VLB/CyKOAL0GS3a4CgrtdExxC0= X-Google-Smtp-Source: AGHT+IGuFVrw7dWp/y+P9/cXHoPoh+2zTmS1AjiIgVg8WQFawokCjzyo26fCG3QfDRMAv92fYB2BTQ== X-Received: by 2002:a05:620a:7e9:b0:767:f1f5:998c with SMTP id k9-20020a05620a07e900b00767f1f5998cmr11068899qkk.14.1692075441575; Mon, 14 Aug 2023 21:57:21 -0700 (PDT) Received: from lvnvda5233.lvn.broadcom.net ([192.19.161.250]) by smtp.gmail.com with ESMTPSA id k28-20020a05620a143c00b00767cbd5e942sm3516575qkj.72.2023.08.14.21.57.20 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 14 Aug 2023 21:57:21 -0700 (PDT) From: Michael Chan To: davem@davemloft.net Cc: netdev@vger.kernel.org, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, gospo@broadcom.com, Kalesh AP , Somnath Kotur Subject: [PATCH net-next 08/12] bnxt_en: Enhance hwmon temperature reporting Date: Mon, 14 Aug 2023 21:56:54 -0700 Message-Id: <20230815045658.80494-9-michael.chan@broadcom.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20230815045658.80494-1-michael.chan@broadcom.com> References: <20230815045658.80494-1-michael.chan@broadcom.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net X-Patchwork-Delegate: kuba@kernel.org From: Kalesh AP Driver currently does hwmon device register and unregister in open and close() respectively. As a result, user will not be able to query hwmon temperature when interface is in ifdown state. Enhance it by moving the hwmon register/unregister to the probe/remove functions. Reviewed-by: Somnath Kotur Signed-off-by: Kalesh AP Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index 5d6ea2782c2f..f9bb66525d77 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -10275,7 +10275,7 @@ static struct attribute *bnxt_attrs[] = { }; ATTRIBUTE_GROUPS(bnxt); -static void bnxt_hwmon_close(struct bnxt *bp) +static void bnxt_hwmon_uninit(struct bnxt *bp) { if (bp->hwmon_dev) { hwmon_device_unregister(bp->hwmon_dev); @@ -10283,7 +10283,7 @@ static void bnxt_hwmon_close(struct bnxt *bp) } } -static void bnxt_hwmon_open(struct bnxt *bp) +static void bnxt_hwmon_init(struct bnxt *bp) { struct hwrm_temp_monitor_query_input *req; struct pci_dev *pdev = bp->pdev; @@ -10293,7 +10293,7 @@ static void bnxt_hwmon_open(struct bnxt *bp) if (!rc) rc = hwrm_req_send_silent(bp, req); if (rc == -EACCES || rc == -EOPNOTSUPP) { - bnxt_hwmon_close(bp); + bnxt_hwmon_uninit(bp); return; } @@ -10309,11 +10309,11 @@ static void bnxt_hwmon_open(struct bnxt *bp) } } #else -static void bnxt_hwmon_close(struct bnxt *bp) +static void bnxt_hwmon_uninit(struct bnxt *bp) { } -static void bnxt_hwmon_open(struct bnxt *bp) +static void bnxt_hwmon_init(struct bnxt *bp) { } #endif @@ -10646,7 +10646,6 @@ static int bnxt_open(struct net_device *dev) bnxt_reenable_sriov(bp); } } - bnxt_hwmon_open(bp); } return rc; @@ -10731,7 +10730,6 @@ static int bnxt_close(struct net_device *dev) { struct bnxt *bp = netdev_priv(dev); - bnxt_hwmon_close(bp); bnxt_close_nic(bp, true, true); bnxt_hwrm_shutdown_link(bp); bnxt_hwrm_if_change(bp, false); @@ -12295,6 +12293,7 @@ static int bnxt_fw_init_one_p2(struct bnxt *bp) if (bp->fw_cap & BNXT_FW_CAP_PTP) __bnxt_hwrm_ptp_qcfg(bp); bnxt_dcb_init(bp); + bnxt_hwmon_init(bp); return 0; } @@ -13200,6 +13199,7 @@ static void bnxt_remove_one(struct pci_dev *pdev) bnxt_clear_int_mode(bp); bnxt_hwrm_func_drv_unrgtr(bp); bnxt_free_hwrm_resources(bp); + bnxt_hwmon_uninit(bp); bnxt_ethtool_free(bp); bnxt_dcb_free(bp); kfree(bp->ptp_cfg); @@ -13796,6 +13796,7 @@ static int bnxt_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) init_err_pci_clean: bnxt_hwrm_func_drv_unrgtr(bp); bnxt_free_hwrm_resources(bp); + bnxt_hwmon_uninit(bp); bnxt_ethtool_free(bp); bnxt_ptp_clear(bp); kfree(bp->ptp_cfg);