git: 10846c53c456 - main - bhyve: nvme controller obey async event setting when reporting critical temperature
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 15 Nov 2022 07:26:09 UTC
The branch main has been updated by corvink:
URL: https://cgit.FreeBSD.org/src/commit/?id=10846c53c4569bdf6d6e2b88739a56a8273bce7f
commit 10846c53c4569bdf6d6e2b88739a56a8273bce7f
Author: Wanpeng Qian <wanpengqian@gmail.com>
AuthorDate: 2022-11-14 13:08:52 +0000
Commit: Corvin Köhne <corvink@FreeBSD.org>
CommitDate: 2022-11-15 06:48:26 +0000
bhyve: nvme controller obey async event setting when reporting critical temperature
Async event report is controlled by async event configuration feature
setting. When reporting a critical temperature warning, check the async
event configuration.
Approved by: manu (mentor)
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D37355
---
usr.sbin/bhyve/pci_nvme.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/usr.sbin/bhyve/pci_nvme.c b/usr.sbin/bhyve/pci_nvme.c
index c9fde4ac7876..6572781e939c 100644
--- a/usr.sbin/bhyve/pci_nvme.c
+++ b/usr.sbin/bhyve/pci_nvme.c
@@ -1758,6 +1758,7 @@ nvme_feature_temperature(struct pci_nvme_softc *sc,
uint8_t tmpsel; /* Threshold Temperature Select */
uint8_t thsel; /* Threshold Type Select */
bool set_crit = false;
+ bool report_crit;
tmpth = command->cdw11 & 0xffff;
tmpsel = (command->cdw11 >> 16) & 0xf;
@@ -1785,11 +1786,13 @@ nvme_feature_temperature(struct pci_nvme_softc *sc,
~NVME_CRIT_WARN_ST_TEMPERATURE;
pthread_mutex_unlock(&sc->mtx);
- if (set_crit)
+ report_crit = sc->feat[NVME_FEAT_ASYNC_EVENT_CONFIGURATION].cdw11 &
+ NVME_CRIT_WARN_ST_TEMPERATURE;
+
+ if (set_crit && report_crit)
pci_nvme_aen_post(sc, PCI_NVME_AE_TYPE_SMART,
sc->health_log.critical_warning);
-
DPRINTF("%s: set_crit=%c critical_warning=%#x status=%#x", __func__, set_crit ? 'T':'F', sc->health_log.critical_warning, compl->status);
}