[Bug 285993] nvme device breakage in 14.2 STABLE n270867-25df691800f0
Date: Mon, 14 Apr 2025 13:47:15 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=285993
--- Comment #10 from Jim Long <freebsd-bugzilla@umpquanet.com> ---
(In reply to Jim Long from comment #9)
No joy. The Toshiba SSD only has Windows/GUI firmware update tools.
Relative to n271055, I have reduced the necessary patch for my hardware to boot
to be:
06:41:08 /usr/src# git diff
diff --git a/sys/dev/nvme/nvme_ctrlr.c b/sys/dev/nvme/nvme_ctrlr.c
index 6f5d6ae74add..ea1de2b98e9f 100644
--- a/sys/dev/nvme/nvme_ctrlr.c
+++ b/sys/dev/nvme/nvme_ctrlr.c
@@ -1524,16 +1524,10 @@ nvme_ctrlr_destruct(struct nvme_controller *ctrlr,
device_t dev)
goto noadminq;
/*
- * Check whether it is a hot unplug or a clean driver detach. If
device
- * is not there any more, skip any shutdown commands. Some hotplug
- * bridges will return zeros instead of ff's when the device is
- * departing, so ask the bridge if the device is gone. Some systems can
- * remove the drive w/o the bridge knowing its gone (they don't really
- * do hotplug), so failsafe with detecting all ff's (impossible with
- * this hardware) as the device being gone.
+ * Check whether it is a hot unplug or a clean driver detach.
+ * If device is not there any more, skip any shutdown commands.
*/
- gone = bus_child_present(dev) == 0 ||
- (nvme_mmio_read_4(ctrlr, csts) == NVME_GONE);
+ gone = (nvme_mmio_read_4(ctrlr, csts) == NVME_GONE);
if (gone)
nvme_ctrlr_fail(ctrlr);
else
I'm trying to look into why my hardware results in returning
(bus_child_present(dev) == 0) but I'm not finding where the *definition* of
BUS_CHILD_PRESENT is. Plenty of references, but no definition, to my novice
eyes.
Clues appreciated, as always.
--
You are receiving this mail because:
You are the assignee for the bug.