git: add99c9c4bae - main - physmem ram: Don't reserve excluded regions

From: John Baldwin <jhb_at_FreeBSD.org>
Date: Wed, 14 Feb 2024 22:52:45 UTC
The branch main has been updated by jhb:

URL: https://cgit.FreeBSD.org/src/commit/?id=add99c9c4bae2769cba14a88b83377ec9c04cad9

commit add99c9c4bae2769cba14a88b83377ec9c04cad9
Author:     John Baldwin <jhb@FreeBSD.org>
AuthorDate: 2024-02-14 22:07:33 +0000
Commit:     John Baldwin <jhb@FreeBSD.org>
CommitDate: 2024-02-14 22:07:33 +0000

    physmem ram: Don't reserve excluded regions
    
    These regions can conflict with I/O resources and prevent allocation
    of those regions by other drivers.  It may make sense to reserve them
    after the boot-time probe of devices has concluded (or after an
    initial pass to reserve firmware-assigned resources before "wildcard"
    resources are allocated), but that would require additional changes.
    
    Reviewed by:    imp
    Differential Revision:  https://reviews.freebsd.org/D43893
---
 sys/kern/subr_physmem.c | 25 -------------------------
 1 file changed, 25 deletions(-)

diff --git a/sys/kern/subr_physmem.c b/sys/kern/subr_physmem.c
index 79fedf58d66d..fda47d4ef697 100644
--- a/sys/kern/subr_physmem.c
+++ b/sys/kern/subr_physmem.c
@@ -582,7 +582,6 @@ ram_attach(device_t dev)
 {
 	vm_paddr_t avail_list[PHYS_AVAIL_COUNT];
 	rman_res_t start, end;
-	struct region *hwp;
 	int rid, i;
 
 	rid = 0;
@@ -608,30 +607,6 @@ ram_attach(device_t dev)
 		rid++;
 	}
 
-	/* Now, reserve the excluded memory regions. */
-	for (i = 0, hwp = exregions; i < excnt; i++, hwp++) {
-		start = hwp->addr;
-		end = hwp->addr + hwp->size;
-
-		if (bootverbose)
-			device_printf(dev,
-			    "reserving excluded region: %jx-%jx\n",
-			    (uintmax_t)start, (uintmax_t)(end - 1));
-
-		/*
-		 * Best-effort attempt to reserve the range. This may fail, as
-		 * sometimes the excluded ranges provided by the device tree
-		 * will cover or overlap some I/O range.
-		 */
-		if (bus_alloc_resource(dev, SYS_RES_MEMORY, &rid, start, end,
-		    end - start, 0) == NULL) {
-			if (bootverbose)
-				device_printf(dev, "failed to reserve region\n");
-			continue;
-		}
-		rid++;
-	}
-
 	return (0);
 }