aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Motin <mav@FreeBSD.org>2026-02-09 19:23:26 +0000
committerAlexander Motin <mav@FreeBSD.org>2026-02-09 19:23:26 +0000
commitb9d3945831fc7a60f2065c7a0afc747dc5653c9f (patch)
treef5a976f36690837af7434eee05b80d3820307ee2
parentec6cf0c52698f9056cb17456717849653a03f7e4 (diff)
ahci: Restrict NVMe redirection by BAR size
Attempts to access vendor-specific registers on emulator of older Intel hardware was reported to confuse one. Since the redirection obviously require BAR size bigger than normal 2KB of AHCI, add the condition, similar to what Linux is doing. Requested by: kib MFC after: 2 weeks
-rw-r--r--sys/dev/ahci/ahci_pci.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/dev/ahci/ahci_pci.c b/sys/dev/ahci/ahci_pci.c
index 2b4cb37275a6..ed1b734f70be 100644
--- a/sys/dev/ahci/ahci_pci.c
+++ b/sys/dev/ahci/ahci_pci.c
@@ -523,7 +523,8 @@ ahci_pci_attach(device_t dev)
* here, or the user has to change the mode in the BIOS
* from RST to AHCI.
*/
- if (pci_get_vendor(dev) == 0x8086) {
+ if (pci_get_vendor(dev) == 0x8086 &&
+ rman_get_size(ctlr->r_mem) >= 512 * 1024) {
uint32_t vscap;
vscap = ATA_INL(ctlr->r_mem, AHCI_VSCAP);